You are on page 1of 75

gjhgjh

Captulo 5

Planificacin
Secciones Stallings:
9.1, 9.2 (hasta pg. 421), 9.3

Planificacin
Propsito
Tipos de planificacin:
Largo plazo
Medio plazo
Corto plazo
E/S

Criterios:
Orientados al usuario
Orientados al sistema

Prioridades
Polticas de planificacin

gjhgjh

Propsito de la planificacin

Propsito de la planificacin
Asignar procesos al planificador de modo
que se consiga:
Mejorar tiempos de respuesta
Aumentar productividad
Optimizar eficiencia del procesador y de
dispositivos de E/S.

gjhgjh

Tipos de Planificacin
Planificacin a largo plazo
Decisin de aadir procesos al conjunto de procesos a
ejecutar

Planificacin a medio plazo


Decisin de aadir procesos al conjunto de procesos que
se encuentran parcial o completamente en la memoria

Planificacin a corto plazo


Decisin sobre qu proceso disponible ser ejecutado en
el procesador

Planificacin de E/S
Decisin sobre qu solicitud de E/S pendiente ser
tratada por un dispositivo de E/S disponible
(Gestin E/S Stallings 11)

Nuevo
Planificacin

Planificacin

a largo plazo

a largo plazo

Listo/
suspendido

Bloqueado/
suspendido

Ejecutando

Listo
Planificacin

Planificacin

a medio plazo

a corto plazo

Salida
Planificacin a
largo plazo

Bloqueado

Planificacin y transiciones de estado de los procesos.

gjhgjh

Ejecutando

Listo

Bloqueado

Corto plazo

Bloqueado
suspendido
Listo
suspendido

Medio plazo

Largo plazo
Nuevo

Salida

Figura 9.2. Niveles de planificacin.

Planificacin a largo plazo


Determina cules son los programas
admitidos en el sistema
Listo: cola de planificador a corto plazo
Listo suspendido: cola de planificador a medio
plazo.

Controla el grado de multiprogramacin:


Cuantos ms procesos se crean,
menor porcentaje de tiempo en el que cada
proceso se puede ejecutar.

gjhgjh

Planificacin a largo plazo


Cuntos procesos adicionales?
Limitar el nmero para dar buen servicio
Nuevo: cada vez que termina un proceso o si el
porcentaje de utilizacin del procesador es bajo

Qu procesos incluir?
Algoritmos de planificacin
Simples (e.g., FIFO-FCFS)
Por rendimiento del sistema: prioridades, carga procesador,
carga E/S, recurso E/S a solicitar, ...

Sistemas interactivos de tiempo compartido


Se aceptan procesos interactivos hasta saturacin
(ej: mx. n de procesos, carga procesador, nmero de
usuarios, ...) y despus mensaje de intentar ms tarde.

Planificacin a medio plazo


Forma parte de la funcin de intercambio
Gestin de memoria, Memoria Virtual, Estados
Suspendidos.

Se basa en la necesidad de controlar el


grado de multiprogramacin
(tema de memoria)

gjhgjh

Planificacin a corto plazo


Decide qu proceso se ejecutar a continuacin
Obj.: repartir tiempo del procesador de forma que se
optimice el comportamiento de 1 o ms elementos del
sistema.

Planificador a corto plazo = distribuidor


(dispatcher)
Es el de ejecucin ms frecuente
Se ejecuta cuando se interrumpe la ejecucin de
un proceso:
Interrupciones del reloj
Interrupciones de E/S
Llamadas al sistema operativo
Seales

Planificacin
a largo plazo
Trabajos
por lotes

Tiempo de guarda
Cola de listos

Planificacin
a corto plazo

Terminacin
Procesador

Planificacin
a medio plazo
Usuarios
interactivos

Cola de listos suspendidos

Ocurre
un suceso

Planificacin
a medio plazo

Cola de bloqueados suspendidos

Ocurre
un suceso

Cola de bloqueados

Espera de un suceso

Figura 9.3. Diagrama de colas de planificacin.

gjhgjh

Criterios de la planificacin
interrupcin

Creacin (1)
Listo (2)

Planificador
Procesos

En ejecucin
(3)

Salida (5)

Asignacin
En espera
(bloqueado)
(4)

E/S o final de espera

1
P1
P2
T 0

t1

t2

t3 t4

E/S o evento (wait)

t5

t6

t7 t8 t9 t11
t10

100

1. Uso de CPU: 100 - (t2-t1)


2. Rendimiento: 2/100 (pr/ut)
3. Tiempo de retorno (medio): (t11 + (100- t3) )/2
4. Tiempo de espera/respuesta (medio):
[(t6 - t5) + (t9 - t8) + (t4 - t3) + (t7 - t6) + (t11 - t10)]/2

Criterios de la p.a corto plazo


Orientados al usuario
Cuantitativos (rendimiento)
Cualitativos

Orientados al sistema
Cuantitativos (rendimiento)
Cualitativos

gjhgjh

Criterios de la p.a corto plazo


Orientados al usuario (cuantitativos, rendimiento):
Tiempo de retorno
Desde el lanzamiento hasta la finalizacin de un proceso.
Apropiado para trabajos por lotes

Tiempo de respuesta
Desde que se emite solicitud hasta que la respuesta aparece en
la salida.
Apropiada para procesos interactivos

Plazos
Si hay plazos, maximizar porcentaje de plazos cumplidos.
Caminos crticos: a seguir si se quieren cumplir los requisitos.

Orientados al usuario (cualitativos):


Previsibilidad
Tiempo y coste independiente de la carga del sistema

Criterios de la p. a corto plazo


Orientados al sistema (cuantitativos, rendimiento):
Productividad
Maximizar n procesos / unidad de tiempo

Utilizacin del procesador


Importante en sistemas compartidos caros
Menos importante en monousuario y en tiempo real

Orientados al sistema (cualitativos):


Equidad (si no hay otras directrices)
No inanicin
Prioridades: si hay, favorecer a procesos con mayor
Equilibrio de ocupacin de recursos
Mantener ocupados los recursos
Favorecer procesos que no usen recursos sobrecargados
Afecta tambin a planificacin a largo y medio plazo

gjhgjh

Uso de prioridades
Planificador selecciona, segn un algoritmo
de planificacin, siempre proceso de mayor
prioridad antes que menor prioridad
Mltiples colas de Listos:
una/nivel de prioridad
Procesos de prioridad ms baja podran
sufrir inanicin. Solucin:
Permitir que un proceso cambie su prioridad en
funcin de su edad o su historial de ejecucin.

Colas de prioridad
RQ0

Expedir

Terminar

RQ1

Entrar

RQn

Expulsin

Ocurre un
Suceso Cola de Bloqueados

Espera de Suceso

gjhgjh

Tema 5: Planificacin
Propsito
Tipos y alcance:
A largo plazo
A medio plazo
A corto plazo Algoritmos de planificacin
Criterios:
Orientados al usuario
Orientados al sistema

Prioridades
Polticas de planificacin

Polticas de planificacin
Definiciones:
Funcin de seleccin:
cmo seleccionar siguiente proceso a ejecutar

Modo de seleccin:
momento en que se aplica la funcin de seleccin

10

gjhgjh

Polticas de planificacin
Funcin de seleccin: cmo seleccionar
siguiente proceso a ejecutar
Prioridades
Necesidades de recursos
Caractersticas de ejecucin:
tiempo en el sistema, tiempo ejecutado, tiempo total
estimado

Modo de decisin

No preferente, no expulsivo (poltica


apropiativa):

Proceso pasa a Ejecucin => ejecuta hasta que:

Termina
Se bloquea en espera de E/S
Solicita servicio de SO

Preferente, expulsivo (poltica no


apropiativa):

Proceso en ejecucin puede ser interrumpido y pasado a Listo


por el SO por:

Nuevo proceso
Proceso pasa de bloqueado a listo (interrupcin)
Interrupcin de reloj

11

gjhgjh

Modo de decisin: comparacin

El modo preferente, expulsivo (apropiativa):

Mejor servicio: impiden a un proceso


monopolizar el procesador.
Mayor coste: ms cambios de contexto.

Tipos de polticas de planif.

FCFS (First-come, First-served)


Turno rotatorio (Round-Robin)
SPN (Shortest Process Next)
SRT (Shortest Remaining Time)
HRRN (Highest Response Ratio Next)
Realimentacin
Reparto equitativo
Planificacin garantizada

12

gjhgjh

Ejemplo (polticas de planif.)

Proceso

Instante de llegada Tiempo de servicio

FCFS (FIFO)

Cada proceso se incorpora a la cola de listos.


Cuando el proceso actual cesa su ejecucin,se
selecciona el proceso que lleve ms t. listo.

Funcin de seleccin: mximo tiempo en la cola


de listos
Modo de decisin: No preferente
0

Proceso

Llegada

10

15

20

Servicio

A
B
C
D
E

13

gjhgjh

FCFS
Es tericamente justo, pero poco eficiente en
tiempo de espera medio.
Penaliza los procesos cortos.
1
P1
P2
P3
T 0
1

80

90

100
5

P1
P2
P3

FCFS
Efecto convoy:
Dominio de procesos con carga de CPU frente a
los que hacen uso de E/S. Posible uso ineficiente
no solo de CPU sino tambin de los dispositivos de
E/S.
1
P1
P2
P3
1
P1
P2
P3

14

gjhgjh

FCFS
Por s misma, no til para
monoprocesadores
Planificacin efectiva combinada con colas
de prioridades
Planificacin realimentada

FCFS
Proceso

Llegada

Rfaga CPU

A
B
C
D
E

0
2
4
6
8

3
6
4
5
2

10

15

E/S
2
4
5
2

20

Rfaga CPU

2
4
1
2

25

30

A
B
C
D
E

En ejecucin
Listo
En espera de E-S

Terminado
Sin Cargar

15

gjhgjh

FCFS
Proceso

Llegada

Rfaga CPU

A
B
C
D
E

0
2
4
6
8

3
6
4
5
2

10

15

E/S
2
4
5
2

20

Rfaga CPU

2
4
1
2

25

30

A
B
C
D
E

En ejecucin
Listo
En espera de E-S

Terminado
Sin Cargar

FCFS
Proceso

Llegada

Rfaga CPU

A
B
C
D
E

0
2
4
6
8

3
6
4
5
2

10

15

E/S
2
4
5
2

20

Rfaga CPU

2
4
1
2

25

30

A
B
C
D
E

En ejecucin
Listo
En espera de E-S

Terminado
Sin Cargar

16

gjhgjh

FCFS
Proceso

Llegada

Rfaga CPU

A
B
C
D
E

0
2
4
6
8

3
6
4
5
2

10

15

E/S
2
4
5
2

20

Rfaga CPU

2
4
1
2

25

30

A
B
C
D
E

En ejecucin
Listo
En espera de E-S

Terminado
Sin Cargar

FCFS
Proceso

Llegada

Rfaga CPU

A
B
C
D
E

0
2
4
6
8

3
6
4
5
2

10

15

E/S
2
4
5
2

20

Rfaga CPU

2
4
1
2

25

30

A
B
C
D
E

En ejecucin
Listo
En espera de E-S

Terminado
Sin Cargar

17

gjhgjh

FCFS
Proceso

Llegada

Rfaga CPU

A
B
C
D
E

0
2
4
6
8

3
6
4
5
2

10

15

E/S
2
4
5
2

20

Rfaga CPU

2
4
1
2

25

30

A
B
C
D
E

En ejecucin
Listo
En espera de E-S

Terminado
Sin Cargar

FCFS
Proceso

Llegada

Rfaga CPU

A
B
C
D
E

0
2
4
6
8

3
6
4
5
2

10

15

E/S
2
4
5
2

20

Rfaga CPU

2
4
1
2

25

30

A
B
C
D
E

En ejecucin
Listo
En espera de E-S

Terminado
Sin Cargar

18

gjhgjh

FCFS
Proceso

Llegada

Rfaga CPU

A
B
C
D
E

0
2
4
6
8

3
6
4
5
2

10

15

E/S
2
4
5
2

20

Rfaga CPU

2
4
1
2

25

30

A
B
C
D
E

En ejecucin
Listo
En espera de E-S

Terminado
Sin Cargar

FCFS
Proceso

Llegada

Rfaga CPU

A
B
C
D
E

0
2
4
6
8

3
6
4
5
2

10

15

E/S
2
4
5
2

20

Rfaga CPU

2
4
1
2

25

30

A
B
C
D
E

En ejecucin
Listo
En espera de E-S

Terminado
Sin Cargar

19

gjhgjh

FCFS
Proceso

llegada

Rfaga CPU

A
B
C
D
E

0
2
4
6
8

3
6
4
5
2

10

15

20

E/S
2
4
5
2
25

rfaga CPU

2
4
1
2
30

35

40

45

A
B
C
D
E

En ejecucin
Listo
En espera de E-S

Terminado
Sin Cargar

FCFS
Proceso

Llegada

Rfaga CPU

A
B
C
D
E

0
2
4
6
8

3
6
4
5
2

10

15

20

E/S
2
4
5
2
25

Rfaga CPU

2
4
1
2
30

35

40

45

A
B
C
D
E

1. Uso de CPU: 29 0 = 29/29


2. Rendimiento: 5/29
3. Tiempo de retorno (medio): (15 + 7 + 22 + 23 + 20) / 5 = 82 / 5 = 17.4
4. Tiempo de espera/respuesta (medio): (8 + 1 + 5 + 5 + 9 + 3 + 12 + 2) / 5 = 9

20

gjhgjh

Turno rotatorio (Round Robin)

Turno rotatorio (Round Robin)

Reduce penalizacin a procesos cortos


Apropiacin dependiente de un reloj
Se determina un periodo de tiempo (cuanto,
q) de uso del procesador

Funcin de seleccin: constante


Modo de decisin: preferente (cada q)
0

Proceso Llegada

10

15

20

Servicio

A
B
C
D
E

21

gjhgjh

Round Robin
Peridicamente, se genera interrupcin de
reloj
Diseado especficamente para sistemas de
tiempo compartido
Se asigna un cuanto de tiempo (10-100 ms.) de
igual duracin a todos los procesos listos para
ser ejecutados

Cuando se genera la interrupcin:


El proceso en ejecucin pasa a la cola de Listos
Se selecciona el siguiente trabajo de la cola
(FCFS)

Round Robin (q=3)

P1
P2
P3
P4
T

0 1 2 3

12

1516

19

21 23

26

22

gjhgjh

Round Robin
Parmetro crtico de diseo: longitud del cuanto
Si muy pequeo, procesos cortos pasan rpidamente,
pero sobrecarga del procesador (gestin interrupciones
de reloj, planificacin, expedicin)
Si muy grande, degenera en FCFS
Referencia: debe ser algo mayor que el tiempo necesario
para una interaccin normal
Efectivo en sistemas de carcter general, tiempo
compartido, procesos de transacciones
Favorece procesos con carga de procesador vs. procesos
con carga de E/S (stos no aprovechan el cuanto).

Round Robin q=1


Proceso

llegada

Rfaga CPU

A
B
C
D
E

0
2
4
6
8

3
6
4
5
2

E/S
2
4
5
2

rfaga CPU

2
4
1
2

A
B
C
D
E

En ejecucin
Listo
Sin cargar

23

gjhgjh

Round Robin q=1


Proceso

llegada

Rfaga CPU

A
B
C
D
E

0
2
4
6
8

3
6
4
5
2

E/S
2
4
5
2

rfaga CPU

2
4
1
2

A
B
C
D
E

En ejecucin
Listo
Sin cargar

Round Robin q=1


Proceso

llegada

Rfaga CPU

A
B
C
D
E

0
2
4
6
8

3
6
4
5
2

E/S
2
4
5
2

rfaga CPU

2
4
1
2

A
B
C
D
E
A

En ejecucin
Listo
Sin cargar

24

gjhgjh

Round Robin q=1


Proceso

llegada

Rfaga CPU

A
B
C
D
E

0
2
4
6
8

3
6
4
5
2

E/S
2
4
5
2

rfaga CPU

2
4
1
2

A
B
C
D
E
AB

En ejecucin
Listo
Sin cargar

Round Robin q=1


Proceso

llegada

Rfaga CPU

A
B
C
D
E

0
2
4
6
8

3
6
4
5
2

E/S
2
4
5
2

rfaga CPU

2
4
1
2

5
A
B
C
D
E
AB C

En ejecucin
Listo
En espera de E-S

Terminado
Sin Cargar

25

gjhgjh

Round Robin q=1


Proceso

llegada

Rfaga CPU

A
B
C
D
E

0
2
4
6
8

3
6
4
5
2

E/S
2
4
5
2

rfaga CPU

2
4
1
2

5
A
B
C
D
E
AB CB

En ejecucin
Listo
En espera de E-S

Terminado
Sin Cargar

Round Robin q=1


Proceso

llegada

Rfaga CPU

A
B
C
D
E

0
2
4
6
8

3
6
4
5
2

E/S
2
4
5
2

rfaga CPU

2
4
1
2

5
A
B
C
D
E
AB CBA
D
C

En ejecucin
Listo
En espera de E-S

Terminado
Sin Cargar

26

gjhgjh

Round Robin q=1


Proceso

llegada

Rfaga CPU

A
B
C
D
E

0
2
4
6
8

3
6
4
5
2

E/S
2
4
5
2

rfaga CPU

2
4
1
2

5
A
B
C
D
E
AB C B AD
DC
CB

En ejecucin
Listo
En espera de E-S

Terminado
Sin Cargar

Round Robin q=1


Proceso

llegada

Rfaga CPU

A
B
C
D
E

0
2
4
6
8

3
6
4
5
2

E/S
2
4
5
2

rfaga CPU

2
4
1
2

5
A
B
C
D
E
AB C B ADC
DCB
CBE
A

En ejecucin
Listo
En espera de E-S

Terminado
Sin Cargar

27

gjhgjh

Round Robin q=1


Proceso

llegada

Rfaga CPU

A
B
C
D
E

0
2
4
6
8

3
6
4
5
2

E/S
2
4
5
2

rfaga CPU

2
4
1
2

10

A
B
C
D
E
AB C B ADC B
DCBE
CBEA
AD

En ejecucin
Listo
En espera de E-S

Terminado
Sin Cargar

Round Robin q=1


Proceso

llegada

Rfaga CPU

A
B
C
D
E

0
2
4
6
8

3
6
4
5
2

E/S
2
4
5
2

rfaga CPU

2
4
1
2

10

A
B
C
D
E
AB C B ADC B E
DCBEA
CBEAD
ADC

En ejecucin
Listo
En espera de E-S

Terminado
Sin Cargar

28

gjhgjh

Round Robin q=1


Proceso

llegada

Rfaga CPU

A
B
C
D
E

0
2
4
6
8

3
6
4
5
2

10

15

20

E/S
2
4
5
2
25

rfaga CPU

2
4
1
2
30

35

40

45

A
B
C
D
E
AB C B ADC B E ADC B E D C
D C B E AD C B E D C B
C B E A DC B E D C B
ADCBE

En ejecucin
Listo
En espera de E-S

Orden encolar (RR):


Vuelta de E/S
Nuevo
Acaba de ejecutarse (RR)

Terminado
Sin Cargar

Round Robin q=1


Proceso

llegada

Rfaga CPU

A
B
C
D
E

0
2
4
6
8

3
6
4
5
2

10

15

20

E/S
2
4
5
2
25

rfaga CPU

2
4
1
2
30

35

40

45

A
B
C
D
E
AB C B ADC B E ADC B E D CB
D C B E AD C B E D C B D
C B E A DC B E D C B
ADCBE

En ejecucin
Listo
En espera de E-S

Terminado

Orden encolar (RR):


Vuelta de E/S
Nuevo
Acaba de ejecutarse (RR)

Sin Cargar

29

gjhgjh

Round Robin q=1


Proceso

llegada

Rfaga CPU

A
B
C
D
E

0
2
4
6
8

3
6
4
5
2

10

15

20

E/S
2
4
5
2
25

rfaga CPU

2
4
1
2
30

35

40

45

A
B
C
D
E
AB C B ADC B E ADC B E D CB D
D C B E AD C B E D C B D E
C B E A DC B E D C B
ADCBE

En ejecucin
Listo
En espera de E-S

Orden encolar (RR):


Vuelta de E/S
Nuevo
Acaba de ejecutarse (RR)

Terminado
Sin Cargar

Round Robin q=1


Proceso

llegada

Rfaga CPU

A
B
C
D
E

0
2
4
6
8

3
6
4
5
2

10

15

20

E/S
2
4
5
2
25

rfaga CPU

2
4
1
2
30

35

40

45

A
B
C
D
E
AB C B ADC B E ADC B E D CB DE
D C B E AD C B E D C B D E
C B E A DC B E D C B
ADCBE

En ejecucin
Listo
En espera de E-S

Terminado

Orden encolar (RR):


Vuelta de E/S
Nuevo
Acaba de ejecutarse (RR)

Sin Cargar

30

gjhgjh

Round Robin q=1


Proceso

llegada

Rfaga CPU

A
B
C
D
E

0
2
4
6
8

3
6
4
5
2

10

15

20

E/S
2
4
5
2
25

rfaga CPU

2
4
1
2
30

35

40

45

A
B
C
D
E
AB C B ADC B E ADC B E D CB DE D
D C B E AD C B E D C B D E
C B E A DC B E D C B
ADCBE

En ejecucin
Listo
En espera de E-S

Orden encolar (RR):


Vuelta de E/S
Nuevo
Acaba de ejecutarse (RR)

Terminado
Sin Cargar

Round Robin q=1


Proceso

llegada

Rfaga CPU

A
B
C
D
E

0
2
4
6
8

3
6
4
5
2

10

15

20

E/S
2
4
5
2
25

rfaga CPU

2
4
1
2
30

35

40

45

A
B
C
D
E
AB C B ADC B E ADC B E D CB DE DE
D C B E AD C B E D C B D E
C B E A DC B E D C B
ADCBE

En ejecucin
Listo
En espera de E-S

Terminado

Orden encolar (RR):


Vuelta de E/S
Nuevo
Acaba de ejecutarse (RR)

Sin Cargar

31

gjhgjh

Round Robin q=1


Proceso

llegada

Rfaga CPU

A
B
C
D
E

0
2
4
6
8

3
6
4
5
2

10

15

20

E/S
2
4
5
2
25

rfaga CPU

2
4
1
2
30

35

40

45

A
B
C
D
E
AB C B ADC B E ADC B E D CB DE DE C
D C B E AD C B E D C B D E
C B E A DC B E D C B
ADCBE

En ejecucin
Listo
En espera de E-S

Orden encolar (RR):


Vuelta de E/S
Nuevo
Acaba de ejecutarse (RR)

Terminado
Sin Cargar

Round Robin q=1


Proceso

llegada

Rfaga CPU

A
B
C
D
E

0
2
4
6
8

3
6
4
5
2

10

15

20

E/S
2
4
5
2
25

rfaga CPU

2
4
1
2
30

35

40

45

A
B
C
D
E
AB C B ADC B E ADC B E D C B DE DE C
D C B E AD C B E D C B D E
C B E A DC B E D C B
ADCBE

En ejecucin
Listo
En espera de E-S

Terminado

Orden encolar (RR):


Vuelta de E/S
Nuevo
Acaba de ejecutarse (RR)

Sin Cargar

32

gjhgjh

Round Robin q=1


Proceso

llegada

Rfaga CPU

A
B
C
D
E

0
2
4
6
8

3
6
4
5
2

10

15

20

E/S
2
4
5
2
25

rfaga CPU

2
4
1
2
30

35

40

45

A
B
C
D
E
AB C B ADC B E ADC B E D C B DE DE C
D C B E AD C B E D C B D E
C B E A DC B E D C B

1. Uso de CPU: 29 - 0 = 29/29


2. Rendimiento: 5/29
3. Tiempo de retorno (medio): (13 + 18 + 24 + 23 + 16) / 5 = 94 / 5 = 18.8
4. Tiempo de espera/respuesta (medio): (6 + 12 + 12 + 12 + 10) / 5 = 10.4

Virtual Round Robin (VRR)


Procesos con carga E/S vs. procesos con carga CPU
con Round Robin:
Procesos con carga E/S tienden a rendimiento pobre
=> desaprovechamiento de recursos E/S

VRR: Cola de Listos (FCFS) y una cola Auxiliar


(FCFS) con mayor prioridad
Procesos que dejan de estar bloqueados por E/S
se desplazan a cola Auxiliar
Procesos de cola Auxiliar se ejecutan q-e
(apuran el cuanto)
e = tiempo de ejecucin la ltima vez (antes de espera E/S)

33

gjhgjh

SPN (1 el proceso ms corto)

Se selecciona el proceso con menor tiempo


esperado de ejecucin.
Un proceso corto salta a la cabeza de la cola,
sobrepasando a trabajos largos.

Funcin de seleccin: mnimo tiempo total de servicio


Modo de decisin: No expulsivo (no preferente)
5

0
Proceso

Llegada

10

15

20

Servicio

A
B
C
D
E

SPN
Estimaciones:
Trabajos por lotes o repetitivos:
estimacin del programador o estadsticas
en funcin de tiempos de ejecucin pasados
=> miramos suma de rfagas en la tabla

Si procesos interactivos
en lugar de tiempo de trabajo, tiempo de cada rfaga
(se supone que siguen una distribucin uniforme)
=> calculamos en funcin de rfagas pasadas
(media o con alfa) Sn+1 = tn + (1- ) Sn
0< < 1

Modo de decisin: no expulsivo

34

gjhgjh

SPN
Normalmente se utiliza promedio exponencial:

Sn+1 = tn + (1- ) Sn
0< < 1
S1 : valor pronosticado (no calculado). Puede
eliminarse en sucesivos clculos o sustituirse por T1
Si tiende a 1 se reflejan rpidamente los
cambios, pero si son efectos aislados desestabilizan
la media ms tiempo.
Conviene dar ms peso a los valores ms recientes

SPN
1 n t
1 tn
1 n-1t
1 tn n-1 1 n-1t
Sn+1 =
=
+ i=1 i =
+
n i=1 i
n
n
n
n n-1 i=1 i
Sn =

1 n-1
t
n-1 i=1 i
Sn+1 =

1 tn n-1
+
S
n
n n

Mismo peso a
todos los casos

35

gjhgjh

SPN (1 el proceso ms corto)


Se selecciona el proceso con menor tiempo
esperado de ejecucin.
Un proceso corto salta a la cabeza de la cola,
sobrepasando a trabajos largos.

Funcin de seleccin: mnimo tiempo total de servicio


Modo de decisin: No expulsivo (no preferente)
5

0
Proceso

Llegada

10

15

20

Servicio

A
B
C
D
E

SPN (Primero el proceso ms corto)


Proceso

llegada

Rfaga CPU

A
B
C
D
E

0
2
4
6
8

3
6
4
5
2

E/S
2
4
5
2

Rfaga CPU

2
4
1
2

Suma = 5
Suma = 6
Suma = 8
Suma = 6
Suma = 4

A
B
C
D
E

En ejecucin
Listo
Sin cargar

(proceso por lotes)

36

gjhgjh

SPN (Primero el proceso ms corto)


Proceso

llegada

Rfaga CPU

A
B
C
D
E

0
2
4
6
8

3
6
4
5
2

E/S
2
4
5
2

Rfaga CPU

2
4
1
2

Suma = 5
Suma = 6
Suma = 8
Suma = 6
Suma = 4

A
B
C
D
E

En ejecucin
Listo
Sin cargar

(proceso por lotes)

SPN (Primero el proceso ms corto)


Proceso

llegada

Rfaga CPU

A
B
C
D
E

0
2
4
6
8

3
6
4
5
2

E/S
2
4
5
2

Rfaga CPU

2
4
1
2

Suma A = 5
Suma B = 6
Suma C = 8
Suma D = 6
Suma E = 4

5
A
B
C
D
E

(proceso por lotes)


En ejecucin
Listo
En espera de E-S

Terminado
Sin Cargar

37

gjhgjh

SPN (Primero el proceso ms corto)


Proceso

llegada

Rfaga CPU

A
B
C
D
E

0
2
4
6
8

3
6
4
5
2

E/S
2
4
5
2

Rfaga CPU

2
4
1
2

Suma A = 5
Suma B = 6
Suma C = 8
Suma D = 6
Suma E = 4

10

A
B
C
D
E

(proceso por lotes)


En ejecucin
Listo
En espera de E-S

Terminado
Sin Cargar

SPN (Primero el proceso ms corto)


Proceso

llegada

Rfaga CPU

A
B
C
D
E

0
2
4
6
8

3
6
4
5
2

E/S
2
4
5
2

Rfaga CPU

2
4
1
2

Suma A = 5
Suma B = 6
Suma C = 8
Suma D = 6
Suma E = 4

10

A
B
C
D
E

E tmb. pasa a cola de listos


(proceso por lotes)
En ejecucin
Listo
En espera de E-S

Terminado
Sin Cargar

38

gjhgjh

SPN (Primero el proceso ms corto)


Proceso

llegada

Rfaga CPU

A
B
C
D
E

0
2
4
6
8

3
6
4
5
2

10

E/S
2
4
5
2

Rfaga CPU

2
4
1
2

Suma A = 5
Suma B = 6
Suma C = 8
Suma D = 6
Suma E = 4

15

A
B
C
D
E

(proceso por lotes)


En ejecucin
Listo
En espera de E-S

Terminado
Sin Cargar

SPN (Primero el proceso ms corto)


Proceso

llegada

Rfaga CPU

A
B
C
D
E

0
2
4
6
8

3
6
4
5
2

10

15

E/S
2
4
5
2

Rfaga CPU

2
4
1
2

Suma A = 5
Suma B = 6
Suma C = 8
Suma D = 6
Suma E = 4

20

A
B
C
D
E

(proceso por lotes)


En ejecucin
Listo
En espera de E-S

Terminado
Sin Cargar

39

gjhgjh

SPN (Primero el proceso ms corto)


Proceso

llegada

Rfaga CPU

A
B
C
D
E

0
2
4
6
8

3
6
4
5
2

10

15

E/S
2
4
5
2

Rfaga CPU

2
4
1
2

Suma A = 5
Suma B = 6
Suma C = 8
Suma D = 6
Suma E = 4

20

A
B
C
D
E

(proceso por lotes)


En ejecucin
Listo
En espera de E-S

Terminado
Sin Cargar

SPN (Primero el proceso ms corto)


Proceso

llegada

Rfaga CPU

A
B
C
D
E

0
2
4
6
8

3
6
4
5
2

10

15

20

E/S
2
4
5
2

Rfaga CPU

2
4
1
2

Suma A = 5
Suma B = 6
Suma C = 8
Suma D = 6
Suma E = 4

25

A
B
C
D
E

(proceso por lotes)


En ejecucin
Listo
En espera de E-S

Terminado
Sin Cargar

40

gjhgjh

SPN (Primero el proceso ms corto)


Proceso

llegada

Rfaga CPU

A
B
C
D
E

0
2
4
6
8

3
6
4
5
2

10

15

20

E/S
2
4
5
2

Rfaga CPU

2
4
1
2

Suma A = 5
Suma B = 6
Suma C = 8
Suma D = 6
Suma E = 4

25

A
B
C
D
E

(proceso por lotes)


En ejecucin
Listo
En espera de E-S

Terminado
Sin Cargar

SPN (Primero el proceso ms corto)


Proceso

llegada

Rfaga CPU

A
B
C
D
E

0
2
4
6
8

3
6
4
5
2

10

15

20

E/S
2
4
5
2
25

Rfaga CPU

2
4
1
2
30

35

Suma A = 5
Suma B = 6
Suma C = 8
Suma D = 6
Suma E = 4
40

45

A
B
C
D
E

(proceso por lotes)


En ejecucin
Listo
En espera de E-S

Terminado
Sin Cargar

41

gjhgjh

SPN (Primero el proceso ms corto)


Proceso

Llegada

Rfaga CPU

A
B
C
D
E

0
2
4
6
8

3
6
4
5
2

10

15

20

E/S
2
4
5
2
25

30

Rfaga CPU

2
4
1
2
35

Suma A = 5
Suma B = 6
Suma C = 8
Suma D = 6
Suma E = 4
40

45

A
B
C
D
E

(proceso por lotes)


1. Uso de CPU: 32 - 3 => 29/32
2. Rendimiento: 5/32
3. Tiempo de retorno (medio): (13 + 7 + 28 + 20 + 7) / 5 = 75 / 5 = 15
4. Tiempo de espera/respuesta (medio): (6 + 1 + 16 + 9 + 1) / 5 = 33 / 5 = 6.6

SPN(Primero el proceso ms corto)


Proceso

Llegada

Rfaga CPU

A
B
C
D
E

0
2
4
6
8

3
6
4
5
2

10

15

20

E/S
2
4
5
2
25

30

Rfaga CPU

2
4
1
2
35

40

45

A
B
C
D
E

(proceso interactivo)
Varias formas para estimar tiempo inicial de proceso nuevo:
- No sabemos nada sobre las rfagas: S1 = 0 (los procesos nuevos son preferentes)
- Tomando S1= T1 (problema: hay que saber el T1)
- Tomando S1 = CTE (ej: media de las rfagas de procesos interactivos anteriores
en el sistema)

42

gjhgjh

SPN(Primero el proceso ms corto)


Proceso

Llegada

Rfaga CPU

A
B
C
D
E

0
2
4
6
8

3
6
4
5
2

10

15

20

E/S
2
4
5
2
25

30

Rfaga CPU

2
4
1
2
35

Est. A = 3
Est. B = 0
Est. C = 0
Est. D = 0
Est. E = 0
40

45

A
B
C
D
E

S1 = 0

(proceso interactivo)

SPN(Primero el proceso ms corto)


Proceso

Llegada

Rfaga CPU

A
B
C
D
E

0
2
4
6
8

3
6
4
5
2

10

15

20

E/S
2
4
5
2
25

30

Rfaga CPU

2
4
1
2
35

Est. A = 3
Est. B = 6
Est. C = 4
Est. D = 0
Est. E = 0
40

45

A
B
C
D
E

(proceso interactivo)

S1 = 0

43

gjhgjh

SPN(Primero el proceso ms corto)


Proceso

Llegada

Rfaga CPU

A
B
C
D
E

0
2
4
6
8

3
6
4
5
2

10

15

20

E/S
2
4
5
2
25

30

Rfaga CPU

2
4
1
2
35

Est. A = 3
Est. B = 6
Est. C = 4
Est. D = 5
Est. E = 0
40

45

A
B
C
D
E

S1 = 0

(proceso interactivo)

SPN(Primero el proceso ms corto)


Proceso

Llegada

Rfaga CPU

A
B
C
D
E

0
2
4
6
8

3
6
4
5
2

10

15

20

E/S
2
4
5
2
25

30

Rfaga CPU

2
4
1
2
35

Est. A = 3
Est. B = 6
Est. C = 4
Est. D = 5
Est. E = 2
40

45

A
B
C
D
E

(proceso interactivo)

S1 = 0

44

gjhgjh

SPN(Primero el proceso ms corto)


Proceso

Llegada

Rfaga CPU

A
B
C
D
E

0
2
4
6
8

3
6
4
5
2

10

15

20

E/S
2
4
5
2
25

30

Rfaga CPU

2
4
1
2
35

Est. A = 3
Est. B = 6
Est. C = 4
Est. D = 5
Est. E = 2
40

45

A
B
C
D
E

S1 = 0

(proceso interactivo)

SPN(Primero el proceso ms corto)


Proceso

Llegada

Rfaga CPU

A
B
C
D
E

0
2
4
6
8

3
6
4
5
2

10

15

20

E/S
2
4
5
2
25

30

Rfaga CPU

2
4
1
2
35

Est. A = 3
Est. B = 6
Est. C = 4
Est. D = 5
Est. E = 2
40

45

A
B
C
D
E

(proceso interactivo)

S1 = 0

45

gjhgjh

SPN(Primero el proceso ms corto)


Proceso

Llegada

Rfaga CPU

A
B
C
D
E

0
2
4
6
8

3
6
4
5
2

10

15

20

E/S
2
4
5
2
25

30

Rfaga CPU

2
4
1
2
35

Est. A = 3
Est. B = 6
Est. C = 4
Est. D = 5
Est. E = 2
40

45

A
B
C
D
E

S1 = 0

(proceso interactivo)

SPN(Primero el proceso ms corto)


Proceso

Llegada

Rfaga CPU

A
B
C
D
E

0
2
4
6
8

3
6
4
5
2

10

15

20

E/S
2
4
5
2
25

30

Rfaga CPU

2
4
1
2
35

Est.ini A = 0
Est.ini B = 0
Est.ini C = 0
Est.ini D = 0
Est.ini E = 0
40

45

A
B
C
D
E

(proceso interactivo)

S1 = 0

1. Uso de CPU: 29 => 29/29


2. Rendimiento: 5/29
3. Tiempo de retorno (medio): (22 + 7 + 24 + 24 + 12) / 5 = 89 / 5 = 17.8
4. Tiempo de espera/respuesta (medio): (15+ 1 + 12 + 12 + 10) / 5 = 50 / 5 = 10.0

46

gjhgjh

SPN (Primero el proceso ms corto)


Mejora rendimiento global:
t. de retorno y t. de espera/respuesta
Posibilidad de inanicin para los procesos
largos
No conveniente para tiempo compartido o
procesamiento de transacciones (por la
ausencia de apropiacin)
Se reduce la previsibilidad de los
procesos largos (puede variar mucho de
una vez a otra)

SRT (Menor tiempo restante)


Versin preferente de SPN: elige el proceso que le
queda menos tiempo esperado de ejecucin
Cada vez que llega un proceso nuevo a la cola de
listos se ejecuta el planificador.
Funcin de seleccin: mnimo tiempo restante
de ejecucin (t. total t. consumido)
Modo de decisin: Preferente en llegada a listos
5
Proceso

Llegada

Servicio

10

15

20

A
B
C
D
E

47

gjhgjh

SRT (Menor tiempo restante)


Problema: Cmo saber el tiempo esperado?
Estimar igual que en SPN

SRT (Menor tiempo restante)


Proceso

llegada

Rfaga CPU

A
B
C
D
E

0
2
4
6
8

3
6
4
5
2

E/S
2
4
5
2

rfaga CPU

2
4
1
2

Trestante= 3
Trestante= 6
Sin Cargar
Sin Cargar
Sin Cargar

A
B
C
D
E

En ejecucin
Listo
Sin cargar

(proceso por lotes)

48

gjhgjh

SRT (Menor tiempo restante)


Proceso

llegada

Rfaga CPU

A
B
C
D
E

0
2
4
6
8

3
6
4
5
2

E/S
2
4
5
2

rfaga CPU

2
4
1
2

Trestante= 2
Trestante= 5
Trestante= 8
Sin Cargar
Sin Cargar

A
B
C
D
E

(proceso por lotes)


En ejecucin
Listo
En espera de E-S

Terminado
Sin Cargar

SRT (Menor tiempo restante)


Proceso

llegada

Rfaga CPU

A
B
C
D
E

0
2
4
6
8

3
6
4
5
2

E/S
2
4
5
2

rfaga CPU

2
4
1
2

Trestante= 2
Trestante= 4
Trestante= 8
Sin Cargar
Sin Cargar

5
A
B
C
D
E

(proceso por lotes)


En ejecucin
Listo
En espera de E-S

Terminado
Sin Cargar

49

gjhgjh

SRT (Menor tiempo restante)


Proceso

llegada

Rfaga CPU

A
B
C
D
E

0
2
4
6
8

3
6
4
5
2

E/S
2
4
5
2

rfaga CPU

2
4
1
2

Trestante= 1
Trestante= 4
Trestante= 8
Trestante= 6
Sin Cargar

5
A
B
C
D
E

(proceso por lotes)


En ejecucin
Listo
En espera de E-S

Terminado
Sin Cargar

SRT (Menor tiempo restante)


Proceso

llegada

Rfaga CPU

A
B
C
D
E

0
2
4
6
8

3
6
4
5
2

10

15

20

E/S
2
4
5
2
25

30

rfaga CPU

2
4
1
2
35

Termin
Trestante= 4
Trestante= 8
Trestante= 6
Sin Cargar
40

45

A
B
C
D
E

(proceso por lotes)


En ejecucin
Listo
En espera de E-S

Terminado
Sin Cargar

50

gjhgjh

SRT(Menor tiempo restante)


Proceso

llegada

Rfaga CPU

A
B
C
D
E

0
2
4
6
8

3
6
4
5
2

E/S
2
4
5
2

rfaga CPU

2
4
1
2

Termin
Trestante= 3
Trestante= 8
Trestante= 6
Trestante= 4

5
A
B
C
D
E

(proceso por lotes)


En ejecucin
Listo
En espera de E-S

Terminado
Sin Cargar

SRT(Menor tiempo restante)


Proceso

llegada

Rfaga CPU

A
B
C
D
E

0
2
4
6
8

3
6
4
5
2

E/S
2
4
5
2

rfaga CPU

2
4
1
2

Termin
Trestante= 2
Trestante= 8
Trestante= 6
Trestante= 4

10

A
B
C
D
E

(proceso por lotes)


En ejecucin
Listo
En espera de E-S

Terminado
Sin Cargar

51

gjhgjh

SRT(Menor tiempo restante)


Proceso

llegada

Rfaga CPU

A
B
C
D
E

0
2
4
6
8

3
6
4
5
2

E/S
2
4
5
2

rfaga CPU

2
4
1
2

Termin
Termin

Trestante= 8
Trestante= 6
Trestante= 4

10

A
B
C
D
E

(proceso por lotes)


En ejecucin
Listo
En espera de E-S

Terminado
Sin Cargar

SRT (Menor tiempo restante)


Proceso

llegada

Rfaga CPU

A
B
C
D
E

0
2
4
6
8

3
6
4
5
2

E/S
2
4
5
2

rfaga CPU

2
4
1
2

Termin
Termin

Trestante= 8
Trestante= 6
Trestante= 2

10

A
B
C
D
E

(proceso por lotes)


En ejecucin
Listo
En espera de E-S

Terminado
Sin Cargar

52

gjhgjh

SRT (Menor tiempo restante)


Proceso

llegada

Rfaga CPU

A
B
C
D
E

0
2
4
6
8

3
6
4
5
2

10

E/S
2
4
5
2

rfaga CPU

2
4
1
2

Termin
Termin

Trestante= 8
Trestante= 4
Trestante= 2

15

A
B
C
D
E

(proceso por lotes)


En ejecucin
Listo
En espera de E-S

Terminado
Sin Cargar

SRT (Menor tiempo restante)


Proceso

llegada

Rfaga CPU

A
B
C
D
E

0
2
4
6
8

3
6
4
5
2

10

E/S
2
4
5
2

rfaga CPU

2
4
1
2

Termin
Termin

Trestante= 8
Trestante= 4
Termin

15

A
B
C
D
E

(proceso por lotes)


En ejecucin
Listo
En espera de E-S

Terminado
Sin Cargar

53

gjhgjh

SRT (Menor tiempo restante)


Proceso

llegada

Rfaga CPU

A
B
C
D
E

0
2
4
6
8

3
6
4
5
2

10

15

E/S
2
4
5
2

rfaga CPU

2
4
1
2

Termin
Termin

Trestante= 8
Trestante= 1
Termin

20

A
B
C
D
E

(proceso por lotes)


En ejecucin
Listo
En espera de E-S

Terminado
Sin Cargar

SRT (Menor tiempo restante)


Proceso

llegada

Rfaga CPU

A
B
C
D
E

0
2
4
6
8

3
6
4
5
2

10

15

20

E/S
2
4
5
2
25

30

rfaga CPU

2
4
1
2
35

40

45

A
B
C
D
E

(proceso por lotes)


En ejecucin
Listo
En espera de E-S

Terminado
Sin Cargar

54

gjhgjh

SRT (Menor tiempo restante)


Proceso

llegada

Rfaga CPU

A
B
C
D
E

0
2
4
6
8

3
6
4
5
2

10

15

20

E/S
2
4
5
2
25

30

rfaga CPU

2
4
1
2
35

40

45

A
B
C
D
E

(proceso por lotes)


1. Uso de CPU: 32 - 3 = 29/32
2. Rendimiento: 5/32
3. Tiempo de retorno (medio): (7 + 9 + 28 + 20 + 9) / 5 = 73 / 5 = 14.6
4. Tiempo de espera (medio): (0 + 3 + 16 + 9 + 3) / 5 = 31 / 5 = 6.2

SRT (Menor Tiempo Restante)


Proceso

Llegada

Rfaga CPU

A
B
C
D
E

0
2
4
6
8

3
6
4
5
2

E/S
2
4
5
2

Rfaga CPU

2
4
1
2

Procesos interactivos:

S1 debe ser estimado


por ejemplo, podemos tomar como estimacin para la primera
rfaga la media histrica de rfagas de procesos interactivos
en el sistema. Supongamos S1 = 3

55

gjhgjh

SRT (Menor Tiempo Restante)


Proceso

Llegada

Rfaga CPU

A
B
C
D
E

0
2
4
6
8

3
6
4
5
2

10

15

20

E/S
2
4
5
2
25

30

Rfaga CPU

2
4
1
2
35

S1= 3, r = 1
S1= 3, r = 3
Sin Cargar
Sin Cargar
Sin Cargar
40

45

A
B
C
D
E

(proceso interactivo S1 = 3)
En ejecucin
Listo
En espera de E-S

Terminado
Sin Cargar

SRT (Menor Tiempo Restante)


Proceso

Llegada

Rfaga CPU

A
B
C
D
E

0
2
4
6
8

3
6
4
5
2

10

15

20

E/S
2
4
5
2
25

30

Rfaga CPU

2
4
1
2
35

40

S1 = 3, S2 = ?
S1 = 3, r = 3
Sin Cargar
Sin Cargar
Sin Cargar
45

A
B
C
D
E

(proceso interactivo S1 = 3)
En ejecucin
Listo
En espera de E-S

Terminado
Sin Cargar

56

gjhgjh

SRT (Menor Tiempo Restante)


Proceso

Llegada

Rfaga CPU

A
B
C
D
E

0
2
4
6
8

3
6
4
5
2

10

15

20

E/S
2
4
5
2
25

Rfaga CPU

2
4
1
2

30

35

S 1 = 3 , S2 = ?

S1 = 3, r = 2
S1 = 3, r = 3
Sin Cargar
Sin Cargar
40

45

A
B
C
D
E

(proceso interactivo S1 = 3)
En ejecucin
Listo
En espera de E-S

Terminado
Sin Cargar

SRT (Menor Tiempo Restante)


Proceso

Llegada

Rfaga CPU

A
B
C
D
E

0
2
4
6
8

3
6
4
5
2

10

15

20

E/S
2
4
5
2
25

Rfaga CPU

2
4
1
2
30

35

S2 = 3, r = 3
S1 = 3, r = 1
S1 = 3, r = 3
Sin Cargar
Sin Cargar
40

45

A
B
C
D
E

(proceso interactivo S1 = 3)
En ejecucin
Listo
En espera de E-S

Terminado
Sin Cargar

57

gjhgjh

SRT (Menor Tiempo Restante)


Proceso

Llegada

Rfaga CPU

A
B
C
D
E

0
2
4
6
8

3
6
4
5
2

10

15

20

E/S
2
4
5
2
25

Rfaga CPU

2
4
1
2
30

35

S2 = 3, r = 3
S1 = 3, r = 0
S1 = 3, r = 3
S1 = 3, r = 3
Sin Cargar
40

45

A
B
C
D
E

(proceso interactivo S1 = 3)
En ejecucin
Listo
En espera de E-S

u=7 ?

Terminado
Sin Cargar

SRT (Menor Tiempo Restante)


Proceso

Llegada

Rfaga CPU

A
B
C
D
E

0
2
4
6
8

3
6
4
5
2

10

15

20

E/S
2
4
5
2
25

Rfaga CPU

2
4
1
2
30

35

S2 = 3, r = 3
S1 = 3, r = -2
S1 = 3, r = 3
S1 = 3, r = 3
S1 = 3, r = 3
40

45

A
B
C
D
E

(proceso interactivo S1 = 3)
En ejecucin
Listo
En espera de E-S

Terminado
Sin Cargar

58

gjhgjh

SRT (Menor Tiempo Restante)


Proceso

Llegada

Rfaga CPU

A
B
C
D
E

0
2
4
6
8

3
6
4
5
2

10

15

20

E/S
2
4
5
2
25

Rfaga CPU

2
4
1
2
30

35

S2 = 3, r = 3
Terminado
S1 = 3, r = 3
S1 = 3, r = 3
S1 = 3, r = 3
40

45

A
B
C
D
E

(proceso interactivo S1 = 3)
En ejecucin
Listo
En espera de E-S

Terminado
Sin Cargar

SRT (Menor Tiempo Restante)


Proceso

Llegada

Rfaga CPU

A
B
C
D
E

0
2
4
6
8

3
6
4
5
2

10

15

20

E/S
2
4
5
2
25

Rfaga CPU

2
4
1
2
30

35

S2 = 3, r = 3
Terminado
S1 = 3, S2 = ?
S1 = 3, r = 3
S1 = 3, r = 3
40

45

A
B
C
D
E

(proceso interactivo S1 = 3)
En ejecucin
Listo
En espera de E-S

Terminado
Sin Cargar

59

gjhgjh

SRT (Menor Tiempo Restante)


Proceso

Llegada

Rfaga CPU

A
B
C
D
E

0
2
4
6
8

3
6
4
5
2

10

15

20

E/S
2
4
5
2
25

Rfaga CPU

2
4
1
2
30

35

Terminado
Terminado
S1 = 3, S2 = ?
S1 = 3, r = 3
S1 = 3, r = 3
40

45

A
B
C
D
E

(proceso interactivo S1 = 3)
En ejecucin
Listo
En espera de E-S

Terminado
Sin Cargar

SRT (Menor Tiempo Restante)


Proceso

Llegada

Rfaga CPU

A
B
C
D
E

0
2
4
6
8

3
6
4
5
2

10

15

20

E/S
2
4
5
2
25

Rfaga CPU

2
4
1
2
30

35

Terminado
Terminado
S2 = 3.8, r = 3.8
S1 = 3, r = 1
S1 = 3, r = 3
40

45

A
B
C
D
E

(proceso interactivo S1 = 3)
En ejecucin
Listo
En espera de E-S

Terminado
Sin Cargar

60

gjhgjh

SRT (Menor Tiempo Restante)


Proceso

Llegada

Rfaga CPU

A
B
C
D
E

0
2
4
6
8

3
6
4
5
2

10

15

20

E/S
2
4
5
2
25

Rfaga CPU

2
4
1
2
30

Terminado
Terminado
S2 = 3.8, r = 3.8
S1 = 3, S2 = ?
S1 = 3, r = 3

35

40

45

50

A
B
C
D
E

(proceso interactivo S1 = 3)
En ejecucin
Listo
En espera de E-S

Terminado
Sin Cargar

SRT (Menor Tiempo Restante)


Proceso

Llegada

Rfaga CPU

A
B
C
D
E

0
2
4
6
8

3
6
4
5
2

10

15

20

E/S
2
4
5
2
25

Rfaga CPU

2
4
1
2
30

Terminado
Terminado
S2 = 3.8, r = 3.8
S1 = 3, S2 = ?
S1 = 3, S2 = ?
35

40

45

A
B
C
D
E

(proceso interactivo S1 = 3)
En ejecucin
Listo
En espera de E-S

Terminado
Sin Cargar

61

gjhgjh

SRT (Menor Tiempo Restante)


Proceso

Llegada

Rfaga CPU

A
B
C
D
E

0
2
4
6
8

3
6
4
5
2

10

15

20

E/S
2
4
5
2
25

Rfaga CPU

2
4
1
2
30

Terminado
Terminado
S2 = 3.8, r = 1.8
S1 = 3, S2 = ?
S2 = 2.2, r = 2.2
35

40

45

A
B
C
D
E

(proceso interactivo S1 = 3)
En ejecucin
Listo
En espera de E-S

Terminado
Sin Cargar

SRT (Menor Tiempo Restante)


Proceso

Llegada

Rfaga CPU

A
B
C
D
E

0
2
4
6
8

3
6
4
5
2

10

15

20

E/S
2
4
5
2
25

Rfaga CPU

2
4
1
2
30

Terminado
Terminado
S2 = 3.8, r = 0.8
S2 = 4.6, r = 4.6
S2 = 2.2, r = 2.2
35

40

45

A
B
C
D
E

(proceso interactivo S1 = 3)
En ejecucin
Listo
En espera de E-S

Terminado
Sin Cargar

62

gjhgjh

SRT (Menor Tiempo Restante)


Proceso

Llegada

Rfaga CPU

A
B
C
D
E

0
2
4
6
8

3
6
4
5
2

10

15

20

E/S
2
4
5
2
25

Rfaga CPU

2
4
1
2
30

35

Terminado
Terminado
Terminado
S2 = 4.6, r = 4.6
S2 = 2.2, r = 2.2
40

45

A
B
C
D
E

(proceso interactivo S1 = 3)
En ejecucin
Listo
En espera de E-S

Terminado
Sin Cargar

SRT (Menor Tiempo Restante)


Proceso

Llegada

Rfaga CPU

A
B
C
D
E

0
2
4
6
8

3
6
4
5
2

10

15

20

E/S
2
4
5
2
25

Rfaga CPU

2
4
1
2
30

35

40

45

A
B
C
D
E

(proceso interactivo S1 = 3)
En ejecucin
Listo
En espera de E-S

Terminado
Sin Cargar

63

gjhgjh

SRT (Menor Tiempo Restante)


Proceso

Llegada

Rfaga CPU

A
B
C
D
E

0
2
4
6
8

3
6
4
5
2

10

15

20

E/S
2
4
5
2
25

Rfaga CPU

2
4
1
2
30

35

40

45

A
B
C
D
E

(proceso interactivo S1 = 3)
1. Uso de CPU: 29 => 29/29
2. Rendimiento: 5/29
3. Tiempo de retorno (medio): (15 + 7 + 22+ 22 + 20) / 5 = 86 / 5 = 17.2
4. Tiempo de espera (medio): (8 + 1 + 10 + 12 + 14) / 5 = 45 / 5 = 9.0

SRT (Menor tiempo restante)


Favorece a los procesos cortos
Ventaja: no genera interrupciones
adicionales (vs. Round Robin)
Desventaja: debe contabilizar los tiempos
de servicio transcurridos => sobrecarga

64

gjhgjh

HRRN (1 el de mayor tasa de respuesta)


Elige el proceso con la tasa de respuesta
(tiempo instantneo de retorno
normalizado) ms alta.
Funcin de seleccin: mxima tasa de respuesta
Modo de decisin: NO preferente

Tasa de
Respuesta

Tiempo consumido
esperando al
procesador

Tiempo de
servicio esperado

Tiempo de
servicio esperado

HRRN
Procesos cortos => denominador pequeo
=> tasa de respuesta alta
Envejecimiento sin servicio
t. esperando + t.esperado
=> nominador grande
t. esperado
=> tasa de respuesta alta
=> procesos largos compiten con los cortos
0
Proceso

Llegada

10

15

20

Servicio

A
B
C
D
E

65

gjhgjh

HRRN (Mayor tasa de respuesta)


Proceso

llegada

Rfaga CPU

A
B
C
D
E

0
2
4
6
8

3
6
4
5
2

10

15

20

E/S
2
4
5
2
25

30

rfaga CPU

2
4
1
2
35

40

45

A
B
C
D
E

En ejecucin
Listo
En espera de E-S

Terminado
Sin Cargar

HRRN (Mayor tasa de respuesta)


Proceso

llegada

Rfaga CPU

A
B
C
D
E

0
2
4
6
8

3
6
4
5
2

10

15

20

E/S
2
4
5
2
25

30

rfaga CPU

2
4
1
2
35

40

45

A
B
C
D
E

1. Uso de CPU: 29 - 0 = 29/29


2. Rendimiento: 5/29
3. Tiempo de retorno (medio): (11 + 7 + 24 + 23 + 16) / 5 = 81 / 5 = 16.2
4. Tiempo de espera/respuesta (medio): (4 + 1 + 12 + 12 + 10) / 5 = 39 / 5 = 7.8

66

gjhgjh

Realimentacin multinivel
No se dispone de informacin del tiempo de
ejecucin del proceso (SPN, SRT, HRRN).
Para dar preferencia a trabajos cortos, se penaliza
a los que han estado ejecutndose ms tiempo.
Funcin de seleccin: FIFO con reduccin de prioridad
tras cada ejecucin (RR en la ltima cola)
Modo de decisin: preferente (cada q)
0

10

15

20

A
B
C
D
E

(q=1, 2 colas)

Realimentacin multinivel

10

15

20

A
B
C
D
E

(q=1, 5 colas)

67

gjhgjh

Planificacin con realimentacin


RQ0

Expedir

Entrar

Terminar

RQ1

Terminar



RQn

Terminar

Realimentacin multinivel (q=1)


Proceso

llegada

Rfaga CPU

A
B
C
D
E

0
2
4
6
8

3
6
4
5
2

10

15

20

E/S
2
4
5
2
25

30

rfaga CPU

2
4
1
2
35

40

45

A
B
C
D
E
B

q=1

En ejecucin
Listo
En espera de E-S

# colas prioridad= 5
C
D

Terminado
Sin Cargar

68

gjhgjh

Realimentacin multinivel (q=1)


Proceso

llegada

Rfaga CPU

A
B
C
D
E

0
2
4
6
8

3
6
4
5
2

10

15

20

E/S
2
4
5
2
25

30

rfaga CPU

2
4
1
2
35

40

45

A
B
C
D
E

q=1
# colas prioridad= 5
1. Uso de CPU: 29 => 29/29
2. Rendimiento: 5/29
3. Tiempo de retorno (medio): (22 + 22 + 24 + 23 + 12) / 5 = 103 / 5 = 20.6
4. Tiempo de espera (medio): (15 + 16 + 12 + 12 + 6) / 5 = 61 / 5 = 12.2

Realimentacin multinivel
Procesos cortos: terminan rpido, sin descender
demasiado en la jerarqua de colas.
Procesos largos: llevados gradualmente hacia abajo.
Problema: pueden sufrir inanicin en colas de
prioridad baja si llegan muchos procesos cortos
continuamente
Soluciones:
Cuanta menor es la prioridad se pueden asignar ms
cuantos de tiempo de ejecucin
Tras cierto tiempo de espera en cola, se le cambia a una
cola de prioridad mayor.

69

gjhgjh

Realimentacin multinivel
Mltiples variantes:
Apropiacin en intervalos peridicos (como
Round Robin)
Otras: SRT en cada cola, etc.

Combinacin de polticas
Ejemplos:
FIFO con prioridades realimentadas: FIFO y
cada vez que un proceso deja la CPU se
decrementa su prioridad
Cualquier poltica + prioridades: se sigue la
poltica concreta (q. puede ser apropiativa o no
apropiativa), pero si llega proceso con mayor
prioridad, entra directamente.

70

gjhgjh

A
B
C
D
E
A
B
C
D
E
A
B
C
D
E
A
B
C
D
E
A
B
C
D
E

10

15

20

25

30

35

40

45

50

FCFS
5

10

15

20

25

30

35

40

45

50

RR
(q=1)
5

10

15

20

25

30

35

40

45

50

10

15

20

25

30

35

40

45

50

SPN

SRT
5

10

15

20

25

30

35

40

45

50

10

15

20

25

30

35

40

45

50

HRRN
Realimenta
cin
(q=1)

A
B
C
D
E

1. Uso de CPU: 30 (1) = 29/30


2. Rendimiento: 5/30
3. Tiempo de retorno (medio): (11 + 7 + 20 + 21 + 23) / 5 = 82 / 5 = 16.4
4. Tiempo de espera/respuesta (medio): (4 + 1 + 7 + 1 + 9 + 1 + 16) / 5 = 7.8
1. Uso de CPU: 29 - 0 = 29/29
2. Rendimiento: 5/29
3. Tiempo de retorno (medio): (13 + 18 + 24 + 23 + 16) / 5 = 94 / 5 = 18.8
4. Tiempo de espera/respuesta (medio): (6 + 12 + 12 + 12 + 10) / 5 = 10.4
1. Uso de CPU: 30 - 1 = 29/30
2. Rendimiento: 5/30
3. Tiempo de retorno (medio): (13 + 7 + 24 + 24 + 7) / 5 = 75 / 5 = 15
4. Tiempo de espera/respuesta (medio): (6 + 1 + 12 + 13 + 1) / 5 = 33 / 5 = 6.6
1. Uso de CPU: 34 - 5 = 29/34
2. Rendimiento: 5/34
3. Tiempo de retorno (medio): (7 + 17 + 19 + 28 + 8) / 5 = 79 / 5 = 15.8
4. Tiempo de espera/respuesta (medio): (0 + 11 + 7 + 17 + 2) / 5 = 37 / 5 = 7.4
1. Uso de CPU: 29 - 0 = 29/29
2. Rendimiento: 5/29
3. Tiempo de retorno (medio): (11 + 7 + 24 + 23 + 16) / 5 = 81 / 5 = 16.2
4. Tiempo de espera/respuesta (medio): (4 + 1 + 12 + 12 + 10) / 5 = 39 / 5 = 7.8
1. Uso de CPU: 30 - 1 = 29/30
2. Rendimiento: 5/30
3. Tiempo de retorno (medio): (21 + 23 + 24 + 18 + 11) / 5 = 97 / 5 = 19.4
4. Tiempo de espera/respuesta (medio): (14 + 17 + 12 + 13 + 6) / 5 = 62 / 5 = 12.4

FCFS

RR (q=1)

SPN

SRT

HRRN

Realimentacin
(q=1)

71

gjhgjh

Planificacin clsica en UNIX


Diseada para satisfacer las necesidades de usuarios
interactivos, tiempo compartido, propsito general
Usa realimentacin multinivel ,
turno rotatorio (q=0.1 seg.) en cada cola de prioridad
La prioridad de cada proceso se calcula:
Cada segundo con preferencia => si un proceso no se bloquea o
termina en ese segundo, es expulsado
En funcin de tipo de proceso e historial de ejecucin

Prioridad base: divide procesos en bandas fijas de


prioridad
Usa factor de ajuste (nice) para impedir que proceso
salga de la banda asignada.

Bandas
En orden decreciente de prioridad:
Intercambio
Control de dispositivos de E/S de bloques (ej: disco)
Gestin de archivos
Control de dispositivos de E/S de caracteres
(ej: terminales, impresoras)
Procesos de usuario

para
Garantizar uso eficiente de E/S
Penalizar a procesos con carga CPU

72

gjhgjh

Planificacin clsica en UNIX


CPUj(i)=

Pj(i) = Basej+

Media ponderada del


proceso j en el intervalo i

CPUj(i-1)
2
CPUj(i)
2

+ nicej

Prioridad del proceso j


al principio del intervalo i

Base = 60,
ajuste ignorado

(Libro mal
coloreado)

Figura 9.17. Ejemplo de planificacin clsica en UNIX.

73

gjhgjh

Planificacin
Hilos a nivel de usuario:
El SO no conoce la existencia de hilos
=> planifica a nivel de proceso
Dentro de un proceso, planificador a nivel de usuario se
encarga de los hilos

Hilos a nivel de ncleo:


El SO conoce y maneja hilos
=> planificacin a nivel de hilos
Pero el SO puede decidir asignar tiempos en funcin de
lo que hayan ejecutado otros hilos del mismo proceso
(sabe a qu proceso pertenece cada hilo)

Procesos en tiempo real


Proceso debe cumplir plazo lmite
Ejemplos:
Sistemas militares de mando y control
Control del trfico areo
Control de procesos en plantas industriales

Pueden ser peridicos o no


Planificador debe tener en cuenta plazos
=> debe poder ejecutar lo que corresponda dentro
del plazo lmite

74

gjhgjh

En cada interrupcin
Tratamiento de la interrupcin
(ejecucin de rutina de atencin a la interrupcin,
ej: E/S, llamada al sistema)
Comprobar si algn proceso pasa de bloqueado
a listo
Comprobar si hay procesos nuevos
Ejecutar la funcin de planificacin segn la
poltica correspondiente

75

You might also like