Práctica - Universidad de Carabobo

Anuncio
Universidad de Carabobo
Facultad Experimental de Ciencias y Tecnología
Departamento de Computación
Sistemas Operativos
Prep. Carlos I. Buchart I.
Nombre:___________________________________
Planificación de Procesos en Linux
El Process Scheduler (SCHED), es el componente del kernel encargado de controlar el acceso de los
procesos al CPU. El SCHED es el componente de bajo nivel más importante del sistemas; todos los demás
(incluyendo los módulos de acceso a disco, controladores de video, etc.), dependen directamente de él.
Los procesos en Linux pueden ser divididos en tres categorías, relacionadas con la prioridad: interactivos,
por lotes y de tiempo real. Los procesos TR son manejados bien por un algoritmo FIFO o RR. Los demás procesos
son despachados utilizando planificación RR con un sistema de envejecimiento basado en créditos, donde el
siguiente proceso a ejecutar es aquel que más créditos posea. Los procesos TR son considerados prioritarios
sobre cualquier otro proceso en el sistema, por lo que serán ejecutados antes que los demás. Por otro lado, un
proceso puede estar en alguno de estos estados: en ejecución, en espera, detenido o zombie (un proceso que,
aunque ha finalizado su ejecución, mantiene su PCB en el sistema).
Algunos aspectos de la estructura interna del kernel que caben destacarse son:
• La PCB está representada por la estructura task_struct. Ésta indica el tipo de planificación (FIFO,RR)
por medio del campo policy, la prioridad (priority), el contador del programa (counter), entre otros.
• La función goodness otorga una “calificación” al proceso pasado como parámetro. Dicha puntuación
oscila entre -1000 (no elegible) y +1000 (TR). Los procesos que comparten una zona de memoria
ganan una puntuación equivalente a su prioridad.
• El quantum varía según el proceso y su prioridad. La duración base es de aprox. 200ms.
• La función switch_to es la encargada de salvar la información de un proceso y cargar el siguiente.
• Las funciones sched_{get/set}scheduler se refieren al mecanismo de planificación asociado a ese
proceso. De igual forma el equivalente con ...param devuelve/fija la prioridad de un proceso.
• Una nueva copia del proceso actual es creada mediante la llamada al sistema fork. Para ejecutar un
nuevo programa se utiliza la función execve.
Planificación de Procesos en Windows NT
El kernel de Windows NT está diseñado utilizando POO. Posee una capa de abstracción de hardware
(HAL), la cual es la única que se comunica directamente con el procesador; el resto del kernel está diseñado para
utilizar la interfaz de la HAL. La unidad mínima de ejecución no es el proceso sino el hilo. Un hilo puede estar en
alguno de estos seis estados: listo, standby (siguiente a ejecutar), en ejecución, en espera, en transición (un nuevo
hilo) y terminado.
Windows NT utiliza una planificación basada en colas múltiples de prioridades. Posee 32 niveles de colas,
clasificadas en clas de TR (16-31) y clase variable (0-15). Las colas se recorren de mayor a menor ejecutando los
hilos asociados. Cada cola es manejada por medio de un algoritmo de RR, aun así, si un hilo de mayor prioridad
llega, el procesador le es asignado a éste.
Bibliografía
• http://www.iamexwi.unibe.ch/studenten/schlpbch/linuxScheduling/LinuxScheduling.html
• http://www.oreilly.com/catalog/linuxkernel/chapter/ch10.html
• http://www.cs.wpi.edu/~cs3013/b00/week3-sched/week3-sched.html
• http://www.tldp.org/LDP/tlk/tlk.html
• Sistemas Operativos 6a. Edición – A. Silberschatz, P. Galvin, G. Gagne (Linux: p. 681-689. Windows NT: p.
721-722
• http://www.808multimedia.com/winnt/kernel.htm
CB/cb
Descargar