Sistemas operativos

La planificación de procesos (scheduling) es la forma en que el sistema operativo decide qué proceso o hilo usará la CPU en un momento dado. 👉 Esto es necesario porque normalmente hay más procesos listos para ejecutarse que procesadores disponibles.


🔹 Objetivos de la planificación

  1. Aprovechamiento de CPU: que el procesador esté ocupado el mayor tiempo posible.
  2. Equidad: repartir los recursos entre los procesos.
  3. Tiempo de respuesta rápido: especialmente en sistemas interactivos.
  4. Productividad: completar el mayor número de procesos en el menor tiempo.
  5. Cumplir prioridades: algunos procesos son más importantes que otros.

🔹 Tipos de planificación

  1. Planificación a largo plazo

    • Decide qué procesos entran en el sistema desde la cola de trabajos.
    • Controla la carga global del sistema.
  2. Planificación a medio plazo

    • Suspende o reactiva procesos para equilibrar el uso de recursos.
    • Ejemplo: enviar un proceso al disco (swap) para liberar RAM.
  3. Planificación a corto plazo (CPU scheduling)

    • Decide qué proceso en estado “Listo” usará la CPU en ese momento.
    • Es la más importante para el rendimiento y la multitarea.

🔹 Algoritmos de planificación (CPU scheduling)

  1. FIFO (First In, First Out) / FCFS

    • El primero en llegar es el primero en ejecutarse.
    • Justo pero puede causar efecto convoy (un proceso largo retrasa a los cortos).
  2. SJF (Shortest Job First)

    • Se ejecuta primero el proceso más corto.
    • Eficiente, pero difícil saber de antemano la duración real.
  3. Round Robin (RR)

    • Cada proceso recibe un tiempo fijo (quantum).
    • Si no termina, vuelve al final de la cola.
    • Muy usado en sistemas de tiempo compartido.
  4. Por prioridades

    • Cada proceso tiene un nivel de prioridad.
    • Los de mayor prioridad se ejecutan antes.
    • Problema: inanición de procesos de baja prioridad.
  5. Multinivel

    • Se combinan colas con diferentes algoritmos según el tipo de proceso.
    • Ejemplo: procesos interactivos en Round Robin, procesos largos en FCFS.

🔹 Ejemplo práctico

Supongamos que hay tres procesos listos:

  • P1 → necesita 10 ms

  • P2 → necesita 4 ms

  • P3 → necesita 2 ms

  • Con FIFO → P1 se ejecuta completo, luego P2, luego P3 → los cortos esperan demasiado.

  • Con SJF → P3 → P2 → P1 → mejor tiempo de espera promedio.

  • Con Round Robin (quantum = 2 ms) → P1 corre 2 ms, luego P2, luego P3, y así sucesivamente → más justo para usuarios interactivos.


📌 Resumen rápido

  • La planificación decide qué proceso usa la CPU.
  • Tipos: largo, medio y corto plazo.
  • Algoritmos principales: FIFO, SJF, Round Robin, Prioridades, Multinivel.
  • El objetivo: equilibrio entre eficiencia, justicia y rapidez de respuesta.
  • Loading...