Gestión Avanzada de Procesos y Planificación de CPU en Sistemas Operativos

Clasificado en Informática

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

Gestión de Procesos y Estados de Suspensión en Sistemas Operativos

En los sistemas operativos, existen dos tipos principales de estados 'suspendido': Bloqueado/Suspendido y Listo/Suspendido.

Normalmente, el sistema operativo (SO) suspende procesos que se encuentran en estado bloqueado. Sin embargo, si no hay procesos bloqueados disponibles para suspender, el SO puede desalojar procesos que están en estado listo. Cuando un proceso que estaba en estado bloqueado/suspendido deja de estar bloqueado, pasará al estado listo/suspendido.

Generalmente, la decisión de cargar un proceso en memoria principal se basa en la necesidad de controlar el grado de multiprogramación. Por lo tanto, la decisión de carga en memoria tendrá en cuenta las necesidades de memoria del proceso que se va a descargar o que ha sido descargado previamente.

Planificación a Medio Plazo

Un ejemplo de planificación a medio plazo es la transferencia de procesos bloqueados a memoria principal, optimizando así el uso de recursos y el grado de multiprogramación.

Planificación a Corto Plazo

La planificación a corto plazo se refiere a la decisión sobre qué proceso o hilo disponible será ejecutado en el procesador. El planificador a corto plazo se ejecuta cuando ocurre un suceso que puede conducir a la interrupción del proceso actual o que ofrece la oportunidad de desalojar el proceso actual en favor de otro.

Ejemplos de estos sucesos incluyen:

  • Interrupciones de reloj
  • Interrupciones de Entrada/Salida (E/S)
  • Llamadas al sistema operativo (SO)
  • Señales

Esta planificación es crucial para el uso eficiente de la CPU, ya que gestiona y decide en cada instante la compartición de la CPU entre los procesos o hilos listos para ejecutarse. Además, la planificación a corto plazo interviene directamente entre los procesos que están listos, dado que el objetivo principal del planificador (scheduler) es repartir equitativamente el tiempo del procesador entre los procesos o hilos que pueden ejecutar.

Algoritmos de Planificación de CPU

Los algoritmos diseñados para repartir el tiempo de CPU buscan optimizar diferentes criterios:

  • Equidad: Busca repartir el uso de la CPU de manera justa entre los procesos, asegurando que ninguno sea privado de recursos por un tiempo excesivo.
  • Eficiencia: Su objetivo es evitar los tiempos ociosos de la CPU, manteniéndola siempre ocupada para maximizar su utilización.
  • Rendimiento (Throughput): Trata de maximizar el número de peticiones o tareas completadas por unidad de tiempo, es decir, la cantidad de trabajo que el sistema puede procesar.

A menudo, estos objetivos son contradictorios; por ejemplo, si priorizamos la equidad, el rendimiento general del sistema podría verse afectado negativamente, y viceversa.

Componentes Lógicos del Planificador

El sistema operativo implementa estas operaciones de planificación a través de tres componentes lógicos principales:

  • Encolador (Enqueuer): Cuando un proceso cambia al estado Listo, el encolador lo coloca en una estructura de datos de tipo cola. Es decir, añade el proceso a la cola de procesos Listos, esperando su turno para ser ejecutado.
  • Conmutador de Contexto (Context Switcher): Cuando un proceso va a ser desalojado de la CPU (ya sea por una interrupción o por finalización de su quantum de tiempo), el conmutador de contexto guarda el contenido de los registros de la CPU en el Bloque de Control de Proceso (BCP) correspondiente. Esto permite que, posteriormente, la ejecución del proceso pueda ser reanudada desde el punto exacto donde se interrumpió.
  • Distribuidor (Dispatcher): El distribuidor selecciona uno de los procesos de la cola de Listos y le asigna la CPU, utilizando para ello un algoritmo de planificación específico (definido por la política del sistema).

Entradas relacionadas: