so-06-planificacion de procesossopa.dis.ulpgc.es/fso/teoria/pdf/old/so-02-2-planificacion de...
TRANSCRIPT
Sistemas Operativos Tema 6. Planificación de
procesos
1
© 1998-2012 José Miguel Santos – Alexis Quesada – Francisco Santana
Contenido
n Modelo del sistema y criterios de rendimiento n Algoritmo FCFS n Algoritmo SJF n Métodos basados en prioridades n Turno rotatorio (Round-Robin) n Métodos multicolas n Multiprocesadores
2
Planificación de procesos
n El sistema operativo decide: q qué proceso entra en la CPU cuando ésta queda
libre; q en qué momento el proceso que está en
ejecución debe abandonar la CPU. è En otras palabras:
è El S.O. debe aplicar una política de planificación de procesos
3
¿Qué buscamos?
n Podemos definir múltiples políticas de planificación de procesos: en orden de llegada, primero la tarea más breve, por orden de prioridad…
n ¿Qué política nos interesa más? n ¿Qué objetivos mínimos debe cumplir una
política de planificación? n ¿Cómo valoramos si una política es mejor o
peor que otra?
4
Criterios de rendimiento
n Se usan varias magnitudes para medir el rendimiento de los algoritmos de planificación: q Utilización de CPU: % de tiempo que la CPU está
ocupada q Tiempo de retorno: tiempo transcurrido entre la
llegada de un proceso y su finalización q Tiempo de espera: tiempo que un proceso
permanece en la cola de preparados q Tiempo de respuesta: tiempo que un proceso
bloqueado tarda en entrar en CPU, desde que ocurre el evento que lo bloquea
5
Criterios de rendimiento (2)
n Posibles objetivos de la planificación: n Minimizar el tiempo medio de espera o de retorno n Maximizar la utilización de CPU n Mantener el tiempo de respuesta por debajo de un valor
máximo
n Se pueden considerar las medias, valores extremos o varianzas de estas magnitudes.
n No existe una política de planificación óptima para todos los criterios. q Habrá que llegar a un compromiso.
6
Modelo del sistema: ráfagas de CPU y E/S n Podemos considerar que la vida activa de un
proceso es una sucesión de: n ráfagas de CPU -> el proceso ejecuta instrucciones n ráfagas de E/S -> el proceso utiliza o espera por la E/S
n Según la utilización de los recursos, se observan:
n procesos intensivos en CPU (ej. cálculos numéricos) n procesos intensivos en E/S (ej. interactivos)
7
Histograma de tiempos de ráfaga de CPU
duración de la ráfaga (milisegundos) 0 40 16 32 8 24
160
140
120
100
80
60
40
20
frec
uenc
ia
8
Políticas expulsivas (preemptive)
n No expulsivas: el proceso que está en CPU la abandona cuando quiere (ej. FCFS)
n problema de acaparamiento injusto de la CPU n Windows 3.11, Apple Macintosh…
n Expulsivas: el planificador puede desalojar al proceso que está en CPU
n para implementar tiempo compartido y tiempo real, es necesaria una planificación expulsiva: Unix, Windows NT/XP, Mac OS X…
9
Despachador (dispatcher)
n Módulo que cede el control de la CPU al proceso seleccionado por el planificador a corto plazo
n Cambia de contexto n Cambia a modo usuario n Saltar al punto apropiado del programa de usuario
10
FCFS (en orden de llegada)
n Calcular el tiempo de espera, tiempo de retorno y tiempo medio de espera si aplicamos el algoritmo FCFS suponiendo que llegan en el mismo instante en el siguiente orden: P1, P2, P3
n Realizar los mismos cálculos suponiendo que llegan en el siguiente orden: P2, P3 y P1
Proceso Duración P1 9 P2 4 P3 2
11
FCFS: ejemplo de diagrama de Gantt
Proceso DuraciónP1 9P2 4P3 2
P2 P1 P3
Tiempos de espera: P1=0; P2=9; P3=13 Tiempos de retorno: P1=9; P2=13; P3=15 t. espera medio: (0+9+13)/3 = 7.3 Si P1 hubiera llegado el último, los tiempos hubieran mejorado bastante (espera media=3.3):
0 9 13 15
P2 P1 P3 0 4 6 15
Diagrama de Gantt
12
FCFS: características
n La cola de preparados se gestiona como una FIFO
n Simple de implementar n Muy sensible al orden de llegada de los
procesos n Perjudica a los procesos intensivos en E/S
(efecto convoy)
13
SJF (primero el más corto)
n SJF = Shortest Job First n Entra en CPU el proceso con la ráfaga de CPU más
breve. n Minimiza el tiempo de espera medio. n Versión expulsiva: Shortest Remaining Time First
(SRTF). El proceso en CPU es desalojado si llega a la cola un proceso con duración más corta.
14
SJF - ejemplo
n Calcular el tiempo medio de espera que resulta de aplicar un algoritmo SJF no expulsivo
n Calcular el tiempo medio de espera que resulta de aplicar un algoritmo SJF expulsivo (SRTF)
Proceso Llegada Duración P1 0 7 P2 2 4 P3 4 1 P4 5 4
15
SJF - ejemplo
Proceso Llegada Duración esperaSJF
esperaSRTF
P1 0 7 0 9P2 2 4 6 1P3 4 1 3 0P4 5 4 7 2
P1 0
P3 P2 P4
P1 P2 P3 P2 P4 P1
7 8 12 16
0 2 4 5 7 11 16
SJF no expulsivo espera media: (0+6+3+7)/4=4
SJF expulsivo espera media: (9+1+0+2)/4=3
16
SJF: inconvenientes
n Riesgo de inanición de los procesos de larga duración.
n El SJF no es implementable à se pueden estimar las duraciones de los procesos, según su historia reciente.
17
Planificación por prioridades
n Cada proceso tiene una prioridad; entra en CPU aquel con mayor prioridad.
n la política puede ser expulsiva o no n Prioridades definidas de forma interna (por el S.O.) o externa
(por los usuarios) n El SJF es un caso (prioridad=duración estimada)
n Riesgo de inanición de los procesos con menos prioridad.
n Solución: envejecimiento. Aumentar progresivamente la prioridad a los procesos en espera.
18
Turno rotatorio (Round-Robin)
n Adecuado para implementar tiempo compartido n Como el FCFS, pero cada proceso dispone de un
cuanto de tiempo máximo n si cuando expira el cuanto de tiempo el proceso continúa en CPU, el
planificador lo desaloja y lo ingresa al final de la cola de preparados
n La cola de preparados se gestiona como FIFO n Si el cuanto de tiempo es Q y hay N procesos en cola, el
tiempo de respuesta es como mucho Q·(N-1)
19
Round Robin: ejercicio
n Probar con Q=4, Q=2, Q=1
Proceso Duración P1 15 P2 4 P3 3
20
Influencia del cuanto de tiempo
n Si Q es muy grande, los procesos terminan sus ráfagas de CPU antes de que termine el cuanto: se comporta como un FCFS.
n Si Q=>0, se tiende a un sistema en el que cada proceso dispone de un procesador a 1/N de la velocidad del procesador real (procesador compartido).
n Ojo, si Q es muy pequeño, ocurren más cambios de contexto y baja el rendimiento.
21
Multicolas
n Varias colas de preparados, cada una gestionada con una política diferente.
n Las colas se reparten la CPU según alguna política: n por prioridad absoluta n un % de tiempo para cada cola
n Multicolas con realimentación: n posibilidad de que un proceso se mueva de una cola a otra, p.ej. si
cambia su comportamiento n Ej. UNIX: un proceso que lleva mucho tiempo en espera se mueve a
una cola de más prioridad
22
Multicolas - ejemplo
procesos del sistema (FCFS)
procesos interactivos de profesores (RR)
procesos interactivos de estudiantes (RR)
procesos por lotes (FCFS)
CPU
23
Planificación en multiprocesadores n Mismo objetivo que con una CPU, pero
ahora ampliamos el número de recursos disponibles para atender a los procesos.
n ¿Sirven las mismas políticas? (FCFS, SJF, RR)
n ¿Cómo gestionamos la cola de procesos preparados?
24
Multiprocesadores: colas de procesos preparados n Varias alternativas:
q Una cola por procesador: A cada proceso de le asigna un procesador y sigue en él toda su vida. Ojo, la carga de trabajo puede quedar mal repartida.
q Una cola común: reparto más equilibrado, pero hay riesgos de inconsistencia si varios procesadores manipulan simultáneamente la cola (ej. ¡¡dos procesadores podrían elegir al mismo proceso!!)
25