ALGORITMOS DE PLANIFICACION NO EXPULSIVOS

Transcripción

ALGORITMOS DE PLANIFICACION NO EXPULSIVOS
Algoritmos de Programación No Expulsivos
ALGORITMOS DE PROGRAMACIÓN
NO EXPULSIVOS
Planificación
Política de Planificación
Algoritmo de Planificación
Decide
de
Asigna
Distribución Equitativa
Time Sharing
Slice ó Quantum
Planificador
Algoritmos de Programación No Expulsivos
Procesos
Activos
CARACTERISTICAS DE UN BUEN ALGORITMO DE
PLANIFICACION
Eficacia
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
Tiempo de Respuesta
los usuarios interactivos
Minimizar el tiempo que deben esperar los
Tiempo de Regreso
usuarios por lotes para obtener sus resultados
Maximizar el número de tareas
Rendimiento
procesadas por hora
Algoritmos de Programación No Expulsivos
Equidad
Instantes de planificación
Los instantes de planificación existen cuando:
Concluye la ejecución de un proceso o hilo
Un proceso se bloquea
Se crea un nuevo proceso o hilo
Ocurre una interrupción de I/O
Ocurre una interrupción de reloj
Algoritmos de Programación No Expulsivos
Un instante de planificación es aquél en el cuál el planificador
tiene que decidir qué tarea debe ejecutarse
Algoritmos de Planificación
FCFS
EXPULSIVOS
PARA SISTEMAS POR
LOTES.
SJF
PLANIFICACIÓN
POR PRIORIDAD
Entornos de
los procesos
OBEJTIVOS DE LOS
ALGORITMOS DE
PLANIFICACIÓN
PROCESAMIENTO
POR LOTES (BASH)
INTERACTIVOS
TIEMPO REAL
PARA SISTEMAS
INTERACTIVOS.
PARA SISTEMAS DE
TIEMPO REAL.
Algoritmos de Programación No Expulsivos
ALGORITMOS DE
PLANIFICACIÓN
NO
EXPULSIVOS
Sistemas por Lotes
FCFS
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
Algoritmos de Programación No Expulsivos
First-Come First-Served (primero en llegar primero en ser atendido)
FCFS - Ejemplo:
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?.
Proceso Duración
P1
9
P2
4
P3
2
0
9
P1
13
P2
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
Si P1 hubiera llegado de último los tiempos hubieran mejorado bastante (espera media=3,3)
0
4
P2
6
P3
15
P1
15
P3
Algoritmos de Programación No Expulsivos
Diagrama de Gantt
FCFS
Shortest Job First (primero la tarea más corta)
No expulsivo
4
4
4
8
B
C
D
A
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
Algoritmos de Programación No Expulsivos
Se calcula el plan de ejecución off-line
Proceso
Calcular el tiempo medio de espera que resulta
de aplicar Un algoritmo SJF no expulsivo
Proceso
Llegada
Duración
P1
0
7
P2
2
4
P3
4
1
P4
5
4
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
SJF no expulsivo
Espera media: (0+6+3+7)/4=4
0
7
P1
SJF expulsivo
Espera media: (9+1+0+2)/4=3
0
2
P1
P3
4
P2
8
5
P3
12
P2
7
P2
16
P4
11
P4
16
P1
Algoritmos de Programación No Expulsivos
SJF - Ejemplo:
Planificación por Prioridad
Cada proceso tiene una prioridad, entrara primero en la CPU el que
tenga mayor prioridad
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
Algoritmos de Programación No Expulsivos
Política de prioridades expulsiva o no
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
Algoritmos de Programación No Expulsivos


Documentos relacionados