Algoritmos de Planificacion No Expulsivos
-
Upload
luis-manuel-bravo-agueero -
Category
Documents
-
view
167 -
download
3
Transcript of Algoritmos de Planificacion No Expulsivos
ALGORITMOS DE PROGRAMACIÓNNO EXPULSIVOS
Alg
oritm
os d
e P
rogr
amac
ión
No
Exp
ulsi
vos
Alg
oritm
os d
e P
rogr
amac
ión
No
Exp
ulsi
vos
Asigna
de
Planificador
ProcesosActivos Decide
Política de PlanificaciónAlgoritmo de Planificación
Distribución EquitativaTime Sharing
Slice ó Quantum
Planificación
CARACTERISTICAS DE UN BUEN ALGORITMO DE PLANIFICACION
Alg
oritm
os d
e P
rogr
amac
ión
No
Exp
ulsi
vos
Equidad
Eficacia
Tiempo de Respuesta
Tiempo de Regreso
Rendimiento
Garantizar que cada proceso obtiene su proporción justa de la CPU
Mantener ocupada la CPU el 100 % del tiempo
Minimizar el tiempo de respuesta para
los usuarios interactivos
Minimizar el tiempo que deben esperar los
usuarios por lotes para obtener sus resultados
Maximizar el número de tareas
procesadas por hora
Instantes de planificación
Un instante de planificación es aquél en el cuál el planificador tiene que decidir qué tarea debe ejecutarse
Los instantes de planificación existen cuando:
Concluye la ejecución de un proceso o hilo
Un proceso se bloquea
Alg
oritm
os d
e P
rogr
amac
ión
No
Exp
ulsi
vos
Se crea un nuevo proceso o hilo
Ocurre una interrupción de I/O
Ocurre una interrupción de reloj
OBEJTIVOS DE LOS ALGORITMOS DE PLANIFICACIÓN
ALGORITMOS DE PLANIFICACIÓN
NO EXPULSIVOS
FCFS
SJF
PLANIFICACIÓN POR PRIORIDAD
EXPULSIVOS
PARA SISTEMAS POR LOTES.
PARA SISTEMAS INTERACTIVOS.
PARA SISTEMAS DE TIEMPO REAL.
PROCESAMIENTO POR LOTES (BASH)
INTERACTIVOS
TIEMPO REAL
Entornos de los procesos
Alg
oritm
os d
e P
rogr
amac
ión
No
Exp
ulsi
vos
Algoritmos de Planificación
Sistemas por Lotes
FCFS First-Come First-Served (primero en llegar primero en ser atendido)
No expulsivo
Las tareas son atendidas en el orden en que se activan
Fácil de implementar ya que se necesita tan sólo mantener una lista de tareas activas
Una tarea puede retrasar la ejecución de tareas
Es el algoritmo más sencillo, el primer proceso que solicita la CPU es el primero en recibirla
Tiempo de espera promedio bastante largo
8 4 4 4
A B C D Alg
oritm
os d
e P
rogr
amac
ión
No
Exp
ulsi
vos
Planificación de servicio por orden de llegada. Calcular el tiempo de espera, tiempo de retorno y tiempo medio de esperas si aplicamos el algoritmo FCFS suponiendo que los procesos siguientes llegan en el mismo instante y en el orden: P1, P2, P3. ¿Y si el orden de llegada es: P2, P3, P1?.
FCFS - Ejemplo:
Alg
oritm
os d
e P
rogr
amac
ión
No
Exp
ulsi
vos
Proceso Duración
P1 9
P2 4
P3 2
P1 P2 P3
Diagrama de Gantt
0 9 13 15
P2 P3 P1
0 9 13 15
Si P1 hubiera llegado de último los tiempos hubieran mejorado bastante (espera media=3,3)15640
Tipo de espera P1=0; P2=9; P3=13;
Tipo de Retorno P1=9; P2=13; P3=15;
Tipo de espera medio: (0+9+13)/3= 7,3
FCFS
Alg
oritm
os d
e P
rogr
amac
ión
No
Exp
ulsi
vos
No expulsivo
Shortest Job First (primero la tarea más corta)
4 4 4 8
B C D ASe calcula el plan de ejecución off-line
Mejora el tiempo de respuesta promedio con respecto al anterior
Entra en la CPU el proceso con la ráfaga de CPU más corta
Se pueden estimar las duraciones de los procesos, según su historia reciente
El proceso en CPU es desalojado si llega a la cola un proceso con
duración más corta
SJF - Ejemplo:
Alg
oritm
os d
e P
rogr
amac
ión
No
Exp
ulsi
vos
Proceso Llegada Duración
P1 0 7
P2 2 4
P3 4 1
P4 5 4
P1 P2 P3 P2 P4 P1
0
Proceso Llegada Duración Espera SFJ Espera SRTF
P1 0 7 0 9
P2 2 4 6 1
P3 4 1 3 0
P4 5 4 7 2
Calcular el tiempo medio de espera que resulta de aplicar Un algoritmo SJF no expulsivo
P1 P3 P2 P4
0
2 5 164 7 11
7 12 168
SJF no expulsivoEspera media: (0+6+3+7)/4=4
SJF expulsivoEspera media: (9+1+0+2)/4=3
Alg
oritm
os d
e P
rogr
amac
ión
No
Exp
ulsi
vos
Planificación por Prioridad
Cada proceso tiene una prioridad, entrara primero en la CPU el que tenga mayor prioridad
Política de prioridades expulsiva o no
La prioridad se puede definir:
De forma interna la define el CPU
De forma externa la definen los usuarios
SJF es un caso de planificación por prioridad
Los procesos de prioridad más baja tienen riesgo de inanición
Solución: envejecimiento. Ir aumentando de forma progresiva la prioridad de los procesos en espera
Linux utiliza un planificador basado en la noción de prioridad, que indica la importancia del proceso. Entre mayor sea la prioridad, más importante es el proceso. El planificador elige para ejecución al proceso con la mayor prioridad
En Linux, la prioridad de los procesos se asigna de manera dinámica, lo que significa que su valor cambia en el tiempo.
La definición de la prioridad de un proceso depende del uso de CPU del proceso en el pasado. Si el proceso ha utilizado poco tiempo de CPU, Linux eleva su valor de prioridad para que pueda ser ejecutado inmediatamente, buscando así una distribución equitativa del tiempo de CPU.
Otra característica del planificador de Linux es que es del tipo expulsivo (preemptable), lo que significa que si algún proceso se activa con una prioridad mayor a la del proceso que está en ejecución, se expulsa al proceso actual y se ejecuta al proceso más prioritario
Alg
oritm
os d
e P
rogr
amac
ión
No
Exp
ulsi
vos