SlideShare una empresa de Scribd logo
1 de 15
INTERRUPCIONES.

  4.1.   Definición de interrupciones.
  Las interrupciones son mecanismos para realizar llamadas a subrutinas del
  Sistema Operativo o de la ROM BIOS y estos pueden ser tanto por Hardware o
  Software. Las interrupciones son las que articulan la secuencia automática de
  procesos que esta ejecutando un sistema, de esta manera el uso de la CPU se
  hace en relación con las necesidades de ser atendidos dichos procesos en el
  tiempo.
  La interrupción por hardware, se da cuando hay algún evento, como una tecla
  pulsada, reloj, etc, ningún programa puede        advertir cuando sucederá esta
  interrupción, y así como cuando en memoria hay varios procesos que alteran su
  ejecución, puede suceder también una interrupción en un programa debido o
  causado por un periférico que en ese instante esta realizando un trabajo para otro
  programa.
  Por esta razón, hay un conjunto de líneas de peticiones de interrupción, de las
  cuales cada una sale de una interfaz diferente y se les designa como IRQ, Todas
  estas líneas se dirigen a un CHIP que es el árbitro de peticiones de interrupción
  que en caso de activarse mas de una IRQ en el mismo tiempo, se atiende sólo a
  las que tienen sub índice(x) menor.
  Las que no son atendidas deben esperar. Una salida de éste chip activa la línea de
  control INT que entra a la UC, para comunicarle que hay una petición de
  interrupción activa. Cada vez que se termina de ejecutar una instrucción, la UC
  revisa si la línea de control INT está activa. Si el programa que se esta ejecutando
  lo permite, el mismo es interrumpido. De lo contrario, dicha petición espera hasta
  ser atendida.
  La interrupción por Software, en está clase de interrupción al contrario de la
  anterior, se puede predecir en que instante de la ejecución de un programa
  sucederá. Y de manera general actúa de la siguiente manera.
  Un programa que se estaba ejecutando luego de su instrucción I5, realiza una
  llamada al Sistema Operativo, ejemplo para realizar la lectura de un archivo del
  disco duro.
  Para esto, después de I5 existe en el programa, la instrucción de código de
  maquina, CD21, simbolizada INT21 en Asembler, que se verá en el siguiente tema,
  que lleva a cabo el requerimiento del primer paso, ya que no puede seguir la
  ejecución de la instrucción I6 y las siguientes del programa hasta que dicho
  programa esté en memoria principal y no se haya leído el disco, virtualmente el
Escuela Académico Profesional de Ingeniería de Sistemas


   programa se ha interrumpido, siendo además, que después de INT21, las
   instrucciones que se ejecutarán no serán del programa si no del Sistema
   Operativo. La ejecución de INT21 permite hallar la subrutina del sistema operativo.
   Se ejecuta la sub rutina del Sistema operativo que prepara para leer el disco.
   Después de ejecutarse la sub rutina del sistema operativo, y leído el disco y
   verificado que la lectura sea correcta el Sistema operativo dará la orden de
   reanudar la ejecución del programa que se auto interrumpió en espera.
   La ejecución del programa se reanuda.



   4.2.    Clases de Interrupciones.
   La mayoría de las computadoras cuentan con un mecanismo por el cual otros
   módulos como los de Entrada /Salida, memoria, etc., pueden interrumpir la normal
   ejecución de la CPU. La tabla xxx muestra las clases de interrupciones más
   comunes.


                 TABLA 5.1 Clases de Interrupciones, William Stalings.
                            Generadas por alguna condición que se produce como
                            resultado de la ejecución de una instrucción, como el
                            desbordamiento aritmético, la división por cero, el intento
De programa
                            de ejecutar una instrucción ilegal de la máquina o una
                            referencia a una zona de memoria fuera del espacio
                            permitido al usuario.
                            Generadas por un reloj interno del procesador. Esto
De reloj                    permite al sistema operativo llevar a cabo ciertas funciones
                            con determinada regularidad.
                            Generadas por un controlador de E/S, para indicar que
De E/S.                     una operación ha terminado normalmente o para indicar
                            diversas condiciones de error.
                            Generadas por fallos tales como un corte de energía o un
Por fallo del Hardware
                            error de paridad de la memoria.


   Las interrupciones se encuentran, generalmente, como una forma para mejorar la
   eficiencia del procesamiento, como por ejemplo, la mayoría de los dispositivos
   externos son mucho más lentos que la CPU, supongamos que la CPU está
   transfiriendo datos hacia una impresora, usando un esquema para el ciclo de
                                                                                      2
Escuela Académico Profesional de Ingeniería de Sistemas


   instrucción como el dela figura yyy. Después de cada operación de escribir, la
   CPU hará una pausa y permanecerá libre hasta que la impresora se ponga al
   corriente. El tiempo de duración de esta pausa puede ser de varios cientos o hasta
   miles de ciclos de instrucción en los que la memoria no esta implicada. En este
   caso se ve con mucha claridad el derroche en el uso de la CPU.




Figura Nº 5.1. Flujo de control del Programa sin y con interrupciones, Williams Stalligs.


   La figura Nº 5.1 muestra este estado de los procesos para la aplicación que se
   indica en el párrafo anterior. El programa de usuario realiza una serie de llamadas
   a ESCRIBIR, intercaladas con el procesamiento. Los segmentos de código 1, 2 y 3
   se refieren a secuencias de instrucciones que no implican E/S. Las llamadas a
   ESCRIBIR son, en realidad, llamadas a un programa de E/S, que es una utilidad
   del sistema que llevará a cabo la operación concreta de E/S. El programa de E/S
   consta de tres secciones:
       Una secuencia de instrucciones, etiquetada con un 4 en la figura, de
       preparación para la operación concreta de E/S, Esto puede incluir la copia de
       los datos de salida hacia un buffer especial y preparar los parámetros de la
       orden del dispositivo.
       La orden concreta de E/S. Sin el uso de interrupciones, una vez que se emita

                                                                                            3
Escuela Académico Profesional de Ingeniería de Sistemas


       esta orden, el programa debe esperar a que el dispositivo de E/S lleve a cabo
       la función pedida. El programa puede esperar simplemente ejecutando de
       forma repetida una operación que compruebe si ya se realizó la E/S.
       Una secuencia de instrucciones, etiquetada con un 5 en La figura, para
       completar la operación. Esto puede incluir la activación de un código de
       condición que indique el éxito o el fracaso de la operación.
   Debido a que la operación de E/S puede tardar un tiempo relativamente grande en
   terminar, el programa de E/S puede quedar colgado esperando a que se complete
   la operación; así pues, el programa de usuario se detendrá por un tiempo
   considerable en el momento de la llamada a ESCRIBIR.



   4.3.    Las interrupciones y el ciclo de instrucción.
   Las interrupciones permite a la CPU se pueda dedicar a la ejecución de otras
   instrucciones mientras una operación de E/S esta en proceso. Tomando en cuenta
   el flujo de control de la figura Nº 5.1, al igual que anteriormente, el programa de
   usuario alcanza un punto en que realiza una llamada al sistema en forma de una
   llamada Escribir. El programa de E/S que se invoca consta solo del código de
   preparación y de la orden concreta de E/S. Después de que se ejecuten estas
   pocas instrucciones, se devuelve el control al programa de usuario. Mientras tanto,
   el dispositivo externo estará ocupado recibiendo datos desde la memoria del
   computador e imprimiéndolos. Esta operación de E/S se lleva a cabo
   concurrentemente con la ejecución de las instrucciones del programa de usuario.
   Cuando el dispositivo de E/S esté preparado para aceptar más datos desde la
   CPU, el módulo de E/S de dicho dispositivo enviará una señal de solicitud de
   interrupción a la CPU. La CPU responde suspendiendo la operación del programa
   en curso y saltando a un programa que da servicio al dispositivo de E/S en
   particular, conocido como rutina de tratamiento de la interrupción (interrupt
   handler), reanudando la ejecución original después de haber atendido al
   dispositivo. En La figura Nº 5.1.b, el instante en que se produce tal interrupción
   viene indicado con un asterisco (*).
   Desde el punto de vista del programa de usuario, una interrupción es solamente
   eso: una interrupción de la secuencia normal de ejecución. Cuando el tratamiento
   de la interrupción se termina, la ejecución continúa (figura Nº 5.2). De esta manera,
   el programa de usuario no tiene que disponer de ningún código especial para dar
   cabida a las interrupciones; la CPU y el sistema operativo son los responsables de
                                                                                      4
Escuela Académico Profesional de Ingeniería de Sistemas


   suspender el programa de usuario y reanudarlo después en el mismo punto.
   Para dar cabida a las interrupciones, se añade un ciclo de interrupción al ciclo de
   instrucción, como se muestra en la figura Nº 5.3. En el ciclo de interrupción, la CPU
   comprueba si ha ocurrido alguna interrupción, lo que se indicará con la presencia
   de una señal de interrupción. Si no hay interrupciones pendientes, el procesador
   sigue con el ciclo de lectura y trae la siguiente instrucción del programa en curso.
   Si hay una interrupción pendiente, la CPU suspende la ejecución del programa en
   curso y ejecuta una rutina de tratamiento de la interrupción.
   La rutina de tratamiento de la interrupción forma parte generalmente del sistema
   operativo. Normalmente este programa determina la naturaleza de la interrupción y
   realiza cuantas acciones sean necesarias. De hecho, en el ejemplo que se ha
   estado siguiendo, la rutina de tratamiento determina el módulo de E/S que generó
   la interrupción y puede saltar a un programa que escribirá más datos a dicho
   módulo. Cuando termina la rutina de tratamiento de la interrupción, el procesador
   puede reanudar la ejecución del programa de usuario en el punto en que sucedió
   la interrupción.




                 Figura Nº 5.2. Transferencia de control por interrupciones.




                                                                                      5
Escuela Académico Profesional de Ingeniería de Sistemas




                     Figura Nº 5.3. Ciclo de instrucción con interrupciones.


   Está claro que hay cierta sobrecarga en este proceso. Se deben ejecutar
   instrucciones extra (en la rutina de tratamiento de la interrupción) para determinar
   la naturaleza de la interrupción y decidir la acción apropiada. No obstante, por la
   cantidad de tiempo que se desperdicia esperando en una operación de E/S, puede
   aprovecharse la CPU de una manera mucho más eficaz con el uso de
   interrupciones.
   Para ver mejor el aumento en la eficiencia, véase la figura Nº 5.4, que es un
   diagrama de tiempos basado en el flujo de control de las figuras Nº 5.1a y 5.1b.
   En las figuras Nº 5.1b y 5.4 se supone que el tiempo exigido para la operación de
   E/S es relativamente pequeño: menos que el tiempo para completar la ejecución
   de las instrucciones situadas entre dos operaciones ESCRIBIR del programa de
   usuario. El caso más normal, especialmente para un dispositivo lento, como es el
   caso de una impresora, es aquél en que la operación de E/S tardará mucho más
   tiempo que la ejecución de una secuencia de instrucción del usuario. La figura 1.5c
   muestra esta situación. En este caso, el programa de usuario alcanza la segunda
   llamada a ESCRIBIR antes de que se complete la operación de E/S
   desencadenada por la primera llamada. El resultado es que el programa de usuario
   se suspende en este punto. Cuando termine la operación anterior de E/S, se podrá
   procesar esta nueva llamada a ESCRIBIR y así comenzar una nueva operación de
   E/S. La figura Nº 5.5 muestra el diagrama de tiempos para esta situación, con y sin

                                                                                      6
Escuela Académico Profesional de Ingeniería de Sistemas


   uso de interrupciones. Se puede ver que así se produce un aumento de la
   eficiencia, pues parte del tiempo en que la operación de E/S está en marcha se
   solapa con la ejecución de las instrucciones del usuario.




          Figura Nº 5.4. Diagrama de tiempos de un programa; espera corta de E/S.




                                                                                    7
Escuela Académico Profesional de Ingeniería de Sistemas




           Figura Nº 5.5 Diagramas de tiempo de un programa; espera larga de E/S


   4.4.    Tratamiento de interrupciones.
   El evento de una interrupción desencadena una serie de sucesos, tanto en el
   hardware de la CPU como en el software. La figura Nº 5.6 muestra una secuencia
   típica. Cuando un dispositivo de E/S completa una operación de E/S, se produce
   en el hardware la siguiente secuencia de sucesos:
   1. El dispositivo envía una señal de interrupción a la CPU.
   2. La CPU finaliza la ejecución de la instrucción en curso antes de responder a la

                                                                                   8
Escuela Académico Profesional de Ingeniería de Sistemas


   interrupción.
   3. La CPU pregunta por la interrupción, comprueba que hay una y envía una señal
   de reconocimiento al dispositivo que generó la interrupción. Este reconocimiento le
   permite al dispositivo suprimir la señal de interrupción.
   4. La CPU       necesita ahora prepararse para transferir el control a la rutina de
   interrupción. Para empezar, hace falta salvar la información necesaria para
   reanudar la ejecución del programa en curso en el punto de la interrupción. La
   mínima información requerida es la palabra de estado del programa (PSW) y la
   ubicación de la próxima instrucción a ejecutar, que se almacena en el contador de
   programa.
   5. La CPU carga ahora el contador de programa con la ubicación de entrada del
   programa de tratamiento de la interrupción. Dependiendo de la arquitectura del
   computador y del diseño del sistema operativo, puede haber un solo programa por
   cada tipo de interrupción, o uno por cada dispositivo y por cada tipo de
   interrupción. Si hay más de una rutina de tratamiento de interrupción, el procesador
   debe determinar a cuál invocar. Esta información pudiera estar incluida en la señal
   original de la interrupción, o el procesador debe preguntarle al dispositivo que creó
   la interrupción para obtener respuesta sobre la información que necesita.
   Una vez que se ha cargado el contador de programa, el procesador procede con el
   próximo ciclo de instrucción, que comienza trayendo la próxima instrucción. Debido
   a que esta instrucción se determina por el contenido del contador de programa, el
   resultado es que el control se le transfiere al programa que trata la interrupción. La
   ejecución de este programa se traduce en las operaciones siguientes:
   6. En este punto, el contador de programa y la PSW relativa al programa
   interrumpido han sido salvadas en la pila del sistema. Sin embargo, hay más
   información que es considerada parte del "estado" de ejecución del programa. En
   particular se necesita salvar el contenido de los registros del procesador ya que
   estos registros pudieran ser utilizados por la rutina de tratamiento de la
   interrupción. Así pues es necesario salvar todos estos valores más cualquier otra
   información sobre el estado. Normalmente la rutina de tratamiento de la
   interrupción comienza salvando en la pila el contenido de todos los registros. La
   figura Nº 5.7a muestra un ejemplo simple. En este caso, se muestra un programa
   de usuario que es interrumpido después de la instrucción de la ubicación N. El
   contenido de todos los registros más la dirección de la próxima instrucción (N+l)
   son guardados en la pila. El puntero a la pila se actualiza para que apunte a la
   nueva cima y el contador de programa se actualiza para que apunte al comienzo
                                                                                       9
Escuela Académico Profesional de Ingeniería de Sistemas


   de la rutina de servicio de la interrupción.
   7. La rutina de tratamiento de la interrupción puede ahora proceder a procesar la
   interrupción. Esto incluirá un examen del estado de la información relativa a la
   operación de E/S o a cualquier otro evento que haya causado la interrupción. Esto
   puede también involucrar el envío adicional de órdenes o reconocimientos al
   dispositivo de E/S.
   8. Cuando se completa el tratamiento de la interrupción, se recuperan de la pila los
   valores de los registros que se salvaron y se restauran los registros (ver por
   ejemplo la figura Nº 5.7b).
   9. El acto final es restaurar los valores de la PSW y del contador de programa a
   partir de la pila. Como resultado, la próxima instrucción a ser ejecutada será del
   programa interrumpido previamente.
   Es importante salvar toda la información sobre el estado del programa interrumpido
   para su reanudación posterior, porque la rutina de tratamiento de la interrupción no
   es una rutina llamada desde el programa. Por el contrario, la interrupción puede
   producirse en cualquier momento y por tanto en cualquier punto de la ejecución de
   un programa de usuario. Su ocurrencia es impredecible. Más aún, como se verá
   más adelante en esta sección, los dos programas pueden no tener nada en común
   y pueden pertenecer a dos usuarios diferentes.




                    Figura Nº 5.6 Tratamiento de una interrupción simple.
                                                                                    10
Escuela Académico Profesional de Ingeniería de Sistemas




       Figura Nº 5.7 Cambios en la memoria y en los registros durante una interrupción.




                                                                                          11
Escuela Académico Profesional de Ingeniería de Sistemas




   4.5.    Interrupciones múltiples
   En la discusión del punto anterior se ha analizado el acontecimiento de una sola
   interrupción.   Sin   embargo,    supongamos      que     pueden   producirse   varias
   interrupciones. Por ejemplo, un programa puede estar recibiendo datos de una
   línea de comunicaciones y a la misma vez imprimiendo resultados. La impresora
   va a generar una interrupción cada vez que se completa una operación de
   impresión. El controlador de la línea de comunicaciones generará una interrupción
   cada vez que llega una unidad de datos. Esta unidad puede ser ya sea un solo
   carácter o un bloque, dependiendo de la naturaleza de las normas de
   comunicación. En todo caso, es posible que se produzca una interrupción del
   controlador de comunicaciones cuando se está procesando una interrupción de la
   impresora.
   Existen dos formas para tratar las interrupciones múltiples. La primera es inhabilitar
   las interrupciones mientras se esté procesando una. Interrupción inhabilitada se
   refiere a que la CPU ignorará la señal de interrupción. Si en el transcurso de este
   tiempo se produce una interrupción, ésta usualmente quedará pendiente y será
   comprobada por el procesador después que este habilite las interrupciones. De
   esta manera, cuando un programa de usuario está ejecutándose y ocurre una
   interrupción, se inhabilitan inmediatamente las interrupciones. Después que
   termina la rutina que trata la interrupción, se habilitan las interrupciones antes de
   reanudar el programa de usuario y la CPU comprueba si se ha producido alguna
   interrupción adicional. Esta forma es simple y elegante porque las interrupciones
   se tratan en orden estrictamente secuencial. Ver figura Nº 5.8.a
   La desventaja de esta forma es que no tiene en cuenta las prioridades o
   necesidades críticas en tiempo. Un ejemplo de ello, cuando llega una interrupción
   desde la línea de comunicaciones, se necesita atender ésta con rapidez, para dar
   espacio a otras entradas. Si el primer lote de entrada no ha sido aún procesado
   cuando llega el segundo, pueden perderse datos.

   Una segunda forma o enfoque se refiera a definir prioridades a las interrupciones y
   permitir que una interrupción de una prioridad          mayor pueda interrumpir a la
   interrupción de una menor prioridad. (Figura Nº 5.8b).

   Un ejemplo de esta segunda forma, consideraremos un sistema con tres
   dispositivos de Entrada y Salida: Un Disco, una impresora y una línea de

                                                                                      12
Escuela Académico Profesional de Ingeniería de Sistemas


   comunicaciones con prioridad creciente de 2,4 y 5, respectivamente. La figura Nº
   5.9 muestra una secuencia posible. Un programa de usuario empieza en t=0. En
   t= 10, se produce una interrupción de la impresora; la información del usuario se
   coloca en la pila del sistema y la ejecución continúa en la rutina de servicio de la
   interrupción (ISR, Interrupt Service Routine) de la impresora. Mientras esta rutina
   sigue ejecutándose, en t = 15, se produce una interrupción de comunicaciones.
   Como la línea de comunicaciones tiene una prioridad más alta que la impresora, la
   interrupción es atendida. La ISR es interrumpida, su estado se pone en la pila y la
   ejecución continúa en la ISR de comunicaciones. Mientras esta rutina está
   ejecutándose, se produce una interrupción del disco (t = 20). Debido a que esta
   interrupción es de más baja prioridad, queda retenida y la ISR de comunicaciones
   se ejecuta hasta el final.
   Cuando se completa la ISR de comunicaciones (t = 25), se restaura el estado
   previo del procesador, lo que significa continuar ejecutando la ISR de la impresora.
   Sin embargo, antes de ejecutar una sola instrucción de esta rutina, el procesador
   atiende a la mayor prioridad de la interrupción del disco y transfiere el control a la
   ISR del disco. Sólo cuando se completa esta rutina (t = 35) se reanuda la ISR de la
   impresora. Cuando se termina esta última (t = 40), el control vuelve finalmente al
   programa de usuario.




                                                                                      13
Escuela Académico Profesional de Ingeniería de Sistemas




             Figura Nº 5.8 Transferencia de control con múltiples interrupciones.



   4.6.    Multiprogramación.
   Es posible que aún usando interrupciones, un procesador no se aproveche de una
   manera eficiente. Un ejemplo, considerando de nuevo la figura Nº 5.8b. Si el
   tiempo necesario para completar una operación de E/S es mucho mayor que el
   código del usuario entre llamadas de E/S (una situación habitual), entonces el
   procesador va a estar desocupado durante gran parte del tiempo. Una solución a
   este problema es permitir que varios programas de usuario estén activos a un
   mismo tiempo.
   Supóngase, por ejemplo, que el procesador tiene que ejecutar dos programas. Uno
   de ellos es simplemente un programa que lee datos de la memoria y los saca por
   un dispositivo externo; el otro es una aplicación que supone una gran cantidad de
   cálculos. El procesador puede dar comienzo al programa de salida, enviar una
   orden ESCRIBIR al dispositivo externo y luego comenzar la ejecución de la otra
                                                                                    14
Escuela Académico Profesional de Ingeniería de Sistemas


   aplicación.
   Cuando el procesador tiene que tratar con una serie de programas, la secuencia
   en que estos se ejecutan dependerá de su prioridad relativa y de si están
   esperando una E/S. Cuando un programa es interrumpido y se transfiere el control
   a la rutina de tratamiento de la interrupción, una vez que ésta haya terminado,
   puede que no se devuelva el control inmediatamente al programa de usuario que
   estaba ejecutándose en el momento de la interrupción. En su lugar, el control
   puede transferirse a algún otro programa pendiente que tenga mayor prioridad.
   Finalmente, cuando tenga la prioridad más alta, se reanudará el programa de
   usuario que fue interrumpido




         Figura Nº 5.9 Ejemplo de secuencia de tiempo para interrupciones múltiples,
                                        Tanembaun.




                                                                                       15

Más contenido relacionado

La actualidad más candente

Sistemas operativos ismarith
Sistemas operativos ismarithSistemas operativos ismarith
Sistemas operativos ismarithariadna1721
 
Cap3
Cap3Cap3
Cap3CJAO
 
Sistemas operativos 4 eso
Sistemas operativos 4 esoSistemas operativos 4 eso
Sistemas operativos 4 esojrcobos231
 
Elemento 1 miguel antonio miranda chonata - sistemas operativos
Elemento 1   miguel antonio miranda chonata - sistemas operativosElemento 1   miguel antonio miranda chonata - sistemas operativos
Elemento 1 miguel antonio miranda chonata - sistemas operativosQue te Importa
 
Interrupciones
InterrupcionesInterrupciones
Interrupcioneshandresrm
 
Sistema operativo johan 32
Sistema operativo johan 32Sistema operativo johan 32
Sistema operativo johan 32luigui-32
 
Adriana rivera sistema operativo
Adriana rivera sistema operativoAdriana rivera sistema operativo
Adriana rivera sistema operativomamasita123
 

La actualidad más candente (13)

Sistemas operativos ismarith
Sistemas operativos ismarithSistemas operativos ismarith
Sistemas operativos ismarith
 
Trabajo sistemas
Trabajo sistemasTrabajo sistemas
Trabajo sistemas
 
Cap3
Cap3Cap3
Cap3
 
Leidy pardo
Leidy pardoLeidy pardo
Leidy pardo
 
Sistemas operativos 4 eso
Sistemas operativos 4 esoSistemas operativos 4 eso
Sistemas operativos 4 eso
 
Elemento 1 miguel antonio miranda chonata - sistemas operativos
Elemento 1   miguel antonio miranda chonata - sistemas operativosElemento 1   miguel antonio miranda chonata - sistemas operativos
Elemento 1 miguel antonio miranda chonata - sistemas operativos
 
Interrupciones
InterrupcionesInterrupciones
Interrupciones
 
Mi largo resumen...
Mi largo resumen...Mi largo resumen...
Mi largo resumen...
 
T2 tiempo de respuesta de un plc
T2 tiempo de respuesta de un plcT2 tiempo de respuesta de un plc
T2 tiempo de respuesta de un plc
 
Sistema operativo johan 32
Sistema operativo johan 32Sistema operativo johan 32
Sistema operativo johan 32
 
Interrupción - Informatica
Interrupción - InformaticaInterrupción - Informatica
Interrupción - Informatica
 
Adriana rivera sistema operativo
Adriana rivera sistema operativoAdriana rivera sistema operativo
Adriana rivera sistema operativo
 
Microcontrolador
MicrocontroladorMicrocontrolador
Microcontrolador
 

Destacado

Destacado (9)

CAPITULO-2-2011
CAPITULO-2-2011CAPITULO-2-2011
CAPITULO-2-2011
 
Introduccion2
Introduccion2Introduccion2
Introduccion2
 
El Sistema Operativo
El Sistema OperativoEl Sistema Operativo
El Sistema Operativo
 
Sistema operativo
Sistema operativoSistema operativo
Sistema operativo
 
Cap5
Cap5Cap5
Cap5
 
Sistemas operativos pao
Sistemas operativos paoSistemas operativos pao
Sistemas operativos pao
 
Los sistemas operativos
Los sistemas operativos  Los sistemas operativos
Los sistemas operativos
 
Ruby i
Ruby iRuby i
Ruby i
 
Sistema operativo
Sistema operativoSistema operativo
Sistema operativo
 

Similar a Sesión 10

Ciclo De Trabajo De Un Plc
Ciclo De Trabajo De Un PlcCiclo De Trabajo De Un Plc
Ciclo De Trabajo De Un PlcOmar Gonzalez S
 
Control y manejo de interrupciones
Control y manejo de interrupcionesControl y manejo de interrupciones
Control y manejo de interrupcionestecnologia01
 
Ejecuta stephanysanchez_arquitectura
Ejecuta stephanysanchez_arquitecturaEjecuta stephanysanchez_arquitectura
Ejecuta stephanysanchez_arquitecturastefisanchez
 
Conceptos sobre arquitectura de computadoras
Conceptos sobre arquitectura de computadorasConceptos sobre arquitectura de computadoras
Conceptos sobre arquitectura de computadorasWaldogeremia
 
UNIDAD 5 Sistema Operativo .
UNIDAD 5 Sistema Operativo .UNIDAD 5 Sistema Operativo .
UNIDAD 5 Sistema Operativo .TheBoops
 
Estructura interna de un procesador
Estructura interna de un procesadorEstructura interna de un procesador
Estructura interna de un procesadorAlan EG
 
Diana parra sistemas
Diana parra sistemasDiana parra sistemas
Diana parra sistemasLEIDY Lozano
 
Diana parra sistemas
Diana parra sistemasDiana parra sistemas
Diana parra sistemasestefania-24
 
1. introduccion a_los_sistemas_informaticos
1. introduccion a_los_sistemas_informaticos1. introduccion a_los_sistemas_informaticos
1. introduccion a_los_sistemas_informaticoslauriskzs
 
El Sistema Operativo
El Sistema OperativoEl Sistema Operativo
El Sistema Operativoseuansed
 
Componentes de un sistema operativo
Componentes de un sistema operativoComponentes de un sistema operativo
Componentes de un sistema operativovictor1026
 
Adriana rivera sistema operativo
Adriana rivera sistema operativoAdriana rivera sistema operativo
Adriana rivera sistema operativomamasita123
 
Multiprogramacion profe pit_aaaaa
Multiprogramacion profe pit_aaaaaMultiprogramacion profe pit_aaaaa
Multiprogramacion profe pit_aaaaatayzhev
 
Componentes del computador
Componentes del computadorComponentes del computador
Componentes del computadorSofylutqm
 
Las interrupciones
Las interrupcionesLas interrupciones
Las interrupcionescwelio45
 
Sistemas informaticos
Sistemas informaticosSistemas informaticos
Sistemas informaticosSebastianV91
 
3 2 Administracion Y Configuracion De Dispositivos
3 2 Administracion Y Configuracion De Dispositivos3 2 Administracion Y Configuracion De Dispositivos
3 2 Administracion Y Configuracion De DispositivosUVM
 

Similar a Sesión 10 (20)

Mi largo resumen...
Mi largo resumen...Mi largo resumen...
Mi largo resumen...
 
Ciclo De Trabajo De Un Plc
Ciclo De Trabajo De Un PlcCiclo De Trabajo De Un Plc
Ciclo De Trabajo De Un Plc
 
Control y manejo de interrupciones
Control y manejo de interrupcionesControl y manejo de interrupciones
Control y manejo de interrupciones
 
Ejecuta stephanysanchez_arquitectura
Ejecuta stephanysanchez_arquitecturaEjecuta stephanysanchez_arquitectura
Ejecuta stephanysanchez_arquitectura
 
Conceptos sobre arquitectura de computadoras
Conceptos sobre arquitectura de computadorasConceptos sobre arquitectura de computadoras
Conceptos sobre arquitectura de computadoras
 
UNIDAD 5 Sistema Operativo .
UNIDAD 5 Sistema Operativo .UNIDAD 5 Sistema Operativo .
UNIDAD 5 Sistema Operativo .
 
Estructura interna de un procesador
Estructura interna de un procesadorEstructura interna de un procesador
Estructura interna de un procesador
 
Diana parra sistemas
Diana parra sistemasDiana parra sistemas
Diana parra sistemas
 
Diana parra sistemas
Diana parra sistemasDiana parra sistemas
Diana parra sistemas
 
1. introduccion a_los_sistemas_informaticos
1. introduccion a_los_sistemas_informaticos1. introduccion a_los_sistemas_informaticos
1. introduccion a_los_sistemas_informaticos
 
A
AA
A
 
El Sistema Operativo
El Sistema OperativoEl Sistema Operativo
El Sistema Operativo
 
Componentes de un sistema operativo
Componentes de un sistema operativoComponentes de un sistema operativo
Componentes de un sistema operativo
 
Adriana rivera sistema operativo
Adriana rivera sistema operativoAdriana rivera sistema operativo
Adriana rivera sistema operativo
 
Multiprogramacion profe pit_aaaaa
Multiprogramacion profe pit_aaaaaMultiprogramacion profe pit_aaaaa
Multiprogramacion profe pit_aaaaa
 
Componentes del computador
Componentes del computadorComponentes del computador
Componentes del computador
 
Las interrupciones
Las interrupcionesLas interrupciones
Las interrupciones
 
Sistemas informaticos
Sistemas informaticosSistemas informaticos
Sistemas informaticos
 
Leidy pardo
Leidy pardoLeidy pardo
Leidy pardo
 
3 2 Administracion Y Configuracion De Dispositivos
3 2 Administracion Y Configuracion De Dispositivos3 2 Administracion Y Configuracion De Dispositivos
3 2 Administracion Y Configuracion De Dispositivos
 

Último

Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx241522327
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son241514984
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.241514949
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativaAdrianaMartnez618894
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELmaryfer27m
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptMiguelAtencio10
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMidwarHenryLOZAFLORE
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaarkananubis
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxJOSEFERNANDOARENASCA
 

Último (20)

Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativa
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFEL
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.ppt
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptx
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en mina
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptx
 

Sesión 10

  • 1. INTERRUPCIONES. 4.1. Definición de interrupciones. Las interrupciones son mecanismos para realizar llamadas a subrutinas del Sistema Operativo o de la ROM BIOS y estos pueden ser tanto por Hardware o Software. Las interrupciones son las que articulan la secuencia automática de procesos que esta ejecutando un sistema, de esta manera el uso de la CPU se hace en relación con las necesidades de ser atendidos dichos procesos en el tiempo. La interrupción por hardware, se da cuando hay algún evento, como una tecla pulsada, reloj, etc, ningún programa puede advertir cuando sucederá esta interrupción, y así como cuando en memoria hay varios procesos que alteran su ejecución, puede suceder también una interrupción en un programa debido o causado por un periférico que en ese instante esta realizando un trabajo para otro programa. Por esta razón, hay un conjunto de líneas de peticiones de interrupción, de las cuales cada una sale de una interfaz diferente y se les designa como IRQ, Todas estas líneas se dirigen a un CHIP que es el árbitro de peticiones de interrupción que en caso de activarse mas de una IRQ en el mismo tiempo, se atiende sólo a las que tienen sub índice(x) menor. Las que no son atendidas deben esperar. Una salida de éste chip activa la línea de control INT que entra a la UC, para comunicarle que hay una petición de interrupción activa. Cada vez que se termina de ejecutar una instrucción, la UC revisa si la línea de control INT está activa. Si el programa que se esta ejecutando lo permite, el mismo es interrumpido. De lo contrario, dicha petición espera hasta ser atendida. La interrupción por Software, en está clase de interrupción al contrario de la anterior, se puede predecir en que instante de la ejecución de un programa sucederá. Y de manera general actúa de la siguiente manera. Un programa que se estaba ejecutando luego de su instrucción I5, realiza una llamada al Sistema Operativo, ejemplo para realizar la lectura de un archivo del disco duro. Para esto, después de I5 existe en el programa, la instrucción de código de maquina, CD21, simbolizada INT21 en Asembler, que se verá en el siguiente tema, que lleva a cabo el requerimiento del primer paso, ya que no puede seguir la ejecución de la instrucción I6 y las siguientes del programa hasta que dicho programa esté en memoria principal y no se haya leído el disco, virtualmente el
  • 2. Escuela Académico Profesional de Ingeniería de Sistemas programa se ha interrumpido, siendo además, que después de INT21, las instrucciones que se ejecutarán no serán del programa si no del Sistema Operativo. La ejecución de INT21 permite hallar la subrutina del sistema operativo. Se ejecuta la sub rutina del Sistema operativo que prepara para leer el disco. Después de ejecutarse la sub rutina del sistema operativo, y leído el disco y verificado que la lectura sea correcta el Sistema operativo dará la orden de reanudar la ejecución del programa que se auto interrumpió en espera. La ejecución del programa se reanuda. 4.2. Clases de Interrupciones. La mayoría de las computadoras cuentan con un mecanismo por el cual otros módulos como los de Entrada /Salida, memoria, etc., pueden interrumpir la normal ejecución de la CPU. La tabla xxx muestra las clases de interrupciones más comunes. TABLA 5.1 Clases de Interrupciones, William Stalings. Generadas por alguna condición que se produce como resultado de la ejecución de una instrucción, como el desbordamiento aritmético, la división por cero, el intento De programa de ejecutar una instrucción ilegal de la máquina o una referencia a una zona de memoria fuera del espacio permitido al usuario. Generadas por un reloj interno del procesador. Esto De reloj permite al sistema operativo llevar a cabo ciertas funciones con determinada regularidad. Generadas por un controlador de E/S, para indicar que De E/S. una operación ha terminado normalmente o para indicar diversas condiciones de error. Generadas por fallos tales como un corte de energía o un Por fallo del Hardware error de paridad de la memoria. Las interrupciones se encuentran, generalmente, como una forma para mejorar la eficiencia del procesamiento, como por ejemplo, la mayoría de los dispositivos externos son mucho más lentos que la CPU, supongamos que la CPU está transfiriendo datos hacia una impresora, usando un esquema para el ciclo de 2
  • 3. Escuela Académico Profesional de Ingeniería de Sistemas instrucción como el dela figura yyy. Después de cada operación de escribir, la CPU hará una pausa y permanecerá libre hasta que la impresora se ponga al corriente. El tiempo de duración de esta pausa puede ser de varios cientos o hasta miles de ciclos de instrucción en los que la memoria no esta implicada. En este caso se ve con mucha claridad el derroche en el uso de la CPU. Figura Nº 5.1. Flujo de control del Programa sin y con interrupciones, Williams Stalligs. La figura Nº 5.1 muestra este estado de los procesos para la aplicación que se indica en el párrafo anterior. El programa de usuario realiza una serie de llamadas a ESCRIBIR, intercaladas con el procesamiento. Los segmentos de código 1, 2 y 3 se refieren a secuencias de instrucciones que no implican E/S. Las llamadas a ESCRIBIR son, en realidad, llamadas a un programa de E/S, que es una utilidad del sistema que llevará a cabo la operación concreta de E/S. El programa de E/S consta de tres secciones: Una secuencia de instrucciones, etiquetada con un 4 en la figura, de preparación para la operación concreta de E/S, Esto puede incluir la copia de los datos de salida hacia un buffer especial y preparar los parámetros de la orden del dispositivo. La orden concreta de E/S. Sin el uso de interrupciones, una vez que se emita 3
  • 4. Escuela Académico Profesional de Ingeniería de Sistemas esta orden, el programa debe esperar a que el dispositivo de E/S lleve a cabo la función pedida. El programa puede esperar simplemente ejecutando de forma repetida una operación que compruebe si ya se realizó la E/S. Una secuencia de instrucciones, etiquetada con un 5 en La figura, para completar la operación. Esto puede incluir la activación de un código de condición que indique el éxito o el fracaso de la operación. Debido a que la operación de E/S puede tardar un tiempo relativamente grande en terminar, el programa de E/S puede quedar colgado esperando a que se complete la operación; así pues, el programa de usuario se detendrá por un tiempo considerable en el momento de la llamada a ESCRIBIR. 4.3. Las interrupciones y el ciclo de instrucción. Las interrupciones permite a la CPU se pueda dedicar a la ejecución de otras instrucciones mientras una operación de E/S esta en proceso. Tomando en cuenta el flujo de control de la figura Nº 5.1, al igual que anteriormente, el programa de usuario alcanza un punto en que realiza una llamada al sistema en forma de una llamada Escribir. El programa de E/S que se invoca consta solo del código de preparación y de la orden concreta de E/S. Después de que se ejecuten estas pocas instrucciones, se devuelve el control al programa de usuario. Mientras tanto, el dispositivo externo estará ocupado recibiendo datos desde la memoria del computador e imprimiéndolos. Esta operación de E/S se lleva a cabo concurrentemente con la ejecución de las instrucciones del programa de usuario. Cuando el dispositivo de E/S esté preparado para aceptar más datos desde la CPU, el módulo de E/S de dicho dispositivo enviará una señal de solicitud de interrupción a la CPU. La CPU responde suspendiendo la operación del programa en curso y saltando a un programa que da servicio al dispositivo de E/S en particular, conocido como rutina de tratamiento de la interrupción (interrupt handler), reanudando la ejecución original después de haber atendido al dispositivo. En La figura Nº 5.1.b, el instante en que se produce tal interrupción viene indicado con un asterisco (*). Desde el punto de vista del programa de usuario, una interrupción es solamente eso: una interrupción de la secuencia normal de ejecución. Cuando el tratamiento de la interrupción se termina, la ejecución continúa (figura Nº 5.2). De esta manera, el programa de usuario no tiene que disponer de ningún código especial para dar cabida a las interrupciones; la CPU y el sistema operativo son los responsables de 4
  • 5. Escuela Académico Profesional de Ingeniería de Sistemas suspender el programa de usuario y reanudarlo después en el mismo punto. Para dar cabida a las interrupciones, se añade un ciclo de interrupción al ciclo de instrucción, como se muestra en la figura Nº 5.3. En el ciclo de interrupción, la CPU comprueba si ha ocurrido alguna interrupción, lo que se indicará con la presencia de una señal de interrupción. Si no hay interrupciones pendientes, el procesador sigue con el ciclo de lectura y trae la siguiente instrucción del programa en curso. Si hay una interrupción pendiente, la CPU suspende la ejecución del programa en curso y ejecuta una rutina de tratamiento de la interrupción. La rutina de tratamiento de la interrupción forma parte generalmente del sistema operativo. Normalmente este programa determina la naturaleza de la interrupción y realiza cuantas acciones sean necesarias. De hecho, en el ejemplo que se ha estado siguiendo, la rutina de tratamiento determina el módulo de E/S que generó la interrupción y puede saltar a un programa que escribirá más datos a dicho módulo. Cuando termina la rutina de tratamiento de la interrupción, el procesador puede reanudar la ejecución del programa de usuario en el punto en que sucedió la interrupción. Figura Nº 5.2. Transferencia de control por interrupciones. 5
  • 6. Escuela Académico Profesional de Ingeniería de Sistemas Figura Nº 5.3. Ciclo de instrucción con interrupciones. Está claro que hay cierta sobrecarga en este proceso. Se deben ejecutar instrucciones extra (en la rutina de tratamiento de la interrupción) para determinar la naturaleza de la interrupción y decidir la acción apropiada. No obstante, por la cantidad de tiempo que se desperdicia esperando en una operación de E/S, puede aprovecharse la CPU de una manera mucho más eficaz con el uso de interrupciones. Para ver mejor el aumento en la eficiencia, véase la figura Nº 5.4, que es un diagrama de tiempos basado en el flujo de control de las figuras Nº 5.1a y 5.1b. En las figuras Nº 5.1b y 5.4 se supone que el tiempo exigido para la operación de E/S es relativamente pequeño: menos que el tiempo para completar la ejecución de las instrucciones situadas entre dos operaciones ESCRIBIR del programa de usuario. El caso más normal, especialmente para un dispositivo lento, como es el caso de una impresora, es aquél en que la operación de E/S tardará mucho más tiempo que la ejecución de una secuencia de instrucción del usuario. La figura 1.5c muestra esta situación. En este caso, el programa de usuario alcanza la segunda llamada a ESCRIBIR antes de que se complete la operación de E/S desencadenada por la primera llamada. El resultado es que el programa de usuario se suspende en este punto. Cuando termine la operación anterior de E/S, se podrá procesar esta nueva llamada a ESCRIBIR y así comenzar una nueva operación de E/S. La figura Nº 5.5 muestra el diagrama de tiempos para esta situación, con y sin 6
  • 7. Escuela Académico Profesional de Ingeniería de Sistemas uso de interrupciones. Se puede ver que así se produce un aumento de la eficiencia, pues parte del tiempo en que la operación de E/S está en marcha se solapa con la ejecución de las instrucciones del usuario. Figura Nº 5.4. Diagrama de tiempos de un programa; espera corta de E/S. 7
  • 8. Escuela Académico Profesional de Ingeniería de Sistemas Figura Nº 5.5 Diagramas de tiempo de un programa; espera larga de E/S 4.4. Tratamiento de interrupciones. El evento de una interrupción desencadena una serie de sucesos, tanto en el hardware de la CPU como en el software. La figura Nº 5.6 muestra una secuencia típica. Cuando un dispositivo de E/S completa una operación de E/S, se produce en el hardware la siguiente secuencia de sucesos: 1. El dispositivo envía una señal de interrupción a la CPU. 2. La CPU finaliza la ejecución de la instrucción en curso antes de responder a la 8
  • 9. Escuela Académico Profesional de Ingeniería de Sistemas interrupción. 3. La CPU pregunta por la interrupción, comprueba que hay una y envía una señal de reconocimiento al dispositivo que generó la interrupción. Este reconocimiento le permite al dispositivo suprimir la señal de interrupción. 4. La CPU necesita ahora prepararse para transferir el control a la rutina de interrupción. Para empezar, hace falta salvar la información necesaria para reanudar la ejecución del programa en curso en el punto de la interrupción. La mínima información requerida es la palabra de estado del programa (PSW) y la ubicación de la próxima instrucción a ejecutar, que se almacena en el contador de programa. 5. La CPU carga ahora el contador de programa con la ubicación de entrada del programa de tratamiento de la interrupción. Dependiendo de la arquitectura del computador y del diseño del sistema operativo, puede haber un solo programa por cada tipo de interrupción, o uno por cada dispositivo y por cada tipo de interrupción. Si hay más de una rutina de tratamiento de interrupción, el procesador debe determinar a cuál invocar. Esta información pudiera estar incluida en la señal original de la interrupción, o el procesador debe preguntarle al dispositivo que creó la interrupción para obtener respuesta sobre la información que necesita. Una vez que se ha cargado el contador de programa, el procesador procede con el próximo ciclo de instrucción, que comienza trayendo la próxima instrucción. Debido a que esta instrucción se determina por el contenido del contador de programa, el resultado es que el control se le transfiere al programa que trata la interrupción. La ejecución de este programa se traduce en las operaciones siguientes: 6. En este punto, el contador de programa y la PSW relativa al programa interrumpido han sido salvadas en la pila del sistema. Sin embargo, hay más información que es considerada parte del "estado" de ejecución del programa. En particular se necesita salvar el contenido de los registros del procesador ya que estos registros pudieran ser utilizados por la rutina de tratamiento de la interrupción. Así pues es necesario salvar todos estos valores más cualquier otra información sobre el estado. Normalmente la rutina de tratamiento de la interrupción comienza salvando en la pila el contenido de todos los registros. La figura Nº 5.7a muestra un ejemplo simple. En este caso, se muestra un programa de usuario que es interrumpido después de la instrucción de la ubicación N. El contenido de todos los registros más la dirección de la próxima instrucción (N+l) son guardados en la pila. El puntero a la pila se actualiza para que apunte a la nueva cima y el contador de programa se actualiza para que apunte al comienzo 9
  • 10. Escuela Académico Profesional de Ingeniería de Sistemas de la rutina de servicio de la interrupción. 7. La rutina de tratamiento de la interrupción puede ahora proceder a procesar la interrupción. Esto incluirá un examen del estado de la información relativa a la operación de E/S o a cualquier otro evento que haya causado la interrupción. Esto puede también involucrar el envío adicional de órdenes o reconocimientos al dispositivo de E/S. 8. Cuando se completa el tratamiento de la interrupción, se recuperan de la pila los valores de los registros que se salvaron y se restauran los registros (ver por ejemplo la figura Nº 5.7b). 9. El acto final es restaurar los valores de la PSW y del contador de programa a partir de la pila. Como resultado, la próxima instrucción a ser ejecutada será del programa interrumpido previamente. Es importante salvar toda la información sobre el estado del programa interrumpido para su reanudación posterior, porque la rutina de tratamiento de la interrupción no es una rutina llamada desde el programa. Por el contrario, la interrupción puede producirse en cualquier momento y por tanto en cualquier punto de la ejecución de un programa de usuario. Su ocurrencia es impredecible. Más aún, como se verá más adelante en esta sección, los dos programas pueden no tener nada en común y pueden pertenecer a dos usuarios diferentes. Figura Nº 5.6 Tratamiento de una interrupción simple. 10
  • 11. Escuela Académico Profesional de Ingeniería de Sistemas Figura Nº 5.7 Cambios en la memoria y en los registros durante una interrupción. 11
  • 12. Escuela Académico Profesional de Ingeniería de Sistemas 4.5. Interrupciones múltiples En la discusión del punto anterior se ha analizado el acontecimiento de una sola interrupción. Sin embargo, supongamos que pueden producirse varias interrupciones. Por ejemplo, un programa puede estar recibiendo datos de una línea de comunicaciones y a la misma vez imprimiendo resultados. La impresora va a generar una interrupción cada vez que se completa una operación de impresión. El controlador de la línea de comunicaciones generará una interrupción cada vez que llega una unidad de datos. Esta unidad puede ser ya sea un solo carácter o un bloque, dependiendo de la naturaleza de las normas de comunicación. En todo caso, es posible que se produzca una interrupción del controlador de comunicaciones cuando se está procesando una interrupción de la impresora. Existen dos formas para tratar las interrupciones múltiples. La primera es inhabilitar las interrupciones mientras se esté procesando una. Interrupción inhabilitada se refiere a que la CPU ignorará la señal de interrupción. Si en el transcurso de este tiempo se produce una interrupción, ésta usualmente quedará pendiente y será comprobada por el procesador después que este habilite las interrupciones. De esta manera, cuando un programa de usuario está ejecutándose y ocurre una interrupción, se inhabilitan inmediatamente las interrupciones. Después que termina la rutina que trata la interrupción, se habilitan las interrupciones antes de reanudar el programa de usuario y la CPU comprueba si se ha producido alguna interrupción adicional. Esta forma es simple y elegante porque las interrupciones se tratan en orden estrictamente secuencial. Ver figura Nº 5.8.a La desventaja de esta forma es que no tiene en cuenta las prioridades o necesidades críticas en tiempo. Un ejemplo de ello, cuando llega una interrupción desde la línea de comunicaciones, se necesita atender ésta con rapidez, para dar espacio a otras entradas. Si el primer lote de entrada no ha sido aún procesado cuando llega el segundo, pueden perderse datos. Una segunda forma o enfoque se refiera a definir prioridades a las interrupciones y permitir que una interrupción de una prioridad mayor pueda interrumpir a la interrupción de una menor prioridad. (Figura Nº 5.8b). Un ejemplo de esta segunda forma, consideraremos un sistema con tres dispositivos de Entrada y Salida: Un Disco, una impresora y una línea de 12
  • 13. Escuela Académico Profesional de Ingeniería de Sistemas comunicaciones con prioridad creciente de 2,4 y 5, respectivamente. La figura Nº 5.9 muestra una secuencia posible. Un programa de usuario empieza en t=0. En t= 10, se produce una interrupción de la impresora; la información del usuario se coloca en la pila del sistema y la ejecución continúa en la rutina de servicio de la interrupción (ISR, Interrupt Service Routine) de la impresora. Mientras esta rutina sigue ejecutándose, en t = 15, se produce una interrupción de comunicaciones. Como la línea de comunicaciones tiene una prioridad más alta que la impresora, la interrupción es atendida. La ISR es interrumpida, su estado se pone en la pila y la ejecución continúa en la ISR de comunicaciones. Mientras esta rutina está ejecutándose, se produce una interrupción del disco (t = 20). Debido a que esta interrupción es de más baja prioridad, queda retenida y la ISR de comunicaciones se ejecuta hasta el final. Cuando se completa la ISR de comunicaciones (t = 25), se restaura el estado previo del procesador, lo que significa continuar ejecutando la ISR de la impresora. Sin embargo, antes de ejecutar una sola instrucción de esta rutina, el procesador atiende a la mayor prioridad de la interrupción del disco y transfiere el control a la ISR del disco. Sólo cuando se completa esta rutina (t = 35) se reanuda la ISR de la impresora. Cuando se termina esta última (t = 40), el control vuelve finalmente al programa de usuario. 13
  • 14. Escuela Académico Profesional de Ingeniería de Sistemas Figura Nº 5.8 Transferencia de control con múltiples interrupciones. 4.6. Multiprogramación. Es posible que aún usando interrupciones, un procesador no se aproveche de una manera eficiente. Un ejemplo, considerando de nuevo la figura Nº 5.8b. Si el tiempo necesario para completar una operación de E/S es mucho mayor que el código del usuario entre llamadas de E/S (una situación habitual), entonces el procesador va a estar desocupado durante gran parte del tiempo. Una solución a este problema es permitir que varios programas de usuario estén activos a un mismo tiempo. Supóngase, por ejemplo, que el procesador tiene que ejecutar dos programas. Uno de ellos es simplemente un programa que lee datos de la memoria y los saca por un dispositivo externo; el otro es una aplicación que supone una gran cantidad de cálculos. El procesador puede dar comienzo al programa de salida, enviar una orden ESCRIBIR al dispositivo externo y luego comenzar la ejecución de la otra 14
  • 15. Escuela Académico Profesional de Ingeniería de Sistemas aplicación. Cuando el procesador tiene que tratar con una serie de programas, la secuencia en que estos se ejecutan dependerá de su prioridad relativa y de si están esperando una E/S. Cuando un programa es interrumpido y se transfiere el control a la rutina de tratamiento de la interrupción, una vez que ésta haya terminado, puede que no se devuelva el control inmediatamente al programa de usuario que estaba ejecutándose en el momento de la interrupción. En su lugar, el control puede transferirse a algún otro programa pendiente que tenga mayor prioridad. Finalmente, cuando tenga la prioridad más alta, se reanudará el programa de usuario que fue interrumpido Figura Nº 5.9 Ejemplo de secuencia de tiempo para interrupciones múltiples, Tanembaun. 15