Está en la página 1de 8

PROCESOS (CONTINUACION)

Algoritmos de planificación I Algoritmos de planificación II

• Cíclico o Round Robin • Primero el trabajo más corto


– Asignación de procesador rotatoria – Uso en sistemas batch
– Equitativo (mejor hacerlo por uid y no por proceso) – Produce el menor tiempo de respuesta
– Uso en sistemas de tiempo compartido – Penaliza a los trabajos largos
– Se asigna un tiempo máximo de procesador (rodaja) – Dificultad en conocer a priori la duración del trabajo
Proceso Proceso • FIFO
en ejecución en ejecución
– Uso en sistemas batch
5 8 13 3 37 72 2 8 13 3 37 72 2 5 • Aleatorio o lotería
• Prioridades • Tiempo real: plazos de ejecución fijos
– Fijas (problema de inanición) – Sistemas de tiempo real duros
– Aumentarlas con el envejecimiento – Sistemas de tiempo real blandos

Planificación en Windows NT Señales

• Las señales son interrupciones al proceso


• Envío o generación
Reiniciado Iniciado Situar en la cola
– Proceso- Proceso (dentro del grupo) con el kill
de listos
– SO - Proceso
Finalizado
Fin de bloqueo
Listo Señal
Bloqueado
Proceso
Función
Pila del kernel
Ejecución
Espera tratamiento
finalizada
terminada en swap
Pila del Código
Seleccionado Expulsado
kernel en memoria
para
ejecución
Bloqueado Transición

Expulsado
Ejecución Reserva
Cambio de contexto. Comienzo de ejecución

1
Señales II Excepciones

• Hay muchos tipos de señales, según su origen • Evento que ocurre durante la ejecución de un programa y que
• SIGILL instrucción ilegal requiere la ejecución de un fragmento de código fuera del flujo
• SIGALRM vence el temporizador normal de ejecución.
• SIGKILL mata al proceso
• Manejo de excepcion
• El SO las transmite al proceso try {
– El proceso debe estar preparado para recibirla Bloque donde puede producirse una excepción
• Especificando un procedimiento de señal con sigaction }
• Enmascarando la señal con sigprogmask except {
– Si no está preparado → acción por defecto Bloque que se ejecutará si se produce una
• El proceso, en general, muere excepción
en el bloque anterior
• Hay algunas señales que se ignoran o tienen otro efecto
}
• El servicio pause para el proceso hasta que recibe una señal

Temporizadores Proceso servidor

• El SO mantiene un temporizador por proceso PROCESOS


– El proceso activa el temporizador con alarm CLIENTES

• El SO envía una señal SIGALRM al proceso cuando vence su


temporizador

PROCESO RECURSO
SERVIDOR

2
Funcionamiento de un proceso servidor Procesos cliente y servidor en máquinas distintas

a) b) c)
Servidor Servidor Servidor Servidor
Servidor Servidor Servidor Cliente ficheros impresión e_mail
Padre Padre Padre Hijo Puerto

SO SO SO SO
Puerto A Puerto A Puerto A Puerto B

RED
Cliente A Cliente A

Procesos demonios

• Es un proceso que ejecuta:


– En background (su padre no le espera)
– No asociado a un terminal o proceso login
– Que espera que ocurra un evento
– O que debe realizar una tarea de forma periódica
• Características
– Se arrancan al iniciar el sistema
– No mueren
– Están normalmente en espera de evento
– No hacen el trabajo, lanzan otros procesos o procesos ligeros

3
Para Recordar

• El algoritmo de planificación cíclico realiza un reparto equitativo del procesador, dejando que los procesos ejecuten durante una desde
tiempo denominadas rodajas.
• Un algoritmo de Planificación FIFO ejecuta procesos según una política FIFO. Un proceso pasa al final de la cola cuando hace una llamad
al sistema que lo bloquea. Si esto no ocurre, el proceso se ejecutara de forma indefinida hasta que acabe.
• En un Algoritmo con prioridades se selecciona para ejecutar el proceso en estado de listo con mayor prioridad. Este tipo de algoritmos
suele ser con expulsión, ya que un proceso abandona el procesador cuando pasa a listo un proceso de mayor prioridad.
• En una planificación basada en el algoritmo primero el trabajo mas corto se elige para ejecutar el proceso con tiempo de ejecución mas
corto, lo que exige conocer a priori el tiempo de ejecución de los procesos.
• Windows Nt realiza una Planificación cíclica con prioridades y con expulsión.
• Las señales y excepciones permiten a los sistemas operativos notificar a los procesos de la ocurrencia de determinados eventos que ocurren
durante la ejecución de los mismos.
• Un servidor es un proceso que esta pendiente de recibir órdenes de trabajo provenientes de otros procesos denominados clientes.
• Win 32 ofrece servicios para gestionar procesos, procesos ligeros y su planificación. También presenta servicios para trabajar con
excepciones y con temporizadores.

Preguntas Tipo:

1. ¿Puede producirse un cambio de contexto en un sistema con un planificador basado en el algoritmo primero el trabajo más corto
además de cuando se bloquea o se termina el proceso?

No, ya que si no tenemos en cuenta las posibilidades de bloqueo y terminación del proceso, sólo nos quedaría la posibilidad de la
expulsión, pero en esta política de planificación, esa operación queda descartada.

2. ¿Qué algoritmo de planificación será más conveniente para optimizar el rendimiento de la UCP en un sistema que sólo tiene
procesos en los cuales no hay entrada/salida?

El algoritmo mas adecuado para optimizar el rendimiento de la CPU es el FIFO, porque en este no tenemos que cambiar los procesos que
se ejecutan, el proceso se queda hasta que termina su ejecución, a no ser que los procesos se bloqueen de forma voluntaria.

4
3. ¿Cuál de las siguientes políticas de planificación es más adecuada para un sistema de tiempo compartido?
A.- Primero el trabajo más corto.
B.- Round-Robin.
C.- Prioridades.
D.- FIFO.

Un sistema de tiempo compartido permite ejecutar varios procesos de distintos usuarios en el computador de forma concurrente, con lo
que los usuarios tienen la sensación de que tienen todo el computador para cada uno de ellos. Para poder implementar estos sistemas de
forma eficiente es imprescindible tener un sistema multiproceso y un planificador que permita cambiar de un proceso a otro según los
criterios de la política exigida. Ahora bien, los criterios de la política de planificación influyen mucho sobre el comportamiento del
computador de cada a los usuarios, por lo que es importante decidir que política se debe usar en cada caso.

La política del Primero Trabajo Mas Corto consiste en seleccionar para ejecución el proceso listo con tiempo de ejecución mas corto,
por lo que exige conocer a priori el tiempo de ejecución de los procesos. Este algoritmo no plantea expulsión: el proceso sigue ejecutándose
mientras lo desee. Además tiene puede tener problemas de inanición de procesos. No es adecuado para tiempo compartido.

Un algoritmo de planificación FIFO ejecuta procesos según una política “primero en entrar primero en salir”: un proceso pasa al final de
la cola cuando hace una llamada al sistema que lo bloquea y si esto no ocurre el proceso se ejecutará de forma indefinida hasta que acabe.
No se plantea la expulsión del proceso: el proceso ejecuta hasta que realiza una llamada bloqueante al Sistema Operativo o hasta que
termina. Este algoritmo es inadecuado para tiempo compartido porque no hay ninguna seguridad en cuanto al tiempo de respuesta a los
usuarios, que puede ser muy lento.

La política de Round Robin realiza un reparto equitativo del procesador dejando que los procesos ejecuten durante las mismas unidades
de tiempo (rodaja). Con este mecanismo se encarga de repartir el tiempo de UCP entre los distintos procesos, asignando de forma rotatoria
intervalos de tiempo de la UCP (slot) a cada uno de ellos. Esto algoritmo es especialmente adecuado para los sistemas de tiempo
compartido por que se basa en el concepto de rodaja de tiempo (slot) y reparte su atención entre todos los procesos, lo que al final viene a
significar entre todos los usuarios. Los procesos están organizados en forma de cola circular y cuando han consumido su rodaja de tiempo
son expulsados y pasan a ocupar el último lugar en la cola, con lo que se ejecutan otro proceso. Con este mecanismo, los usuarios tienen la
sensación de avance global y continuado, lo que no está garantizado con los otros algoritmos descritos.

Con la política de Prioridades se selecciona para ejecutar el proceso en estado listo con mayor prioridad. Se suele asociar a mecanismos de
expulsión para que un proceso abandone el procesador cuando pasa a listo un proceso de mayor prioridad. Con esta política es necesario
utilizar otros algoritmos para decidir que proceso de cada cola de prioridad se elige: Round Robin en el sistema interactivo y FIFO en el
sistema batch. Además tiene puede tener problemas de inanición de procesos. No es adecuado para tiempo compartido si no se asocian
políticas de rodaja de tiempo a las colas de prioridad y no se evitan los posibles problemas de inanición. Sin embargo, en la mayoría de los
sistemas operativos convencionales se usan planificadores basados en colas de prioridad con políticas de rodaja de tiempo y mecanismos de

5
envejecimiento de procesos, lo que permite resolver los problemas citados. En este caso, si es adecuado para sistemas de tiempo
compartido.

4. ¿Cuál es el criterio de planificación más relevante en un sistema de tiempo compartido, el tiempo de respuesta o la optimización en
el uso del procesador?

Un sistema de planificación en un sistema de tiempo compartido, o multiusuario, debe ofrecer el mayor rendimiento a todos los usuarios,
para hacer “pensar” a cada uno de ellos que está trabajando directamente sobre la máquina, y no sobre un Terminal. Para ello el tiempo de
respuesta de los procesos que ejecuten cada uno de los usuarios, debe ser lo suficientemente rápido para evitar esperas por parte de los
usuarios. Por tanto, es más relevante un criterio de planificación orientado al tiempo de respuesta.

5. ¿Cuál de las siguientes transiciones entre los estados de un proceso no se puede producir en un sistema con un algoritmo de
planificación no expulsivo?
A.- Bloqueado a listo.
B.- Ejecutando a listo.
C.- Ejecutando a bloqueado.
D.- Listo a ejecutando.

En un proceso en un sistema con un algoritmo de planificación no expulsivo se puede producir todas las transiciones entre estados
exceptuando de ejecutando a listo ya que dicho sistema conserva el procesador mientras no solicite el sistema operativo un servicio que lo
bloquee, luego no podrá pararse la ejecución sin pasar antes por bloqueado, que será solicitado por el sistema operativo. Por ejemplo no
habría problema alguno de bloqueado a listo, de ejecutando a bloqueado(donde será el sistema operativo quien solicite ese bloqueo),o de
listo a ejecutando.

6. Sea un sistema que usa un algoritmo de planificación de procesos round-robin con una rodaja de tiempo de 100 ms. En este sistema
ejecutan dos procesos. El primero no realiza operaciones de E/S y el segundo solicita una operación de E/S cada 50 ms. ¿Cuál será
el porcentaje de uso de la UCP?

6
En un algoritmo de planificación de procesos round-robin los procesos están organizados en forma de cola circular. El primer proceso a
ejecutar es el primero de la cola y se estará ejecutando hasta que se bloquee, bien porque solicite un servicio al sistema operativo o bien
porque se acabe su tiempo máximo de ejecución (rodaja de tiempo). Si ocurre lo segundo el proceso pasará al final de la cola.

En el ejercicio, el proceso 1 comienza a ejecutar hasta que se acaba su rodaja de tiempo y se coloca al final de la cola. Seguidamente
el proceso 2 pasa a ejecutarse hasta que solicita una operación de E/S a los 50 ms. Al solicitar un servicio al sistema operativo este
proceso finaliza y se vuelve a colocar al final de la cola. Así se produce un bucle que durará hasta que acaben los procesos.
En el gráfico de a continuación observamos el comportamiento de los dos procesos:

Con esto podemos concluir que el porcentaje de uso de la UCP será el 100% ya que cuando no se está ejecutando uno de los
procesos se está ejecutando el otro.

7. En un sistema que usa un algoritmo de planificación de procesos round-robin, ¿cuántos procesos como máximo pueden cambiar de
estado cuando se produce una interrupción del disco que indica que se ha terminado una operación sobre el mismo?

El hecho de que el sistema use un algoritmo de planificación de procesos Round-Robin implica que va a haber un reparto equitativo del
tiempo del procesador para la ejecución de los procesos.
Los procesos listos para ser ejecutados se almacenan en una cola. El proceso cabecera de la cola es el único estado en ejecución. El
algoritmo de Round-Robin controla el tiempo que los procesos pueden estar en estado de ejecución. Si un proceso consume su rodaja de
tiempo, este es expulsado al último lugar de la cola y pasa a ejecutarse el proceso siguiente en la cola.
Si un proceso está bloqueado esperando una interrupción de disco, al recibirla, pasa de bloqueado a listo, incluyéndose en la lista de control
de procesos.
Así pues, si en un sistema que usa un algoritmo de planificación de procesos Round-Robin, se produce una interrupción de disco que
indica que se ha terminado una operación sobre el mismo, puede ocurrir que un proceso que estaba bloqueado, al recibir la señal causada
por la interrupción pase a listo, colocándose en la última posición de la cola de control de procesos (También podría pasar a la primera,
pero suponemos que se incluye en la última). Si además suponemos que en el instante en que ese proceso pasa de bloqueado a listo el que
está en la cabecera ha consumido su rodaja de tiempo y pasa a ejecutarse el que estaba a continuación, obtenemos que han cambiado de

7
estado 3 procesos, siendo este el número máximo de procesos que pueden cambiar de estado cuando se produce una interrupción de disco
que indica que se ha terminado una operación sobre el mismo bajo un algoritmo de planificación Round-Robin.

8. ¿Qué sucede cuando un proceso recibe una señal? ¿y cuando recibe una excepción?
Se puede decir que una señal es una interrupción al proceso. El proceso se comporta de la siguiente forma cuando recibe una señal:
1. El proceso detiene su ejecución que está ejecutando en la instrucción máquina.
2. Ejecuta una rutina de tratamiento de la señal (el código forma parte del proceso).
3. Cuando acaba la rutina de tratamiento, continua con la ejecución del proceso de la instrucción máquina.
Estas señales pueden proceder de un proceso o del sistema operativo.

Cuando ocurre una excepción, el sistema operativo toma el control e indica la excepción al proceso. Si el proceso había capturado la
excepción. La ejecución salta al código de la rutina de tratamiento de excepción. Si no existiere, aborta la ejecución del proceso.
Habitualmente, las excepciones sólo se pueden tratar al final del código fuente de una función y dicha función termina después de tratar
dicha excepción. Las excepciones se entienden mejor como tratamiento de un error o situación anómala.