Manual de Prcticas de Arquitectura de Computadoras
PRCTICA No. 3 Seguimiento de rutinas de atencin a interrupciones
2. Nombre de la prctica: Seguimiento de rutinas de atencin a interrupciones 3. Objetivo de la prctica
Elaborar y probar rutinas de atencin a interrupciones utilizando un lenguaje de nivel medio.
4.- Introduccin El procesador y la memoria, adicionados a un conjunto de mdulos de entrada/salida (E/S) son los elementos bsicos de una computadora. Cada uno de los mdulos se conecta al bus del sistema o a un conmutador central, para controlar uno o ms dispositivos perifricos. Un mdulo de E/S tiene como funciones principales: Realizar la interfaz entre el procesador y la memoria a travs del bus del sistema o un conmutador central Realizar la interfaz entre uno o ms dispositivos perifricos mediante enlaces de datos especficos. La arquitectura de E/S en una computadora es su interfaz con el mundo exterior. El diseo de la arquitectura debe establecerse para permitir una forma ordenada de controlar las interacciones con el mundo exterior y proporcionarle al sistema operativo la informacin que necesita para gestionar eficazmente la actividad de E/S. Existen tres tcnicas para las operaciones de E/S: Programada: los datos se intercambian entre el procesador y el mdulo de E/S. El procesador ejecuta un programa que controla directamente la operacin de E/S, incluyendo la comprobacin del estado del dispositivo, el envo de una orden de lectura o escritura y la transferencia del dato. Cuando el procesador enva una orden al mdulo de E/S, debe esperar hasta que la operacin de E/S concluya. Si el procesador es ms rpido que el mdulo de E/S, el procesador desperdicia este tiempo. Interrupciones: el procesador proporciona la orden de E/S, contina ejecutando otras instrucciones, y es interrumpido por el mdulo de E/S cuando ste ha terminado su trabajo. Tanto con E/S programada como con interrupciones, el procesador es responsable de extraer los datos de la memoria principal en una salida, y de almacenar los datos en la memoria principal en una entrada. Acceso directo a memoria (DMA): el mdulo de E/S y la memoria principal intercambian datos directamente, sin la intervencin del procesador (Stallings, 2001).
Proceso de interrupcin. Cuando se produce una interrupcin se generan una serie de eventos en el procesador, tanto a nivel de hardware como software:
Instituto Tecnolgico de Colima Departamento de Sistemas y Computacin 20
Manual de Prcticas de Arquitectura de Computadoras
Nivel de hardware: 1. El dispositivo enva una seal de interrupcin al procesador. 2. El procesador termina la ejecucin de la instruccin en curso antes de responder a la interrupcin 3. El procesador comprueba si hay interrupciones, determina que hay una, y enva una seal de reconocimiento al dispositivo que origin la interrupcin. La seal de reconocimiento hace que el dispositivo desactive su seal de interrupcin. 4. El procesador se prepara para transferir el control a la rutina de interrupcin. Empieza guardando la informacin necesaria para continuar el programa en curso en el punto en que se interrumpi. La informacin mnima que se precisa es: a. El estado del procesador, que se almacena en un registro llamado palabra de estado del programa (PSW, Program Status Word) b. La posicin de la siguiente instruccin a ejecutar, que est contenida en el contador de programa. Estos registros se introducen en la pila de control del sistema. 5. El procesador carga el contador de programa con la posicin de inicio del programa de gestin de la interrupcin solicitada. Una vez que el contador de programa se ha cargado, el procesador contina con el ciclo de instruccin siguiente, que empieza con la captacin de instruccin. Puesto que la instruccin a captar viene determinada por el contenido del contador de programa, el control se transfiere al programa de gestin de interrupcin. La ejecucin de este programa da lugar a las siguientes operaciones Nivel de software: 6. Adems del contador de programa y el PSW del programa interrumpido, se guardan en la pila los contenidos de los registros del procesador, ya que estos registros pueden ser utilizados por la rutina de interrupcin. Usualmente, la rutina de gestin de interrupcin empezar almacenando en la pila los contenidos de todos los registros. 7. La rutina de gestin de la interrupcin puede continuar ahora procesando la interrupcin, se examina la informacin de estado correspondiente a la operacin de E/S, o a cualquier otro evento que causara la interrupcin. Tambin puede incluir el envo al dispositivo de E/S de rdenes o seales de reconocimiento adicionales. 8. Cuando el procesamiento de la interrupcin ha terminado, los valores de los registros almacenados se recuperan de la pila y se vuelven a almacenar en los registros. 9. El paso final es recuperar los valores del PSW y del contador de programa desde la pila. Como resultado de esto, la siguiente instruccin que se ejecute pertenecer al programa previamente interrumpido. Tipos de interrupcin Atendiendo a su origen, existen tres tipos de interrupciones: Hardware. Estas ocurren cuando un dispositivo necesita atencin del procesador y genera una seal elctrica en la lnea Interrupt Request (IRQ) que tiene asignada. Esta seal es recogida y procesada por el controlador de excepciones PIC (Programmable Interrupt Controller) antes de ser enviada al procesador, lo que puede realizarse de dos formas, segn el tipo de interrupcin:
Departamento de Sistemas y Computacin 21
Instituto Tecnolgico de Colima
Manual de Prcticas de Arquitectura de Computadoras
o Enmascarable, significa que, bajo control del software, el procesador puede aceptar o ignorar (enmascarar) la seal de interrupcin. Para ello se enva una seal a la patilla del procesador INTR, y el procesador la atiende o la ignora en funcin del contenido de un bit, en un registro de control de banderas, que puede estar habilitado o deshabilitado. o No enmascarable, significa que la interrupcin no puede ser deshabilitada por software. Este tipo de interrupciones ocurren cuando se recibe una seal en la patilla NMI (Nonmaskable Interrupt) del procesador. Se reservan para casos en que es crtica la respuesta, por ejemplo que se detecte un error de paridad en la memoria. Adems son de prioridad ms alta que las enmascarables. Software. Los procesadores Intel de la gama x86 y compatibles, disponen de una instruccin INT que permite generar por software cualquiera de los 256 tipos de interrupcin. El proceso seguido es exactamente el mismo que si se recibe una interrupcin hardware en la patilla INTR, salvo que en este caso se conoce el tipo de interrupcin, y no se requiere ningn ciclo INTA (Interrupt Acknowledge). Por ejemplo, en lenguaje ensamblador, la instruccin INT 21 invoca la interrupcin 33d (21h), que en MS-DOS es la llamada a los servicios del Sistema. Este tipo de interrupciones son de prioridad ms alta que las de hardware (enmascarables y no enmascarables), de forma que si se recibe una interrupcin hardware mientras que se ejecuta una software, esta ltima tiene prioridad. Son utilizadas tanto por el Sistema Operativo como por los programas de usuario que pueden instalar las suyas particulares. Precisamente, aquellas posiciones de la tabla de vectores de interrupcin (Interrupt Description Table IDT) que sealan a posiciones dentro de la ROM-BIOS (por encima de la direccin F0000h) se refieren a interrupciones relacionadas con servicios de la BIOS, mientras que las situadas en la zona de memoria convencional, se refieren a interrupciones instaladas por el Sistema o los programas de aplicacin. Excepciones del procesador. Durante el funcionamiento del procesador pueden ocurrir circunstancias excepcionales; es usual citar como ejemplo el caso de una divisin por cero. En estos casos, el procesador genera una excepcin, que es tratada como si fuese una interrupcin software, con la diferencia de que el nmero de interrupcin asociado depende del tipo de excepcin. En el caso de la divisin por cero el nmero asociado es cero.
5. Correlacin con temas y subtemas del programa de estudio vigente El anlisis de la ejecucin de una interrupcin realizado en esta prctica permitir al estudiante describir el proceso de transferencia de datos entre los elementos internos de una computadora. 6. Material y equipo necesario Una computadora de escritorio o porttil con sistema operativo instalado Programa en lenguaje C o ensamblador con las interrupciones siguientes: Limpiar pantalla Desplegado de una cadena Lectura de un carcter del teclado con visualizacin.
Departamento de Sistemas y Computacin 22
Instituto Tecnolgico de Colima
Manual de Prcticas de Arquitectura de Computadoras
7. Metodologa 1. Ejecutar el programa con el comando de depuracin DEBUG, observando el comportamiento de los registros del procesador. 2. Identificar las acciones que se realizan al ejecutar instrucciones simples e interrupciones. 3. Construir un diagrama de flujo que represente el comportamiento de los registros, banderas y pila, para cada una de las interrupciones del programa. 4. Elaborar un resumen del proceso de ejecucin del programa completo, estableciendo las diferencias entre cada una de las interrupciones del programa, identificando los servicios de atencin a la interrupcin correspondiente. 8. Sugerencias didcticas Formar equipos de trabajo con un mximo de 4 estudiantes. Solicitar a cada equipo previamente una investigacin documental sobre: La tabla de vectores de interrupcin Los tipos de servicios de las interrupciones de software. El debug. Solicitar a cada equipo definir el lenguaje de programacin que utilizar para la implementacin del programa. 9. Reporte del alumno Cada equipo entregar un archivo electrnico con el cdigo fuente del programa a ejecutar; las ejecuciones y diagramas de flujo de cada una de las interrupciones analizadas y el resumen del proceso de ejecucin del programa completo. Deber incluir las referencias bibliogrficas. 10. Fuentes preliminares
Stallings, William (2001). Organizacin y Arquitectura de computadoras. Ed. Pearson Educacin. Espaa. Tanenbaum, Andrew (2000). Organizacin de computadoras. Ed. Pearson Educacin. Mxico.
Milln, A.J. , Tutorial de Tecnologa del PC, 2.4 Interrupciones 2010. Documento electrnico, descargado de: http://www.zator.com/Hardware/H2_4.htm Milln, A.J. , Tutorial de Tecnologa del PC, Debug 2010. Documento electrnico, descargado de: http://www.zator.com/Hardware/H1_7_1.htm Tutorial de lenguaje ensamblador. Interrupciones y manejo de archivos, documento electrnico, descargado de: http://moisesrbb.tripod.com/unidad6.htm Larrosa C., F. Tutorial de Tcnicas de Programacin. Interrupciones. Universidad Laboral de Albacete. Espaa. 2000. Documento electrnico descargado de: http://mimosa.pntic.mec.es/~flarrosa/raton.pdf
Instituto Tecnolgico de Colima Departamento de Sistemas y Computacin 23
Manual de Prcticas de Arquitectura de Computadoras
Visual C++. 2010. http://msdn.microsoft.com/es-es/library/60k1461a.aspx Tutoriales de Visual C++. 2010. http://msdn.microsoft.com/eses/library/e6w9eycd.aspx
Instituto Tecnolgico de Colima
Departamento de Sistemas y Computacin 24