38
Procesos II Planificación Prof. Pablo Macón p rofemacon @gmail.com http://pablomacon.wix.com/home

Planificación de Procesos - SOII - 2016

Embed Size (px)

Citation preview

Page 1: Planificación de Procesos - SOII - 2016

Procesos IIPlanificación

Prof. Pablo Macó[email protected]

http://pablomacon.wix.com/home

Page 2: Planificación de Procesos - SOII - 2016

PlanificaciónEn 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.

Page 3: Planificación de Procesos - SOII - 2016

PlanificaciónSi 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.

Page 4: Planificación de Procesos - SOII - 2016

PlanificaciónLa Planificación es el conjunto de políticas y mecanismos incorporados al S.O. que gobiernan el orden en que se ejecutan los trabajos.

Page 5: Planificación de Procesos - SOII - 2016

PlanificaciónEl 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.

Page 6: Planificación de Procesos - SOII - 2016

Planificación¿Cuál es el objetivo último de la Planificación?

Optimizar el rendimiento

Page 7: Planificación de Procesos - SOII - 2016

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.

Page 8: Planificación de Procesos - SOII - 2016

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)

Page 9: Planificación de Procesos - SOII - 2016

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?

Page 10: Planificación de Procesos - SOII - 2016

Planificación

Page 11: Planificación de Procesos - SOII - 2016

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

Page 12: Planificación de Procesos - SOII - 2016

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

Page 13: Planificación de Procesos - SOII - 2016

Planificación

Page 14: Planificación de Procesos - SOII - 2016

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

Page 15: Planificación de Procesos - SOII - 2016

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

Page 16: Planificación de Procesos - SOII - 2016

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

Page 17: Planificación de Procesos - SOII - 2016

Planificación

Page 18: Planificación de Procesos - SOII - 2016

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)

Page 19: Planificación de Procesos - SOII - 2016

Algoritmos de Planificación

Page 20: Planificación de Procesos - SOII - 2016

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)

Page 21: Planificación de Procesos - SOII - 2016

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

Page 22: Planificación de Procesos - SOII - 2016

Algoritmos de PlanificaciónSistemas 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

Page 23: Planificación de Procesos - SOII - 2016

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

Page 24: Planificación de Procesos - SOII - 2016

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)

Page 25: Planificación de Procesos - SOII - 2016

Algoritmos de Planificación Sistemas Interactivos

Tiempo de Respuesta: Responder a las peticiones del usuario con rapidez

Proporcionalidad: Cumplir con las expectativas del usuario

Page 26: Planificación de Procesos - SOII - 2016

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

Page 27: Planificación de Procesos - SOII - 2016

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

Page 28: Planificación de Procesos - SOII - 2016

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

Page 29: Planificación de Procesos - SOII - 2016

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

Page 30: Planificación de Procesos - SOII - 2016

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

Page 31: Planificación de Procesos - SOII - 2016

Algoritmos de Planificación El Trabajo Más Corto Primero

Se supone que los tiempos de ejecución se conocen de antemano

Page 32: Planificación de Procesos - SOII - 2016

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

Page 33: Planificación de Procesos - SOII - 2016

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

Page 34: Planificación de Procesos - SOII - 2016

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

Page 35: Planificación de Procesos - SOII - 2016

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

Page 36: Planificación de Procesos - SOII - 2016

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)

Page 37: Planificación de Procesos - SOII - 2016

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

Page 38: Planificación de Procesos - SOII - 2016

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