Sistemas operativos modernos

En ejecución 1. El proceso se bloquea patB esperar entrada 2. El calendarizador escoge otro proceso 3. El calendarizador escoge este proceso 4. Ya hay entrada disponible Figura 2-2. Un proceso puede estar en estado bloqueado, listo o en ejecución. Se muestran las transiciones entre esos estados. Puede haber cuatro transiciones entre estos tres estados, como se muestra en la figura 2-2. La transición 1 se presenta cuando un proceso descubre que no puede continuar. En algunos sistemas, el proceso deberá ejecutar una llamada al sistema, como block o pause para pasar al estado blo­ queado. En otros sistemas, incluido UNIX, cuando un proceso lee de una canalización o de un ar­ chivo especial (por ejemplo, una terminal) y no hay entrada disponible, el proceso se bloquea en forma automática. Las transiciones 2 y 3 son consecuencia de las acciones del calendarizador o despachador de procesos que forma parte del sistema operativo, y de las cuales el proceso ni siquiera se en­ tera. La transición 2 ocurre cuando el calendarizador decide que el proceso que se está ejecutan­ do ya lo hizo durante suficiente tiempo, y es momento de conceder a otro proceso el tiempo de CPU. La transición 3 ocurre cuando los demás procesos han recibido su porción equitativa y to­ ca al primero recibir la CPU para ejecutarse otra vez. El lema de la calendarización, es decir, de­ cidir cuál proceso debe ejecutarse cuándo y durante cuánto tiempo, es importante y lo examinaremos en una sección posterior del capítulo. Se han ideado muchos algoritmos para tra­ tar de equilibrar las exigencias opuestas de eficiencia para el sistema en su totalidad y de equidad para los procesos individuales. Estudiaremos algunos de ellos más adelante en este capítulo. La transición 4 se presenta cuando ocurre el suceso externo que un proceso estaba esperan­ do (como la llegada de sus entradas). Si ningún otro proceso está ejecutándose en ese instante, se activará la transición 3 y el proceso comenzará a ejecutarse. De lo contrario, tendrá que es­ perar un momento en el estado lisio hasta que la CPU esté disponible y le toque su tumo. Si utilizamos el modelo de procesos, será mucho más fácil entender lo que sucede dentro del sistema. Algunos de los procesos ejecutan programas que, a su vez, ejecutan comandos tecleados por un usuario. Otros forman parte del sistema y se encargan de tareas como atender solicitudes de servicios de archivos u ocuparse de los pormenores de la operación de una uni­ dad de disco o de cinta. Cuando sucede una interrupción de disco, el sistema decide detener la ejecución del proceso actual y pasar, al proceso de disco, que estaba bloqueado en espera de dicha interrupción. Así, en vez de pensar en interrupciones, podemos pensar en procesos de usuario, procesos de disco, procesos de terminal, etcétera, que se bloquean cuando esperan que suceda algo. Una vez que se ha leído el disco o tecleado el carácter, el proceso que estaba esperando el suceso se desbloquea y queda elegible para ejecutarse otra vez. Este punto de vista da pie al modelo que se muestra en la figura 2-3. Aquí, el nivel más ba­ jo del sistema operativo es el calendarizador, con diversos procesos más arriba. Todo el manejo de interrupciones y los pormenores de la suspensión y reanudación de procesos quedan ocultos en lo que llamamos calendarizador, que en realidad no abarca mucho código. El resto del siste-

RkJQdWJsaXNoZXIy MjI4NDcx