Procesos

PLANIFICACIÓN
En un ordenador multiprogramado es frecuente que en un momento dado haya múltiples procesos compitiendo por el uso de la CPU al mismo tiempo. Esta situación se da siempre que dos o más procesos están simultáneamente en el estado preparado. La parte del sistema operativo que realiza esa elección se denomina el planificador (scheduler), y el algoritmo que se utiliza para esa elecciónse denomina el algoritmo de planificación.

Introducción a la Planificación

Con la llegada de los sistemas en tiempo compartido, el algoritmo de planificación se hizo más complejo debido a que generalmente había muchos usuarios esperando recibir un servicio inmediato. Debido a que el tiempo de CPU es un recurso escaso en estas máquinas, un buen planificador puede conseguir grandes mejorasen el rendimiento percibido y la satisfacción del usuario. La situación ha cambiado en dos aspectos con la llegada de los ordenadores personales.
En primer lugar, la mayoría del tiempo sólo hay un proceso activo. En segundo lugar, a través de los años los ordenadores se han hecho mucho más rápidos por lo que la CPU raramente será ya un recurso escaso. La mayoría de los programas para ordenadorespersonales están limitados por la velocidad a la cual el usuario puede introducir los datos (mediante el teclado o el ratón), no por la velocidad a la cual la CPU puede procesarlos. Cuando pasamos a hablar de las estaciones de trabajo y servidores de gama alta, la situación cambia notablemente. Aquí es frecuente tener múltiples procesos que compiten por la CPU, de manera que la planificación vuelvea ser muy importante.
El planificador, además de tener que escoger el proceso correcto para ejecutar, tiene que preocuparse también de realizar un uso eficiente de la CPU, debido a que la conmutación de procesos es muy costosa. Para empezar, debe producirse el paso de modo usuario a modo supervisor. Luego debe salvarse el estado del proceso actual, incluyendo el almacenamiento de los registrosen la tabla de procesos de forma que puedan recargarse posteriormente. A continuación debe seleccionarse un nuevo proceso mediante la ejecución del algoritmo de planificación. Después de eso, la MMU (Unidad de Gestión de Memoria) debe volverse a cargar con el mapa de memoria del nuevo proceso. Finalmente, debe arrancarse el nuevo proceso.

Comportamiento de los Procesos

Casi todos los procesosalternan ráfagas de computación con peticiones de E/S (disco) Normalmente la CPU ejecuta instrucciones durante un cierto intervalo de tiempo sin detenerse, y luego realiza una llamada al sistema para leer de un fichero o escribir en un fichero. Cuando se completa la llamada al sistema, la CPU vuelve a realizar cálculos hasta que necesita más datos o hasta que tiene que escribir más datos, y asísucesivamente. Hay que aclarar que algunas operaciones de E/S cuentan aquí como computación.

El primer proceso se dice que es intensivo en computación(CPU-bound); el segundo se dice que es intensivo en E/S (I/O-bound). Los procesos intensivos en computación tienen normalmente ráfagas de CPU muy largas y por lo tanto esperas por E/S poco frecuentes, mientras que los procesos intensivos en E/Stienen ráfagas de CPU muy cortas y por lo tanto esperas por E/S muy frecuentes.
Los procesos intensivos en E/S lo son debido a que realizan poca computación entre peticiones de E/S sucesivas, y no debido a que tengan peticiones de E/S especialmente largas. Es necesario destacar que a medida que las CPUs se hacen más rápidas, los procesos tienden a ser más intensivos en E/S. Este efecto se producedebido a que las CPUs se están mejorando mucho más rápido que los discos. Como consecuencia, es muy probable que la planificación de los procesos intensivos en E/S se convierta en un tema muy importante en el futuro.

Cuando Planificar

Una cuestión clave relacionada con la planificación es en qué momento realizar las decisiones de planificación. Resulta que hay una gran variedad de…