Introducción al Administrador de Procesos

El administrador de procesos es un módulo de un sistema operativo, responsable de gestionar la ejecución de los procesos en un sistema. Su tarea principal es asegurarse de que cada proceso reciba el tiempo de CPU necesario para su ejecución de manera justa y eficiente.

Para lograr esto, se implementa una función planificación de procesos, que involucra la decisión de cuál de los procesos en espera se debe ejecutar en la CPU en un momento determinado. Los algoritmos de planificación son los métodos que el sistema operativo emplea para tomar estas decisiones.

Tipos de Algoritmos de Planificación

Los algoritmos de planificación se clasifican según la estrategia que siguen para asignar tiempo de CPU a los procesos. Aquí se describen algunos de los más comunes:

Planificación de Primeros en Llegar, Primeros en Ser Atendidos (FCFS, por sus siglas en inglés)

First Coming First Schedule
  • Descripción: En este algoritmo, el proceso que llega primero es el que obtiene acceso a la CPU primero. FCFS sigue una política FIFO (First In, First Out).
  • Ventajas: Es fácil de implementar y entender.
  • Desventajas: Puede ser ineficiente en términos de tiempo de espera. Si un proceso largo llega primero, puede hacer que los procesos más cortos tengan un tiempo de espera muy alto, lo que se conoce como el efecto convoy.
  • Ejemplo: Si los procesos P1, P2, P3 llegan en ese orden, la CPU los ejecutará en ese mismo orden.

Planificación de Siguiente en el Más Corto (SJF, por sus siglas en inglés)

  • Descripción: Este algoritmo selecciona el proceso que tiene el tiempo de ejecución más corto (es decir, el proceso con la menor duración de CPU) para ejecutarse primero.
  • Ventajas: Reduce el tiempo de espera promedio de los procesos, especialmente si los tiempos de ejecución varían considerablemente.
  • Desventajas: Requiere que el sistema operativo conozca los tiempos de ejecución de los procesos, lo cual no siempre es posible, y puede llevar a análisis de starvation (cuando los procesos más largos no se ejecutan nunca si siempre llegan procesos más cortos).
  • Ejemplo: Si los procesos P1, P2 y P3 tienen tiempos de ejecución de 5, 2 y 1 unidades de tiempo, respectivamente, el algoritmo ejecutará primero P3, luego P2 y finalmente P1.
Shorted Job First

Planificación de Round Robin (RR)

Round Robin shedule
  • Descripción: En este algoritmo, cada proceso recibe un tiempo limitado de ejecución (llamado “quantum”). Si un proceso no termina en su quantum, se coloca al final de la cola de procesos y se le da tiempo a otro proceso. Este algoritmo es una forma de planificación de tiempo compartido.
  • Ventajas: Es justo, ya que da la misma cantidad de tiempo a cada proceso. Es útil en sistemas multitarea donde los procesos interactúan con los usuarios.
  • Desventajas: Si el quantum es demasiado grande, puede funcionar como FCFS; si es demasiado pequeño, puede generar mucha sobrecarga debido a los frecuentes cambios de contexto.
  • Ejemplo: Si el quantum es de 2 unidades de tiempo y los procesos P1, P2 y P3 tienen tiempos de ejecución de 4, 3 y 5 unidades, el sistema les asignará 2 unidades de tiempo en cada ciclo.

Planificación de Prioridades

Priority Queue
  • Descripción: En este algoritmo, cada proceso se asigna a una prioridad, y el proceso con la mayor prioridad se ejecuta primero. Las prioridades pueden ser asignadas de manera estática o dinámica.
  • Ventajas: Permite la ejecución de procesos más importantes o urgentes antes que otros, garantizando que los procesos críticos obtengan el tiempo de CPU que necesitan.
  • Desventajas: Puede causar injusticia o starvation a los procesos con menor prioridad, ya que estos pueden ser “olvidados” si siempre llegan procesos con prioridad más alta.
  • Ejemplo: Si los procesos P1 (prioridad 1), P2 (prioridad 3), y P3 (prioridad 2) llegan al mismo tiempo, el sistema ejecutará primero P2, luego P3 y, finalmente, P1.

Planificación de Multinivel (Multilevel Queue Scheduling)

Multilevel Queue Scheduling
  • Descripción: Los procesos se dividen en diferentes colas según características como la prioridad, el tipo de proceso (interactivo o batch) o el tiempo de ejecución. Cada cola tiene su propio algoritmo de planificación (como FCFS o Round Robin).
  • Ventajas: Es eficiente y puede manejar diferentes tipos de procesos con requisitos distintos.
  • Desventajas: Puede ser complejo de implementar y gestionar, y también puede haber problemas de starvation si los procesos de baja prioridad no se ejecutan.
  • Ejemplo: Se pueden tener dos colas, una para procesos interactivos (que usan Round Robin) y otra para procesos por lotes (que usan FCFS).

Factores críticos en los Algoritmos de Planificación

Los factores más críticos en los algoritmos de planificación son los siguientes:

  • Tiempo de espera: El tiempo total que un proceso espera en la cola antes de ser ejecutado.
  • Tiempo de respuesta: El tiempo desde que un proceso entra en el sistema hasta que se produce su primera respuesta.
  • Eficiencia: Cuánto trabajo se puede realizar con los recursos disponibles.
  • Equidad: Si los procesos tienen la misma oportunidad de ser ejecutados.
  • Complejidad: La facilidad o dificultad de implementar el algoritmo.