proyecto final proyecto tere | Page 152

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