Está en la página 1de 43

Sistemas Operativos Profesor:

Your picture here


Ciclo 2018-1 Diaz Muñante Jorge

Planificacion del Procesador


Intercambio del CPU

Proceso 1 Sistema Operativo Proceso 2


En ejecución
Salvar registros Inactivo

Interrupción o
Dispatcher
Planificador
llamada al sistema
Restaurar registros

Inactivo En ejecución

Salvar registros

Dispatcher Interrupción o
Planificador
llamada al sistema
Restaurar registros Inactivo
En ejecución

Planificador  políticas
Dispatcher  mecanismos
Planificador / Despachador

 Planificador.
 Selecciona cual de todos los procesos cargados en
memoria se encuentra listo para ejecutarse, con la
intención de asignarle 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.
 Tiempo invertido por el despachador en detener un proceso y reiniciar
otro.
Objetivos

1. Ser justa
2. Elevar al máximo la producción o rendimiento
3. Aumentar al máximo el número de usuarios interactivos
4. Ser predecible
5. Reducir al mínimo el gasto extra
6. Equilibrar el aprovechamiento de recursos
7. Lograr equilibrio entre la respuesta y el aprovechamiento
8. Evitar esperas infinitas
9. Imponer prioridades
10. Dar preferencia a procesos que ocupan recursos decisivos
11. Dar mejor trato a procesos que muestren un comportamiento deseable.
12. Degradarse paulatinamente de cargas pesadas
Objetivos

 1. Ser justa
 Debe tratar a todos los procesos de la misma forma y no aplazar
indefinidamente ningun proceso. Se evita mediante alguna técnica
de envejecimiento.
Objetivos

 2. Elevar al máximo la productividad o rendimiento.


Maximizar el numero de trabajos procesados por unidad de tiempo.
Criterios de planificación

 Uso CPU: % tiempo que la CPU está ocupada


– Tipicamente entre 40 a 90 %
 Productividad (Throughput): Cantidad de trabajo completada por unidad
de tiempo
– Depende la duracion de los procesos
 Tiempo de retorno: Tiempo desde que se lanza un proceso para su
ejecución hasta que termina
– Es la suma del tiempo que esta en la cola de listo, ejecución y
bloqueado
 Tiempo de espera. Tiempo que un proceso pasa esperando en la cola de
procesos listos para ejecutar.
 Tiempo medio de espera. Tiempo medio que todos los procesos deben
esperar.
 Tiempo de respuesta. Para proceso interactivo es el tiempo que pasa
desde que se emite una petición hasta que se produce la primera
respuesta
Modelos de evaluacion
 Suponer que tenemos los procesos A, B, y C, que llegan en el
tiempo 0
 Nosotros deseas calcular el tiempo de respuesta, tiempo de
espera y tiempo de retorno del proceso A

31
T. Retorno
11 8 3 = 22
T. Espera + +
4 6 5 2 3 5 2 3 1 7
T. Respuesta = 0 A B C A B C A C A C
Tiempo

Diagrama de Gantt : visualiza como los procesos se ejecutan


Modelos de evaluacion

 Ahora deseamos calcular el tiempo de respuesta, tiempo de espera y


tiempo de retorno del proceso B

T. Retorno
T. Espera +
T. respuesta
4 5 2 3 1 7
6 5 2 3
A B C A B C A C A C Tiempo

Proceso B T. respuesta = 4, T Espera = 11, T. Retorno = 20


Modelos de evaluacion

 Ahora deseamos calcular el tiempo de respuesta, tiempo de espera y


tiempo de retorno del proceso C

T. Retorno
T. Espera + + +
T. Respuesta
4 5 2 3 1 7
6 5 2 3
A B C A B C A C A C Tiempo

Proceso C T. respuesta = 10, T Espera = 18, T. Retorno = 38


Criterios de planificación

 Concepto de “racha (burst) de CPU” de un proceso:


– tiempo que usará la CPU hasta que se bloquea
– procesos limitados por la CPU (CPU-bound): rachas largas
– procesos limitados por la E/S (I/0-bound): rachas cortas
 Tipos de procesos:
– Interactivos: I/0-bound, interacción con usuarios
– De cómputo: CPU-bound, no interacción
– Con E/S pero no de usuario: I/0-bound, no interacción
– Tiempo real: garantía en tiempo de respuesta de un proceso
 Tendencia general: Favorecer trabajos con rachas cortas
– Se favorece procesos interactivos
– También mejora tiempo de espera medio
• Teoría de colas: servir primero peticiones más cortas
– SS.OO. favorecen proc. con mucha E/S aunque no sea interactivo
Objetivos

4. Ser predecible
Un proceso debe ejecutarse aproximadamente en el
mismo tiempo y casi al mismo costo con independencia de
la carga del sistema.
Administracion Apropiada y No Apropiada

 No apropiada
– Una vez que el CPU se le asignó al proceso, ya no se le puede
arrebatar
– Útil sistemas procesos alta prioridad requieren atención inmediata,
(sistemas tiempo real)
– Los trabajos largos atrasan a los cortos, pero el tratamiento es más
justo

 Apropiada
– Al proceso se le puede arrebatar el CPU
– Útil sistemas tiempo compartido: garantizar tiempos de respuesta
aceptables
– Costo: cambio de contexto implica gasto extra
Prioridades estáticas y dinámicas

 Prioridades estáticas
 Prioridades estáticas no cambian
 Son fáciles de llevar a la práctica
 No responden a cambios en el ambiente

 Prioridades dinámicas
 Responden a los cambios (inanición es solucionado con una política de
envejecimiento)
 Prioridad inicial tiene una duración corta, después de lo cual se ajusta a
un valor más apropiado
- Esquemas más complejos
- Gasto extra justificado: aumento en la sensibilidad del sistema
Prioridades compradas

- Debe proporcionar un servicio competente y razonable a una gran


comunidad de usuarios.

- Debe manejar las situaciones en las cuales un miembro de la


comunidad necesite un trato especial

- Trabajo urgente => dispuesto a pagar extra:


comprar prioridad
(nivel más alto de servicio)

- Pago extra obligatorio


puede ser necesario arrebatar recursos a otros usuarios que
también pagan
FCFS o PEPS

 First-Come, First-Served (FCFS) o PEPS


 Tambien “First In, First Out” (FIFO)
• En los primeros sistemas, un proceso era planificado
• Hasta que finalizaba (incluyendo I/O)
• Ahora, mantiene el CPU hasta que se bloquea
 Ejemplo: Proceso Tiempo Racha
P1 24
P2 3
P3 3
 Suponga que los procesos arriban en este orden: P1 , P2 , P3
Ell diagrama de Gantt es :

P1 P2 P3

0 24 27 30
 Tiempo de espera para P1 = 0; P2 = 24; P3 = 27
 Tiempo promedio de espera: (0 + 24 + 27)/3 = 17
 Tiempo promedio terminado: (24 + 27 + 30)/3 = 27
 Efecto Convoy procesos largos hacen esperara a los pequeños
FCFS …
 Otro ejemplo:
 Supongamos que este sea el orden de llegada: P2 , P3 , P1
El diagrama de Gantt seria:

P2 P3 P1

0 3 6 30

 Tiempo de espera para P1 = 6; P2 = 0; P3 = 3


 Tiempo promedio de espera: (6 + 0 + 3)/3 = 3
 Tiempo promedio de terminado: (3 + 6 + 30)/3 = 13
 En el segundo caso:
 Tiempo promedio de espera es mucho mejor (antes era 17)
 Tiempo promedio de terminado es mejor (antes era 27)
 Pro y Cons :
 Simple (+)
 Proceso corto tiene que llegar antes (-)
Round Robin o por Turnos

 Politica
– Cada proceso obtiene una pequeño tiempo para uso del CPU
(Quantum), usualmente 10-100 milisegundos
– Si el quantum expira, el proceso es interrumpido y enviado al final de la
cola.

 Desempeño
– q es grande  FCFS
– q es pequeño  Excesivo gasto extra
– q debe ser lo suficiente grande para que la mayoria de los procesos
interactivos acaben en una sola racha
Ejemplo de RB con q = 20
Process Burst Time
P1 53 33 13 0
P2 08 0
P3 68 48 28 8 0
P4 24 4 0
Gantt chart: (Time Quantum = 20)

P1 P2 P3 P4 P1 P3 P4 P1 P3 P3
0 20 28 48 68 88 108 112 125 145 153
 Tiempo de espera para P1=(68-20)+(112-88)=72
 P2=(20-0)=20
P3=(28-0)+(88-48)+(125-108)=85
P4=(48-0)+(108-68)=88
 Tiempo Promedio de espera = (72+20+85+88)/4=66¼
 Tiempo promedio de terminado = (125+28+153+112)/4 = 104½
 Pros and Cons:
 Mejor para los procesos cortos (+)
 Tiempo cambio de contexto hay que sumarlo para los procesos largos (-)
• Por lo general es 0.1ms – 1ms – alrededor de 1% de sobrecarga
Ejemplo con diferentes q

P2 P4 P1 P3
+ FCFS: [8] [24] [53] [68]
0 8 32 85 153
Quantu P1 P2 P3 P4 Promd
m
+ FCFS 32 0 85 8 31¼
Q=1 84 22 85 57 62
Tiempo
Q=5 82 20 85 58 61¼
De
Q=8 80 8 85 56 57¼
Espera
Q = 10 82 10 85 68 61¼
Q = 20 72 20 85 88 66¼
- FCFS 68 145 0 121 83½
+ FCFS 85 8 153 32 69½
Q=1 137 30 153 81 100½
Tiempo Q=5 135 28 153 82 99½
terminad Q=8 133 16 153 80 95½
o
Q = 10 135 18 153 92 99½
Q = 20 125 28 153 112 104½
- FCFS 121 153 68 145 121¾
Colas Multinivel

 Objetivo: Diferenciar entre distintos tipos de trabajos


 Existen colas separadas en función del tipo de trabajo
 Cada cola tiene su propio algoritmo de planificación
 Debe existir otro algoritmo para elegir la cola en cada momento

Prioridad alta Tareas del sistema

Tareas interactivas

Tareas de edición

Prioridad baja Tareas batch


Planificación con colas multinivel
Colas multinivel realimentadas

 Técnicas adaptativas
– Los trabajos cambian de prioridad y de cola
 Consideraciones:
– El algoritmo de planificación de cada cola
– Métodos para ascender y descender entre colas
– Dónde poner inicialmente a los trabajos
+ Tareas de TR

Prioridad Quantum = 10

Quantum = 20

– FCFS
Multicolas

B
Planificación en Android
Descripción de la prioridad procesos …
Tipo Descripción
Foreground Actividad ejecutada en primer plano en la pantalla del usuario y con
Process la cuál está interactuando ahora mismo. Por lo regular son pocos
procesos de este tipo corriendo a la vez y son aquellos que se
eliminarán como última opción si la memoria es tan baja que ni
matando al resto de procesos tenemos los recursos necesarios
Visible Activity que no se está ejecutando en primer plano (es decir, su
Process método onPause() ha sido llamado). Un ejemplo puede ser la
aplicación de correo en la cuál demos click en algún enlace de
interés, este pasaría a ser el Foreground Process dejando a la
aplicación de correo en el concepto de Visible Process. Se cerrarán
únicamente cuando el sistema no tenga los recursos necesarios
para mantener corriendo todos los procesos que estén en primer
plano
Service Un Service ha sido invocado. Estan hacen cosas en segundo plano
Process que normalmente son importantes para el usuario (conexión con
servidores, actualización del GPS, reproductor de música, etc.), el
sistema nunca va a liquidar un servicio a menos que sea necesario
para mantener vivos todos los Visible y Foreground.
Descripción de la prioridad procesos
Tipo Descripción
Background Activity que actualmente no es visible por el usuario y que ya no
Process tienen demasiada importancia. Por ejemplo, los programas que
arrancó el usuario hace tiempo y no los ha vuelto a usar, pasan a
estar en background. Por eso es importante que cuando nuestra
aplicación pase a Background, el sistema libere, en la medida de lo
posible, todos los recursos que pueda para que su rendimiento sea
óptimo
Empty Es un proceso que no aloja ningún tipo de componente. Su razón
Process de ser es el de tener una caché disponible para la próxima
aplicación que lance el usuario. Es común que el sistema elimine
este tipo de procesos con frecuencia para así poder obtener
memoria disponible.
Proceso mas corto (SJF)

- Disciplina no apropiada

- Se ejecuta primero el proceso en espera que tiene el menor tiempo estimado


de ejecución hasta terminar
- Reduce el tiempo de espera promedio de PEPS
- Favorece procesos cortos a expensas de los largos
- Selecciona procesos asegurandose que el siguiente proceso se completará
y saldrá del sistema lo antes posible
- Conocimiento tiempo de ejecución de un proceso:
se basa en los tiempos de ejecución estimados por el usuario (
PELIGRO!!!!!)
- No resulta útil en sistemas de tiempo compartido
Ejemplo del algoritmo

Cuatro tareas:
A: tiempo ejecución 8 minutos
B: tiempo ejecución 4 minutos
C: tiempo ejecución 4 minutos
D: tiempo ejecución 4 minutos
D C B A

Tiempos regreso, ejecución en ese orden:


A: 8 mins, B: 12 mins, C: 16 mins, D: 20 mins
Promedio: 14 mins

Cambiando el orden, (más corto primero):

A D C B

Tiempos regreso:
B: 4 mins, C: 8 mins, D: 12 mins, A: 20 mins
Promedio: 11 mins
Admon. por el tiempo restante más corto
(SRT)

- La contraparte de la anterior
- Util en tiempo compartido
- El proceso con el menor tiempo estimado de ejecución para terminar es el
primero en ejecutarse, (incluyendo procesos nuevos)
- Un proceso en ejecución puede ser desposeído por uno nuevo con menor
tiempo de ejecución estimado
- También requiere estimaciones
- Implica un mayor gasto extra:
pendiente del trabajo en ejecución
manejar apropiaciones ocasionales
- Procesos pequeños se ejecutan casi de inmediato
- Procesos grandes cuentan con un tiempo promedio de espera más grande, y
tiempos de espera más variados que en SJF
SJF vs SRT

 Proceso Tiempo Llegada Uso CPU


 P1 0 8
 P2 1 4
 P3 2 9
 P4 3 5
SJF vs SRT

SJF (Proceso mas corto)


P1=8 P2=4 P4=5 P3=9
0 1 2 3 8 12 17 26

P2 Cola de listo = (P2)


P3 Cola de listo = (P2,P3)
P4 Cola de listo = (P2,P4,P3)

TeP1=0 TfP1=8
TeP2=7 TfP2=11 TfProm = 14.5 ms
TeP3=15 TfP3=24
TeP4=9 TfP4=14
SJF vs SRT

SRT (Tiempo restante mas corto)


P1=8 P2=4 P4=5 P1=7 P3=9
0 1 23 5 10 17 26

P2 Cola de listo = (P1)


P3 Cola de listo = (P1,P3)
P4 Cola de listo = (P4,P1,P3)

TeP1=9 TfP1=17
TeP2=0 TfP2=4 Tfprom = 13 ms
TeP3=15 TfP3=24
TeP4=2 TfP4=7
Por loteria

 Carácter aleatorio
 Cada proceso posee un “billete” de lotería
 Planificador: escoge billete y selecciona al premiado
 Procesos “importantes” pueden tener varios billetes
 Procesos cooperantes pueden intercambiarse billetes:

– Proceso cliente una vez hecha la petición puede


ceder sus billetes al servidor
Planificación Procesos Unix

 Diseñado para dar una buena respuesta a los procesos interactivos


 Algoritmo de dos niveles:
 bajo nivel : elige dentro del conjunto de procesos en memoria y
listos para ejecutarse
 alto nivel : desplaza los procesos entre la memoria y el disco,
(procesos tiene oportunidad de estar en memoria y ejecutarse).
Procesos Unix … cont..

 Bajo nivel utiliza varias colas, cada cola esta asociada a un


valor de prioridad
 Procesos a ejecutar en modo usuario tienen valores positivos
 Proceso en modo núcleo tienen valores negativos
 Valores negativos tienen máxima prioridad, y positivos
tienen la mínima
 En las colas se encuentran sólo los procesos que estan en
memoria listos para su ejecución.
Procesos Unix … cont..

 Admon. busca colas que comienzan en máxima prioridad:


– - elige primer proceso cola y lo incia
– - permite ejecución durante un quantum, (~
100mseg)
 Si proceso agota su quantum:
– se coloca al final de la cola
– se ejecuta el algoritmo de planificación de nuevo
– procesos con igual prioridad comparten CPU con
un algoritmo de round-robin
Procesos Unix … cont..

 Cada segundo se vuelven a calcular prioridades procesos:


– se dividen entre 2 los contadores de uso CPU (procesos
no tienen castigo por uso anterior CPU)
– se calcula la prioridad de cada proceso:
Nueva prioridad = base + uso CPU
 En general base=0
– usuario que prefiera un servicio peor que el normal:
asignarle valor positivo mediante llamada nice()
– solo un superusuario puede pedir un servicio mejor
Procesos Unix … cont..

 Cuando proceso se bloquea porque espera un resultado de una llamada


de sistema, se le elimina de la cola puesto que no se puede ejecutar:

– - ocurre el evento: se le coloca en una cola con


valor negativo
– - idea: sacar procesos del núcleo de manera
rápida
Planificacion del cpu - UNIX
Mínima procesos formados en el
prioridad nivel de prioridad 3
:
:
procesos en
3 Prioridad del usuario 3 modo usuario
2 Prioridad del usuario 2 en espera
1 Prioridad del usuario 1
0 Prioridad del usuario 0
-1 En espera del hijo para concluir
-2 En espera de la salida de la terminal
-3 En espera de la entrada de la terminal
procesos en
-4 En espera del buffer del disco modo núcleo
-5 En espera de E/S del disco en espera

Máxima :
prioridad :
Planificador de Solaris
Prioridad Quantum Expira Regresa de
Quantum bloqueado
0 200 0 50
5 200 0 50
10 160 0 51
15 160 5 51
20 120 10 52
25 120 15 52
30 80 20 53
35 80 25 54
40 40 30 55
45 40 35 56
50 40 40 57
55 40 45 58
59 20 49 59
Planificación de Solaris
Planificacion de Solaris

 Basada en prioridades. 4 clases:


– 1. Tiempo real
– 2. Sistema
– 3. Tiempo compartido
– 4. Interactiva.
 La clase predeterminada es la de tiempo compartido.
– modifica dinámicamente las prioridades y asigna Q de
diferente duración usando colas multinivel realimentadas.
– Existe una relación inversa entre las prioridades y los Q.
Cuando más alta sea la prioridad, más pequeño será el Q y
cuando menor sea la prioridad, más larga será la franja.
Planificacion de Solaris

 Los procesos interactivos suelen tener la prioridad más alta,


los procesos limitados por al CPU tienen la prioridad más
baja. Esta política de planificación proporciona un buen
tiempo de respuesta para los procesos interactivos y una
buena tasa de procesamiento para la clase de tiempo
compartido.

También podría gustarte