Planificación
Semestre II-2010
1
Universidad Central de Venezuela
10/3/2015
Planificación del procesador
Analizaremos la planificación del procesador en dos tipos
de contextos:



2
Planificación de monoprocesadores.
Planificación de multiprocesadores y multicore.
Universidad Central de Venezuela
10/3/2015
Planificación de monoprocesadores
Nos concentraremos en el problema de planificar el uso
de un sólo procesador entre todos los procesos
existentes en el sistema.
El objetivo es lograr:




Gran utilización del procesador.
Elevada productividad.


Tiempo de respuesta bajo.

3
Número de procesos completados por unidad de tiempo.
Tiempo desde que se emite un requerimiento, hasta que se comienza
a recibir la respuesta.
Universidad Central de Venezuela
10/3/2015
Planificadores
Long-term. Cuál proceso admitir.
Medium-term. Cuál proceso intercambiar entre memoria y disco.
Short-term. Cuál proceso listo se ejecutará a continuación.



4
Universidad Central de Venezuela
10/3/2015
Planificadores
5
Universidad Central de Venezuela
10/3/2015
Planificadores
6
Universidad Central de Venezuela
10/3/2015
Planificador a largo plazo
Determina cuáles programas son admitidos en el sistema.


De este modo se controla el grado de multiprogramación.
Si más procesos son admitidos:


Menor probabilidad de que todos los procesos estén
bloqueados.


Mejor uso del CPU.
Menor es el porcentaje de tiempo en el que cada proceso
puede ejecutar.
El planificador a largo plazo puede intentar mantener una
mezcla de procesos:



7
Acotado por CPU (process-bound).
Acotado por E/S (E/S-bound).
Universidad Central de Venezuela
10/3/2015
Planificador a mediano plazo
Decisiones de intercambio basadas en la necesidad de
gestionar multiprogramación.
Realizado por el software de gestión de memoria.



8
Se profundizará en este tema luego de ver, en manejo de
memoria, los conceptos de asignación del conjunto residente y
control de carga.
Universidad Central de Venezuela
10/3/2015
Planificador a corto plazo
Determina cuál proceso se ejecutará a continuación.
Las decisiones de planificación se invocan cuando ocurre un
evento que puede conducir a escoger otro proceso para la
ejecución:


1.
2.
3.
4.
Cuando el proceso pasa de ejecución a espera (bloqueado por E/S
o por una llamada al sistema).
Cuando el proceso pasa de ejecución a listo (generalmente por una
interrupción de reloj).
Cuando el proceso pasa de espera a listo (generalmente por una
interrupción de E/S o al terminar una llamada al SO).
Cuando el proceso Termina.
La planificación bajo los eventos 1 y 4 es no apropiativa
(nonpreemptive).
En todos los otros casos es apropiativa (preemptive).


9
Universidad Central de Venezuela
10/3/2015
Planificador a corto plazo

Criterios:

Orientados al Usuario.



Orientados al sistema.




Tiempo de respuesta.
Tiempo de retorno (Turnaround time).
Utilización del procesador.
Justicia (Equidad).
Productividad (Throughput).
Políticas.

Modo de Decisión.


10
No apropiativo (Nonpreemptive).
Apropiativo (Preemptive).
Universidad Central de Venezuela
10/3/2015
Planificador a corto plazo

Políticas:






11
First-Come, First-Served.
Shortest-Job-First.
Priority Scheduling.
Round-Robin.
Multilevel Queue.
Multilevel Feedback Queue.
Universidad Central de Venezuela
10/3/2015
Planificador a corto plazo

Orientado al usuario.

Tiempo de Respuesta.


Para un proceso interactivo, intervalo de tiempo transcurrido desde
que se emite una solicitud, hasta que se comienza a recibir la
respuesta.
Tiempo de Retorno (Turnaround time).

Intervalo de tiempo transcurrido entre el lanzamiento de un proceso
y su finalización. Es la suma del tiempo de ejecución real y el tiempo
consumido en la espera por los recursos (incluido el tiempo de CPU).

12
Medida apropiada para trabajos en batch.
Universidad Central de Venezuela
10/3/2015
Planificador a corto plazo

Orientado al sistema.

Utilización del procesador.


Justicia (Equidad).


Los procesos deben ser tratados de igual forma y ningún proceso
debe sufrir de inanición.
Productividad (Throughput).

13
Porcentaje de tiempo en el que el procesador está ocupado.
Número de procesos terminados por unidad de tiempo.
Universidad Central de Venezuela
10/3/2015
Planificador a corto plazo

La función de selección.


Determina cuál proceso en la cola de listo, se selecciona para
ejecutar a continuación.
El modo de decisión.

14
Especifica los instantes de tiempo en que se aplica la función de
selección.
Universidad Central de Venezuela
10/3/2015
Planificador a corto plazo

Modos de decisión:

No apropiativo (Nonpreemptive).


Una vez que un proceso está en el estado de ejecución, continuará
hasta que termine, se bloqueé por una E/S, o al solicitar algún servicio
del sistema.
Apropiativo (Preemptive):


15
El proceso actualmente en ejecución, puede interrumpirse y
ser pasado al estado listo por el SO.
Permite mejor servicio puesto que evita que un proceso pueda
monopolizar el procesador durante mucho tiempo.
Universidad Central de Venezuela
10/3/2015
Criterios de planificación - Resumen
16
Universidad Central de Venezuela
10/3/2015
Criterios de planificación - Resumen
17
Universidad Central de Venezuela
10/3/2015
Planificador vs. Despachador

Planificador.


Selecciona cual de todos los procesos cargados en memoria se
encuentra listo para ejecutarse, con la intención de asiganrle el
procesador.
Despachador.

Es el módulo 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 específico del programa de usuario para continuar
con la ejecución.
Latencia de despacho.

18
Tiempo invertido por el despachador en detener un proceso y reiniciar
otro.
Universidad Central de Venezuela
10/3/2015
Ráfagas de ejecución




Se observa que los procesos
requieren uso alternado de
procesador y de E/S, en una forma
repetitiva.
Cada ciclo consiste en una ráfaga
de CPU, seguido por una ráfaga de
E/S.
Un proceso termina con una
ráfaga de CPU.
Los procesos limitados por CPU
tienen ráfagas de CPU más largas,
que los procesos limitados-por-E/S.
19
Universidad Central de Venezuela
10/3/2015
First-Come, First-Served (FCFS)

Procces
Burst Time
P1
24
P2
3
P3
3
Suponga que los procesos llegan en el orden: P1 , P2 , P3.
20
Universidad Central de Venezuela
10/3/2015
First-Come, First-Served (FCFS)

El diagrama de Gantt para la planificación es:
P1
0


P2
24
P3
27
30
Tiempo esperado por P1= 0, P2=24, P3= 27.
Tiempo promedio de espera: (0 + 24 + 27)/3= 17.
21
Universidad Central de Venezuela
10/3/2015
First-Come, First-Served (FCFS)


Suponga que los procesos llegan en el orden: P2, P3, P1
El diagrama de Gant para la planificación es:
P2
0




P3
3
P1
6
30
Tiempo esperado para P1= 6, P2= 0, P3= 3.
Tiempo medio de espera (6+0+3)/3= 3.
Mucho mejor que en el caso anterior.
El proceso corto sufre del efecto Caravana (Convoy) detrás
del proceso largo.
22
Universidad Central de Venezuela
10/3/2015
First-Come, First-Served (FCFS)

Inconvenientes.


Un proceso que no realiza ninguna E/S, monopolizará el
procesador.
Favorece a los procesos acotados por CPU.



23
Los procesos acotados por E/S tienen que esperar hasta el proceso
acotado por CPU termine.
Ellos pueden tener que incluso esperar cuando sus E/S se completan
(pobre utilización del dispositivo).
Se podrían mantener los dispositivos de E/S ocupados, dando más
prioridad a procesos acotados por E/S.
Universidad Central de Venezuela
10/3/2015
Shortest-Job-First (SJF)


Se asocia a cada proceso la longitud de su próxima ráfaga
de CPU. Usando esta longitud, el planificador determina el
shortest time.
La dificultad de SJF es el conocer la longitud de la
próxima ráfaga de CPU.
24
Universidad Central de Venezuela
10/3/2015
Shortest-Job-First (SJF)

Burst Time
P1
6
P2
8
P3
7
P4
3
El diagrama de Gant para la planificación es:
P4
0

Process
P3
P1
3
9
P2
16
24
El promedio del tiempo de espera (3 + 16 + 9 + 0) / 4 = 7.
25
Universidad Central de Venezuela
10/3/2015
Shortest-Job-First (SJF)

¿Cómo determinar la próxima ráfaga de CPU?


Sólo podríamos estimar su longitud.
Esta estimación puede realizarse usando las ráfagas de CPU
anteriores, para así generar un promedio exponencial.
1. t n  actual
length of n
2.  n  1  predicted
th
CPU burst
value for the next CPU burst
3.  , 0    1
4. Define :
26
 n 1   t n  1    n .
Universidad Central de Venezuela
10/3/2015
Shortest-Job-First (SJF)

 =0



 =1



n+1 = n
La historia reciente no es tomada en cuenta.
n+1 =  tn
Sólo se toma en cuenta la ráfaga actual.
Expandiendo la fórmula:
n+1 =  tn+(1 - ) tn -1 + …
+(1 -  )j  tn -j + …
+(1 -  )n +1 0

Dado que  y (1 - ) son <= 1, cada uno de los términos
sucesivos tiene menor peso que su predecesor.
27
Universidad Central de Venezuela
10/3/2015
Shortest-Job-First (SJF) - Apropiativo



SJF puede implementarse de manera no apropiativa o
apropiativa.
La necesidad de esta elección recae en la posibilidad de
que llegue un proceso, con una ráfaga de CPU menor que
el proceso que se encuentra en ejecución.
SJF apropiativo es en ocasiones llamado:

28
Shortest remaining time first.
Universidad Central de Venezuela
10/3/2015
Shortest-Job-First (SJF) - Apropiativo
P1
0

Process
Arrival Time
Burst Time
P1
0.0
7
P2
2.0
4
P3
4.0
1
P4
5.0
4
P2
2
P3
4
P2
5
P4
7
P1
11
16
Tiempo promedio de espera= (9+1+0+2)/4= 3
29
Universidad Central de Venezuela
10/3/2015
Priority Scheduling


Un número de prioridad (entero) es asociado con cada
proceso.
El CPU es asignado al proceso con la prioridad más alta
(entero pequeño  prioridad alta).




Problema  Inanición.


Apropiativo.
No apropiativo.
¿Cómo será?
Los procesos de baja prioridad pudieran no ejecutarse nunca.
Solución  Envejecimiento.

30
A medida que pase el tiempo se aumenta la prioridad del
proceso.
Universidad Central de Venezuela
10/3/2015
Priority Scheduling



Se implementan teniendo múltiples colas de listo para
representar cada nivel de prioridad.
El planificador siempre escogerá un proceso de prioridad
más alta sobre uno de prioridad más baja.
Los procesos de prioridad más baja, pueden sufrir
inanición.
31
Universidad Central de Venezuela
10/3/2015
Round Robin

A cada proceso se le asigna una pequeña porción de
tiempo de en el CPU (quantum), el cual es usualmente
entre 10 y 100 ms. Una vez que expira dicho tiempo el
proceso debe pasar al final de la cola de procesos listo.
32
Universidad Central de Venezuela
10/3/2015
Round Robin


Si hay n procesos en la cola de listo y el quantum es q,
entonces cada proceso obtiene 1/n del tiempo del
procesador por q unidades de tiempo. Esto implica que
ningún proceso espera más de (n-1)q unidades de tiempo.
Desempeño.


33
q largo  FCFS.
q pequeño  q debe ser más largo que el tiempo requerido
por un cambio de contexto, de lo contrario la sobrecarga es
muy elevada.
Universidad Central de Venezuela
10/3/2015
Round Robin
34
Universidad Central de Venezuela
10/3/2015
Round Robin

Process
Burst Time
P1
24
P2
3
P3
3
Diagrama de gantt (q= 4)
P1
0
35
P2
4
P3
7
P1
10
P1
14
P1
18
P1
22
Universidad Central de Venezuela
P1
26
30
10/3/2015
Round Robin

Inconvenientes.

Todavía favorece a procesos acotados por CPU.



Un proceso acotado por E/S usa el CPU durante un tiempo menor
del quantum de tiempo y, luego se bloquea esperando por E/S.
Un proceso acotado por CPU se ejecuta durante su fracción de
tiempo y, se vuelve a poner en la cola listo (poniéndose así delante de
los procesos bloqueados).
Solución.

36
Ideas.
Universidad Central de Venezuela
10/3/2015
Round Robin Virtual


Cuando un E/S se ha completado, el proceso bloqueado
se mueve a una cola auxiliar la cual obtiene preferencia
sobre la cola principal de listos.
Un proceso despachado desde la cola auxiliar, no puede
ejecutar más que un tiempo igual al quantum básico
menos el tiempo total de ejecución consumido, desde que
éste fue seleccionado por última vez de la cola de listos.
37
Universidad Central de Venezuela
10/3/2015
Round Robin Virtual
38
Universidad Central de Venezuela
10/3/2015
Multilevel Queue

La cola de listos es dividida en varias colas.



Primer plano (foreground).
Segundo plano (batch).
Cada cola tiene su propio algoritmo de planificación.


39
Primer plano (foreground) – RR.
Segundo plano (background) – FCFS.
Universidad Central de Venezuela
10/3/2015
Multilevel Queue
40
Universidad Central de Venezuela
10/3/2015
Multilevel Queue

La planificación debe realizarse entre las colas.

Planificación de prioridad fija.

Servir primero a todos los de primer plano y luego a los de segundo
plano.


Fracción de tiempo.

Cada cola tiene una cierta cantidad de tiempo del procesador el cuál
puede planificar entre sus procesos.


41
Posibilidad de Inanición.
80% para los de primer plano en RR.
20% para los de segundo plano en FCFS .
Universidad Central de Venezuela
10/3/2015
Multilevel Feedback Queue


Un proceso puede moverse entre varias colas; el
envejecimiento puede ser implementado.
Las colas de Multinivel retroalimentadas definen la
planificación a través de los siguientes parámetros:





42
Número de colas.
Algoritmos de planificación para cada cola.
Método utilizado para determinar cuándo un proceso pasará a
una cola de prioridad más alta.
Método utilizado para determinar cuándo un proceso pasará a
una cola de prioridad más baja.
Métodos para determinar a cuál cola un proceso entrará
cuando necesite servicio.
Universidad Central de Venezuela
10/3/2015
Multilevel Feedback Queue
43
Universidad Central de Venezuela
10/3/2015
Multilevel Feedback Queue


Planificación apropiativa con prioridades dinámicas.
Varias colas listas para ejecutar con prioridades
decrecientes:



P(RQ0)> P(RQ1)>... > P(RQn)
Un proceso nuevo se pone en RQ0.
Cuando ellos alcanzan el quantum de tiempo, ellos se
ponen en RQ1. Si ellos lo alcanzan de nuevo, ellos son
puestos en RQ2... hasta que ellos alcancen RQn.
44
Universidad Central de Venezuela
10/3/2015
Multilevel Feedback Queue

Los procesos limitados-por-E/S se quedarán en colas de
prioridad más altas.



Los jobs limitados-por-CPU tenderán hacia abajo.
El planificador sólo escoge un proceso para la ejecución
en RQi si de RQi-1 a RQ0 están vacíos.
Entonces, trabajos largos pueden caer en inanición.
45
Universidad Central de Venezuela
10/3/2015
Resumen algoritmos de planificación
46
Universidad Central de Venezuela
10/3/2015
Planificación en multiprocesadores



La planificación del CPU es más compleja cuando
múltiples CPUs están disponibles.
Procesadores homogéneos dentro de multiprocesadores
Metodos de Planificación.




Afinidad al Procesador.
Equilibrio de Carga.




Multiprocesamiento Asimétrico.
Multiprocesamiento Simétrico.
Migración comandada (push migration).
Migración solicitada (pull migration).
Multihebra (hyperthreading).
Multicore.
47
Universidad Central de Venezuela
10/3/2015
Planificación de threads

Planificación Local.

Cómo la biblioteca de hilos decidirá cuál de los hilos colocará
en un LWP disponible.


(PCS – Process Contention Scope).
Planificación Global.

Cómo el kernel decide cuál hilo de kernel es el siguiente en
ejecutar.

48
(SCS – System Contention Scope).
Universidad Central de Venezuela
10/3/2015
Planificación de threads

Todos los Hilos comparten código y segmento de datos.


Opción 1: Ignorar éste hecho.
Opción 2: Planificación en pandillas.


Ejecutan todos los hilos que pertenecen a un mismo proceso (sólo en
multiprocesadores).
Si un hilo necesita sincronizarse con otro hilo.


Opción 3: Planificación en dos niveles.



49
El otro estará disponible y activo.
Planificación de nivel medio.
Planificación de procesos, y dentro de cada proceso, planificación de
hilos.
Reducción de la sobrecarga debido a la conmutación de contexto y
mejora la tasa de aciertos de cache.
Universidad Central de Venezuela
10/3/2015
Planificación de threads

Opción 4: Afinidad basada en espacio:


50
Asignación de hilos a los procesadores (sólo multiprocesadores).
Mejora la tasa de aciertos en cache, pero puede estar sujeta a
condiciones de baja carga.
Universidad Central de Venezuela
10/3/2015
Planificación de threads - Ejemplo
#include <pthread.h>
#include <stdio.h>
#define NUM THREADS 5
int main(int argc, char *argv[])
{
int i;
pthread t tid[NUM THREADS];
pthread attr t attr;
/* get the default attributes */
pthread attr init(&attr);
/* set the scheduling algorithm to PROCESS or SYSTEM */
pthread attr setscope(&attr, PTHREAD SCOPE SYSTEM);
/* set the scheduling policy - FIFO, RT, or OTHER */
pthread attr setschedpolicy(&attr, SCHED OTHER);
/* create the threads */
for (i = 0; i < NUM THREADS; i++)
pthread create(&tid[i],&attr,runner,NULL);
51
Universidad Central de Venezuela
10/3/2015
Planificación de threads - Ejemplo
/* now join on each thread */
for (i = 0; i < NUM THREADS; i++)
pthread join(tid[i], NULL);
}
/* Each thread will begin control in this function */
void *runner(void *param)
{
printf("I am a thread\n");
pthread exit(0);
}
52
Universidad Central de Venezuela
10/3/2015
Planificación de threads

Postdata.


Los mejores esquemas son adaptativos.
Para hacerlo tendríamos absolutamente que hacer la mejor
predicción del futuro.


La planificación ad hoc (espontanea) ha venido
incrementándose con los años.

53
¡Muchos de los algoritmos actuales dan la prioridad más alta a los que
la necesiten!
Muchos de los artículos sobre planificación, más relevantes de los
años 60´s, ahora se consideran de carácter histórico.
Universidad Central de Venezuela
10/3/2015
Planificación - Afinidad al procesador

Considere la ejecución de un proceso y la cache del
procesador donde se ejecuta.



Afinidad suave.


¿Qué ocurre si el proceso se ejecuta siempre en el mismo
procesador?
¿Y si se ejecuta en otro?
Trato, pero no garantizo.
Afinidad fuerte.

54
Se permite especificar que un proceso no migre a otro
procesador.
Universidad Central de Venezuela
10/3/2015
Planificación - Multicore


Multicore complica las consideraciones de planificación.
Investigaciones han descubierto que cuando un proceso
accede a memoria, este invierte una cantidad significativa
de tiempo en espera que los datos se encuentren
disponibles.

Memory stall.

55
Fallo de cache.
Universidad Central de Venezuela
10/3/2015
Planificación - Multicore


En el escenario anterior el 50% del tiempo el proceso se
encuentra en memory stall.
El remedio a esta situación.



El hardware se diseña para implementar multithreaded en
procesadores multicores.
Si un thread esta en memory stall, se intercambia a un segundo
thread.
Desde la perspectiva del SO, cada thread de hardware
aparece como un procesador lógico que esta disponible
para un thread de software.
56
Universidad Central de Venezuela
10/3/2015
Planificación - Multicore
57
Universidad Central de Venezuela
10/3/2015
Casos de estudio



Planificación en Solaris.
Planificación en Windows XP.
Planificación en Linux.
58
Universidad Central de Venezuela
10/3/2015
Tabla de despacho en Solaris
59
Universidad Central de Venezuela
10/3/2015
Planificación en Solaris
60
Universidad Central de Venezuela
10/3/2015
Planificación en Windows XP
61
Universidad Central de Venezuela
10/3/2015
Planificación en Linux
62
Universidad Central de Venezuela
10/3/2015
Planificación en Linux
63
Universidad Central de Venezuela
10/3/2015
Descargar

Sistemas Operativos