miércoles, 28 de agosto de 2013

Interrupciones

Interrupciones y llamadas a servicios de sistema

InterrupcionesUn dispositivo periférico puede generar una señal eléctrica llamada interrupción que modifica ciertas banderas que se encuentran en el CPU. La detección de una interrupción es parte del ciclo de instrucción. En cada ciclo de instrucción, el CPU chequea las banderas hardware para ver si algún dispositivo necesita atención.Las interrupciones generadas por los dispositivos periféricos son generalmente asíncronas con respecto al programa que se está ejecutando. Un evento es asíncrono a una entidad si el momento cuando ocurre no está determinado por la entidad. Las interrupciones no siempre ocurren en el mismo punto dentro de la ejecución de un programa. En contraste, un evento de error como la división por cero es síncrono en el sentido de que siempre ocurre durante la ejecución de una instrucción particular si el mismo dato es presentado a la instrucción.Las rutinas del Sistema de Operación llamadas manejadores de dispositivos usualmente manejan las interrupciones generadas por el dispositivo. Los Sistemas de Operación usan interrupciones para implementar el tiempo compartido. Tienen un dispositivo llamado timer que genera una interrupción después de un intervalo específico de tiempo. El Sistema de Operación inicializa el timer antes de actualizar el Program Counterpare ejecutar un programa de un usuario. Cuando el timer expira, genera una interrupción causando que el CPU ejecute la rutina de servicio de la interrupción timer.

Una señal o signal es la notificación por software de que un evento ocurrió. Por lo general es la respuesta del Sistema de Operación. Por ejemploctrl-C genera una interrupción para el manejador de dispositivo que maneja el teclado. El manejador notifica al proceso apropiado mandando un signal. El Sistema de Operación también puede enviar signals a un proceso para notificar la finalización de una E/S o de un error.       


  • Las interrupciones pueden ser producidas por Hardware o por software
  • Las interrupciones por Hardware son producidas por un dispositivo y viajan por el mismo Bus del sistema.
  • Las interrupciones por Software son prodicidas por medio de la ejecucion de una operacion especial que se conoce como "Llamada sistema" (system call) o por errores producidos dentro de un proceso, tambien conocidas como excepciones.



Hay muchos tipos de interrupciones y pare cada uno de estas existe una rutina en el sistema de operación que le da servicio. Los sistemas de operación actuales permiten a los dispositivos tales como E/S o reloj del sistema interrumpir el CPU asíncronamente.

Pasos durante una interrupción
  • El CPU suspende lo que estaba realizando. El hardware transfiere el control al sistema de operación.
  • Deshabilita las interrupciones. Mientras se atiende una interrupción no se puede atender otra que llegue. Algunas arquitecturas con manejo de interrupciones sofisticadas permiten, mediante un esquema de prioridades, interrumpir un servicio de interrupción para atender otra de mayor prioridad. Aquellas interrupciones de menor o igual prioridad son deshabilitadas.


  • El kernel del sistema de operación salva el estado actual del proceso interrumpido
  • Transfiere su ejecución a una dirección fija. Esta dirección por lo general contiene la dirección de comienzo donde la rutina de servicio de la interrupción se encuentra.
  • Se ejecuta la rutina de interrupción
  • Se restaura el estado anterior
  • Se habilitan las interrupciones.

  • La arquitectura de interrupciones debe también almacenar la dirección de la instrucción interrumpida.
Interrupciones softwareSon aquellas programadas por el usuario, es decir, el usuario decide cuando y donde ejecutarlas, generalmente son usadas para realizar entrada y salida.Interrupciones por hardwareSon aquellas que son provocadas por dispositivos externos al procesador su característica principal es que no son programadas, esto es, pueden ocurrir en cualquier momento en el programa. Existen dos clases de interrupciones de este tipoInterrupciones por hardware enmascarables: Aquellas en las que el usuario decide si quiere o no ser interrumpido.Interrupciones por hardware no enmascarables (NMI): Aquellas que siempre interrumpen al programa.Llamadas al SistemaDefinición de llamada al sistemaUna llamada al sistema es un método o función que puede invocar un proceso para solicitar un cierto servicio al sistema operativo. Dado que el acceso a ciertos recursos del sistema requieren la ejecución de código en modo privilegiado, el sistema operativo ofrece un conjunto de métodos o funciones que el programa puede emplear para acceder a dichos recursos. En otras palabras, el sistema operativo actúa como intermediario, ofreciendo una interfaz de programación (API) que el programa puede usar en cualquier momento para solicitar recursos gestionados por el sistema operativoAlgunos ejemplos de llamadas al sistema son las siguientes:·         time, que permite obtener la fecha y hora del sistema.·         write, que se emplea para escribir un dato en un cierto dispositivo de salida, tales como una pantalla o un disco magnético.·         read, que es usada para leer de un dispositivo de entrada, tales como un teclado o un disco magnético.·         open, que es usada para obtener un descriptor de un fichero del sistema, ese fichero suele pasarse a write.






Las llamadas al sistema y las excepciones funcionan como interrupciones del software: se gestionan igual que las interrupciones del hardware, pero las provoca la propia CPU.Para provocar una interrupción software, existe una instrucción de máquina específica:·         INT (Intel)·         TRAP (Motorola)·         SYSCALL (MIPS) 

Referencias
http://ldc.usb.ve/~spd/Docencia/ci-3821/Tema2/node4.htmlhttp://www.slideshare.net/SpiderHal/interrupciones-de-hardwarehttp://sopa.dis.ulpgc.es/so/teoria/pdf/so-02-Estructura%20del%20computador-6x1.pdfhttp://antiguo.itson.mx/die/mdomitsu/bibliotecaDigital/Programacion_Lenguaje_Ensamblador8086/Tema08.pdfhttp://1984.lsi.us.es/wiki-ssoo/index.php/Llamadas_al_sistema

No hay comentarios.:

Publicar un comentario