Diferencia entre revisiones de «Planificadores de sistemas operativos existentes»

De Wiki de Sistemas Operativos
Saltar a: navegación, buscar
(Planificador Mac Os X (Darwin))
(Planificador Mac Os X (Darwin))
Línea 20: Línea 20:
  
  
{| class=""
+
  '''Prioridad'''        |         '''Aplicación'''
! Prioridad
+
 
! Aplicación
+
    Normal             |      Aplicaciones normales
|-
+
    Alta               |       Aplicaciones cuya prioridad se ha aumentado
|Normal||      Aplicaciones normales
+
    Modo Kernel         |       Procesos internos al kernel con mayor prioridad que el nivel usuario (Ej: E/S)
|-
+
    Tiempo real         |       Hilos con una fracción definida de tiempos de ejecución
|Alta||        Aplicaciones cuya prioridad se ha aumentado
 
|-
 
|Modo Kernel |Procesos internos al kernel con mayor prioridad que el nivel usuario (Ej: E/S)
 
|-
 
|Tiempo real |Hilos con una fracción definida de tiempos de ejecución
 
|}
 

Revisión del 15:43 25 oct 2011

Planificador de Linux 2.6

Este planificador posee 140 prioridades (de 0 a 139), de 0 a 99 son para tiempo real y para el resto de procesos que no son de tiempo real de 100 a 139 basadas en el Nice(de -20 a 19).

Posee un mapa de bits (140 bits), 1 bit para cada prioridad en la que implementan distintas estructuras SCHED_FIFO y SCHED_RR ambas para tiempo real y el resto SCHED_OTHER. Esta ultima estructura posee el número de procesos preparados y dos colas, una para los procesos pendientes y otra para los que ya han consumido su quantum. Cuando un proceso solo consume una parte de su quantum es insertado al final de la cola de pendientes con lo que le queda de su ventana de tiempo(es decir, si ha consumido el 25% la siguiente vez que sea asignado al procesador solo tendra el 75% del quantum), y si consume totalmente su tiempo de asignación al procesador este pasa a la cola de consumido hasta que este totalmente vacía la cola de pendientes. (Esto se hace para compensar los procesos más interactivos)

     Esquema de estructura de SCHED_OTHER:
 
        struct{
           int num_procesos_preparados
           cola pendientes
           cola consumido_quantum
        }

Planificador Mac Os X (Darwin)

La planificación en el kernel de Mac OS X esta basada en cuatro listas de ejecución, cada una de ellas con diferente prioridad. Un hilo puede migrar de un nivel de prioridad a otro en función de sus requerimientos, dependiendo de la política en concreto que se utilice en el sistema. En general, es posible manejar estas prioridades mediante los procedimientos definidos en el estándar de llamadas POSIX. Con lo que podemos decir, que se trata de un criterio de planificación en colas multinivel mezclado con prioridades. Algo parecido al planificador SCHED_OTHER de Linux.

Las cuatro listas de ejecución que maneja el planificador de Mac OS X, son:


 Prioridad        |         Aplicación
    Normal              |       Aplicaciones normales
    Alta                |       Aplicaciones cuya prioridad se ha aumentado
    Modo Kernel         |       Procesos internos al kernel con mayor prioridad que el nivel usuario (Ej: E/S)
    Tiempo real         |       Hilos con una fracción definida de tiempos de ejecución