2. En la multiprogramación, muchas veces existen
varios procesos o hilos que compiten por el uso
de la CPU.
Esta situación ocurre cada vez que dos o más de
estos procesos se encuentran al mismo tiempo
en el estado listo.
3. Si sólo hay una CPU disponible, hay que decidir
cuál proceso se va a ejecutar a continuación.
La parte del sistema operativo que realiza esa
decisión se conoce como planificador de
procesos y el algoritmo que utiliza se conoce
como algoritmo de planificación.
4. La Planificación es el conjunto de políticas y
mecanismos incorporados al S.O. que
gobiernan el orden en que se ejecutan los
trabajos.
5. El Planificador, despachador, scheduler o
dispatcher es la parte del S.O. que selecciona el
siguiente trabajo que hay que admitir en el
sistema y el siguiente proceso a ejecutar.
6. ¿Cuál es el objetivo último de la Planificación?
7. La planificación en Linux se basa en
prioridades
un proceso con prioridad más alta va a
interrumpir a otro de prioridad más baja que
se esté ejecutando.
8. Los procesos con prioridad más alta en
general son los que interactúan con el
usuario (procesadores de texto y terminales)
y los de tiempo real (por ejemplo los que
muestran video o música)
9. En cambio los procesos que pasan más
tiempo haciendo cálculos tienen menos
prioridad pero usan más tiempo la CPU
¿cómo es posible que se den ambas
situaciones a la vez?
10.
11. Imaginemos que solo tenemos dos procesos
1. Un compilador que hace cálculos todo el tiempo
2. Una terminal que espera que escribamos un
comando y que pasa la mayor parte del tiempo
bloqueado
12. Si el Sistema Operativo espera a que el
proceso de arriba termine de hacer lo que
está haciendo para recién atender a las
necesidades del proceso de abajo, se produce
un tiempo de espera que puede ser muy
largo entre que el usuario pulsa una tecla y la
letra se muestra en pantalla
13.
14. Lo peor es que la CPU pasa también mucho
tiempo inactiva, porque pasa mucho tiempo
entre que yo pulso una tecla y después otra.
Hay que encontrar una manera para mejorar
el trabajo
15. En el caso de Linux se le da máxima
prioridad a los procesos que interactúan con
el usuario que pueden interrumpir al proceso
que se está ejecutando
16. Además al proceso que se ejecuta se le va
bajando de a poco la prioridad para que le dé
la oportunidad a otro proceso de menor
prioridad
17.
18. Cuando un proceso entra a la cola de listos lo
hace con una prioridad determinada por el
sistema operativo en base a las anteriores
veces que se ejecutó.
Los procesos con igual prioridad se van
ejecutando uno detrás de otro (Round Robin)
19.
20. Los Algoritmos se aplican a diferentes tipos
de sistemas y deben cumplir unos Principios
o metas las circunstancias en que se ejecutan
(o los tipos de procesos)
21. Equidad: Otorgar a cada proceso una parte
justa de la CPU
Aplicación de Políticas: Verificar que se
lleven a cabo las políticas establecidas
Balance: Mantener ocupadas todas las partes
del sistema
22. Sistemas de Procesamiento por lotes
No hay usuarios interactuando con el sistema,
así que no importa que el tiempo de respuesta
sea inmediato. Lo que sí importa es que el
proceso se termine lo antes posible para darle
cabida a otro
23. Sistemas de Procesamiento por lotes
Rendimiento: Maximizar el número de trabajos
por hora
Tiempo de retorno: Minimizar el tiempo entre la
entrega y la terminación
Utilización de CPU: Mantenerla ocupada todo el
tiempo
24. Sistemas Interactivos
Es esencial el tiempo de respuesta ante las
peticiones del usuario.
No puede haber un proceso que no deje actuar a
los demás (por un error de programación por
ejemplo)
25. Sistemas Interactivos
Tiempo de Respuesta: Responder a las peticiones
del usuario con rapidez
Proporcionalidad: Cumplir con las expectativas
del usuario
26. Sistemas deTiempo Real
Los procesos hacen su trabajo y se bloquean
rápidamente para no ocupar todo el tiempo la
CPU
27. Sistemas deTiempo Real
Cumplir con los plazos: Evitar perder datos
Predictibilidad: Evitar que decaiga la calidad de
los procesos multimedia
28. Primero en Entrar, Primero en Salir
(First In, First Out)
Es el más simple
Los procesos se ponen uno detrás de otro
29. Primero en Entrar, Primero en Salir
El planificador toma el primer proceso, lo ejecuta
por cierto tiempo o hasta que se bloquea y lo
manda al final de la cola
Si entra un proceso nuevo (o viene uno de la lista
de Bloqueados) también se pone al final de la
cola
30. Primero en Entrar, Primero en Salir
El problema es que si hay muchos procesos, uno
que tenga real importancia podría demorar
demasiado en terminar su trabajo
31. ElTrabajo Más Corto Primero
Se supone que los tiempos de ejecución se
conocen de antemano
32. ElTrabajo Más Corto Primero
El problema principal es cuando se van agregando
nuevos procesos, puede ocurrir que el que tiene
un tiempo más largo nunca llegue a ejecutarse
33. El MenorTiempo Restante a Continuación
Similar al anterior, pero acá si llega un proceso
nuevo se compara con el que se está ejecutando y
si su tiempo es menor, se cambia de proceso
Puede tener el mismo problema de no permitir
ejecutarse a los demás procesos
34. PorTurno Circular (Round Robin)
A cada proceso se le asigna un intervalo de tiempo
de uso de la CPU (quantum)
Cuando se termina su quantum se pasa al
siguiente proceso
35. PorTurno Circular (Round Robin)
La clave de es el tamaño del quantum
▪ si es muy corto y hay muchos procesos estos se
atienden más rápido, pero la CPU pasa mucho tiempo
cambiando de procesos
▪ Si es muy largo, de pronto procesos que no necesitan
mucho tiempo de atención demoran mucho en ser
atendidos
36. Por Prioridad
A cada proceso que entra se le da una prioridad
determinada
El próximo proceso a ejecutar será el que tenga la
prioridad más alta
(en Linux va de 100 a 139, cuanto más grande el
número menor es la prioridad)
37. Por Prioridad
Para evitar que un proceso con prioridad alta se
ejecute indefinidamente, se le va reduciendo la
prioridad en cada quantum
Si en algún momento se encuentra un proceso
con prioridad más alta en la cola de listos, ocurre
un cambio de procesos
38. Por Prioridad
Los procesos con la misma prioridad se ubican
todos juntos en la misma cola.
Entre los procesos con distinta prioridad de
ejecuta el que tiene mayor prioridad
Entre los procesos que tienen la misma prioridad
se ejecutan por Round Robin