sistema operativo parte 2 planificacion

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

Upload: alexander-pavlotzky-degano

Post on 11-Jan-2016

225 views

Category:

Documents


0 download

DESCRIPTION

Planificación de ProcesosSi establecemos un ambiente de procesamiento multitarea, debemos tener en cuenta que existen mas de un proceso listo para ser ejecutado.

TRANSCRIPT

Page 1: Sistema Operativo Parte 2 Planificacion

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.

Page 2: Sistema Operativo Parte 2 Planificacion

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)

Page 3: Sistema Operativo Parte 2 Planificacion

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

Page 4: Sistema Operativo Parte 2 Planificacion

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

Page 5: Sistema Operativo Parte 2 Planificacion

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

Page 6: Sistema Operativo Parte 2 Planificacion

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

Page 7: Sistema Operativo Parte 2 Planificacion

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

Page 8: Sistema Operativo Parte 2 Planificacion

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

Page 9: Sistema Operativo Parte 2 Planificacion

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

Page 10: Sistema Operativo Parte 2 Planificacion

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

Page 11: Sistema Operativo Parte 2 Planificacion

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

Page 12: Sistema Operativo Parte 2 Planificacion

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.