Introducción a los Hilos II

Seguimos con un poco más de teoría acerca de los threads, tema base para entender como fucnionan los Sistemas operativos (y casi cualquier programa) hoy en día.

Planificación de Procesos

En los sistemas multiprogramados, la principal responsabilidad del sistema operativo es controlar la ejecución de los procesos, lo que incluye la determinación de las pautas de alternancia en la CPU y la asignación de recursos. En este apartado nos vamos a referir a la primera de las responsabilidades. La idea principal es que los procesos pueden estar básicamente en dos estados: ejecución y espera. Aquellos procesos que no estén ejecutándose deben esperar su turno de ejecución organizados en una cola. Los procesos se alternaran en el procesador mediante un turno rotatorio normalmente llamado round robin. También pueden existir distintas colas de procesos asociadas a distintas prioridades en la ejecución de los mismos.

Razones de eficiencia obligan a diferenciar entre las razones por las que un proceso llega al estado de espera, ya que no es lo mismo que un proceso este en espera porque se le acabo el turno que porque esté esperando a disponer de algún dispositivo de E/S o de que ocurra algún suceso. Así, el estado de espera se suele dividir en dos estados: listo para ejecutar para el primero caso y bloqueado para el segundo.

También conviene tener en cuenta las operaciones necesarias en la creación y destrucción de los procesos, por lo que se añaden otros dos estados más: nuevo y terminado, llegando a configurar un modelo de cinco estados. Cuando un proceso pasa al estado de nuevo se tienen que crear las estructuras necesarias para albergar al nuevo proceso, y esencialmente esa es la razón de la existencia de ese estado. Cuando los procesos terminan su ejecución, ya sea por la normal evolución de los mismos o por otras causas externas a ellos, pasan al estado terminado antes de liberar los recursos del proceso y eliminar toda información relativa al mismo. Este estado tiene por objetivo permitir recoger información del proceso terminado o permitir que otros procesos se aperciban que su finalización.

Este modelo de cinco estados no representa más que una simplificación de los modelos de estados implementados en los sistemas operativos reales, ya que razones de aprovechamiento de la memoria principal puede hacer que un proceso sea desalojado de la misma durante un cierto intervalo de tiempo. Esto influye en el modelo de estados produciendo el desdoblamiento de los estados de listo y de bloqueado. Además, la posibilidad de que un proceso sea terminado estando en cualquiera de los estados disponibles hace que el número de transiciones sea mayor que el representado en la Figura 3 (las líneas discontinuas indican transiciones posibles pero no necesarias).

En realidad, cada una de las estructuras que alberga a los procesos en los estados listo, ejecución y bloqueado lo que realmente almacenan son apuntadores a las tablas de procesos. Así, un cambio entre esos estados de un proceso implicara que se elimine y añada el apuntador correspondiente a la tabla de estados.

Como se ha visto, la descripción y la planificación de los procesos son dos aspectos íntimamente relacionados en los sistemas operativos y cualquier cambio en uno de ellos producirá modificaciones en el otro.


— Seguimos la Próxima.  —

Dejá un comentario