1 Administración de Sistemas y Redes de Computadoras
Planificación de Procesos
Si establecemos un ambiente de procesamiento multitarea, debemos tener en cuenta que existen mas de un proceso listo para ser ejecutado. Si el sistema operativo puede bindar
atención a un proceso a la vez, entonces se plantea las siguientes interrogantes:
1. Qué proceso es el siguiente a ejecutar? 2. Qué procesos han ido terminando? 3. Qué eventos ocurrieron que hacen que cambien de estado? 4. Solicitudes (y respuestas) de E/S, 5. Swap de/a disco 6. Cual es el siguiente proceso al que le toca atención del CPU?
7. Y por cuánto tiempo?
Vemos que hay tres tipos muy distintos de planificación.
1. Planificación a largo plazo 2. Planificación a mediano plazo
3. Planificación a corto plazo
Planificación a largo plazo
En la planificación a largo plazo , debe considerarse lo siguientes:
Cual es el siguiente proceso a ser iniciado
Planificación orientado a la operación en lotes
Principalmente a los sistemas con spool También presente en la multiprogramación temprana
Decide en base a los requisitos pre-declarados de los procesos, y a los recursos disponibles al ejecutarse
Periodicidad: de segundos a horas
Hoy en día no se emplean. Generalmente involucra al usuario, tal que este indica expresamente qué procesos iniciar. Puede observarse en programas, como el planificador de
tareas o procesos de Windows.
2 Administración de Sistemas y Redes de Computadoras
Planificación a mediano plazo
En este tipo de planificación, ya se puede observar que la intervención del usuario es escasa.
Algunas consideraciones:
1. Cuáles procesos hay que bloquear 2. Por escasez/saturación de algún recurso (p.ej.almacenamiento primario) 3. Por haber iniciado una operación que no puede satisfacerse aún 4. Cuáles procesos hay que desbloquear 5. A la espera de algún dispositivo 6. Fueron enviados a swap, pero ya requieren o merecen ejecutarse
7. Frecuentemente llamado agendador (scheduler)
Planificación a corto plazo
Consideramos que existen varios procesos listos para ser ejecutados, entonces se debe
determinar cual es el criterio para:
Cómo compartir momento a momento al CPU entre todos los procesos
Se efectúa decenas de veces por segundo
Debe ser simple, eficiente y rápido Se encarga de planificar los procesos listos para ejecución
Estados listo y ejecutando
Frecuentemente llamado despachador (dispatcher)
3 Administración de Sistemas y Redes de Computadoras
Diagrama de transición entre los estados de un proceso
Largo plazo:
Admitir
Mediano plazo:
Ocurrió evento,
Esperar evento
Corto plazo:
Activar ejecución,
Tiempo terminado
4 Administración de Sistemas y Redes de Computadoras
Acerca de los procesos
Cuando un proceso es suspendido (o bloqueado) y posteriormente reactivado, lo trataremos
como un proceso nuevo.
Diversos procesos tienen distintas características
Alternan entre ráfagas (bursts) Limitado por CPU Limitado por E/S
Cuando termina una ráfaga limitada por CPU y se suspende esperando E/S, deja de
estar listo y sale de la vista del despachador
5 Administración de Sistemas y Redes de Computadoras
Esto nos lleva a separar los procesos en:.
Largos Han estado listos o en ejecución por mucho tiempo, esto es, están en una ráfaga
limitada por CPU
Cortos En este momento están en una ráfaga limitada por E/S, requieren atención meramente
ocasional del procesador. Tienden a estar bloqueados, esperando a eventos.
Métricas
Tick: Un tiempo mínimo dado durante el cual se puede realizar trabajo útil.
Medida caprichosa y arbitraria. En Windows, un tick dura entre 10 y 15 ms.
En Linux (2.6.8 en adelante), dura 1 ms.
Quantum: Tiempo mínimo, expresado en ticks, que se permitirá a un proceso el uso del
procesador.
En Windows, 2 a 12 ticks (esto es, 20 a 180ms).
En Linux, 10 a 200 ticks (10 a 200ms)
Para un proceso p que requiere ejecutarse por tiempo t,
Tiempo de respuesta (T) Tiempo total que toma el trabajo. Incluye el tiempo que pasó inactivo
(pero listo).
Tiempo en espera (E) De T, cuánto tiempo está esperando ejecutar. (Tiempo perdido)
E = T - t; Idealmente, para p, la Espera de t tiende a 0
Proporción de penalización (P) Fracción del tiempo de respuesta durante la cual p estuvo en
espera.
P = T / t
Proporción de respuesta (R) Fracción del tiempo de respuesta durante la cual p pudo
ejecutarse.
R = t/ T ; R = 1/p
Tiempo núcleo o kernel: Tiempo que pasa el sistema en espacio de núcleo
Tiempo desocupado (idle) Tiempo en que la cola de procesos listos está vacía y no puede
realizarse ningún trabajo.
El sistema operativo aprovecha este tiempo para realizar tareas de mantenimiento
Utilización del CPU: Porcentaje del tiempo en que el CPU está realizando trabajo útil.
Conceptualmente, entre 0 y 100%. En realidad, en un rango entre 40 y el 90 %.
6 Administración de Sistemas y Redes de Computadoras
Frecuencias
Respecto al patrón de llegadas y salidas de procesos a la cola de procesos listos:
Nunca llegan procesos nuevos; el sistema estará desocupado Los procesos salen al mismo ritmo al que entran Los procesos llegan más rápido de lo que puede ser atendidos. La cola de procesos listos tiende a crecer. R disminuye para todos.
Cuando se ejecuta el despachador
Para los puntos 1 y 4 solo en modo multitarea cooperativo
7 Administración de Sistemas y Redes de Computadoras
Algoritmos de Planificación
Se dispone de una serie de algoritmos que permite establecer los criterios para administrar las
prioridades de ejecución de los procesos.
Cada proceso tiene una prioridad sobre otro para su ejecución. Estas prioridades están
determinadas por factores internos, externos, estáticos y dinámicos.
Algunos ejemplos son:
Criterio externo: la prioridad establecida por el nivel del usuario, caso de un usuario administrador y un invitado. Los procesos que desencadena un administrador tiene más
prioridad
Criterio interno: una llamada a un proceso de entrada /salida I/O, un proceso de sistema,
interactivo o por lotes, no tiene intervención de usuario
Criterio dinámico: es la que administrar de tal manera que no quede en espera un proceso en forma indeterminada, puede establecer parámetros de rendimiento o envejecimiento en la
cola de procesos
Criterio estático: procesos tipo cooperativo
Tabla de procesos que se utilizara a modo de ejemplo para el desarrollo de los distintos tipos de
algoritmos de planificación de procesos
8 Administración de Sistemas y Redes de Computadoras
FCFS - First Come, First Serve.
También referido como FIFO (First In, First Out) El esquema más simple de planicación
Apto para multitarea cooperativa
Cada proceso se ejecuta en órden de llegada hasta que suelta el control
La sobrecarga administrativa es mínima
El algoritmo es extremadamente simple: una cola FIFO
Efectúa el mínimo posible de cambios de contexto No requiere hardware de apoyo (temporizador / interrupciones)
El rendimiento percibido por los últimos procesos disminuye
Los procesos cortos pueden esperar desproporcionadamente mucho tiempo
La demora aumenta fuertemente conforme crece p
Tendencia a la inanición cuando p >= 1
ROUND ROBIN
Busca dar buena respuesta tanto a procesos cortos como largos Requiere multitarea preventiva (preferente)
Ejecutamos cada proceso por un quantum
Si no terminó su ejecución, se interrumpe y coloca de vuelta al final de la cola
Los procesos nuevos se forman también al final de esta misma cola
9 Administración de Sistemas y Redes de Computadoras
Alta frecuencia de cambios de contexto A pesar de que el algoritmo es simple, la sobrecarga administrativa (burocracia) es alta
Puede modificarse incrementando el quantum
Reduce la frecuencia de cambios de contexto
Para valores grandes de q, tiende a convertirse en FCFS
ROUND ROBIN con Q=4
10 Administración de Sistemas y Redes de Computadoras
SPN - Shortest Process Next
Multitarea cooperativa Pero requerimos un algoritmo más justo que FCFS
Sabemos cuánto tiempo va a requerir cada proceso
Los tiempos de los procesos se pueden estimar estimar / predecir basados en su historia
Un proceso puede entrar y salir del ámbito del despachador
SPN puede mantener la contabilidad de los procesos incluso tras entregarlos de vuelta al agendador
Calculo de la estimación del siguiente proceso Tn+1
Se trata de un calculo exponencial, tal que :
Tn+1 = (1-a) tn + a Tn
0 < = a <= 1
a: es un factor atenuador
Tn+1 es la estimación de la duración del proceso en su próximo pasada
tn es el tiempo que duro realmente el proceso en la pasada n
Tn es el tiempo estimado para la pasada n
En el grafico se conocen los tiempos de duración de cada uno de los procesos
11 Administración de Sistemas y Redes de Computadoras
Obviamente, SPN favorece a los procesos cortos
Un proceso largo puede esperar mucho tiempo antes de ser atendido
Con p alto, los procesos largos sufren inanición Con una cola de procesos listos chica, el resultado es similar a FCFS
Pero vimos que una sóla permutación entre el órden de B y C redujo fuertemtente los factores de penalización PSPN – Shortest Process Next ( preventivo)
Emplea la estrategia de SPN, pero interrumpe cada quantum
Se observa que la penalización a procesos largos no es mucho peor que la de la ronda
Mantiene mejores promedios, porque los procesos cortos salen más temprano de la
cola.
HPRN – Highest Penalty Ratio Next
Es una variación de SPN
Multitarea cooperativa Las alternativas (FCFS y SPN) parecen injustas para muchos proesos
Busca otorgar un mejor balance
Todos los procesos inician con un valor de penalización P = 1 Cada vez que un proceso es obligado a esperar un tiempo w por otro,
P = w+t / t se va acumulando w
Se elige el proceso cuyo valor de P sea mayor
Mientras p < 1, HPRN evita inanición incluso en procesos largos HPRN se ubica siempre entre FCFS y SPN
Principal desventaja: Es un algoritmo caro
Cuando hay muchos procesos en la cola, P tiene que calcularse para todos ellos a cada invocación del despachador
Hasta ahora todos los procesos se encolumnan en una cola única
12 Administración de Sistemas y Redes de Computadoras
Glosario
IPL Initial Program Loader: Programa inicial de carga ,se refiere al software cuya misión
es la de cargar el sistema operativo en memoria para su utilización.
CLG Compile Link Go, compilar, editar o enlazar y ejecutar. Pasos necesarios en la
depuración o construcción de un programa, el cual estará diseñado para ser ejecutado
Microprogramación, es aquella que se encarga del desarrollo de microprogramas que
facilitan la unión entre el hardware y el software. La microprogramación no se puede
clonar.
Conjunto de rutinas de E/S, Input Output Control System (IOCS) , se dividen en dos
grupos: las PIOCS y Las LIOCS ( instrucciones físicas y lógicas respectivamente)
JCL Job Control Language, lenguaje de control de tareas, hace de traductor de
instrucciones por ejemplo el acceso a un archivo real a través de instrucciones
definidas en un programa o software.
BATCH, procesamiento de instrucciones por lotes, se ejecutan en cadena, uno detrás
de otro, obteniéndose un resultado final.