La gestión de procesos es una de las funciones más críticas de un sistema operativo. Un proceso es un programa en ejecución, y el sistema operativo debe gestionar estos procesos para asegurar que los recursos del sistema se utilicen de manera eficiente y que los procesos se ejecuten sin conflictos.
Conceptos Clave
¿Qué es un Proceso?
Un proceso es una instancia de un programa en ejecución. Incluye:
- Código del programa: Las instrucciones que se están ejecutando.
- Contador de programa: La dirección de la siguiente instrucción a ejecutar.
- Registros de CPU: Los valores actuales de los registros del procesador.
- Pila: Contiene datos temporales como parámetros de funciones, direcciones de retorno y variables locales.
- Segmento de datos: Contiene variables globales.
- Heap: Memoria dinámica asignada durante la ejecución del proceso.
Estados de un Proceso
Un proceso puede estar en uno de los siguientes estados:
- Nuevo: El proceso está siendo creado.
- Listo: El proceso está esperando para ser asignado a un procesador.
- En ejecución: Las instrucciones del proceso están siendo ejecutadas.
- Bloqueado: El proceso está esperando algún evento (como la finalización de una operación de E/S).
- Terminado: El proceso ha terminado su ejecución.
Transiciones de Estado
Las transiciones entre estos estados se pueden representar en un diagrama de estado, como se muestra a continuación:
Estado Actual | Evento | Nuevo Estado |
---|---|---|
Nuevo | Admisión | Listo |
Listo | Asignación de CPU | En ejecución |
En ejecución | Interrupción | Listo |
En ejecución | Solicitud de E/S | Bloqueado |
Bloqueado | Finalización de E/S | Listo |
En ejecución | Finalización | Terminado |
Bloque de Control de Proceso (PCB)
El PCB es una estructura de datos que contiene toda la información sobre un proceso específico. Incluye:
- Estado del proceso
- Contador de programa
- Registros de CPU
- Información de planificación
- Información de gestión de memoria
- Información de contabilidad
- Información de E/S
Planificación de Procesos
Objetivos de la Planificación
- Maximizar el uso de la CPU
- Maximizar el rendimiento del sistema
- Minimizar el tiempo de respuesta
- Minimizar el tiempo de espera
- Minimizar el tiempo de vuelta
Algoritmos de Planificación
- First-Come, First-Served (FCFS): Los procesos se atienden en el orden en que llegan.
- Shortest Job Next (SJN): El proceso con el menor tiempo de ejecución se atiende primero.
- Round Robin (RR): Cada proceso recibe una cantidad fija de tiempo de CPU (quantum).
- Priority Scheduling: Los procesos se atienden según su prioridad.
Ejemplo de Algoritmo Round Robin
Supongamos que tenemos tres procesos con los siguientes tiempos de ejecución y un quantum de 4 unidades de tiempo:
Proceso | Tiempo de Ejecución |
---|---|
P1 | 10 |
P2 | 5 |
P3 | 8 |
La secuencia de ejecución sería:
- P1 se ejecuta durante 4 unidades de tiempo (restan 6).
- P2 se ejecuta durante 4 unidades de tiempo (resta 1).
- P3 se ejecuta durante 4 unidades de tiempo (restan 4).
- P1 se ejecuta durante 4 unidades de tiempo (restan 2).
- P2 se ejecuta durante 1 unidad de tiempo (completa).
- P3 se ejecuta durante 4 unidades de tiempo (completa).
- P1 se ejecuta durante 2 unidades de tiempo (completa).
Ejercicios Prácticos
Ejercicio 1: Diagrama de Estado de Procesos
Dibuja un diagrama de estado para un proceso que pasa por los siguientes estados: Nuevo, Listo, En ejecución, Bloqueado, Terminado. Indica las transiciones posibles entre estos estados.
Ejercicio 2: Algoritmo de Planificación FCFS
Dado los siguientes procesos con sus tiempos de llegada y tiempos de ejecución, calcula el tiempo de espera y el tiempo de vuelta para cada proceso usando el algoritmo FCFS.
Proceso | Tiempo de Llegada | Tiempo de Ejecución |
---|---|---|
P1 | 0 | 5 |
P2 | 2 | 3 |
P3 | 4 | 2 |
Solución:
- P1: Tiempo de espera = 0, Tiempo de vuelta = 5
- P2: Tiempo de espera = 3, Tiempo de vuelta = 6
- P3: Tiempo de espera = 4, Tiempo de vuelta = 6
Ejercicio 3: Algoritmo de Planificación Round Robin
Dado los siguientes procesos con sus tiempos de ejecución y un quantum de 3 unidades de tiempo, determina la secuencia de ejecución y el tiempo de vuelta para cada proceso.
Proceso | Tiempo de Ejecución |
---|---|
P1 | 6 |
P2 | 8 |
P3 | 7 |
Solución:
- Secuencia de ejecución: P1, P2, P3, P1, P2, P3, P2
- Tiempo de vuelta:
- P1: 9
- P2: 18
- P3: 16
Conclusión
La gestión de procesos es esencial para el funcionamiento eficiente de un sistema operativo. Comprender los estados de un proceso, el PCB y los algoritmos de planificación permite optimizar el uso de recursos y mejorar el rendimiento del sistema. En el próximo módulo, exploraremos la gestión de memoria, que es otro componente crucial en la administración de recursos del sistema operativo.
Fundamentos de Sistemas Operativos
Módulo 1: Introducción a los Sistemas Operativos
- Conceptos Básicos de Sistemas Operativos
- Historia y Evolución de los Sistemas Operativos
- Tipos de Sistemas Operativos
- Funciones Principales de un Sistema Operativo
Módulo 2: Gestión de Recursos
Módulo 3: Concurrencia
- Conceptos de Concurrencia
- Hilos y Procesos
- Sincronización y Exclusión Mutua
- Problemas Clásicos de Concurrencia