Documentos de Académico
Documentos de Profesional
Documentos de Cultura
2. GESTION DE PROCESOS
El SO posee un módulo, el planificador, que se encarga de activar los procesos que están en
estado preparado. Toda interrupción hace que la tarea que está activa en ese instante deje de
ejecutarse a favor del SO que decidirá de entre los procesos preparados, cuál de ellos tiene
que ponerse en el estado activo.
Gestión de procesos |3
En el BCP se guarda la información que necesita el sistema para controlar al proceso y dar
cuenta de sus recursos y toda la que influye en la ejecución de un programa:
a) El identificador único del proceso (pid)
b) El estado de proceso
c) La prioridad
d) El estado hardware
e) La información para gestionar la memoria
f) La información de estado del sistema E/S
g) La información de contabilidad y planificación
Cuando el sistema operativo cambia el procesador entre tareas, utiliza la zona del BCP en la
que deja toda la información necesaria para que se pueda proseguir la ejecución de la tarea
cuando ésta retome el procesador.
En la información contable se mantiene la información necesaria para permitir que los
algoritmos de planificación del SO puedan conseguir organizar los procesos de modo que se
obtenga el mejor comportamiento posible del sistema o lo que es equivalente, el rendimiento
óptimo en el uso de procesador. Informaciones relevantes son: hora de inicio del proceso, el
tiempo real del uso del procesador, el tiempo de espera para conseguir un determinado recurso
y el tiempo medio transcurrido desde que el proceso está preparado hasta que consigue el
procesador.
El SO mantiene listas de BCP para cada uno de los estados del sistema. Cada proceso
pertenece a una única lista.
El planificador del SO se encarga de gestionar el paso de los procesos de una lista a otra,
manteniendo las listas ordenadas y actualizadas de la forma más conveniente para las rutinas
que operan sobre ellas.
El proceso puede estar en una lista única de estados bloqueados o en una lista de estados
suspendidos ligada en exclusiva a un dispositivo o evento.
Los recursos no están asociados a las hebras, si no al proceso; éste es el que puede acceder
de forma protegida a los recursos del sistema y se encarga de su gestión entre las hebras.
La creación de una hebra dentro de un proceso requiere menos tiempo que la creación de un
proceso nuevo. También mejora el tiempo de conmutación entre hebras con respecto al de los
procesos. Además, las hebras comparten la memoria y los ficheros asignados al proceso, lo
que facilita su comunicación y sincronización.
En los sistemas actuales es posible encontrar una gran variedad de algoritmos. Los algoritmos
tienen distintas propiedades según los criterios en los que se basen para su construcción. Se
debe considerar:
a) Eficacia. Porcentaje del tiempo medio de utilización.
b) Rendimiento. Número de procesos completados por unidad de tiempo.
c) Tiempo de retorno o regreso. Intervalo de tiempo que transcurre desde que un
proceso se crea o presenta hasta que se completa por el sistema.
d) Tiempo de espera. Tiempo que el proceso espera hasta que se le concede el
procesador.
e) Tiempo de respuesta a un evento. Intervalo de tiempo que transcurre desde que se
señala un evento hasta que se ejecuta la primera instrucción de la rutina de servicio de
dicho evento.
El proceso que se está ejecutando puede ser interrumpido y pasado al estado de preparado
por parte del SO.
En los algoritmos con estrategia de no expropiación el proceso que está activo permanece
con el procesador hasta que él mismo devuelve el control al SO.
Cada proceso tiene asignada una prioridad, el que tenga mayor prioridad en el estado
preparado es el que toma el procesador. La asignación puede ser:
a) Estática. No cambia durante el tiempo en que el proceso existe.
b) Dinámica. Cuando la prioridad puede ser modificada por el propio usuario o por el
sistema.
La modificación se suele realizar en función de ciertos parámetros como la cantidad de
memoria que utiliza, el número de acciones de E/S que lleva realizado, el tiempo medio de
utilización del procesador hasta ese momento, el número de ficheros abiertos, etc. Los
algoritmos con expropiación y con prioridades se dice que están guiados por eventos (event-
driven).
Problema: que los procesos con menor prioridad queden relegados y sin posibilidades de
utilizar el procesador. Para evitar esto, la solución que se suele adoptar es la de ir aumentando
la prioridad de aquellos procesos que llevan un tiempo de espera muy elevado (estrategia de
prioridad por envejecimiento, aging).
“First Come, First Served”. Modo más sencillo de planificación. No expropiación. Rara vez se
utiliza en la actualidad, pero se emplea dentro de otros esquemas.
“Shortest Job First”. No expropiativa. A cada trabajo o proceso se le asocia una estima del
tiempo que le resta para finalizar su ejecución y la selección se realiza en base a dicho tiempo.
Si dos trabajos tienen el mismo tiempo se seleccionan según la estrategia FCFS.
En entornos de producción donde los trabajos se ejecutan regularmente es posible tener una
estima aceptable, pero en entornos de desarrollo rara vez se conoce el tiempo que tardará en
ejecutarse un programa.
Gestión de procesos |6
“Shortest Remaining Time”. Versión expropiativa del método SJF. Se elige al proceso al que le
quede menos tiempo de ejecución, incluyendo a los nuevos que lleguen. Tiene mayor
frecuencia de invocación del planificador, a la vez que una carga superior en las labores que
tiene que realizar.
“Round Robin” (RR). A todos los procesos en el estado preparado se les asigna un tiempo de
ejecución denominado cuanto. El planificador va asignando el procesador a cada tarea de
forma secuencial por el cuanto de tiempo definido. Si un proceso necesita un tiempo de
ejecución mayor que su cuanto asociado, una vez transcurrido éste y si existen más procesos
en espera de ejecución, se coloca al final de la lista del estado preparado y el procesador pasa
al proceso que queda en la cabeza de la lista.
Resulta muy adecuado en sistemas de tiempo compartido. Necesita un temporizador que
controle el cuanto asignado a los procesos y genere una interrupción siempre que se produzca
su finalización.
El problema más importante que se plantea en un algoritmo del tipo RR, es el de fijar el valor
del cuanto ya que su elección supone llegar a un compromiso entre la eficacia del procesador y
el tiempo de respuesta.
La mayoría de los sistemas disponen de un reloj de tiempo real (RTR) que se encarga de
generar una señal de forma periódica utilizada para producir una interrupción a un intervalo de
tiempo fijo. La atención a estas interrupciones se debe diseñar para que se realice rápidamente
ya que si se tarda mucho tiempo en atenderla, o si se opera con la interrupción inhibida durante
más de un ciclo de reloj, ésta se perderá.
En muchos casos puede ser conveniente ralentizar al reloj para, a pesar de perder precisión,
lograr una funcionalidad más rica. A la velocidad real de ejecución efectiva del código de
tratamiento se la conoce como velocidad de tic.
El SO utiliza el RTR para:
a) Limitar el intervalo de tiempo en el que un proceso puede estar en ejecución.
b) Proporcionar servicios a los usuarios, como iniciar tareas cíclicas y la función retardo.
La rutina de tratamiento de la interrupción del RTR se encarga de mirar la lista de los procesos
retardados y de pasar al estado preparado a aquellos para los que haya transcurrido el tiempo
de retardo.
“Multi Level Queue”. Se utilizan algoritmos de planificación en los que se clasifican las tareas
en diferentes grupos a los que se aplican distintas estrategias de planificación. Se crean colas
de tareas separadas que se gestionan por criterios diferentes. Cada tarea se asigna a una sola
cola de acuerdo con alguna propiedad de la tarea. La cola de procesos del SO debe tener
prioridad absoluta sobre la de los programas interactivos y por lotes y sólo se ejecutará una
tarea de lotes si las otras dos colas están vacías.
“Multi Level Feedback Queue”. En MLQ a las tareas se les asigna una cola de forma fija. En las
colas multinivel con realimentación si se permite la movilidad entre las colas. Para ello, las
colas se organizan según sus características de uso del procesador. Las tareas que emplean
poco el procesador se mantienen en las colas de mayor prioridad y las que lo utilizan mucho se
sitúan en las colas de menor prioridad.
Gestión de procesos |7
Una tarea que entra en el estado preparado se coloca en el nivel 1. Si no finaliza su ejecución
en 10 milisegundos se pasa a la cola del nivel 2. Si la cola del nivel 1 está vacía se pasa a
ejecutar la tarea que se encuentra en cabeza de la cola del nivel 2. Si ésta no finaliza su
ejecución en los 20 milisegundos que tiene asignada resulta expropiada y pasa a la cola de
nivel 3.
Existen muchos algoritmos posibles de planificación por MLFQ que pueden definirse de forma
más general por los parámetros siguientes:
a) el número de colas
b) el algoritmo de planificación de cada cola
c) los métodos que determinan el movimiento de las tareas entre colas
d) el método que indica la cola en la que entra una tarea cuando necesita un servicio
Gestión de procesos |8