Sie sind auf Seite 1von 10
INTERRUPCIONES Précticamente todos los computadores disponen de un mecanismo mediante el que otros médulos (E/S, memoria) pueden interrumpir el procesamiento normal de la CPU. La Tabla 3.1 enumera las clases de interrupciones més comunes. La naturaleza especifica de estas interrupciones se examina en este libro mas tarde, especialmente en los Capitulos 7 y 12. Sin embargo, necesitamos introducir el concepto ahora pura comprender mas claramente la esencia del ciclo de instruccién y los efectos de las interrupciones en la estructura de interconexién, En este momento, el lector no necesita conocer Tabla 3.1. Clases de interrupciones. Perspectiva de alto nivel del funcionamiento y de las interconoxiones del computador 67 los detalles de la generacién y el procesamiento de las interrupeiones, sino solamente concentrarse en la comunicaci6n entre modulos que resultan de las interrupciones, En primer lugar las interrupciones proporcionan una forma de mejorar la eficiencia del process dor. Por ejemplo, ka mayoria de los dispositivos externos son mucho mas lentos que el procesador. ‘Supdngase que el procesador esté transfiriendo datos a una impresora utilizando el esquema del ciclo de instruccién de la Figura 3.3. Después de cada opericiGn de escritura, el procesador tend que parar y permanecer ocioso hasta que la impresora complete la eseritura La longitud de esta pausa puede ser del orden de muchos cientos 0 incluso miles de ciclos de instruceién que no implican aece so a memoria, Claramente, esto supone un derroche en el uso del procesador. La Figura 3.7a ilustra la situacién del ejemplo referido en el parrafo precedente, El programa de usuario realiza una scric de amadas de eseritura (WRITE) entremezcladas con el procesamiento. Los segmentos de cddigo |, 2. y 3 corresponden a secuencias de instrucciones que no ocasionan opera ions Ue B/S. Las Hamadas de eseritura (WRITE) correponden a llamadas a un programa de E/S que cs una de las utilidades del sistema operativo y que se encarga de la operacién de E/S considerada, El programa de E/S esta constituido por tres secciones: + Una secueneia de instrucciones, rotulada con 4 en Ia figura, de preparacién para la operacisn de E/S a realizar. Esto puede implicar la copia del dato que se va a proporcionar en un regis: tro intermedio (buffer) especial, y preparar los pardmetros de control del dispositivo de B/S. + La orden de E/S propiamente dicha. Si no se utilizan interrupeiones, una vez que se cjecuta cesta orden, el programa debe esperar a que el dispositive de E/S complete ta operacién solici- tada. El programa esperaria comprobando repetidamente una condicién que indique si se ha realizado la operacién de E/S + Una secuencia de insirucciones, rotulada con 5 en la figura, que terminan la operacién de E/S. Estas pueden inluir la activacion de un indicador (flag) que seftale si la operacién se ha com= pletado correctamente © con errores. Debido a que la operacién de E/S puede necesitar un tiempo relativamente largo, el programs de B/S debe detenerse a esperar que concluya dicha operacién; por consiguiente, el programa de usuario estaré parado en las Hamuadas de eseritura (WRITE) durante un periodo de ticmpo considerable Las Interrupciones y el ciclo de instruccién. Con el uso de internupciones, el processidor puede dedicarse a cjecutar otras instrucciones mientras una operacién de E/S esta en curso. Considérese el flujo de control de Ia Figura 3.7b. Como antes, el programa de usuario Mega a un punto en el que realiza una Hamada al sistema para reclizar una eseritura (WRITE). Bl programa de B/S al que se llama en este caso esta constituido solo por el cédligo de preparacién y ta orden de E/S propiamente dicha. Después de que estas pocas instruceiones se hayan ejecutado, ef control se devuelve al programa de usuario. Mientras tanto, el dispositivo externo esta ocupado aceptando el dato de la memoria del computador e imprimigncolo. Esta operacion de E/S se realizs ‘mente con la gjecuci6n de instrucciones del programa de usuario. ‘Cuando cl dispositivo externo pasa a estar preparado para actuar, es decir, cuando esti listo para aceptar més datos del procesador, el médulo de E/S de este dispositive extemo envia una sefial de peticién de interrupcién al procesador, El procesador responde suspendiendo la operacisn del pro- fgrama que estaba ejecutando y salta a un programa, conocide como gestor de interrupcién, que da Perspectiva de alto nivel del funcionamiento y de las interconexiones del computador «69 Programa deus Gestor de iterrupeiones Aqui se progice Te 1a micrrupeisn 7 M Figura 3.8. Transferencia de control debida a una interrupeion. servicio a ese dispositivo concreto, y prosigue con la ejecucién del programa original después de haber dado dicho servicio al dispositivo. En la Figura 3.7b. los puntos en los que se producen las inte- rrupeiones se indican con una equis (X), Dese el punto de vista del programa de usuario, una interrupeidn es precisamente eso: una inte- rrupcisn en Ia secuencia normal de funcionamiento. Cuando el procesamiemto de la interrupeién se completa, la ejecuciGn prosigue (Figura 3.8). Asi, el programa de usuario no tiene que incluir ningtin cédigo especial para posibilitar las interupciones: el procesaclor y el sistema operativo son los res- ponsables de detener el programa de usuario y después permitir que prosiga en el mismo punto. Para permitir el uso de internupeiones, se afiade un ciclo de interrupetén al ciclo de instruccién, como muestra la Figura 3.9. En el ciclo de interrupcidn, el procesacior comprueba si se hit generado Cielo de Cielo de Ciclo de captacion ejecucion interrupeién INICIO Tnierrap- ‘ones aida Gem) Figura 3.9. Ciclo de instruccion con interrupciones. 70 Organizacién y arquitectura de compuradoros: alguna interrupein, indicada por la presencia una sefal de interrupei6n, Si no hay sellales de imte rrupcién pendientes, el procesador continda von el cielo de eaptacién y accede a la siguiente instruc cin del programa en curso. Si hay alguna interrupcin pendiente, el procesador hace lo siguiente 1. Suspende Ia ejecucién del programa en curso y guaida su contexto, Esto significa alracenar la direccidn de la siguiente instruccién a ejecutar (contenide actual del contador de progra- 'ma) y cualquier otro dato relacionado con la actividad en curso del procesador: 2. Carga cl contador de programa con la direcci6n de ea vrrupeién, jenzo de una rutina de gestion de ine A confinusci6n et procesader prosigue con el ciclo de caplacicn y aecede a la primera instruecién del programa de gestin de interrupcién, que dard servicio « la interrupcién. Goncralmente el progra- ma de gestin de interrupei6n forma parte del sistema operative. Normalmente, este programa deter- ‘mina cl origen de la interrupcidn y realiza todas lay acciones que sean necesarias. Por ejemplo, en el ‘caso que hemos estado analizando, el gestor determina qué modulo de E/S geners la interrupcicn, y puede saltar a un programa que escribe mas datos en ese médulo de FS, Cuando la rutina de gestion de interrupeién se completa, c! procesador puede proseguir lt ejecucién del programa de usuario en 1 punio en el que se interrumpi6, Es claro que este proceso supone una cierta penalizacisn (overhed). Deben ejecutarse instruce Cones extra (en el gestor de interrupeién) para determinar el origen de la interrupcién y para decidir la accidn apropiada, No obstante, debido la relativamente gran eantidad de tiempo que se perderia simplemente por la espera asociada a la operacién de E/S, ¢! procesaudor puede emplearse de manera "mucho mas eficiente uilizando interrupciones. Para apreciar el aumento de eficiencia, considérese la Figura 3.10, que es un diagrama de tiem~ pos basado en el flujo de comtrol de las Figuras 3.7a y 3.7b, Las Figuras 3.7b y 3.10 asumen que el tiempo necesario para la operacidn Ge F/S es relativamente corto: menor que el tiempo para comple~ tar la ejecucién de las instrucciones del programa de usuario que hay entre operaciones de eseritura, La situacin més fecuemte, especialmente para un disposhivo lento como una impresora, es que Ia ‘operacién de F/S requiera mucho mis tiempo para ejecutar una sccuencia de instruceiones de usta- Fo. La Figura 3.7e ilusira esta situacion. En este caso, el programa de usuario Hega a la segunda Ila ‘mada de escritura (WRITE) antes de que la operacién de E/S yenerada por la primera Hamada se complete. El resultado es que el programa de usuario se deticne en este punto. Cuando Ia operacién e Ev precedente se completa, esta nueva llamada de escritura se puede process, y se puede iniciar luna nueva operaciGn de F/S. La Figura 3.11 muestra la temporizacién para esta situacidn eon y sin interrupeiones. Podemos ver que existe una mejora de eficiencia porque parte del tiempo durante el ‘cual la operacién de E/S esta en marcha se solapa con la ejecucisn de instrucciones de usuario, La Figure 3.12 muestra ef digerama de estados del cielo de instruccion modificado para inctuit procesamiento del ciclo de interrupeisn, Interrupciones multiples, Hasta ahora nicamente se ha discutido Ia existencia de una sola interrupcin. Supdngase, no obstante, que se puedan producit varias interrupciones. Por ejemplo, un programa pusde estar recibiendo datos a través de una linea de comunicacién ¢ imprimiendo resul- tados. La impresora generard interrupciones cada vez que complete una operacién de escriturs. E] ‘controlador de la linea de comunicaci¢n generara una interrupeign cada vez que Hegue una unidad de datos. La unidad de datos puede ser un cardcter 6 un blogue, segtin el protocolo de comuinicacién. En Perspactiva de alto nival del funcionamionto y de las intorconexiones del computsdor 71 _O_ Oo ee [ae _@ [ne @ ® [ere Procesador { Operacisn enespera de L/S ® ® (b) Con insemapciones (2) Sin inerrypcicnes Figura 3.10. Temporizacion de un programa: espera corta de E/S. cualquier caso, ¢s posible que se produzca una interrupcién de comuniesciones mientras se est pro cesando la interrupcidn de la impresora Se pueden seguir dos alternativas para tratar las interrupeiones miltiples. La primera es desueti- var las interrupciones mientras se esta procesando una interrupcién. Una interrupein inhabilitada (disabled interrups) simplemente significa que el procesador puede y debe ignorar la seital de peticidn de interrupci6n, Si se produce una interrupcidn en ese momento, generalmente se mantiene pendien- te y sera examinada por el procesador una vex este haya activado las interrupciones. Asi, cusndo un programa de usuario se esti ejecutando y se produce una interrupcidn, Jas interrupeiones se inhabili- tan inmediatamente. Después de que la rutina de gestién de interrupeién termine, las interrupciones se habilitan antes de que el programa de usuario prosiga, y el procesador comprutat si se han produ cido interrupciones adicionales. Esta aproximacién es correcta y simple, puesto que las interrupcio nes se manejan en un orden secuencial estricto (Figura 3.13a) El inconveniente del enfoque anterior es que no tiene en cuenta la prioridacl rekativa ni lay solic tudes con un tiempo eritico. Por ejemplo, cuando llega una entrada desde la linea de comunicaciones, esta debe tramitarse répidamente para dejar espacio a los datos siguientes, Si los primeros datos no se han procesado antes de que leguen los siguientes, se pueden perder Organizacién y arquitectura de computadores Procesador | Operacién 2) enespera | de B/S a =a © roe ® £ = Ww ® : oO A w ‘rei Procesador | Opcracién ——— 4s : a ee (rt a aaa eos : Oo =] @ (0) Commerce Figura 3.11. Temporizacién de un programa: espers larga de EIS. ‘Una segunda alternativa consistc en defini prioridades para las interrupciones y permitir que una interrupeiGn de prioridad més alta pueda interrumpir a un gestor de imerrupciGn de prioridad menor (Figura 3.13b). Como ejemplo de esta segunda alternativa, considétese un sistema con ies disposi ‘vos de F/S: una impresora, un disco, y una linca de Comunicaciones, con prioridades crecientes de 2, 4, 5 respectivamente. La Figura 3.14, basada en un ejemplo de [TANE97] muestra una posible secuencia. Un programa de usiaria comienea en ¢=0. En f= 10, la impresora produce una inte ‘Tupcidn; la informacin det programa de usuario se sta en Ia pila del sistema, y la ejecucién cont ‘nz con Ja rutina de servicio de interrupeign (ISR) de la impresora. Mientras se esté ejecutando esta rutina, en ¢ = 15, se produce una interrupeién de Comunicaciones, Como la linea de comunicaciones tiene una prioridad mayor que la impresora, se acepta la interrupciGn, La ISR de la impresora se inte ‘rumpe. st estado se introduce en ta pila, y la ejecucidn continga con la rutina de Comunicaciones, Mientras se esti ejecutando esta rutina, el disco ocasiona una interrupcisn (1 = 20), Puesto que esta Porspectiva de alte nivel del funcionamiento y de las interconoxiones dol computador 73, Figura 3.12. Diagrams de estados de un ciclo de instruceién, con interrupciones. interrupcién tine una prioridad menor, simplemente se retiene, y la ISR de comunicaciones se ee ‘cut hasta que termina, Cuando la rutina de comunicaciones termina (f ~ 25), se restaura el estado previo del procesador, ‘que corresponde a la ejecucién de la rutina de la impresora, No obstante, antes incluso de que pueda e™jecutarse una sola instruccidn de esa rina, el processor acept la interrupcidn, de mayor priorided, ‘generada por el disco y cl control se transfiere ala rutina de disco. Solo cuando esta rutina termina (¢= 35), la rutna de Ia impresora puede reanudarse, Cuando termina esa rutina (¢ = 40), el control ‘vuelve finalmente al programa de usuario. FUNCIONAMIENTO DE LAS E/S ‘Hasta aguf, hemos discutido et funcionamiento del computador controlado por el procesador, ¥ nos ‘hems fijado esencialmente en la interaceiGn del procesidor y la memoria La diseusion solo ha aludido al papel de los components de ES. Ie en el Capitulo 7, pero es conveniente hacer aqui un breve resumen, ste papel se discute com det Un médulo de F/S (por ejemplo un controlador de disco) puede intercambiar datos direct con el procesador. Igual que cl processor pede iniciar una letra o escritura en memoria, especii ccando la dreccién de una posicién conereta de Ia misma, el procesidlor también puede leer o eseribir datos de (o en) un meidulo de ES. En este limo caso, el procesador identifies un dispositivo espe: cifico controlado por un médulo de E/S determinado, Por consiguiente, se puede producir una seeuencia de instruceiones similar a lade la Figura 3.5, con instruesiones de EJS en lugar de ls ins- trucciones de referent En algumos casos, es deseable permitir que los intercambios de F/S se produzcan directamente con la memoria. En ese caso. el procesatior cede « un médulo de F/S la autoridad para leer de 0 escri bir en memoria, para que asi la transferencia E/S-memoria pueds producirse sin la intervencion del 74 Organizacion y arquitectura de computadores Programa Gestor de ‘de usuario interrupcién X Gestor de intersupeion ¥ (@) Procesamiento de una seewencia de imerrupeiones Gestor de interrupein X Gestor de nterrupeidn ¥ (b) Procesamiento de imterrupeionessnidadas Figura 3.13. Transferencia de control con varies interrupeiones, procesador: Durante esas wansferencias, el médulo de E/S proporciona a la memoria lus drenes de Tectura 0 escritura, liberando al procesador de cualquier responsabilidad en el intereambio. Esta ope- rein se conoce eon el nombre de acceso directo a memoria (DMA, Direct Memory Access), ¥ Se cestudiard con detalle en el Capitulo 7 Perspectiva de alto nivel del funcionamiento y de las interconexiones del computador 75 Rutina de servicio Rutina de servicio Programa de impresora de comunicaciones f = y = xs an Rutina be = de servicio x a del disco Figura 3.14, Ejemplo de secuencia temporal de verias interrupciones.

Das könnte Ihnen auch gefallen