En este artículo, abordaremos el análisis de diferentes políticas de planificación de procesos en un sistema mono-procesador mediante la simulación de tareas. El objetivo es comprender los distintos algoritmos de planificación y su impacto en el rendimiento del sistema. A lo largo del texto, responderemos a varias preguntas clave sobre los resultados obtenidos para distintos conjuntos de tareas, explicando los conceptos de forma detallada. Para seguir esta guía, basta con utilizar cualquier simulador adecuado que permita la ejecución de políticas de planificación como FCFS, SJF, Round Robin, entre otros.
Introducción a la Planificación de Procesos
La planificación de procesos es una de las tareas fundamentales del sistema operativo. Consiste en decidir cuál de los procesos en cola debe ser ejecutado a continuación por el procesador, de modo que el sistema sea eficiente y equitativo con todos los procesos en ejecución. Existen diversos algoritmos para realizar esta planificación, cada uno con sus ventajas y desventajas dependiendo del contexto y la carga del sistema.
Entre los algoritmos más comunes se encuentran:
- First Come First Serve (FCFS): Atiende a los procesos en el orden en que llegan.
- Shortest Job First (SJF): Atiende al proceso que requiere menos tiempo de CPU.
- Round Robin (RR): Asigna a cada proceso un tiempo determinado (quantum) en el que puede ejecutarse antes de pasar el control a otro proceso.
- Prioridades: Da prioridad a los procesos según un valor asignado, con variantes expulsivas y no expulsivas.
Ejercicio 1: Conjunto de Tareas «solo_cpu.def»
El primer ejercicio involucra la simulación de un conjunto de tareas que solo utilizan la CPU. Estas tareas tienen la siguiente descripción:
- Tarea uno: Prioridad 2, [CPU, 6]
- Tarea dos: Prioridad 2, [CPU, 5]
- Tarea tres: Prioridad 1, [CPU, 4]
- Tarea cuatro: Prioridad 1, [CPU, 3]
Pregunta 1: Simulación Paso a Paso
Cada política de planificación reacciona de forma diferente ante este conjunto de tareas. En una simulación paso a paso, la previsión de la próxima tarea a ejecutar depende de la política seleccionada:
- FCFS ejecutará las tareas en el orden de llegada, sin importar las prioridades o tiempos de CPU requeridos.
- SJF seleccionará la tarea con el menor tiempo de CPU restante en cada ciclo.
- Round Robin irá alternando entre tareas según el quantum asignado.
Pregunta 2: Mejor Tiempo de Respuesta Promedio
El algoritmo Shortest Job First (SJF) tiende a ofrecer el mejor tiempo de respuesta promedio, ya que siempre ejecuta la tarea más corta, reduciendo el tiempo de espera para las tareas más rápidas.
Pregunta 3: Cálculo del Tiempo de Retorno Medio
Para calcular el tiempo de retorno medio, se debe simular la ejecución completa de todas las tareas bajo cada política. El tiempo de retorno se define como el tiempo total que tarda una tarea desde que llega al sistema hasta que termina su ejecución. Al comparar los tiempos de retorno para cada política:
- FCFS suele tener tiempos de retorno más altos debido a que no prioriza las tareas más cortas.
- SJF optimiza el tiempo de retorno medio, ya que siempre prioriza la tarea más corta.
- Round Robin puede variar según el valor del quantum.
Pregunta 4: Valor del Quantum en Round Robin
El quantum más pequeño que hace que Round Robin se comporte como FCFS es aquel que permite a cada proceso ejecutar su ciclo completo sin ser interrumpido. En este caso, para este conjunto de tareas, un quantum igual o mayor que el tiempo más largo de CPU requerido por las tareas (en este caso, 6 unidades de tiempo) garantizaría que Round Robin se comporte igual que FCFS.
Ejercicio 2: Conjunto de Tareas «dos_tareas.def»
En este ejercicio, las tareas utilizan tanto la CPU como diversos recursos, lo que añade un nivel de complejidad a la simulación. Las tareas se describen de la siguiente manera:
- Tarea «cp»: Realiza múltiples operaciones de CPU y recursos.
- Tarea «cc»: Principalmente usa la CPU, con algunas interacciones con recursos.
Pregunta 1: Cálculo del Tiempo de Retorno
El tiempo de retorno del programa «cp» varía según la política de planificación empleada. Bajo FCFS, el programa espera su turno completo en la cola, lo que genera un tiempo de retorno mayor en comparación con SJF, donde su corta duración le permite ejecutarse antes que otras tareas más largas.
Pregunta 2: Problema Agudizado con Políticas No Expulsivas
El principal problema con las políticas no expulsivas (como SJF sin expulsión) es que las tareas más largas pueden monopolizar el procesador, dejando a las tareas más cortas en espera durante largos periodos. Esto se conoce como el problema de la «hambre» o starvation, donde algunas tareas pueden esperar indefinidamente si siguen llegando tareas con menores tiempos de CPU.
Ejercicio 3: Conjunto de Tareas «ES_bound.def»
Este ejercicio involucra un conjunto de tareas con tiempos de inicio escalonados y diversas prioridades, además del uso de múltiples recursos:
- Tarea uno: Prioridad 1
- Tarea dos: Prioridad 2
- Tarea tres: Prioridad 3
- Tarea cuatro: Prioridad 4
Pregunta 1: Instantes donde Todos los Procesos Están Siendo Atendidos
En sistemas con multiprogramación, el objetivo es maximizar el uso de los recursos. Sin embargo, existen instantes de tiempo en que algunos procesos estarán en cola de espera, especialmente bajo políticas no expulsivas como SJF. Es más difícil encontrar puntos donde todos los procesos estén simultáneamente atendidos en estas políticas en comparación con Round Robin o Prioridades Expulsivas.
Pregunta 2: Tiempo de Respuesta sin Multiprogramación
En un sistema sin multiprogramación, la Tarea cuatro esperaría hasta que las tres tareas anteriores se completen. Si todas las tareas deben ejecutarse secuencialmente, el tiempo de respuesta sería la suma de los tiempos de las tres primeras tareas, resultando en un tiempo de espera considerablemente alto.
Pregunta 3: Diferencia entre FCFS y SJF
La principal diferencia entre los resultados de FCFS y SJF radica en la priorización de las tareas. FCFS no discrimina en función de la duración de las tareas, mientras que SJF siempre selecciona la tarea más corta, lo que mejora significativamente el rendimiento en cuanto al tiempo de espera promedio.
Ejercicio 4: Conjunto de Tareas «tareas_disco.def»
Este ejercicio involucra tareas que utilizan recursos como el Disco SCSI y la Unidad Zip, además de la CPU.
Pregunta 1: Comparación de Políticas de CPU y Recursos
En este caso, el comportamiento de los recursos varía según la política de CPU empleada. FCFS tiende a ser menos eficiente en la gestión de recursos, ya que no prioriza las tareas que necesitan liberarlos rápidamente. Por otro lado, SJF y Prioridades permiten una gestión más eficiente de los recursos, ya que priorizan las tareas que requieren menos tiempo o aquellas con una prioridad mayor, respectivamente.
Pregunta 2: Cálculo del Tiempo Total de Espera en Cola para el Disco SCSI
El tiempo de espera en cola para el Disco SCSI depende en gran medida de la política de planificación de CPU seleccionada. Bajo FCFS, las tareas pueden esperar largos periodos antes de acceder al recurso, mientras que en SJF, las tareas más cortas acceden primero, reduciendo el tiempo de espera total. Al utilizar Prioridades, si la tarea con mayor prioridad necesita el Disco SCSI, accederá antes que otras, independientemente del tiempo que las demás llevan esperando.
Conclusión
El estudio de las políticas de planificación de procesos mediante la simulación de tareas nos permite comprender cómo cada algoritmo afecta el rendimiento del sistema en términos de tiempos de respuesta, tiempos de espera y eficiencia en la gestión de recursos. El uso de simuladores adecuados para probar estos algoritmos permite a los estudiantes y profesionales visualizar los efectos de estas políticas de manera práctica. La elección de la política correcta depende del tipo de sistema y de los objetivos de rendimiento que se quieran optimizar.