Administración del Procesador (scheduling) - Universidad Católica Andrés Bello

48
Administración del procesador (Scheduling) La idea principal de la administración del procesador tiene que ver con el tiempo que permanecerá un proceso en el procesador, ¿que proceso corre en que momento?. En un Computador personal es mas difícil encontrar el caso que un usuario necesite ejecutar dos procesos al mismo tiempo, enviar un correo y escribir un texto. Mientras que en un servidor esta clase de ejecuciones es constante. Para eso se necesita realizar planificación del procesador.

description

En este documento recorremos el scheduling del CPU, sus distintos algoritmos, el manejo de planificación en RT, los distintos tipos de planificadores.

Transcript of Administración del Procesador (scheduling) - Universidad Católica Andrés Bello

Page 1: Administración del Procesador (scheduling) - Universidad Católica Andrés Bello

Administración del procesador (Scheduling)

La idea principal de la administración del procesador tiene que ver con el tiempo que permanecerá un proceso en el procesador, ¿que proceso corre en que momento?.En un Computador personal es mas difícil encontrar el caso que un usuario necesite ejecutar dos procesos al mismo tiempo, enviar un correo y escribir un texto.Mientras que en un servidor esta clase de ejecuciones es constante.

Para eso se necesita realizar planificación del procesador.

Page 2: Administración del Procesador (scheduling) - Universidad Católica Andrés Bello

Planificación del procesador

La tarea del  planificador es hacer que un proceso dentro del procesador pase a la “Lista de Procesos Listos”.

La “Lista de procesos Listos” no es una FIFO. El planificador se ejecuta cuando:

− Se crea o se termina un proceso.− Un proceso realiza una llamada al sistema (syscall). Pasa de

‘corriendo’ a ‘esperando’.− Un proceso pasa de ‘corriendo’ a ‘listo’. (Ej: Interrupción de

hardware).− Un proceso pasa de ‘esperando’ a ‘listo’ . (Ej: Interrupción de

hardware).

Page 3: Administración del Procesador (scheduling) - Universidad Católica Andrés Bello

Tipos de planificación

SO no expropiativo (non-premptive): El planificador se ejecuta en los puntos 1 y 2 solamente. -> Si un proceso entra en un lazo cerrado, el SO no responde. (DOS).

SO exporpiativo(preemptive): Es en el que el planificador se ejecuta en cualquiera de los puntos 1,2,3 ó 4), y se programa un timer externo al procesador para que realice una interrupción cada cierto período.

Un SO preemptive (UNIX, WinNT, etc). debe proporcionar mecanismos de sincronización a los procesos, ya que estos pueden ser interrumpidos en cualquier momento. (Ejemplo: memoria compartida).

Syscall: Preemptive?: en la mayoría de UNIX no: Se deshabilita el manejo de interrupciones mientras se maneja la syscall. En Linux, desde Linux 2.6 es kernel es preemptive.

− Ventajas: Realtime: tiempo de respuesta.− Desventajas: Complejidad.

Page 4: Administración del Procesador (scheduling) - Universidad Católica Andrés Bello

Niveles de planificaciónPlanificación a largo plazo (planificador de trabajos): es el encargado de crear los procesos y decide cual es el próximo trabajo que se va a ejecutar. Sólo existe en los sistemas de procesamiento por lotes. En los de tiempo compartido su misión es cargar los programas en memoria.Planificación a medio plazo (planificador de procesos inactivos o swapping): decide si un proceso que está suspendido o bloqueado debe ser extraído temporalmente de la memoria, para reducir el grado de multiprogramación. Sólo existe en los sistema de tiempo compartido.Planificación a corto plazo (planificador del procesador): tiene la responsabilidad de decidir el cómo y cuando un proceso preparado va a acceder al procesador (funciones de la multiprogramación). Está siempre residiendo en la memoria y se ejecuta con mucha frecuencia (20 ms) y debe ser de ejecución muy rápida. Es importante que de un buen servicio a los procesos para que el usuario no perciba que está compartiendo el sistema con otros.

Page 5: Administración del Procesador (scheduling) - Universidad Católica Andrés Bello

Despachador

Una vez que el Planificador seleciona el proceso a correr, pasa el control a despachador. Este se encarga de:

− Cambiar de Contexto (context switch).− Cambiar de Kernel a User mode.− Saltar a la dirección donde el proceso se estaba

ejecutando. (context switch).

Page 6: Administración del Procesador (scheduling) - Universidad Católica Andrés Bello

Criterios de planificación− Utilización del Procesador: Porcentaje de tiempo en que el

procesador esta ocupado.− Rendimiento (Throughput): Número de procesos ejecutados por

unidad de tiempo.− Tiempo de Servicio(T): Tiempo tomado para procesar una petición

(un proceso, un programa). excluyendo el tiempo gastado en la lista de procesos ‘esperando’.

− Tiempo de Ejecución(t): Tiempo de servicio menos tiempo de espera.

− Tiempo de Espera (E): Tiempo que un proceso esta en la lista de procesos ‘esperando’.

− Tiempo de Respuesta: Velocidad con la que el ordenador da respuesta a una petición. (depende de los dispositivos de E/S).

− Latencia. Básicamente, mide el tiempo transcurrido entre la realización de una petición y el comienzo de la visualización o ejecución de los resultados. Se mide en unidades de tiempo (segundos, milisegundos...)

Page 7: Administración del Procesador (scheduling) - Universidad Católica Andrés Bello

Objetivos de la planificación

Justicia, sin favorecer, ni perjudicar a ninguno de los procesos. Máxima capacidad de ejecución, disminuyendo el número de

cambios entre procesos. Máximo número de usuarios interactivos. Predictibilidad, intentando conocer de antemano como será la

ejecución de un proceso. Minimización de la sobrecarga, ya que a menor sobrecarga se

consigue mayor velocidad de procesamiento (los cambios de contexto deben minimizarse).

Equilibrio en el uso de recursos, procurando que sean usados equitativamente el mayor tiempo posible.

Seguridad de las prioridades, a mayor prioridad ejecución más rápida.

Page 8: Administración del Procesador (scheduling) - Universidad Católica Andrés Bello

Algoritmos de planificaciónPrimero en llegar, primero en ser atendido:FCFS (FIRST COME, FIRST SERVED):

Se procesan hasta terminar, el resto de procesos en cola esperando, sencillo pero de pobre ejecución, hacen esperar mucho a los tiempos cortos, es no expropiativa.

Page 9: Administración del Procesador (scheduling) - Universidad Católica Andrés Bello

Algoritmos de planificaciónEl Proceso mas corto primero (No expropiativo):SJF (Short Job First):

En este caso es necesario PREDECIR los tiempos que demora el proceso en ejecutarse. Esto se puede hacer suponiendo los ciclos anteriores. Cuando llega un proceso nuevo su tiempo total se compara con el tiempo que falta para que el proceso termine de ejecutarse, si es menor se cede el procesador al nuevo proceso.

Page 10: Administración del Procesador (scheduling) - Universidad Católica Andrés Bello

Algoritmos de planificaciónEl tiempo mas corto restante (Expropiativo):SRT (Short Remaing Time):

Cuando un proceso nuevo llega, su tiempo total de ejecución es comparado y si este es menor que el proceso que se esta ejecutando el viejo proceso se detiene para dar paso al nuevo, hay que predecir el tiempo de los procesos una vez mas, si se calcula mal el tiempo, el SO aborta el proceso.

Page 11: Administración del Procesador (scheduling) - Universidad Católica Andrés Bello

Algoritmos de planificaciónAsignación cíclica:RR (Round Robin) q=1

Se concede a cada proceso un periodo de tiempo de ejecución fijo, q (quantum), si se supera el proceso es pasado a la cola de espera y es atendido por mecanismo FIFO o por prioridades, si los valores de q son muy altos se convierte en FCFS, si el valor tiende a 0 sobrecarga el sistema, en la práctica 10<q<100ms, si un proceso es creado cuando acaba el q del otro se supone que el anterior llego primero.

Page 12: Administración del Procesador (scheduling) - Universidad Católica Andrés Bello

Algoritmos de planificaciónAsignación cíclica:RR (Round Robin) q=3

Incrementando q el tiempo de servicio se mantiene cte. y el tiempo de espera crece en función de ejecución.

Baja sobrecarga sin los Procesos están en memoria.Es la política más utilizada en tiempos de espera compartidos.Es un método bastante justo y no ex-propiativo.El tamaño de q depende de:

el tipo de sistemael nº de procesos

Page 13: Administración del Procesador (scheduling) - Universidad Católica Andrés Bello

Algoritmos de planificaciónAsignación cíclica:RR (Round Robin) q=3

Incrementando q el tiempo de servicio se mantiene cte. y el tiempo de espera crece en función de ejecución.

Baja sobrecarga sin los Procesos están en memoria.Es la política más utilizada en tiempos de espera compartidos.Es un método bastante justo y no ex-propiativo.El tamaño de q depende de:

el tipo de sistemael nº de procesos

Page 14: Administración del Procesador (scheduling) - Universidad Católica Andrés Bello

Algoritmos de planificaciónPrioridades:Se asigna al procesador el proceso con mayor prioridad.Las prioridades pueden ser asignadas interna o externamente.El problema principal en estos casos son los procesos con baja prioridadPuede ser expropiativo o noexpropiativo.

Page 15: Administración del Procesador (scheduling) - Universidad Católica Andrés Bello

Algoritmos de planificaciónColas MultiplesMultilevel Queue (MQ):Es posible conseguir mayor flexibilidad enla planificación de los Procesos si creamos variascolas y cada una con distinta planificación.Los Procesos se asignan a una u otra dependiendo de sus necesidades y tipo.Para conocer que cola suministrará el Proceso alprocesador se utiliza un algoritmo no-expropiativo de prioridad fija.

Page 16: Administración del Procesador (scheduling) - Universidad Católica Andrés Bello

Algoritmos de planificaciónColas MultiplesMultilevel Queue (MQ):

Page 17: Administración del Procesador (scheduling) - Universidad Católica Andrés Bello

Algoritmos de planificaciónColas Multiples con retroalimentaciónMultilevel Queue Feedback (MQF):Como es difícil determinar el trato justo que ha de recibir cada proceso a priori, se opta por favorecer a:

Los procesos cortosLos procesos limitados por E/S

Este método divide a los procesos en varias colas de manera que la numeración más baja corresponde a una mayor prioridad.

Cuando el proceso consume su quantum, entra el primero de la cola de mayor prioridad (nivel más bajo).Una vez que un proceso haya consumido un tiempo determinado en una cola, será colocado al final de la cola inmediatamente inferior en prioridad.Es expropiativa y adaptable (gestión de colas con RR y FCFS)

Page 18: Administración del Procesador (scheduling) - Universidad Católica Andrés Bello

Algoritmos de planificaciónColas Multiples con retroalimentaciónMultilevel Queue Feedback (MQF):

Page 19: Administración del Procesador (scheduling) - Universidad Católica Andrés Bello

Planificación para Multiprocesamiento

Este tema esta dado por la capacidad de paralelismo de los procesadores.

Se puede hacer una división clara del paralelismo dado por el nivel de sincronización que se puede tener entre los procesos permitiendo esto tener un nivel de granularidad distinto sobre los procesos que pueden ser ejecutados:

Grano Fino paralelismo: Paralelismo definido en una sola instancia, no necesariamente involucra al SO, no hay una alta tasa de sincronización.

Grano medio: Paralelismo potencial de una aplicación puede ser implementada por múltiples hilos en un solo proceso, el nivel de coordinación a veces es dado por un programador.

Grano Grueso: Multiprocesamiento concurrente de procesos en un ambiente de multiprogramación

Page 20: Administración del Procesador (scheduling) - Universidad Católica Andrés Bello

Planificación para MultiProcesamiento

Grano muy grueso: La sincronización es distribuida en una red distribuida.Paralelismo independiente: Múltiples procesos no relacionados.

Page 21: Administración del Procesador (scheduling) - Universidad Católica Andrés Bello

Asignación de Procesos al Procesador

Asignación Master/slave: Las funciones del Kernel siempre corren sobre un procesador. Otro procesador ejecuta procesos de usuarios.

− Ventaja: Los conflictos de recursos se ven simplificados a un solo procesador.

− Desventaja: Falla del procesador Master?, el procesador principal hace la asignación==> cuello de botella.

Por asignación: SO se puede ejecutar sobre cualquier procesador. Cada procesador aplica su propios algoritmos para los procesos. Es similar a como funciona SOLARIS Y (SMP).

Page 22: Administración del Procesador (scheduling) - Universidad Católica Andrés Bello

Despacho de procesos

Después de la asignación, el despachador debe decidir de la cola de procesos en espera que proceso debe ser despachado.

Estrategias de multiprogramación basados en un solo procesador (contador productivo) pueden ser establecidas acá.

Prioridades e histórico de procesos no es suficiente.

Page 23: Administración del Procesador (scheduling) - Universidad Católica Andrés Bello

Despacho de procesos (cont) Una cola simple de procesos o una cola de multiprioridades

puede ser usado. Modelos de colas multiservidores: Múltiples cola vs una sola

cola, el análisis de desempeño de los procesos siendo asignados a distintas colas dado el número de procesos puede no ser la mejor opción.

Conclusión: La recomendación puede ser usar FCFS sobre uno de los procesadores combinado con el uso de una cola de prioridades y que sobre el otro procesador se atiendan el resto de procesos.

Page 24: Administración del Procesador (scheduling) - Universidad Católica Andrés Bello

Planificación de hilos

Si una aplicación es implementada para que funciones con un conjunto de hilos y que compartan por supuesto una dirección única de memoria por proceso, se puede seguir alguno de estos metodos:

Balanceo de cargas: Sabemos que si un proceso esta formado por distintos hilos un buen método es permitir que la planificación del SO sea la que se encargue de decidir cuales hilos van a que procesador, desventaja, como puede un hilo repetir el mismo procesador (cache), muchos procesadores buscando procesos con una única dirección de memoria pueden presentarse para este método.

Planificación por grupos: Grupos de hilos se ejecutan juntos, si son procesos íntimamente relacionados los tiempos se reducen considerablemente. Desventajas son dadas por la consideración de operar todos los hilos como un todo deja algunos procesadores ociosos si no se usa un buen algoritmo de planificación.

Page 25: Administración del Procesador (scheduling) - Universidad Católica Andrés Bello

Planificación de hilos (cont)

Asignación de procesadores dedicados: Consiste en dedicar procesadores durante toda la duración de la ejecución de la aplicación, este método es bueno si: hay muchos procesadores, si se puede controlar el número de hilos por aplicativo.

Planificación dinámica: Dependerá de si el lenguaje que programa el aplicativo o el SO permiten controlar dinámicamente el número de procesos sobre el procesador, un método es examinar si algún procesador esta ocioso de ser así asignarles grupos de hilos.

Page 26: Administración del Procesador (scheduling) - Universidad Católica Andrés Bello

Planificación en tiempo real

La computación en tiempo real se puede definir como aquella en la que la corrección del sistema depende no solo del resultado lógico de la computación sino también del momento en el que se producen resultados.Un sistema en tiempo real duro: Tiene un tiempo para la ejecución de las tareas.Un sistema en tiempo real suave: Tiene un tiempo limite deseable pero no obligatorio.

Page 27: Administración del Procesador (scheduling) - Universidad Católica Andrés Bello

Características de sistemas operativos en tiempo real

− Determinismo.− Reactividad− Control de usuario− Fiabilidad− Operación de fallo suave

Page 28: Administración del Procesador (scheduling) - Universidad Católica Andrés Bello

Determinismo

Un SO es determinista en el sentido de ejecutar operaciones en instantes de tiempos fijos predeterminados o dentro de intervalos de tiempos predeterminados, es difícil que en un sistema operativo sea determinista, para SO en tiempo real el determinismo esta dado por eventos externos y temporizaciones. El determinismo esta dado en los tiempos en que atiende las interrupciones y si puede atender todos los requerimientos. En SO no-RT esta demora puede estar en el orden de 10’s y 100’s de milisegundos, en SO RT esta dado en pocos microsegundos hasta 1 milisegundo.

Page 29: Administración del Procesador (scheduling) - Universidad Católica Andrés Bello

Reactividad

Depende de cuanto tarda el SO después que reconoce la interrupción, se incluyen algunos aspectos como:

− Tiempo para manejar la interrupción y comenzar a ejecutar la rutina de servicio de interrupción.

− La cantidad de tiempo necesario para la ejecución de la interrupción.

− El tiempo cuando hay mas de una interrupción por ejecutarse.

Page 30: Administración del Procesador (scheduling) - Universidad Católica Andrés Bello

Control de usuario

El usuario tiene control sobre:− Prioridades.− Paginación o swapping.− Algoritmos de transferencias de disco.− Tiempo real de tipo suave o duro.− Etc.

Page 31: Administración del Procesador (scheduling) - Universidad Católica Andrés Bello

Fiabilidad

En SO no RT el fallo de los procesadores, no cumplimiento de las tareas, etc, es mas sencillo de ser solventado que en SO RT, en estos están de por medio tareas como datos financieros, manejo de equipos en hospitales, etc.

Page 32: Administración del Procesador (scheduling) - Universidad Católica Andrés Bello

Operación de fallo suave

Capacidad de fallar de forma tal que se preserven tantos datos como sea posible.

Page 33: Administración del Procesador (scheduling) - Universidad Católica Andrés Bello

Requerimientos de tiempo real− Rápido cambio de contexto.− Capacidad de almacenamiento rápido.− Planificación no-expropiativa.− Respuesta rápida a interrupciones.La meta es completar la mayor cantidad de tareas en el

menor tiempo posible.

Page 34: Administración del Procesador (scheduling) - Universidad Católica Andrés Bello

Algoritmos para tiempo real

Es necesario saber que existen dos tipos de eventos:− Periódicos: Su tiempo de ocurrencia no es frecuente, ni predecible,

ej: un loop.− Aperiódicos: Su tiempo de ocurrencia es frecuente e impredecible,

ej: un click del mouse.Los enfoques se dividen a varias clases de algoritmos.− Enfoque estático dirigido por tablas.− Enfoque estático expropiativo dirigido por prioridad.− Enfoque dinámico basado en un plan.− Enfoque dinámico de mejor esfuerzo.

Page 35: Administración del Procesador (scheduling) - Universidad Católica Andrés Bello

Clases de algoritmos

− Enfoque estático dirigido por tablas: Aplicable a tareas periódicas, se necesitan datos como tiempo periódico de llegada, tiempo de ejecución, plazo periódico de ejecución y prioridad de las tareas. Se debe definir un plan que nos diga cuando ejecutar cada tarea.

− Enfoque estático expropiativo dirigido por prioridad: Debe usar un metodo expropiativo basado en prioridades (no RT), para la planificación se debe basar en que demora mas las tareas.

− Enfoque dinámico basado en un plan: Se determina un plan, que incluye a las tareas ya planificadas mas cualquier nueva tarea que no entorpezca el tiempo.

− Enfoque dinámico de mejor esfuerzo: Cuando llega un nuevo proceso se le asigna una prioridad basado en las características del proceso. En este caso los procesos no se ejecutan de forma periódica.

Page 36: Administración del Procesador (scheduling) - Universidad Católica Andrés Bello

Planificación por plazos

La mayoría de los sistemas operativos actuales en tiempo real se diseñaron con el objetivo de dar inicio a las tareas de tiempo real tan rápidamente como fuera posible, y por lo tanto, hacen hincapié en una rápida gestión de las interrupciones y expediciones de las tareas. De hecho, no hay medidas particularmente útiles en la evaluación de los sistemas operativos en tiempo real. En las aplicaciones en tiempo real generalmente no preocupa la velocidad absoluta, sino completar las tareas en el momento mas apropiado, ni antes ni después, a pesar de las peticiones dinámicas de recursos y los conflictos, la sobrecarga de proceso y los fallos de hardware o software.

Page 37: Administración del Procesador (scheduling) - Universidad Católica Andrés Bello

Planificación por plazos

Page 38: Administración del Procesador (scheduling) - Universidad Católica Andrés Bello

Planificación por plazos

Page 39: Administración del Procesador (scheduling) - Universidad Católica Andrés Bello

Planificación por plazos

Page 40: Administración del Procesador (scheduling) - Universidad Católica Andrés Bello

Planificación en GNU/LinuxLinux está basado en la planificación tradicional de Unix  añadiendo 2 clases de prioridad para procesos de tiempo real flexibles. Las tres clases de prioridad de Linux son las siguientes: ð    SCHED_FIFO: FIFO o FCFS, no se obliga a dejar el procesador, se usa en procesos de tiempo real. ð   SCHED_RR: Usan su quantum de tiempo, se obliga al proceso a dejar el procesador. ð   SCHED_OTHER: hilos que no son de tiempo real y otros.

Page 41: Administración del Procesador (scheduling) - Universidad Católica Andrés Bello

Planificación en GNU/LinuxDentro de cada clase se utilizan múltiples prioridades, siendo las prioridades de las clases de tiempo real mayores que el resto. Para los hilos FIFO, se aplican las siguientes reglas: 1.      El sistema no interrumpe la ejecución de un hilo FIFO, excepto en los siguientes casos: a)   Pasa a estar listo otro hilo FIFO de mayor

prioridad. b)   El hilo FIFO en ejecución  se bloquea a la espera

de un evento, como una E/S. c)   El hilo FIFO en ejecución abandona el procesador

como resultado de la ejecución de la primitiva sched_yield.  

Page 42: Administración del Procesador (scheduling) - Universidad Católica Andrés Bello

Planificación en GNU/Linux

.   2.Cuando se interrumpe un hilo FIFO en ejecución, pasa a la cola asociada a su prioridad.   3.Cuando un hilo FIFO pasa a listo y tiene mayor prioridad que el hijo que está en ejecución, se expulsa al hilo en ejecución y pasa a ejecutar el hilo de mayor prioridad. Si más de un hilo tiene esta mayor prioridad, se escoge al que lleva más tiempo esperado.

Page 43: Administración del Procesador (scheduling) - Universidad Católica Andrés Bello

Planificación en GNU/LinuxLa política SCHED_RR se comporta de forma similar a la SCHED_FIFO, excepto por el uso de un cuanto de tiempo asociada a cada hilo. Cuando un hilo SCHED_RR ha consumido su cuanto de tiempo, pasa a suspendido y se escoge un hilo de tiempo real con una prioridad igual o mayor.Esta ejecución de la figura es dada por las prioridades de los distintos hilos.

Page 44: Administración del Procesador (scheduling) - Universidad Católica Andrés Bello

Planificación en GNU/LinuxLa planificación descrita anteriormente funciona para el kernel 2.4, para el kernel 2.6 se decido tomar lo mejor del kernel 2.4 y usar algunas nuevas características, para tratar de mejorar el desempeño de los procesos.

- Tienen mayor prioridad a los que les quede mayor tiempo en el procesador

- Se aumenta ligeramente la prioridad de los hilos del mismo proceso.

- Se añade la prioridad “nice” colocada por el usuario.- Los procesos se ejecutan en un solo procesador a

menos que haya un bloqueo de otro procesador.- Ejecutar los hijos antes que sus padres, lo cual

mejora el desempeño.

Page 45: Administración del Procesador (scheduling) - Universidad Católica Andrés Bello

Planificación WindowsLas prioridades en Windows se organizan de dos formas: tiempo real y variable. Cada una de estas bandas consta de 16  niveles de prioridad. Los hilos que requieren atención inmediata están en clase de tiempo real, que incluye funciones como comunicaciones tareas de tiempo real. En general, puesto que Windows utiliza un planificador expropiativo con prioridades, los hilos con prioridades de tiempo real tienen preferencia sobre los otros hilos. En un monoprocesador, cuando un hilo cuya prioridad es mayor que la del que se ejecuta en ese momento pasa a estar Listo, el hilo de menor prioridad es expulsado y se asigna el procesador al de mayor prioridad.

Page 46: Administración del Procesador (scheduling) - Universidad Católica Andrés Bello

Planificación Windows

Las prioridades se gestionan de forma algo diferente en las clases. En la clase de prioridad de tiempo real, todos los procesos tienen una prioridad fija que no cambia nunca.

Page 47: Administración del Procesador (scheduling) - Universidad Católica Andrés Bello

Planificación Windows

Page 48: Administración del Procesador (scheduling) - Universidad Católica Andrés Bello

Planificación UnixDentro de la clase de tiempo compartido, un proceso tiene prioridad variable. El planificador reduce su prioridad cada vez que agota un cuanto de tiempo, y le incrementa cuando se bloquea un evento o recurso. El cuanto de tiempo asignada a un proceso de tiempo compartido depende de su prioridad, oscilando entre 10ms para prioridad 0 y 100ms para prioridad 59. Cada proceso de tiempo real tiene una prioridad fija de un cuanto de tiempo fijo.de Dentro de la clase de tiempo.