Planificación Multiprocesador En UNIX
Enviado por pablo1710 • 21 de Mayo de 2013 • 630 Palabras (3 Páginas) • 351 Visitas
UNIX es un sistema de tiempo compartido, de propósito general, diseñado por programadores para ser usado por programadores. Simpleza, elegancia y consistencia son las características que los programadores desean de un sistema. Por ejemplo, en vez de agregar complejo código para tratar sistuaciones patológicas, UNIX se cae controladamente (entra en modo llamado pánico); más bien trata de prevenir estas situaciones antes que curarlas.
Otras cualidades de UNIX, bien vistas por los programadores, pero no tanto por los no-programadores, son su poder y flexibilidad, gracias a que ofrece una gran cantidad de elementos básicos que se pueden combinar de múltiples maneras para lograr metas más complejas. En UNIX, cada programa hace una sola cosa, y la hace bien (y de todas las formas posibles).
Otra característica es el uso de comandos cortos y crípticos.
Procesos
Los únicos entes activos en UNIX son los procesos. Cada usuario puede tener varios procesos activos simultáneamente, así que en un sistema UNIX puede haber cientos o miles de procesos simultáneos. Incluso cuando no hay usuarios usando el sistema, hay procesos corriendo, llamados demonios, que son creados cuando se inicializa el sistema.
Un ejemplo es el demonio cron, que despierta cada minuto para ver si hay algún trabajo que hacer. Gracias a él se pueden fijar actividades periódicas, como por ejempo, hacer respaldos a las 4 AM. Otros demonios manejan el correo entrante, la cola de impresión, monitorean el uso de páginas de memoria, etc.
Para implementar procesos, el kernel mantiene dos estructuras de datos:
1.-Tabla de procesos.
Residente todo el tiempo en memoria, contiene información para todos los procesos, incluidos los que no están en memoria. Aquí se manejan datos como la prioridad del proceso, mapa de memoria del proceso, dónde se encuentra el proceso cuando está en disco, etc.
2.-Estructura de usuario.
Se pasa a disco y a memoria junto con el proceso. Contiene registros, tabla de archivos abiertos, stack del kernel, estadísticas de uso de recursos, etc.
Planificación de CPU
El algoritmo de planificación de UNIX está diseñado para favorecer a los procesos interactivos. La planificación se hace en dos niveles: el algortimo de largo plazo determina qué procesos pasan de la memoria al disco, y viceversa. El de corto plazo determina a qué proceso se le entrega la CPU. Para eso usa múltiples colas, una para cada prioridad. Sólo los procesos que están en memoria y listos para ejecutar son puestos en estas colas. El planificador escoge cada vez el primer proceso de la cola de más alta prioridad que no esté vacía, y se le entrega la CPU por un quantum (0.1 seg), o hasta que se bloquee. Para evitar inanición, los procesos van perdiendo prioridad mientras más usan CPU: en cada tick del reloj se incrementa el contador de uso de CPU del proceso
...