Está en la página 1de 8

Gestión de procesos |1

2. GESTION DE PROCESOS

2.1 Introducción a los procesos


SO se define como “un conjunto de extensiones software del hardware original, que culminan
en una máquina virtual que sirve como un entorno de programación de alto nivel que gestiona
el flujo de trabajo en una red de computadores”.
Un proceso es la unidad más pequeña de trabajo individualmente planificable por un SO.
La intención de activar un programa ejecutable (compilado y enlazado) es anunciada al SO
mediante una orden especializada o por una llamada al SO provista para este fin. El SO
responde creando un proceso.
Así pues, el proceso es un concepto dinámico que se refiere a un programa en ejecución, que
sufre frecuentes cambios de estado y atributos.

Multiprogramación: Ejecución concurrente de más de un trabajo o programa que hace


obtener una mejor utilización del sistema.
Sistemas de tiempo compartido: A cada programa se le asigna un mismo intervalo de tiempo
de ejecución en un sistema con multiprogramación interactiva.
Multitarea: Capacidad que tienen los sistemas operativos de ejecutar de forma simultánea
varios procesos.
Multiprocesamiento: Computador que dispone de varios procesadores.

2.2 Relación entre los procesos


El SO debe suministrar los servicios necesarios que permitan el procesamiento concurrente.
Estos servicios proporcionan los medios para la realización de:
a) Ejecución concurrente de los procesos
b) Sincronización entre procesos
c) Comunicación entre procesos

El SO debe disponer de algoritmos de planificación y gestión de procesos que se encarguen


de:
1) Decidir qué proceso se ejecutará o tomará el procesador
2) Llevar cuenta de los estados de los procesos, sus prioridades y toda la restante
información relevante acerca de ellos.

Dependiendo de la interacción entre los procesos, se pueden clasificar:


a) Procesos independientes: No se comunican o sincronizan entre ellos. En sistemas
monoprocesador, no existen, ya que todos los procesos compiten entre ellos por la
posesión del procesador.
b) Procesos cooperativos: Se comunican y sincronizan sus actividades para realizar
una labor común.
c) Procesos competitivos: Al compartirse los recursos de un computador, los procesos
necesariamente deben competir entre ellos.

2.3 Especificación de los procesos


Los procesos generados por el sistema operativo se denominan implícitos. Una vez terminada
su ejecución, su eliminación también la realiza el propio SO. Así mismo, el SO proporciona en
tiempo real los servicios que son necesarios para que el usuario pueda definir procesos de
forma explícita. Los programas acceden a estos servicios realizando llamadas al sistema.
Estas llamadas pueden aparecer incrustadas en el código de un programa de usuario o del
propio sistema.
Gestión de procesos |2

Al comienzo de la ejecución del programa principal de un usuario se inicia la ejecución de un


proceso. El proceso que crea otro nuevo se denomina proceso padre (parent process), y el
proceso creado se denomina proceso hijo (child process). Una vez creado el proceso hijo, la
ejecución de ambos transcurre de manera concurrente.

2.4 Estados de los procesos


Un proceso puede encontrarse en un instante determinado en uno de los siguientes estados:
a) Activo. Está ejecutándose en un instante dado.
b) Preparado. En este estado se encuentran todas las tareas que están listas para
ejecutarse pero que esperan a que un/el procesador quede libre.
c) Bloqueado o suspendido. Tareas que están a la espera de que se cumpla alguna
condición y, por lo tanto, no están preparadas para ejecutarse.
d) Nonato. El programa existe pero todavía no es conocido por el SO.
e) Muerto. El proceso ha terminado su ejecución o bien el SO ha detectado un error fatal
y lo ha transferido a dicho estado.

Se denomina estado global del sistema en un instante determinado, al conjunto de recursos y


procesos existentes con sus estados correspondientes. El SO cambia el estado global del
sistema modificando el estado de los procesos y la asignación de los recursos, en respuesta a
eventos externos o internos.

2.4.1 Transiciones entre los estados

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

2.5 El bloque de control de procesos


El sistema mantiene toda la información sobre un proceso en una estructura de datos
denominada bloque de control de procesos (BCP).

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.

2.5.1 Listas de procesos

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.

2.6 Procesos y hebras


Podemos ver el proceso como una entidad formada por una o más unidades de ejecución
denominadas hebras (threads) y un conjunto de recursos asociados. Si un proceso pasa al
estado activo una hebra toma posesión del procesador; ésta se puede interrumpir para que se
pase a ejecutar otra hebra, y así sucesivamente hasta que el proceso sale de dicho estado.

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.

La implementación en base a hebras en lugar de procesos aumenta la velocidad del sistema.


Parte de la planificación se realiza tomando como base a éstas. Un proceso está en ejecución
cuando se está ejecutando al menos una de sus hebras. En el estado preparado alguna hebra
debe de estarlo para poder pasar a ejecución. La suspensión del proceso, sin embargo, afecta
a todas las hebras, ya que el sistema operativo lo transfiere fuera de la memoria principal y la
gestión se realiza, por lo tanto, a nivel de proceso.
Gestión de procesos |4

2.7 El planificador de procesos


Planificador: software del SO encargado de asignar los recursos de un sistema entre los
procesos que los solicitan. Hay dos tipos fundamentales que coexisten en un SO.

a) Planificador a largo plazo (PLP): o planificador de trabajos. Determina qué trabajos se


admiten en el sistema para su procesamiento y son, por lo tanto, cargados en la memoria
disponible. Es el principal responsable de que se cumplan los criterios de gestión
establecidos para la utilización global del sistema; debe realizar una mezcla adecuada de
trabajos destinados al procesador y trabajos destinados al sistema de E/S. Lo más usual es
definir una función de prioridad y asignarle a cada programa un valor para la misma que se
actualiza en instantes determinados por el PLP. Las tareas con mayor prioridad se llevan al
estado preparado. Como norma general se puede afirmar que el PLP sólo existe en
sistemas que admiten procesamiento por lotes.
b) Planificador a corto plazo (PCP): Selecciona al proceso que pasará al estado activo de
entre todos los procesos residentes en memoria que están en el estado preparado. Este
algoritmo se ejecuta muchas veces entre dos invocaciones al PLP. Su elevada frecuencia
de uso hace que el algoritmo suela ser sencillo para evitar gastar mucho tiempo del
procesador en su ejecución. Este algoritmo se llama, siempre que un evento origina un
cambio en el estado general del sistema, para determinar si dicho evento implica un
cambio en el proceso que debe pasar al estado activo. Entre los eventos que suelen
producir una invocación al PCP están:
a) Las señales del reloj del sistema
b) Las interrupciones
c) La finalización de las operaciones de E/S
d) Las llamadas al SO
e) El envío y la recepción de señales
f) La activación de programas interactivos
Algunos sistemas introducen un planificador de nivel intermedio denominado planificador a
medio plazo (PMP). Se basa en el hecho de que a veces es conveniente llevar a la memoria
secundaria un proceso que ha sido suspendido en su ejecución por algún evento.
Gestión de procesos |5

2.7.1 Algoritmos de planificació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.

2.7.2 Planificación por expropiación

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.

2.7.3 Planificación por prioridades

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).

2.7.4 Planificación FCFS: primero en llegar, primero en ser servido

“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.

2.7.5 Planificación SJF: primera tarea más corta

“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

2.7.6 Planificación SRT: tiempo que queda más corto

“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.

2.7.7 Planificación RR: prioridad circular

“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.

2.7.8 Planificación basada en el reloj de tiempo real

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.

2.7.9 Planificación MLQ: colas multinivel

“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.

2.7.10 Planificación MLFQ: colas multinivel con realimentación

“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

También podría gustarte