so-06-Planificacion de procesos - La web de Sistemas Operativos

Anuncio
Sistemas Operativos
Tema 6. Planificación de
procesos
© 1998-2012 José Miguel Santos – Alexis Quesada – Francisco Santana
1
Contenido
n 
n 
n 
n 
n 
n 
n 
Modelo del sistema y criterios de rendimiento
Algoritmo FCFS
Algoritmo SJF
Métodos basados en prioridades
Turno rotatorio (Round-Robin)
Métodos multicolas
Multiprocesadores
2
Planificación de procesos
n 
El sistema operativo decide:
q 
q 
qué proceso entra en la CPU cuando ésta queda
libre;
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 
n 
n 
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…
¿Qué política nos interesa más?
¿Qué objetivos mínimos debe cumplir una
política de planificació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 
q 
q 
q 
Utilización de CPU: % de tiempo que la CPU está
ocupada
Tiempo de retorno: tiempo transcurrido entre la
llegada de un proceso y su finalización
Tiempo de espera: tiempo que un proceso
permanece en la cola de preparados
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 
n 
n 
n 
n 
Minimizar el tiempo medio de espera o de retorno
Maximizar la utilización de CPU
Mantener el tiempo de respuesta por debajo de un valor
máximo
Se pueden considerar las medias, valores
extremos o varianzas de estas magnitudes.
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 
n 
n 
ráfagas de CPU -> el proceso ejecuta instrucciones
ráfagas de E/S -> el proceso utiliza o espera por la E/S
Según la utilización de los recursos, se
observan:
n 
n 
procesos intensivos en CPU (ej. cálculos numéricos)
procesos intensivos en E/S (ej. interactivos)
7
Histograma de tiempos de ráfaga
de CPU
frecuencia
160
140
120
100
80
60
40
20
0
8
16
24
32
40
duración de la ráfaga (milisegundos)
8
Políticas expulsivas (preemptive)
n 
No expulsivas: el proceso que está en CPU
la abandona cuando quiere (ej. FCFS)
n 
n 
n 
problema de acaparamiento injusto de la CPU
Windows 3.11, Apple Macintosh…
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 
n 
n 
Cambia de contexto
Cambia a modo usuario
Saltar al punto apropiado del programa de usuario
10
FCFS (en orden de llegada)
n 
n 
Proceso
Duración
P1
9
P2
P3
4
2
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
Realizar los mismos cálculos suponiendo que llegan
en el siguiente orden: P2, P3 y P1
11
FCFS:
ejemplo de diagrama de Gantt
Proceso
P1
P2
P3
Duración
9
4
2
Diagrama de Gantt
9
0
P1
13
P2
15
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):
4
0
P2
6
P3
15
P1
12
FCFS: características
n 
n 
n 
n 
La cola de preparados se gestiona como una
FIFO
Simple de implementar
Muy sensible al orden de llegada de los
procesos
Perjudica a los procesos intensivos en E/S
(efecto convoy)
13
SJF (primero el más corto)
n 
n 
n 
n 
SJF = Shortest Job First
Entra en CPU el proceso con la ráfaga de CPU más
breve.
Minimiza el tiempo de espera medio.
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
Proceso
P1
P2
P3
P4
n 
n 
Llegada
0
2
4
5
Duración
7
4
1
4
Calcular el tiempo medio de espera que resulta de
aplicar un algoritmo SJF no expulsivo
Calcular el tiempo medio de espera que resulta de
aplicar un algoritmo SJF expulsivo (SRTF)
15
SJF - ejemplo
Proceso
Llegada
Duración
espera
SJF
P1
P2
P3
P4
0
2
4
5
7
4
1
4
0
6
3
7
SJF no expulsivo
espera media: (0+6+3+7)/4=4
SJF expulsivo
espera media: (9+1+0+2)/4=3
espera
SRTF
9
1
0
2
7
0
P1
0
2
P1
4
8
12
P3
5
P2 P3 P2
P2
7
16
P4
11
P4
16
P1
16
SJF: inconvenientes
n 
n 
Riesgo de inanición de los procesos de
larga duració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 
n 
n 
n 
n 
la política puede ser expulsiva o no
Prioridades definidas de forma interna (por el S.O.) o externa
(por los usuarios)
El SJF es un caso (prioridad=duración estimada)
Riesgo de inanición de los procesos con menos
prioridad.
Solución: envejecimiento. Aumentar
progresivamente la prioridad a los procesos en
espera.
18
Turno rotatorio (Round-Robin)
n 
n 
Adecuado para implementar tiempo compartido
Como el FCFS, pero cada proceso dispone de un
cuanto de tiempo máximo
n 
n 
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
La cola de preparados se gestiona como FIFO
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 
Proceso
Duración
P1
15
P2
P3
4
3
Probar con Q=4, Q=2, Q=1
20
Influencia del cuanto de tiempo
n 
n 
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.
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).
Ojo, si Q es muy pequeño, ocurren más cambios
de contexto y baja el rendimiento.
21
Multicolas
n 
n 
Varias colas de preparados, cada una gestionada con
una política diferente.
Las colas se reparten la CPU según alguna política:
n 
n 
n 
por prioridad absoluta
un % de tiempo para cada cola
Multicolas con realimentación:
n 
n 
posibilidad de que un proceso se mueva de una cola a otra, p.ej. si
cambia su comportamiento
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)
CPU
procesos interactivos
de estudiantes (RR)
procesos por lotes (FCFS)
23
Planificación en
multiprocesadores
n 
n 
n 
Mismo objetivo que con una CPU, pero
ahora ampliamos el número de recursos
disponibles para atender a los procesos.
¿Sirven las mismas políticas? (FCFS, SJF,
RR)
¿Cómo gestionamos la cola de procesos
preparados?
24
Multiprocesadores:
colas de procesos preparados
n 
Varias alternativas:
q 
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.
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
Descargar