Función fundamental del sistema operativo que se encarga de crear, planificar, ejecutar y finalizar los procesos que se ejecutan en un sistema informático. Un proceso es un programa en ejecución que requiere recursos del sistema.
Programa: Conjunto de instrucciones que realizan una tarea específica cuando se ejecutan. Ejemplo: Un archivo ejecutable de un procesador de texto.
Proceso: Programa en ejecución, que requiere recursos del sistema como CPU, memoria, dispositivos de entrada/salida. Es una instancia activa de un programa.
Dos ventanas de Google Chrome corresponden a dos procesos diferentes, cada uno con su propio espacio de memoria y contexto.
Independientes: No dependen de otros procesos ni comparten recursos.
Ejemplo: Editar documento en Word sin conexión.
Interdependientes: Comparten recursos e información.
Ejemplo: Navegador que se comunica con gestor de descargas.
Usuario: Iniciados por aplicaciones del usuario.
Ejemplo: Word, Excel, Spotify.
Sistema: Iniciados por el SO para mantener funcionamiento.
Ejemplo: init en Linux, winlogon.exe en Windows.
Primer plano: Requieren interacción directa del usuario.
Ejemplo: Ventana de Word activa.
Segundo plano: Se ejecutan sin intervención directa.
Ejemplo: Antivirus ejecutando escaneo programado.
Definición: Estructura de datos que contiene la información necesaria para gestionar y supervisar un proceso en el sistema operativo.
| Componente | Descripción | Importancia |
|---|---|---|
| PID (Process ID) | Identificador único del proceso | Permite referenciar y gestionar el proceso |
| Estado del Proceso | Estado actual en el ciclo de vida | Determina si puede usar la CPU |
| Contador de Programa | Dirección de próxima instrucción | Mantiene el flujo de ejecución |
| Registros | Información temporal del proceso | Preserva estado durante interrupciones |
| Información de Planificación | Prioridad, tiempo de CPU asignado | Base para decisiones del scheduler |
| Información de Memoria | Segmentos de memoria asignados | Gestión de espacio de direcciones |
| Información de E/S | Dispositivos y archivos utilizados | Control de acceso a recursos |
Mecanismo mediante el cual el sistema operativo decide cuál de los procesos listos será ejecutado por la CPU en un momento dado.
Objetivos: Maximizar uso de CPU, maximizar rendimiento del sistema, minimizar tiempo de espera.
| Algoritmo | Descripción | Ventajas | Desventajas |
|---|---|---|---|
| FCFS (First-Come, First-Served) |
Procesos se atienden en orden de llegada | Simple, justo, fácil de implementar | Tiempo de espera largo, efecto convoy |
| SJF (Shortest Job First) |
Proceso con menor tiempo de ejecución se atiende primero | Minimiza tiempo promedio de espera | Difícil predecir duración, inanición |
| Round Robin (RR) |
Cada proceso recibe un "quantum" de tiempo | Justo, buena respuesta, evita inanición | Muchos cambios de contexto |
| Planificación por Prioridad | Procesos con mayor prioridad se ejecutan primero | Atención a procesos importantes | Inanición de procesos de baja prioridad |
Problema: Condiciones de carrera cuando varios procesos acceden a recursos compartidos sin coordinación.
Mecanismos:
Definición: Estado donde varios procesos esperan indefinidamente por recursos ocupados por otros.
Condiciones (Coffman):
Algoritmo del Banquero: Asigna recursos solo si el sistema queda en estado seguro.
Estrategias: