Está en la página 1de 0

Sistemas Operativos

Diaz Muante Jorge 1


Planificacion del Procesador
Your picture here
Sistemas Operativos
Ciclo 2013-1 Mod 2
Profesor:
Diaz Muante Jorge
Intercambio del CPU
Proceso 1 Proceso 2 Sistema Operativo
Salvar registros
Restaurar registros
Salvar registros
Restaurar registros
En ejecucin
En ejecucin
En ejecucin Inactivo
Inactivo
Inactivo
Interrupcin o
llamada al sistema
Interrupcin o
llamada al sistema
Dispatcher
Planificador
Dispatcher
Planificador
Planificador polticas
Dispatcher mecanismos
Planificador / Despachador
Planificador.
Selecciona cual de todos los procesos cargados en
memoria se encuentra listo para ejecutarse, con la
intencin de asignarle el procesador.
Despachador.
Es el mdulo encargado de dar el control del CPU al
proceso seleccionado por el planificador, lo que involucra:
Cambio de contexto.
Cambio a modo usuario.
Saltar a una punto especfico del programa de usuario para
continuar con la ejecucin.
Latencia de despacho.
Tiempo invertido por el despachador en detener un proceso y reiniciar
otro.
Sistemas Operativos
Diaz Muante Jorge 2
Objetivos
1. Ser justa
2. Elevar al mximo la produccin o rendimiento
3. Aumentar al mximo el nmero de usuarios interactivos
4. Ser predecible
5. Reducir al mnimo el gasto extra
6. Equilibrar el aprovechamiento de recursos
7. Lograr equilibrio entre la respuesta y el aprovechamiento
8. Evitar esperas infinitas
9. Imponer prioridades
10. Dar preferencia a procesos que ocupan recursos decisivos
11. Dar mejor trato a procesos que muestren un comportamiento deseable.
12. Degradarse paulatinamente de cargas pesadas
Objetivos
1. Ser justa
Debe tratar a todos los procesos de la misma forma y no aplazar
indefinidamente ningun proceso. Se evita mediante alguna tcnica
de envejecimiento.
Objetivos
2. Elevar al mximo la productividad o rendimiento.
Maximizar el numero de trabajos procesados por unidad de tiempo.
Sistemas Operativos
Diaz Muante Jorge 3
Criterios de planificacin
Uso CPU: % tiempo que la CPU est ocupada
Tipicamente entre 40 a 90 %
Productividad (Throughput): Cantidad de trabajo completada por unidad
de tiempo
Depende la duracion de los procesos
Tiempo de retorno: Tiempo desde que se lanza un proceso para su
ejecucin hasta que termina
Es la suma del tiempo que esta en la cola de listo, ejecucin y
bloqueado
Tiempo de espera. Tiempo que un proceso pasa esperando en la cola de
procesos listos para ejecutar.
Tiempo medio de espera. Tiempo medio que todos los procesos deben
esperar.
Tiempo de respuesta. Para proceso interactivo es el tiempo que pasa
desde que se emite una peticin hasta que se produce la primera
respuesta
Modelos de evaluacion
Suponer que tenemos los procesos A, B, y C, que llegan en el tiempo 0
Nosotros deseas calcular el tiempo de respuesta, tiempo de espera y
tiempo de retorno del proceso A
A B C A B C A C A C
Tiempo
T. Respuesta = 0
+ + T. Espera
T. Retorno
Diagrama de Gantt : visualiza como los procesos se ejecutan
3 5 2 3 2 4 1 4 2 3
7 6 4 = 17
26
Modelos de evaluacion
Ahora deseamos calcular el tiempo de respuesta, tiempo de espera y
tiempo de retorno del proceso B
A B C A B C A C A C
Tiempo
T. respuesta
+
T. Espera
T. Retorno
3 5 2 3 2 4 1 4 2 3
Sistemas Operativos
Diaz Muante Jorge 4
Modelos de evaluacion
Ahora deseamos calcular el tiempo de respuesta, tiempo de espera y
tiempo de retorno del proceso C
A B C A B C A C A C
Tiempo
T. Respuesta
+ + + T. Espera
T. Retorno
3 5 2 3 2 4 1 4 2 3
Criterios de planificacin
Concepto de racha (burst) de CPU de un proceso:
tiempo que usar la CPU hasta que se bloquea
procesos limitados por la CPU (CPU-bound): rachas largas
procesos limitados por la E/S (I/0-bound): rachas cortas
Tipos de procesos:
Interactivos: I/0-bound, interaccin con usuarios
De cmputo: CPU-bound, no interaccin
Con E/S pero no de usuario: I/0-bound, no interaccin
Tiempo real: garanta en tiempo de respuesta de un proceso
Tendencia general: Favorecer trabajos con rachas cortas
Se favorece procesos interactivos
Tambin mejora tiempo de espera medio
Teora de colas: servir primero peticiones ms cortas
SS.OO. favorecen proc. con mucha E/S aunque no sea interactivo
Objetivos
4. Ser predecible
Un proceso debe ejecutarse aproximadamente en el
mismo tiempo y casi al mismo costo con independencia de
la carga del sistema.
Sistemas Operativos
Diaz Muante Jorge 5
Administracion Apropiada y No Apropiada
No apropiada
Una vez que el CPU se le asign al proceso, ya no se le puede
arrebatar
til sistemas procesos alta prioridad requieren atencin inmediata,
(sistemas tiempo real)
Los trabajos largos atrasan a los cortos, pero el tratamiento es ms
justo
Apropiada
Al proceso se le puede arrebatar el CPU
til sistemas tiempo compartido: garantizar tiempos de respuesta
aceptables
Costo: cambio de contexto implica gasto extra
Prioridades estticas
Prioridades estticas no cambian
Son fciles de llevar a la prctica
No responden a cambios en el ambiente
Prioridades dinmicas
Responden a los cambios (inanicin es solucionado con una poltica de
envejecimiento)
Prioridad inicial tiene una duracin corta, despus de lo cual se ajusta a
un valor ms apropiado
- Esquemas ms complejos
- Gasto extra justificado: aumento en la sensibilidad del sistema
Prioridades estticas y dinmicas
Prioridades compradas
- Debe proporcionar un servicio competente y razonable a una gran
comunidad de usuarios.
- Debe manejar las situaciones en las cuales un miembro de la
comunidad necesite un trato especial
- Trabajo urgente => dispuesto a pagar extra:
comprar prioridad
(nivel ms alto de servicio)
- Pago extra obligatorio
puede ser necesario arrebatar recursos a otros usuarios que
tambin pagan
Sistemas Operativos
Diaz Muante Jorge 6
FCFS o PEPS
First-Come, First-Served (FCFS) o PEPS
Tambien First In, First Out (FIFO)
En los primeros sistemas, un proceso era planificado
Hasta que finalizaba (incluyendo I/O)
Ahora, mantiene el CPU hasta que se bloquea
Ejemplo: Proceso Tiempo Racha
P1 24
P2 3
P3 3
Suponga que los procesos arriban en este orden: P1 , P2 , P3
Ell diagrama de Gantt es :
Tiempo de espera para P1 = 0; P2 = 24; P3 = 27
Tiempo promedio de espera: (0 + 24 + 27)/3 = 17
Tiempo promedio terminado: (24 + 27 + 30)/3 = 27
Efecto Convoy procesos largos hacen esperara a los pequeos
P
1
P
2
P
3
24 27 30 0
FCFS
Otro ejemplo:
Supongamos que este sea el orden de llegada: P
2
, P
3
, P
1
El diagrama de Gantt seria:
Tiempo de espera para P
1
= 6; P
2
= 0
;
P
3
= 3
Tiempo promedio de espera: (6 + 0 + 3)/3 = 3
Tiempo promedio de terminado: (3 + 6 + 30)/3 = 13
En el segundo caso:
Tiempo promedio de espera es mucho mejor (antes era 17)
Tiempo promedio de terminado es mejor (antes era 27)
Pro y Cons :
Simple (+)
Proceso corto tiene que llegar antes (-)
P
1
P
3
P
2
6 3 30 0
Round Robin o por Turnos
Politica
Cada proceso obtiene una pequeo tiempo para uso del CPU
(Quantum), usualmente 10-100 milisegundos
Si el quantum expira, el proceso es interrumpido y enviado al final de la
cola.
n procesos estan listos y el quantum es q
Cada proceso tendra 1/n del tiempo de CPU
En chunks de a lo mas q unidades de tiempo
Ningun proceso espera mas de (n-1)q unidades de tiempo
Desempeo
q es grande FCFS
q es pequeo Excesivo gasto extra
q debe ser lo suficiente grande para que la mayoria de los procesos
interactivos acaben en una sola racha
Sistemas Operativos
Diaz Muante Jorge 7
Ejemplo de RB con q = 20
Process Burst Time
P
1
53
P
2
08
P
3
68
P
4
24
Gantt chart: (Time Quantum = 20)
P
1
P
2
P
3
P
4
P
1
P
3
P
4
P
1
P
3
P
3
0 20 28 48 68 88 108 112 125 145 153
33
0
48
4
13
28
0
0
8 0
Tiempo de espera para P1=(68-20)+(112-88)=72
P2=(20-0)=20
P3=(28-0)+(88-48)+(125-108)=85
P4=(48-0)+(108-68)=88
Tiempo Promedio de espera = (72+20+85+88)/4=66
Tiempo promedio de terminado = (125+28+153+112)/4 = 104
Pros and Cons:
Mejor para los procesos cortos (+)
Tiempo cambio de contexto hay que sumarlo para los procesos largos (-)
Por lo general es 0.1ms 1ms alrededor de 1% de sobrecarga
Ejemplo con diferentes q
Quantu
m
Tiempo
terminad
o
Tiempo
De
Espera
Promd P
4
P
3
P
2
P
1
P
2
[8]
P
4
[24]
P
1
[53]
P
3
[68]
0 8 32 85 153
+ FCFS:
62 57 85 22 84 Q = 1
104 112 153 28 125 Q = 20
100 81 153 30 137 Q = 1
66 88 85 20 72 Q = 20
31 8 85 0 32 + FCFS
121 145 68 153 121 - FCFS
69 32 153 8 85 + FCFS
83 121 0 145 68 - FCFS
95 80 153 16 133 Q = 8
57 56 85 8 80 Q = 8
99 92 153 18 135 Q = 10
99 82 153 28 135 Q = 5
61 68 85 10 82 Q = 10
61 58 85 20 82 Q = 5
Colas Multinivel
Objetivo: Diferenciar entre distintos tipos de trabajos
Existen colas separadas en funcin del tipo de trabajo
Cada cola tiene su propio algoritmo de planificacin
Debe existir otro algoritmo para elegir la cola en cada momento
Tareas del sistema
Prioridad baja
Prioridad alta
Tareas interactivas
Tareas de edicin
Tareas batch
Sistemas Operativos
Diaz Muante Jorge 8
Planificacin con colas multinivel
Colas multinivel realimentadas
Tcnicas adaptativas
Los trabajos cambian de prioridad y de cola
Consideraciones:
El algoritmo de planificacin de cada cola
Mtodos para ascender y descender entre colas
Dnde poner inicialmente a los trabajos
Quantum = 10
Quantum = 20
FCFS
Tareas de TR +

Prioridad
Multicolas
A
B
- Disciplina no apropiada
- Se ejecuta primero el proceso en espera que tiene el menor tiempo estimado
de ejecucin hasta terminar
- Reduce el tiempo de espera promedio de PEPS
- Favorece procesos cortos a expensas de los largos
- Selecciona procesos asegurandose que el siguiente proceso se completar
y saldr del sistema lo antes posible
- Conocimiento tiempo de ejecucin de un proceso:
se basa en los tiempos de ejecucin estimados por el usuario (
PELIGRO!!!!!)
- No resulta til en sistemas de tiempo compartido
Proceso mas corto (SJF)
Sistemas Operativos
Diaz Muante Jorge 9
Cuatro tareas:
A: tiempo ejecucin 8 minutos
B: tiempo ejecucin 4 minutos
C: tiempo ejecucin 4 minutos
D: tiempo ejecucin 4 minutos
D C B A
Tiempos regreso, ejecucin en ese orden:
A: 8 mins, B: 12 mins, C: 16 mins, D: 20 mins
Promedio: 14 mins
Cambiando el orden, (ms corto primero):
D C B A
Tiempos regreso:
B: 4 mins, C: 8 mins, D: 12 mins, A: 20 mins
Promedio: 11 mins
Ejemplo del algoritmo
Admon. por el tiempo restante ms corto
(SRT)
- La contraparte de la anterior
- Util en tiempo compartido
- El proceso con el menor tiempo estimado de ejecucin para terminar es el
primero en ejecutarse, (incluyendo procesos nuevos)
- Un proceso en ejecucin puede ser desposedo por uno nuevo con menor
tiempo de ejecucin estimado
- Tambin requiere estimaciones
- Implica un mayor gasto extra:
pendiente del trabajo en ejecucin
manejar apropiaciones ocasionales
- Procesos pequeos se ejecutan casi de inmediato
- Procesos grandes cuentan con un tiempo promedio de espera ms grande, y
tiempos de espera ms variados que en SJF
SJF vs SRT
Proceso Tiempo Llegada Uso CPU
P1 0 8
P2 1 4
P3 2 9
P4 3 5
Sistemas Operativos
Diaz Muante Jorge 10
SJF vs SRT
P1=8 P2=4 P4=5 P3=9
0 1 2 3 8
P2 Cola de listo = (P2)
SJF (Proceso mas corto)
TeP1=0
TeP2=7
TeP3=15
TeP4=9
TfP1=8
TfP2=11
TfP3=24
TfP4=14
12 17 26
P3 Cola de listo = (P2,P3)
P4 Cola de listo = (P2,P4,P3)
TfProm = 14.5 ms
SJF vs SRT
P1=8 P2=4 P4=5 P3=9
0 1
P2 Cola de listo = (P1)
SRT (Tiempo restante mas corto)
TeP1=9
TeP2=0
TeP3=15
TeP4=2
TfP1=17
TfP2=4
TfP3=24
TfP4=7
10 17 26
P3 Cola de listo = (P1,P3)
P4 Cola de listo = (P4,P1,P3)
P1=7
2 3 5
Tfprom = 13 ms
Por loteria
Carcter aleatorio
Cada proceso posee un billete de lotera
Planificador: escoge billete y selecciona al premiado
Procesos importantes pueden tener varios billetes
Procesos cooperantes pueden intercambiarse billetes:
Proceso cliente una vez hecha la peticin puede
ceder sus billetes al servidor
Sistemas Operativos
Diaz Muante Jorge 11
Planificacin Procesos Unix
Diseado para dar una buena respuesta a los procesos interactivos
Algoritmo de dos niveles:
bajo nivel : elige dentro del conjunto de procesos en memoria y
listos para ejecutarse
alto nivel : desplaza los procesos entre la memoria y el disco,
(procesos tiene oportunidad de estar en memoria y ejecutarse).
Procesos Unix cont..
Bajo nivel utiliza varias colas, cada cola esta asociada a un
valor de prioridad
Procesos a ejecutar en modo usuario tienen valores positivos
Proceso en modo ncleo tienen valores negativos
Valores negativos tienen mxima prioridad, y positivos
tienen la mnima
En las colas se encuentran slo los procesos que estan en
memoria listos para su ejecucin.
Procesos Unix cont..
Admon. busca colas que comienzan en mxima prioridad:
- elige primer proceso cola y lo incia
- permite ejecucin durante un quantum, (~
100mseg)
Si proceso agota su quantum:
se coloca al final de la cola
se ejecuta el algoritmo de planificacin de nuevo
procesos con igual prioridad comparten CPU con
un algoritmo de round-robin
Sistemas Operativos
Diaz Muante Jorge 12
Procesos Unix cont..
Cada segundo se vuelven a calcular prioridades procesos:
se dividen entre 2 los contadores de uso CPU (procesos
no tienen castigo por uso anterior CPU)
se calcula la prioridad de cada proceso:
Nueva prioridad = base + uso CPU
En general base=0
usuario que prefiera un servicio peor que el normal:
asignarle valor positivo mediante llamada nice()
solo un superusuario puede pedir un servicio mejor
Procesos Unix cont..
Cuando proceso se bloquea porque espera un resultado de una llamada
de sistema, se le elimina de la cola puesto que no se puede ejecutar:
- ocurre el evento: se le coloca en una cola con
valor negativo
- idea: sacar procesos del ncleo de manera
rpida
Mxima
prioridad
Mnima
prioridad
Prioridad del usuario 3
Prioridad del usuario 2
Prioridad del usuario 1
Prioridad del usuario 0
En espera del hijo para concluir
En espera de la salida de la terminal
En espera de la entrada de la terminal
En espera del buffer del disco
En espera de E/S del disco
:
:
:
:
3
2
1
-5
0
-4
-3
-2
-1
procesos en
modo usuario
en espera
procesos en
modo ncleo
en espera
procesos formados en el
nivel de prioridad 3
Planificacion del cpu - UNIX
Sistemas Operativos
Diaz Muante Jorge 13
Planificador de Solaris
Prioridad Quantum Expira
Quantum
Regresa de
bloqueado
0 200 0 50
5 200 0 50
10 160 0 51
15 160 5 51
20 120 10 52
25 120 15 52
30 80 20 53
35 80 25 54
40 40 30 55
45 40 35 56
50 40 40 57
55 40 45 58
59 20 49 59
Planificacin de Solaris
Planificacion de Solaris
Basada en prioridades. 4 clases:
1. Tiempo real
2. Sistema
3. Tiempo compartido
4. Interactiva.
La clase predeterminada es la de tiempo compartido.
modifica dinmicamente las prioridades y asigna Q de
diferente duracin usando colas multinivel realimentadas.
Existe una relacin inversa entre las prioridades y los Q.
Cuando ms alta sea la prioridad, ms pequeo ser el Q y
cuando menor sea la prioridad, ms larga ser la franja.
Sistemas Operativos
Diaz Muante Jorge 14
Planificacion de Solaris
Los procesos interactivos suelen tener la prioridad ms alta,
los procesos limitados por al CPU tienen la prioridad ms
baja. Esta poltica de planificacin proporciona un buen
tiempo de respuesta para los procesos interactivos y una
buena tasa de procesamiento para la clase de tiempo
compartido.

También podría gustarte