Gestión Avanzada de Procesos y Modelos Multihilo en Sistemas Operativos

Enviado por Chuletator online y clasificado en Informática y Telecomunicaciones

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

Planificación de Procesos en Sistemas Operativos

El sistema operativo, como parte de la tarea de planificación, debe seleccionar los procesos que se encuentran en las colas de planificación. Este proceso de selección se realiza mediante un planificador apropiado.

Planificación a Largo Plazo

  • Decide qué procesos van a ser admitidos en el sistema.
  • Su objetivo es mantener suficientes procesos listos para que la CPU no esté inactiva.
  • Mantiene el “grado de multiprogramación”.

Planificación a Corto Plazo

  • Decide cuál de todos los procesos listos va a ser despachado (ejecutado).
  • Ocurre cuando la CPU queda inactiva, lo cual sucede muchas veces por segundo.

Frecuencia y Excepciones

La principal diferencia entre la planificación a largo y corto plazo se encuentra en la frecuencia de ejecución:

  • Largo Plazo: Poco frecuente.
  • Corto Plazo: Muy frecuente.

En los sistemas interactivos, generalmente no existe la planificación a largo plazo, ya que es el usuario quien indica directamente los procesos que desea ejecutar.

Planificación a Medio Plazo

Podemos definir una tercera planificación, a medio plazo, encargada de actuar cuando las prestaciones del sistema bajan.

Se elige un proceso para su terminación temporal (suspensión), reanudándolo si se recuperan los recursos en número suficiente.

Consideraciones en la Admisión de Procesos (Largo Plazo)

La elección de los procesos a admitir (planificación a largo plazo) debe ser cuidadosa.

Los procesos se clasifican según el recurso que más utilicen:

  • Limitados por E/S: Invierten la mayor parte de su tiempo en operaciones de Entrada/Salida.
  • Limitados por CPU: Invierten la mayor parte de su tiempo en cálculos y procesamiento.

Realizar una mezcla adecuada de ambos tipos evita que haya colas vacías debido a cuellos de botella en otro sitio (CPU o E/S). Este fenómeno se denomina Efecto Convoy.

Modelos Multihilo (Multithreading)

El soporte a hilos puede darse en dos niveles principales:

  • Hilos de Usuario: Se generan mediante el uso de librerías de funciones y se gestionan sin soporte directo del núcleo (kernel).
  • Hilos del Núcleo (SO): Se crean y gestionan directamente mediante el núcleo del sistema operativo.

Debe existir una relación entre los hilos de usuario y los del núcleo, lo que da lugar a varios modelos de mapeo:

Modelo Muchos a Uno

Se asignan muchos hilos de usuario a un único hilo del núcleo. Los hilos se gestionan completamente a nivel usuario.

Es un modelo eficiente, pero presenta un inconveniente crítico: si un hilo realiza una llamada bloqueante, todo el proceso se bloquea.

Modelo Uno a Uno

Cada hilo de usuario se asigna a un hilo del núcleo.

Ventajas:

  • Proporciona mayor concurrencia.
  • Permite que la ejecución continúe si un hilo hace una llamada bloqueante.
  • Permite el uso de las capacidades multinúcleo (multicore).

Desventaja: La creación de tantos hilos del núcleo puede repercutir negativamente en el rendimiento del sistema.

Modelo Muchos a Muchos

Se multiplexan varios hilos de usuario sobre un número menor o igual de hilos del núcleo.

Este método combina las ventajas de los anteriores:

  • Proporciona concurrencia.
  • Evita el bloqueo ante llamadas bloqueantes.
  • Evita problemas de rendimiento por un excesivo número de hilos del núcleo, planificando solo los que sean necesarios.

Existe una variación conocida como el “Modelo de Dos Niveles”, que permite que un hilo de usuario sea asignado temporalmente a un hilo del núcleo.

Entradas relacionadas: