Planificación de Procesos
-
Upload
pablo-macon -
Category
Education
-
view
275 -
download
0
Transcript of Planificación de Procesos
Procesos IIPlanificación
Prof. Pablo Macónhttp://soii-its.blogspot.com/
Planificación
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.
Planificación
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.
Planificación
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.
Planificación
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.
Planificación
¿Cuál es el objetivo último de la Planificación?
Optimizar el rendimiento
Planificación
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.
Planificación
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)
Planificación
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?
Planificación
Planificación
Imaginemos que solo tenemos dos procesos1. Un compilador que hace cálculos todo
el tiempo2. Una terminal que espera que
escribamos un comando y que pasa la mayor parte del tiempo bloqueado
Planificación
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
Planificación
Planificación
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
Planificación
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
Planificación
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
Planificación
Planificación
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)
Algoritmos de Planificación
Algoritmos de Planificación 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)
Algoritmos de PlanificaciónEquidad: Otorgar a cada proceso
una parte justa de la CPUAplicación de Políticas: Verificar
que se lleven a cabo las políticas establecidas
Balance: Mantener ocupadas todas las partes del sistema
Algoritmos de Planificación 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
Algoritmos de Planificación 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
Algoritmos de PlanificaciónSistemas 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)
Algoritmos de Planificación Sistemas Interactivos
Tiempo de Respuesta: Responder a las peticiones del usuario con rapidez
Proporcionalidad: Cumplir con las expectativas del usuario
Algoritmos de PlanificaciónSistemas de Tiempo Real
Los procesos hacen su trabajo y se bloquean rápidamente para no ocupar todo el tiempo la CPU
Algoritmos de Planificación Sistemas de Tiempo Real
Cumplir con los plazos: Evitar perder datos
Predictibilidad: Evitar que decaiga la calidad de los procesos multimedia
Algoritmos de Planificación Primero en Entrar, Primero en Salir
(First In, First Out) Es el más simple Los procesos se ponen uno detrás de
otro
Algoritmos de Planificación 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
Algoritmos de Planificación 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
Algoritmos de Planificación El Trabajo Más Corto Primero
Se supone que los tiempos de ejecución se conocen de antemano
Algoritmos de Planificación El Trabajo 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
Algoritmos de Planificación El Menor Tiempo 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
Algoritmos de Planificación Por Turno 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
Algoritmos de Planificación Por Turno 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
Algoritmos de Planificación 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)
Algoritmos de Planificación 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
Algoritmos de Planificación 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