Gestión de la CPU: Planificación de Procesos y Algoritmos en Sistemas Operativos

Enviado por Programa Chuletas y clasificado en Informática y Telecomunicaciones

Escrito el en español con un tamaño de 4,46 KB

Planificación de Procesos: Conceptos Fundamentales

La planificación de procesos es el mecanismo que gestiona el reparto de tiempo de procesador entre los procesos que se encuentran en estado Preparado.

El Planificador (Scheduler)

El Planificador (Scheduler) es el módulo del Sistema Operativo (SO) que realiza la selección del proceso en estado preparado que pasará a estado Ejecución.

  • Es el encargado de decidir en qué orden se deben atender las solicitudes de procesador por parte de los procesos.

Tipos de Planificadores (Schedulers)

  1. Planificador a Largo Plazo: Selecciona los procesos que deben llevarse a la cola de preparados.
  2. Planificador a Mediano Plazo: Decide qué procesos entran o salen del estado Bloqueado (a menudo relacionado con la suspensión o intercambio de memoria).
  3. Planificador a Corto Plazo: Selecciona el proceso que pasa del estado Preparado a Ejecución y le asigna la CPU.

El Activador (Dispatcher)

El Activador (Dispatcher) es el módulo que pone en ejecución el proceso seleccionado. Sus funciones principales son:

  • Permite la ejecución de un proceso en la CPU durante un intervalo de tiempo (time slice o quantum).
  • Guarda el estado de ese proceso en su BCP (Bloque de Control de Proceso).
  • Restaura el estado de otro proceso a partir de su BCP.
  • Transfiere el control al nuevo proceso.
  • Realiza el cambio de contexto.

Objetivos de la Planificación

El objetivo principal de la planificación es optimizar el comportamiento del sistema. Los objetivos específicos que se suelen perseguir incluyen:

  • Reparto equitativo del procesador.
  • Eficiencia en el uso del procesador (maximizar la utilización).
  • Menor tiempo de respuesta en procesos.
  • Mayor número de trabajos por unidad de tiempo (throughput).
  • Cumplir los plazos de ejecución, especialmente crucial en sistemas de tiempo real.

Algoritmos de Planificación

1. Planificación Cíclica o Round-Robin (RR)

  • Busca un reparto equitativo.
  • Ideal para Sistemas de Tiempo Compartido.
  • Los procesos están organizados en una cola circular.
  • Se elige el proceso que está en la cabecera de la cola.
  • Permanece en ejecución hasta que pasa a estado bloqueado o consume su intervalo de tiempo (quantum). Si es expulsado, pasa al final de la cola.

2. FIFO (First In, First Out)

  • Principio: Primero que llega, primero que sale.
  • Los procesos se ubican en la cola de acuerdo al instante en que pasaron al estado Preparado.
  • Los procesos que llevan más tiempo esperando están más cerca de la cabecera.
  • Es un algoritmo no expulsivo (no considera expulsión por tiempo, solo si el proceso pasa al estado bloqueado o termina).
  • Es aplicable a sistemas batch (por lotes) y no interactivos.

3. Planificación por Prioridades

  • Se ejecuta el proceso que tenga mayor prioridad.
  • Para evitar el problema de que un proceso nunca sea ejecutado (Inanición), se añade un mecanismo de Envejecimiento (Aging) para aumentar la prioridad a los procesos que llevan un determinado tiempo esperando.
  • Se suele añadir un algoritmo secundario (ej. FIFO o RR) para elegir entre procesos de igual prioridad.
  • Suelen ser algoritmos con expulsión (preemptivos).

4. Primero el Trabajo Más Corto (SJF - Shortest Job First)

  • Se selecciona el proceso con menor tiempo de ejecución.
  • Importante: Exige conocer a priori el tiempo de ejecución de los procesos.
  • Aplicable a procesos batch repetitivos.
  • Generalmente, es un algoritmo no expulsivo.

Entradas relacionadas: