Planificación de Procesos

Preview:

Citation preview

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

Recommended