cada uno en una partición distinta de memoria. En t=0, el proceso A está siendo ejecutado, y el
procesador toma las instrucciones a ejecutar de la partición correspondiente a A. En un
momento determinado, el control pasa al sistema operativo. Esto puede producirse por tres
razones fundamentalmente:
1. El proceso A realiza una llamada de servicio al SO (por ejemplo, para acceso a I/O). Se
suspende la ejecución de A hasta que se satisfaga la llamada.
2. El proceso A produce una interrupción. El procesador deja de ejecutar A y transfiere el
control al gestor de interrupciones en el SO. Existen varias posibilidades de que esto ocurra.
Un ejemplo es un error, que puede estar producido por intentar ejecutar una instrucción
privilegiada a la que no tiene acceso A. Otro es sobrepasar el límite de tiempo, que previene la
monopolización del procesador por un solo proceso.
3. Otro evento no relacionado con el proceso A que requiere atención del procesador produce
una interrupción (por ejemplo, el fin de una operación I/O previa). En cualquier caso, el
resultado es el siguiente. El procesador salva el contexto actual de datos y el PC para A en el
bloque de control del proceso A y comienza a ejecutar el SO. Cuando termina la rutina
correspondiente, el distribuidor, incluido en el SO, decide qué proceso se realizará en siguiente
lugar. El SO ordena al procesador retomar el contexto del proceso B y continuar con su
ejecución en el punto en que se había dejado. Para realizar su tarea, el SO mantiene un cierto
número de 'colas'. Cada una de ellas es una lista de espera que contiene los procesos en
espera de acceso a algún recurso. La cola a largo plazo (long-term queue) es la lista de
programas que esperan utilizar el sistema. Cuando las condiciones lo permitan, el planificador
de alto nivel asignará memoria y creará un proceso para uno de los programas que esperan. La
cola a corto plazo (short-term queue) contiene todos los procesos en estado 'Preparado'. La
selección entre ellos se realiza por algún algoritmo o utilizando prioridades. Finalmente existe
una cola por cada dispositivo I/O, donde se almacenan todos los procesos que requieren
acceso a ese dispositivo.
152