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.