ALGORITMO DE PLANIFICACION

Embed Size (px)

Citation preview

DIEGO F. PIZARRO WILLIAM A. MARTNEZ

comenz en 1988 el desarrollo del sistema operativo. destinado a estaciones de trabajo y servidores de tamao pequeo y medio. A partir de 1994 se han comercializado sucesivas versiones (3.51, 4.0, 2000, XP, Vista). Se trata de un sistema operativo que podemos considerar moderno en virtud de su estructura modular cliente-servidor (aunque no posee propiamente un microncleo) y de su orientacin hacia soportes hardware distribuidos. Uno de los objetivos de diseo fue la transportabilidad, que se proporciona a travs de una interfaz de abstraccin del hardware (HAL), existiendo implementaciones para diferentes arquitecturas, como 80x86 de Intel, Alpha de Digital y MIPS.

El kernel de Windows NT est diseado usando POO. Posee una capa de abstraccin de hardware(HAL) la cual es la nica que se comunica directamente con el procesador; el resto del kernel est diseado para utilizar la interfaz de la HAL. La unidad mnima de ejecucin no es el proceso sino el hilo. Un hilo puede estar en alguno de estos seis estados: listo, stand by, en ejecucin en espera, en transicin y terminado. Utiliza una planificacin basada en colas mltiples de prioridades. Posee 32 niveles de colas de prioridad divididos en dos clases. Los 16 niveles superiores(1631), de prioridades estticas, constituyen la clase de tiempo real. Los 16 inferiores (0-15)clase variable, donde se ubican los threads de usuario, son de tiempo compartido y se gestionan con disciplina FCFS.

Las colas se recorren de mayor a menor ejecutando los hilos asociados. Cada cola es manejada por medio de un algoritmo de round robn, aun as, si un hilo de mayor prioridad llega, el procesador le es asignado a este. Un thread de usuario perteneciente a un proceso P parte con una prioridad base inicial que puede estar en el rango [prio(P) 2 , prio(P)+2]. La prioridad del thread flucta dinmicamente durante la ejecucin en el rango [prio(P)2, 15], incrementndose cuando el thread se bloquea y decrementndose cuando el thread es expulsado por fin de quantum.

El componente del sistema operativo que gestiona la multitarea en Windows 95 es el planificador. El planificador trata principalmente con el tiempo y los sucesos. Un proceso en Windows 95 consigue un lapso de tiempo que determina durante cunto tiempo puede usar la CPU. trabaja con dos modelos de Multitarea: multitarea Cooperativa y multitarea con Derecho Preferente. o asignacin prioritaria, para mantener la compatibilidad con los programas existentes.

Mediante

el mtodo de Multitarea Cooperativa, el S.O deja que sea el proceso quien compruebe la cola de procesos que quieren ejecutarse y que cada proceso, deje tiempo de CPU al resto de aplicaciones que se estn ejecutando. Puede ocurrir que el programa que est en ejecucin, no compruebe peridicamente la cola y se apodere completamente de la CPU, con lo cual ningn proceso responder hasta que termine el que est en ejecucin.

Multitarea

con Derecho Preferente, es el Planificador de Procesos quien quita o da el control a un proceso y adems determina el tiempo que dicho proceso va a ocupar la CPU. Windows 95 solo utiliza la Multitarea Cooperativa, con las aplicaciones de 16 bits. Todas las aplicaciones de 32 bits se ejecutan en Multitarea con Derecho Preferente.

Planificadores de Windows 95: Cuando hay varios procesos activos en el sistema, es necesario disponer de algn mtodo para determinar el orden en que se ejecutarn las hebras. Cada hebra tiene una prioridad base. La prioridad determina cuando se ejecuta una hebra en relacin con otras hebras del sistema. Se otorga el uso del procesador a la hebra que tenga la mayor prioridad. La prioridad base de las hebras de un proceso puede alterarse en dos niveles ascendentes o descendentes.

Uno de los mtodos para cambiar la prioridad base de un programa es que el planificador modifique la prioridad de la hebras. El proceso de planificador se realiza as: 1. El planificador principal examina cada hebra presente en el sistema y calcula un valor de prioridad de ejecucin para la hebra, un entero entre 0 y 31. 2. El planificador principal suspende cualquier hebra que tenga un valor de prioridad inferior al ms alto. (si dos hebras tienen el valor de prioridad igual a 20, y las dems tienen un valor menor que 20, entonces 20 es el valor ms alto hasta que se vuelva a evaluar la prioridad). Una vez que se suspende una hebra, el planificador principal no le presta ms atencin en el clculo de prioridad durante el lapso en cuestin. 3. Despus, el planificador de lapsos calcula el porcentaje de lapso a asignar a cada hebra, usando los valores de prioridad y conociendo el valor actual de la VM. 4. Se ejecutan las hebras. Por omisin el planificador principal volver a evaluar las prioridades cada 20 milisegundos. Tambin entran en juego en este proceso tres sealizadores de control que contiene cada VM.

En

un multiprocesador con N procesadores, la planificacin de threads en Windows 2000 se basa en dos criterios: (1) afinidad al procesador, y (2) asignar N1 procesadores a los N1 threads ms prioritarios y el restante a todos los dems.

planifica las hebras utilizando un algoritmo de planificacin apropiativo basado en prioridades. El planificador de Windows XP asegura que siempre se ejecute la hebra de prioridad ms alta. El despachador ejecuta una hebra hasta que sea desalojada por una hebra de prioridad mas alta, hasta que termine, hasta que su cuanto de tiempo concluya o hasta que invoque una llamada bloqueante al sistema. .

Windows

XP diferencia entre el proceso de primer plano que est actualmente seleccionado en la pantalla y los procesos de segundo plano que no estn actualmente seleccionados. Cuando un proceso pasa a primer plano, Windows XP multiplica el cuanto de planificacin por cierto factor, este incremento proporciona al proceso en primer plano tres veces ms tiempo para ejecutarse, antes de que se produzca un desalojo a la comparticin de tiempo

Por

lo general en Windows se utiliza una poltica de planificacin: round robn. La desventaja principal es que cambia los procesos en ejecucin con demasiada frecuencia. Lo que supone una pequea perdida de tiempo.