ALGORITMO DE PLANIFICACIÓN DE PROCESOS Cuando más de un proceso es ejecutable desde el punto de vista lógico, el sistema operativo debe decidir cuál de ellos debe ejecutarse e3n primer término. La planificación es la porción del sistema operativo que decide y el algoritmo de planificación es el utilizado. Los principales criterios respecto de un algoritmo de planificación son: la equidad, la eficacia, el tiempo de respuesta, el tiempo de regreso, regreso, y el rendimiento.
DESCRIPCIÓN Equidad Eficacia Tiempo de respuesta Tiempo de regreso Rendimiento
CRITERIO Garantiza que cada proceso obtenido su proporción justa de la CPU Mantener ocupada la CPU por cierto tiempo Minimizar el tiempo de respuesta para los usuarios interactivos Minimizar el tiempo que deben esperar los usuarios por lotes (Bath) Para obtener sus resultados Maximizar el número de tareas por hora
CRITERIOS ORIENTADOS AL USUARIO: y
Tiempo de retorno Es el intervalo de tiempo desde que el proceso se ofrece hasta el momento que termina, es decir, la suma de los periodos de tiempo transcurridos esperando entrar en la memoria, esperando en la cola de procesos listos, ejecutando en el procesador y efectuando alguna solicitud de E/S. en resumen, es el tiempo que tarda en ejecutarse el proceso.
y
Tiempo de respuesta Es el tiempo transcurrido desde la presentación de una solicitud hasta que se produce la primera respuesta. Este criterio es la cantidad de tiempo para comenzar a responder, pero no el tiempo necesario para mostrar la respuesta. Este tiempo es independiente del dispositivo de salida, mientras que el tiempo de retorno depende del dispositivo de salida.
CRITERIOS ORIENTADOS AL SISTEMA: y
Tiempo de espera Es la cantidad de tiempo que un proceso espera en la cola de procesos listos.
y
Tiempo de retorno normalizado Es la razón el entre el tiempo de retorno y el tiempo de servicio. Este valor indica el retardo relativo que ha experimentado un proceso. Este valor es más interesante que el tiempo de retardo, ya que es valor indispensable a la duración del proceso.
y
Utilización del procesador Es el porcentaje de tiempo que el procesador está ocupado.
y
Productividad Es una medida del número de procesos que se completan por unidad de tiempo.
FISTR-COME, FIRST SERVED (FCFS) Este algoritmo también llamado FCFS (First-Come, First-served), es el algoritmo más sencillo de implementar. Con este esquema, el proceso que primero solicita el procesador es el primero al que se le asigna. Esta política se implementa muy fácilmente con una cola FIFO. Cuando un proceso entra en la cola de procesos listos su PCB se enlaza con el proceso que esta al final de la cola. Cuando el procesador esta libre se le asigna el proceso, se lo coloca al inicio de la cola de procesos listos, seleccionando el proceso más antiguo de la cola. Este algoritmo de planificación es no apreciativa, una vez que se ha asignado el procesador a un proceso, este lo conserva hasta que se desee liberarlo, ya sea por terminación o bien porque solicita un recurso de E/S. Este algoritmo no es especialmente problemático en los sistemas de tiempo compartido, donde es importante que cada usuario reciba una porción del procesador a intervalos regulares. El tiempo promedio de espera es bastante largo en este algoritmo. FCFS tiene un mejor rendimiento en cómputo global con procesos largos que con proseos cortos, ya que si por ejemplo de retorno normalizado para dicho proceso corto será considerablemente mayor que el del proceso largo. Otro problema proble ma que que representa este algoritmo, es que tiene a favorecer favor ecer a los proceso con carga de procesador frente a los procesos con carga de E/S, ya que cuando un procesos con carga de procesador se están ejecutando, todo los procesos con carga de E/S debe esperar esperar (se han finalizado la correspondiente ráfaga de E/S) la siguiente ráfaga de procesador, mientras que los dispositivos de E/S estarán ociosos. Así pues, FCFS puede dar como un resultado un uso eficiente tanto del procesador como de los dispositivos de E/S.
Ejemplo: y
En un cierto instante se tiene los siguientes, procesos, cuyo orden de llegada es el indicado:
Trabajo Ráfaga CPU A
1
B
100
C
1
D
100
INDICAR LOS VALORES DE: y
Tiempo de espera
y
Tiempo
de retorno de cada trabajo
y
Tiempo
de medio de espera y retorno
y
Cuando la planificación se realiza mediante al algoritmo de FCFS.
Solución 1: Algoritmo FCFS
Proceso
Tiempo de llegada
Tiempo de servicio
Tiempo de Comienzo
Tiempo de Turnaroad Finalización
Tiempo de Espera
A B C D
0 1 2 3
1 100 1 100
0 1 101 102
1 101 102 202
0 0 101-2=99 102-3=99 49.50
PORMEDIO
1 100 100 199 100
Solución 2: Algoritmo FCFS con procesos ordenados por tiempo de servicio
Proceso Tiempo de llegada
Tiempo de servicio
Tiempo Tiempo de Turnaroad de Finalización Comienzo
Tiempo Espera
B D A C
100 100 1 1
0 100 200 201
0 100-1=99 200-2=198 201-3=198 123.50
0 1 2 3
PORMEDIO
100 200 201 202
100 199 201-2=199 20-3=198 174.25
de
El tiempo promedio de espera bajo una política FCFS generalmente no es mínimo y puede variar sustancialmente si hay mucha diferencia entre las duraciones de ciclo de los procesos. En el segundo ejemplo, se presenta un efecto convoy donde los procesos esperan a que un proceso grande cortó. Un proceso corto saltará a la cabeza de la cola. La ejecución de un proceso consiste en ciclos de ejecución de la CPU y ciclos de espera por E/S. El algoritmo selecciona aquel proceso cuyo próximo ciclo de ejecución de CPU sea menor. El problema esta en conocer dichos valores, pero podemos predecirlos usando la información de los ciclos anteriores ejecutadnos. Se puede comprobar que el algoritmo SJF es óptimo, ya que ofrece el mínimo tiempo de promedio de espera para un conjunto de procesos dado. La comprobación muestra muestra que poniendo un proceso breve antes de un largo reduce el tiempo de espera del proceso corto más de lo que aumenta el tiempo de espera del proceso largo, por lo tanto se reduce el tiempo de espera promedio.
Ejemplo:
y
En un cierto instante se tiene los siguientes procesos, cuyo orden de llegada es el indicado:
Trabajo Ráfaga CPU A
8
B
4
C
9
D
5
INDICAR LOS VALORES DE: y
Tiempo de espera
y
Tiempo
de retorno de cada trabajo
y
Tiempo
de medio de espera y retorno
y
Cuando la planificación se realiza mediante al algoritmo de FCFS y SJF. Solución 1: Algoritmo SJF
Proceso
Tiempo de llegada
Tiempo de servicio
Tiempo de Comienzo
Tiempo de Turnaroad Finalización
Tiempo de Espera
A B C D
0 1 2 3
8 4 9 5
0 8 17 12
8 12 26 17
0 8-1=7 17-2=15 12-3=9 7.75
PORMEDIO
8 12-1=11 26-2=24 17-3=14 14.25
Solución 2: Algoritmo FCFS
Proceso
Tiempo de llegada
Tiempo de servicio
Tiempo de Comienzo
Tiempo de Turnaroad Finalización
Tiempo de Espera
A B C D
0 1 2 3
8 4 9 5
0 8 12 21
8 12 21 26
0 8-1=7 12-2=10 21-3=18 8.75
PORMEDIO
8 12-1=11 21-2=19 26-3=23 15.25
El problema real de este algoritmo es conocer por lo menos estimular el tiempo de ejecución para cada proceso. Para procesos de lotes, el sistema puede solicitar al usuario que estime el valor de la ejecución de dicho proceso y de esta forma podérselo pasar al sistema operativo, sin embargo en la planificación a corto plazo esta política no se puede emplear ya que no se sabe a prioridad la duración de un proceso, ano ser que podamos predecir la duración de cada proceso mediante técnicas estadísticas.
SRT (SHORTEST REMAINING TIME) "PRIMERO EL MENOR TIEMPO RESTANTE" La política de menor tiempo restante, también llamada SR T (Shortest Remaining Time) es una versión apropiativa del SJF, en la que el planificador siempre elige al proceso que le queda menos tiempo esperado de ejecución. La idea es la siguiente, cuando un proceso es añadido a la cola de
listos, puede quedarle un tiempo esperado de ejecución menor que al proceso que está ejecutándose en ese momento en el procesador, por consiguiente el planificador puede apropiarse del procesador para desalojar al proceso en ejecución y asignárselo al nuevo proceso, que tendrá un menor tiempo restante de ejecución. Al igual que el algoritmo SJF, el planificador debe disponer de una estimación de tiempo para cada proceso con el fin de poder llevar a cabo la función de seleccionar el siguiente proceso, existiendo igualmente que en el SJF peligro de inanición para los procesos largos. Ambos algoritmos, el SJF y el SRT, no presentan un sesgo favorable a los procesos largos como ocurre con el FCFS y tampoco se generan interrupciones adicionales como en el Round-Robín, por el contrario se deben llevar una cuenta de los tiempos de servicio transcurridos con el fin de que la función estadística estime de la forma más veraz los tiempos de ejecución para cada proceso. El algoritmo SR T produce unos tiempos de retorno mejores que el SJF, ya que los trabajos cortos reciben atención inmediata y preferente a los procesos largos.
PRIORIDAD En muchos sistemas, los procesos tienen prioridades asignadas, y el planificador escogerá aquel proceso con mayor prioridad. Cuando un proceso debe ser seleccionado, el planificador por prioridades seleccionará aquel proceso que tenga mayor prioridad. Si hay más de un proceso entonces se deberá seguir alguna política de selección. Un problema que presenta un esquema de planificación por prioridades puro es que los procesos con la prioridad más baja pueden sufrir de inanición o bloqueo indefinido. Un proceso que está listo para correr pero espera porque siempre hay procesos con prioridad más alta. Para evitar este problema, se puede ir incrementando gradualmente gradual mente la prioridad de los procesos procesos (envejecimiento). SJF es un caso especial de planificación por prioridad, donde la prioridad es el inverso del valor estimado del próximo ciclo de CPU (a menor ciclo, mayor prioridad).
y
Ejemplo: Sea la siguiente descripción de carga:
Trabajo
Ráfaga
Prioridad
A
8
2
B
4
1
C
9
4
D
5
2
INDICAR LOS VALORES DE: y
Tiempo de espera
y
Tiempo
de retorno de cada trabajo
y
Tiempo
de medio de espera y retorno
y
Cuando la planificación se realiza mediante el algoritmo de prioridades y del tipo no apropiativa
Solución: Algoritmo por prioridades
Proceso
Tiempo prioridad Tiempo Tiempo Tiempo de Turnaroad Tiempo de de de de Finalización Espera llegada servicio Comienzo
A B C D
0 1 2 3
2 1 4 2
8 4 9 5
0 22 8 17
8 26 17 22
PORMEDIO
8 26-1=25 17-2=15 22-3=19 16.75
0 22-1=21 8-2=6 17-3=16 10.25
Este algoritmo puede ser apropiado y no apropiado. En el caso de apropiado, cuando un proceso llaga a la cola de procesos listos, su prioridad es compartida con la prioridad del proceso que está corriendo. Si la prioridad del nuevo proceso es mayor, entonces se atiende al nuevo proceso.
ALGORITMO SRTF
En el algoritmo SR T, Shortest Remaining Time o Primero el menor tiempo restante, es la versión expulsiva del algoritmo SJF conocido como trabajo mas corto primero que maneja los trabajos con base en duración de su ciclo del CPU.
Se diferencia del SJF en que si un nuevo proceso pasa a listo se activa el dispatcher para ver si es más corto que lo que queda por ejecutar del proceso en ejecución. Si es así el procesoen ejecución pasa a listo y su tiempo de estimación se decreta con el tiempo que ha estado ejecutándose. Este algoritmo tiene mayor ventaja del SJF ya que es óptimo para las ráfagas que llegan indistintamente ya que prefiere los procesos cortos y tiene la opción de suspende el que se está ejecutando para dar paso al nuevo.
USO DEL QUANTUM En este caso se usa Quantum, que es un tiempo determinado en el que pasaun proceso por el CPU que no puede ser modificado por el usuario.
Ejemplo:
y
En un cierto instante se tiene los siguientes procesos:
Proceso
Tiempo de llegada
Tiempo de servicio
P1
0
7
P2
2
4
P3
4
1
P4
5
4
INDICAR LOS VALORES DE: y
Tiempo de espera
y
Tiempo
de retorno de cada trabajo
y
Tiempo
de medio de espera y retorno
y
Cuando la planificación se realiza mediante el algoritmo S TRF con un quantum de 2. Solución: Algoritmo STFR (Quantum =2);
Proceso Tiempo llegada
prior idad
Tiempo de servicio
Tiempo de Com.
Tiempo Fin.
Turnaro ad
Tiempo Espera
P1
0
7
7
5 3 1 0 4c
16-7=9
1 2 3
1 4 2
4 1 4
2 0 0 2 0
2,13, 15,16 4,7 5 9,11
16-0=16
P2 P3 P4
0,11,13, 15 2,5 4 7,9
7-2=5 5-4=1 11-5=6 7
5-4=1 1-1=0 6-4=2 3
PORMEDIO
2c 2c 2c
NOTA: Cuando termina una corrida se vuelve a buscar desde arriba los más coros excepto los que ya terminaron.
ROUND RobinTurno rotatorio Una manera rápida de reducir la penalización que los procesos cortos sufren con FCFS es usar exportación basada en un reloj. Una interacción, el proceso en ejecución es colocado en la cola de procesos listos y el próximo trabajo es seleccionado basados ene l esquema FCFS. A cada proceso se le da un trozo de tiempo. La principal decisión de diseño que surge con Round Robin es tamaño del trozo o Quantum., si es quantum es muy corto, entonces los procesos se moverán a través del sistema rápidamente. Por otro lado, hay un cierto overead o desperdicio de tiempo envuelto con manejo de la interrupción del reloj y las funciones de planificación y despacho. Por lo tanto quanta muy pequeños deberían evitarse. Una alternativa es usar un quantum de tiempo que sea un poco mas tarde que el tiempo promedio requerido para una interacción típica. Round Robin es particularmente efectivo para sistemas generales de tiempo compartido. Se implementa con una cola FIFO de procesos. Nuevos procesos son agregados al final de la cola, y toma el proceso que se encuentra en la cabeza de la cola. Actualiza el timer para que interrumpa después del quantum de tiempo. Si tenemos n procesos en la cola col a de listos y el quantum es de q unidades de tiempo, entonces cada proceso recibe 1/n tiemposde procesador en trozos de q unidades de tiempo como máximo, y además ningún proceso debe esperar más de (n-1) x q unidades de tiempo antes de recibir su siguiente quantum. El desempeño de este algoritmo dependerá del tamaño del quantum. Si el quantum es infinito entonces degenera en FCFS. Si el
de
quantum es muy pequeño entonces Round Robin es llamado compartición de CPU y en teoría pareciera que cada proceso tiene su propio procesador corriendo a 1/n la velocidad del procesador real. Bajo este esquema es importante considerar el efecto del cambio de contexto.
Ejemplo: En un cierto instante se tiene los siguientes procesos:
Proceso
Tiempo de llegada
Tiempo de servicio
A
0
8
B
1
4
C
2
9
D
3
5
INDICAR LOS VALORES DE: y
Tiempo de espera
y
Tiempo
de retorno de cada trabajo
y
Tiempo
de medio de espera y retorno
y
Cuando la planificación se realiza mediante el algoritmo Round Robin con un quantum de 3. Solución: Algoritmo Round Robin
Proceso
Tiempo de llegada
Tiempo de servicio
Tiempo de Comienzo
Tiempo de Turnaroad Finalización
Tiempo de Espera
A B C D
0 1 2 3
8 4 9 5
0,12,21, 3,15 6,16,23 9,19
3,15,23 6,16 9,19,26 12,21
15 11 15 13 13
PORMEDIO
23 16-1=15 26-2=24 21-3=18 20