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

Anuncio
Contenido
Sistemas Operativos
Tema 6. Planificación de
procesos
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
© 1998-2012 José Miguel Santos – Alexis Quesada – Francisco Santana
1
Planificación de procesos
n 
¿Qué buscamos?
El sistema operativo decide:
q 
q 
è 
n 
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
2
n 
n 
otras palabras:
El S.O. debe aplicar una política de planificación
de procesos
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?
3
Criterios de rendimiento
n 
Criterios de rendimiento (2)
Se usan varias magnitudes para medir el
rendimiento de los algoritmos de planificación:
q 
q 
q 
q 
4
n 
Posibles objetivos de la planificación:
n 
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
n 
n 
n 
n 
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 
5
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
Habrá que llegar a un compromiso.
6
1
Modelo del sistema:
ráfagas de CPU y E/S
Podemos considerar que la vida activa de un
proceso es una sucesión de:
n 
n 
n 
160
ráfagas de CPU -> el proceso ejecuta instrucciones
ráfagas de E/S -> el proceso utiliza o espera por la E/S
frecuencia
n 
Histograma de tiempos de ráfaga
de CPU
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)
140
120
100
80
60
40
20
0
8
16
24
32
40
duración de la ráfaga (milisegundos)
7
Despachador (dispatcher)
Políticas expulsivas (preemptive)
n 
No expulsivas: el proceso que está en CPU
la abandona cuando quiere (ej. FCFS)
n 
n 
n 
n 
problema de acaparamiento injusto de la CPU
Windows 3.11, Apple Macintosh…
Módulo que cede el control de la CPU al
proceso seleccionado por el planificador a
corto plazo
n 
Expulsivas: el planificador puede desalojar
al proceso que está en CPU
n 
8
n 
n 
Cambia de contexto
Cambia a modo usuario
Saltar al punto apropiado del programa de usuario
para implementar tiempo compartido y tiempo real, es
necesaria una planificación expulsiva: Unix, Windows
NT/XP, Mac OS X…
9
FCFS (en orden de llegada)
n 
n 
Proceso
Duración
P1
9
P2
P3
4
2
10
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
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
Si P1 hubiera llegado el último, los tiempos hubieran
mejorado bastante (espera media=3.3):
4
0
P2
11
6
P3
15
P1
12
2
FCFS: características
n 
n 
n 
n 
SJF (primero el más corto)
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)
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.
13
SJF - ejemplo
Proceso
P1
P2
P3
P4
n 
n 
14
SJF - ejemplo
Llegada
0
2
4
5
Duración
7
4
1
4
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
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)
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
15
SJF: inconvenientes
n 
n 
16
Planificación por prioridades
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.
n 
Cada proceso tiene una prioridad; entra en CPU
aquel con mayor prioridad.
n 
n 
n 
n 
n 
17
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
3
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 
Round Robin: ejercicio
Proceso
Duración
P1
15
P2
P3
4
3
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)
n 
Probar con Q=4, Q=2, Q=1
19
Influencia del cuanto de tiempo
n 
n 
n 
20
Multicolas
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.
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
21
Multicolas - ejemplo
Planificación en
multiprocesadores
n 
procesos del sistema (FCFS)
procesos interactivos
de profesores (RR)
22
CPU
n 
procesos interactivos
de estudiantes (RR)
n 
procesos por lotes (FCFS)
23
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
4
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
5
Descargar