Algoritmos de Planificacion No Expulsivos

11
ALGORITMOS DE PROGRAMACIÓN NO EXPULSIVOS A l g o r i t m o s d e P r o g r a m a c i ó n N o E x p u l s i v o s

Transcript of Algoritmos de Planificacion No Expulsivos

Page 1: Algoritmos de Planificacion No Expulsivos

ALGORITMOS DE PROGRAMACIÓNNO EXPULSIVOS

Alg

oritm

os d

e P

rogr

amac

ión

No

Exp

ulsi

vos

Page 2: Algoritmos de Planificacion No Expulsivos

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

Page 3: Algoritmos de Planificacion No Expulsivos

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

Page 4: Algoritmos de Planificacion No Expulsivos

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

Page 5: Algoritmos de Planificacion No Expulsivos

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

Page 6: Algoritmos de Planificacion No Expulsivos

   

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

Page 7: Algoritmos de Planificacion No Expulsivos

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

Page 8: Algoritmos de Planificacion No Expulsivos

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

Page 9: Algoritmos de Planificacion No Expulsivos

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

Page 10: Algoritmos de Planificacion No Expulsivos

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

Page 11: Algoritmos de Planificacion No Expulsivos

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