Documentos de Académico
Documentos de Profesional
Documentos de Cultura
4.planificacion de Uso Del Procesador
4.planificacion de Uso Del Procesador
Contenidos
(T5)
Concepto de planificacin Estados de un proceso Planificador / Dispatcher Planificadores Algoritmos de planificacin Criterios de evaluacin Planificacin FIFO Planificacin SJF
Planificacin en VAX/VMS Planificacin en UNIX 4.4 BSD Estructuras de datos Clculo de prioridades Planificacin en W2K
Quantum
Escenarios de planificacin Ajuste de prioridad en W2K
Mtodo de prediccin
Ejemplos de planificacin:
Cola de listos
CPU
E/S
Cola de E/S
E/S
Cola de E/S
E/S
Cola de E/S
Planificador o scheduler: Determina en quin es el siguiente proceso en hacer uso de la CPU Dispatcher o repartidor: Conmuta el procesador de un trabajo a otro
Cambio de contexto
CP
Flags de estado
Registros de propsito general Registros de operaciones en coma flotante Informacin relativa a la memoria: punteros a las tablas de pginas, punteros a las tablas de segmentos, TLB, etc.
Sistema operativo
Dispatcher Dispatcher
Proceso 2
Planificador
Listo
Listo
Dispatcher Dispatcher
En ejecucin
Interrupcin o llamada al sistema
Planificador
En ejecucin
Listo
Trabajos completados por unidad de tiempo Tiempo transcurrido desde que se lanza hasta que finaliza Tiempo que est un proceso en una cola (no ejecucin) Importante en aplicaciones interactivas o de tiempo real (hasta la 1 respuesta del sistema) Recursos que emplea el planificador: tiempo de procesador y memoria
Planificacin del procesador
8
Tiempo de espera
Tiempo de respuesta
Grado de sobrecarga
round robin
con colas multinivel con colas multinivel realimentadas
FIFO: First in first out primero en entrar, primero en salir Gestiona la cola de procesos listos como una cola FIFO Ventaja:
Es el algoritmo ms sencillo de codificar Un proceso puede monopolizar la CPU efecto convoy Depende fuertemente de los tipos de trabajo y del instante en que llegan T1: 12 u.t., T2: 3 u.t., T3: 6 u.t. T1: 100 u.t., T2: 1 u.t., T3: 1 u.t., T4: 1 u.t.
Planificacin del procesador
10
Inconveniente:
Ejemplo:
Caso 1:
Trabajo 1 0 Trabajo 2 12 15 Trabajo 3 21
Caso 2:
Trabajo 2 0 3 Trabajo 3 9 Trabajo 1 21
Los tiempos medios de respuesta varan dependiendo de cmo se encolen los trabajos
Caso 1: t Caso 2: t
= 16 respuesta = 11
respuesta
11
Caso 2:
T2 T3 T4 0 1 2 3 Trabajo 1 103
Los tiempos medios de respuesta varan dependiendo de cmo se encolen los trabajos
Caso 1: t Caso 2: t
12
SJF: shortest job first primero el ms corto Asigna la CPU al trabajo con la siguiente rfaga ms pequea Calcula, de forma dinmica, la longitud de la siguiente rfaga de CPU para cada proceso Ventaja:
Reduce los tiempos medios de respuesta Conocer cules van a ser las duraciones de las prximas rfagas de CPU de cada proceso Produce inanicin en procesos con rfagas largas
Inconveniente:
13
La siguiente rfaga de CPU se predice como una media exponencial de las longitudes medias en anteriores rfagas n+1 = tn + (1-) n Sea:
tn: longitud de la n-sima rfaga de CPU n: valor predicho para la n-sima rfaga de CPU : parmetro de ajuste tn: contiene la informacin ms reciente n: contiene la historia pasada T1: 3 u.t., T2: 12 u.t., T3: 7 u.t., T4: 5 u.t. t respuesta = 13,25 u.t.
Planificacin del procesador
14
Ejemplo:
Se asigna la CPU al trabajo con la prioridad ms alta Las prioridades pueden definirse:
Tiempo de CPU, memoria usada, recursos empleados, etc. Tipo de usuario, tipo de aplicacin, etc.
Estticas: No vara durante la vida del proceso Dinmicas: Vara a lo largo de la vida del proceso, dependiendo de las decisiones del planificador Produce inanicin en procesos de baja prioridad Solucin: Utilizar envejecimiento
Planificacin del procesador
15
Inconveniente:
En los algoritmos anteriores, un proceso usa la CPU hasta pedir una E/S o terminar monopolizar la CPU Solucin: Un proceso puede desalojar al que usa la CPU Algoritmos con requisa (preemption):
SJF con requisa Prioridades con requisa T1: t = 0, 8 u.t. T2: t = 3, 4 u.t. T3: t = 2, 11 u.t.
Trabajo 1 7 12
Planificacin del procesador
Trabajo 1 Trabajo 2 0 3
Trabajo 3 23
16
Planificacin por turno rotatorio La CPU se asigna a cada proceso listo durante un cuanto de tiempo q
La cola de procesos preparados es FIFO Si la rfaga de CPU > q Interrupcin TIME-OUT Si la rfaga de CPU < q Liberacin de CPU Prestaciones: dependen fuertemente de q q round-robin degenera en FCFS q 0 CPU/n n es el nmero de procesos listos
Planificacin del procesador
17
Si q es muy pequeo se pierde mucho tiempo en el cambio de contexto. Disminuye la eficacia del procesador Si q es grande los tiempos de respuesta aumentan Regla emprica:
El 80% de las rfagas de CPU deben ser menores que el cuanto Slo existe una cola de trabajos preparados, no distingue entre tipos de trabajos
Problema:
18
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
Prioridad alta Tareas del sistema Tareas interactivas Tareas de edicin Prioridad baja Tareas batch
Planificacin del procesador
19
Tcnicas adaptativas
Los trabajos cambian de prioridad y de cola El algoritmo de planificacin de cada cola Mtodos para ascender y descender entre colas Dnde poner inicialmente a los trabajos
+
Tareas de TR Quantum = 10 Quantum = 20 FCFS
Planificacin del procesador
20
Consideraciones:
Prioridad
10
Caractersticas:
Planificacin con prioridades [0 31] y desalojo Procesos de usuario [0 15] : Prioridad base fija + offset
...
16 15
...
Tareas ordinarias
Cont. W2K
Planificacin del procesador
22
11
Caractersticas:
Procesos en modo supervisor [49 0] Procesos en modo usuario [127 50] Cola Prioridad / 4 q = 0,1 s
Planificacin del procesador
23
Existen 32 colas
24
12
Estructura proc:
Prioridad en modo usuario Tiempo de procesador acumulado Definido por el usuario [-20 +20] Tiempo bloqueado por algn evento
25
hardclock()
Incrementa el valor de p_estcpu del proceso activo hasta un mximo de 127 cada 1 tick Recalcula la prioridad de cada proceso cada 4 ticks: p_usrpri = PUSER + (p_estcpu/4) + 2p_nice Recalcula las prioridades cada 1 s: p_estcpu = decay p_estcpu + p_nice (decrementa p_estcpu) donde: decay = 2 carga / (2 carga) + 1 p_estcpu = decayp_slptime p_estcpu
setpriority()
schedcpu()
13
Caractersticas:
Entorno monousuario Tiempo compartido Aplicaciones interactivas o como servidor Planificacin de hilos Tareas de tiempo real [16 31] Tareas ordinarias [1 15] Prioridades dinmicas: base + offset Prioridad 0: Zero page thread
Quantum
1 tick:
q=q3 10 ms en sistemas monoprocesador i80x86 15 ms en sistemas multiprocesador i80x86 6 unidades lgicas 2 ticks 20 ms Interactividad, tiempo de respuesta ms bajo 36 unidades lgicas 12 ticks 120 ms Mejor rendimiento W2K professional Valores: 6, 4 2 ticks Mejora tiempo de respuesta Aplicable a la tarea que se ejecuta en 1er. plano
Listo Ejecucin
W2K Professional:
W2K Server:
Ensanchamiento de q:
28
14
Abandona el estado de ejecucin porque acaba su q, pasa al estado de espera o finaliza su ejecucin Pasa al estado de listo porque acaba de ser creado o finaliza una operacin de E/S Cambia de prioridad de forma implcita definida por el SO o de forma explcita definida pro el programador Cambia la afinidad de procesador
Terminado Ejecucin Espera Transicin Listo
Planificacin del procesador
29
Standby
Conmutacin voluntaria
El hilo en ejecucin pasa al estado de espera Se elige el 1er. trabajo de la cola de mayor prioridad
Listo Ejecucin
Espera
30
15
Requisa
Si pasa al estado de listo un hilo de mayor prioridad que el que est en ejecucin Existe requisa para hilos en modo ncleo, si IRLQ <=2
Si pasa al estado de listo un hilo de menor prioridad que el que est en ejecucin
31
Beneficia a tareas interactivas, frente a las de uso intensivo de CPU Priority boosting y priority decay:
Se aplica a la prioridad base de hilos ordinarios prioridad base <= prioridad obtenida <= 15
Decay:
32
16
Boost:
Disco, CD-ROM, tarjeta grfica, pto. paralelo +1 Red, pto. serie, tubera con nombre +2 Teclado y ratn +6 Tarjeta sonido +8
Fin de espera por eventos o semforos: +1 La tarea de primer plano finaliza una espera: +2 Se despierta una tareas GUI: +2
Sobre la prioridad actual Evita inanicin de hasta 16 hilos con ms de 300 ticks sin ejecutarse Prioridad 16 boost +10 y 2 * quantum
Planificacin del procesador
33
Decay
Boost
Apropiacin
Tiempo
Planificacin del procesador
34
17