Trabajo Interrupciones

12
Qué son los servicios de interrupción Una interrupción es una operación que suspende la ejecución de un programa de modo que el sistema pueda realizar una acción especial. La rutina de interrupción ejecuta y por lo regular regresa el control al procedimiento que fue interrumpido, el cual entonces resume su ejecución. Una interrupción es un tipo especial de instrucción que provoca la parada de la ejecución del programa, guarda el estado actual del sistema en la pila y salta a una rutina de manejo de la interrupción que se determina por el número dela interrupción. Tipos de interrupciones El microprocesador puede atender dos tipos de interrupciones: interrupciones por software e interrupciones por hardware. Las interrupciones por software son llamadas desde los programas y son proporcionadas por el sistema operativo (MS-DOS). Existen dos tipos de estas: las interrupciones del DOS y las interrupciones del BIOS (Basic Input Output System o Sistema Básico de Entrada/Salida). Estas interrupciones son invocadas con la instrucción INT del ensamblador. Por otro lado, las interrupciones por Hardware son proporcionadas por el propio microprocesador y también existen dos tipos: interrupciones por hardware internas y las interrupciones por hardware externas. Las interrupciones internas son invocadas por el microprocesador cuando se produce alguna operación incorrecta, como por ejemplo, un intento de dividir por cero o una transferencia de datos entre registros de diferentes longitudes. Las interrupciones externas son provocadas por los dispositivos periféricos conectados al microprocesador. Para lograr esto, a cada dispositivo periférico se le asigna una línea física de interrupción que lo comunica con el microprocesador por medio de un circuito integrado auxiliar, el cual se conoce como controlador programable de interrupciones (PIC). Las computadoras basadas en el microprocesador 8086/8088 cuentan solamente con un PIC, con lo cual pueden proporcionar hasta 8 líneas de interrupción (IRQ), las cuales son llamadas IRQ0 a IRQ7, por otro lado, las computadoras basadas en el microprocesador 80286 y posteriores cuentan con dos chips controladores, con los

Transcript of Trabajo Interrupciones

Page 1: Trabajo Interrupciones

Qué son los servicios de interrupciónUna interrupción es una operación que suspende la ejecución de un programa de modo que el sistema pueda realizar una acción especial. La rutina de interrupción ejecuta y por lo regular regresa el control al procedimiento que fue interrumpido, el cual entonces resume su ejecución. Una interrupción es un tipo especial de instrucción que provoca la parada de la ejecución del programa, guarda el estado actual del sistema en la pila y salta a una rutina de manejo de la interrupción que se determina por el número dela interrupción.

Tipos de interrupcionesEl microprocesador puede atender dos tipos de interrupciones: interrupciones por software e interrupciones por hardware.

Las interrupciones por software son llamadas desde los programas y son proporcionadas por el sistema operativo (MS-DOS). Existen dos tipos de estas: las interrupciones del DOS y las interrupciones del BIOS (Basic Input Output System o Sistema Básico de Entrada/Salida). Estas interrupciones son invocadas con la instrucción INT del ensamblador.

Por otro lado, las interrupciones por Hardware son proporcionadas por el propio microprocesador y también existen dos tipos: interrupciones por hardware internas y las interrupciones por hardware externas. Las interrupciones internas son invocadas por el microprocesador cuando se produce alguna operación incorrecta, como por ejemplo, un intento de dividir por cero o una transferencia de datos entre registros de diferentes longitudes.

Las interrupciones externas son provocadas por los dispositivos periféricos conectados al microprocesador. Para lograr esto, a cada dispositivo periférico se le asigna una línea física de interrupción que lo comunica con el microprocesador por medio de un circuito integrado auxiliar, el cual se conoce como controlador programable de interrupciones (PIC).

Las computadoras basadas en el microprocesador 8086/8088 cuentan solamente con un PIC, con lo cual pueden proporcionar hasta 8 líneas de interrupción (IRQ), las cuales son llamadas IRQ0 a IRQ7, por otro lado, las computadoras basadas en el microprocesador 80286 y posteriores cuentan con dos chips controladores, con los cuales pueden proporcionar hasta un máximo de 16 líneas IRQ, las cuales son llamadas IRQ0 a IRQ15.

Descripción del área de datos del BIOSEn esta área se encuentra el CMOS que se en encarga de guardar los datos “volatiles” o variables del BIOS. Su tamaño es pequeño 64 a 256 bytes y entre otras, la información típica que guarda se describe en la tabla 1:

Tamaño (bytes)

Descripción

2 Tamaño de la memoria principal del sistema37 Teclado (teclas, ubicación de buffer del teclado, tiempos de espera, etc.)30 Control del video (modo, resolución, paleta de colores, etc.)2 Fecha y hora del sistema.

Tabla 1: Datos del CMOS

Page 2: Trabajo Interrupciones

En el CMOS se almacenan datos de los distintos módulos de la computadora algunos se pudren parámetrizar desde el módulo CONFIGURADOR que se encuentra en el área de módulos del BIOS. Además estos datos son utilizados por los otros módulos POST, IPL y RUTINAS E/S para su funcionamiento.

Este tipo de memoria se sigue utilizando porque en el caso de que el contenido de esta área resulte inapropiado, por ejemplo haber perdido la contraseña de ingreso al BIOS. Existe la posibilidad de limpiarlo utilizando un jumper o pin ubicado en el MOTHER. Al valerse de este método lo que sucede internamente es lo siguiente. Se puentea la corriente entregada por la pila a esta sección del chip BIOS. Entonces el contenido se va descargando porque la corriente que mantenía los datos del CMOS se desvía a través de la maza del MOTHER. Esta acción se la conoce como reset (o borrado) del BIOS. Luego al reiniciar la computadora, como esta área esta sin datos, el BIOS la carga con los datos que vienen configurados del fabricante.

Además de los datos de la configuración se guarda la información del fabricante y los otros datos del sistema que son los extendidos, conocidos como ESCD. Esta es la información recolectada durante la auto configuración de dispositivos Plug&Play.

Qué son los servicios de interrupción del BIOS

Las llamadas de interrupción del BIOS son una facilidad que los programas DOS, y otro tipo de programas como cargadores de arranque, usan para invocar las funciones del BIOS. Algunos sistemas operativos también usan el BIOS para probar e inicializar recursos de hardware durante las primeras etapas del arranque.

Enumerar las interrupciones del BIOS (nombre y descripción)Vector de

interrupciónen Hex

Descripción

00h CPU: Ejecutado después de un intento de división por cero o cuando un cociente no cabe en el destino

01h CPU: Ejecutado después de cada instrucción de código de máquina mientras el flag de trace esté activo

02h CPU: NMI. Usado por el Power On Self Test (POST) para errores de memoria03h CPU: La más baja interrupción no reservada, es usada exclusivamente

para depuración, y el manejador INT 03h siempre es implementado por un programa de depuración

04h CPU: Numeric Overflow. Usualmente causado por la instrucción INTOh cuando el flag del overflow está encendido

05h Ejecutado cuando es presionado Shift-Print Screen, así como cuando la instrucción BOUNDh detecta una falla de límite

06h CPU: Llamada cuando una excepción de opcode indefinido (código inválido). Usualmente instalado por el sistema operativo

07h CPU: Llamada cuando se intenta usar una instrucción de coma flotante y no está disponible un coprocesador numérico

Page 3: Trabajo Interrupciones

08h IRQ0: Implementada por el componente de temporización del sistema; llamado 18,2 veces por segundo (una cada 55 ms) por el PIC

09h IRQ1: Llamada después de que cada tecla es presionada o soltada (como también durante el tiempo en que una tecla es mantenida presionada)

0Bh IRQ3: Llamada por los puertos seriales 2 y 4 (COM2 y COM4) cuando es necesaria atención

0Ch IRQ4: Llamada por los puertos seriales 1 y 3 (COM1 y COM3) cuando es necesaria atención

0Dh IRQ5: Llamada por el controlador del disco duro (PC/XT) y el segundo puerto paralelo LPT2 (AT) cuando es necesaria atención

0Eh IRQ6: Llamada por el controlador de disco floppy cuando es necesaria atención

0Fh IRQ7: Llamada por el primer puerto paralelo LPT1 (impresora) cuando es necesaria atención

10h Servicios de video - Instalado por el BIOS o el sistema operativo; llamado por programas de software

AH Descripción00h Selecciona modo de video01h Ajusta forma del cursor02h Ajusta la posición del cursor03h Lee la posición y la forma del cursor04h Lee la posición del Light Pen05h Selecciona la Página de exhibición06h Borra la pantalla / Desplazamiento (Scroll) hacia arriba07 h Borra la pantalla / Desplazamiento (Scroll) hacia abajo08h Lee un carácter y su atributo en la posición del cursor09h Escribe un carácter y su atributo en la posición del cursor0Ah Escribe un carácter en la posición del cursor0Bh Ajusta el color del borde de la pantalla0Eh Escribe un carácter en modo TTY0Fh Lee el modo de video13h Escribe un string

11h Instalado por el BIOS; retorna la lista del equipo instalado12h Instalado por el BIOS o el sistema operativo; retorna el tamaño de la

memoria convencional

13hServicios de disco de bajo nivel; instalado por el BIOS o el sistema operativo; llamado por programas de software

AH Descripción

Page 4: Trabajo Interrupciones

00h Resetea las unidades de disco01h Chequea el estado de las unidades02h Lee sectores desde la unidad03h Escribe sectores hacia la unidad04h Verifica sectores en la unidad05h Formatea una pista en la unidad08h Lee los parámetros de la unidad09h Inicia los parámetros de la unidad fija (disco duro)0Ch Hace un Seek a la pista especificada0Dh

Resetea el controlador de la unidad fija

15h Lee el tipo de la unidad16h Lee el estado de cambio del medio de la unidad floppy

14h Rutinas para la comunicación vía el puerto serial. Usado por programas de software

AH Descripción00h Inicialización del puerto serial01h Transmite carácter02h Recibe carácter03h Estado

15h Misceláneas (Rutinas de soporte para servicios del sistema)

AH AL Descripción4Fh Intercepta el teclado83h Espera evento84h Lee el Joystick85h Sysreq Key Callout86h Espera87h Move Block88h Lee el tamaño de la memoria extendidaC0h

Lee los parámetros del sistema

C1h

Lee el segmento del área de datos extendida del BIOS

C2h

Funciones del dispositivo apuntador

E8h 01h Lee el tamaño de la memoria extendidaE8h 20h Información sobre el Mapa de memoria del sistema

16h Implementado por el BIOS o el sistema operativo. Provee rutinas a ser llamadas por programas de software que se comunican con el teclado

Page 5: Trabajo Interrupciones

AH Descripción00h Lee carácter01h Lee el estado de entrada02h Lee el estado de las teclas de desplazamiento (SHIFT, CTRL, ALT)10h Lee el carácter extendido11h Lee el estado de entrada extendido12h Lee el estado de las teclas de desplazamiento extendido

17h Servicios de Impresora - Usado por los programas de software para comunicarse con la impresora

AH Descripción00h Imprime un carácter a la impresora01h Inicializa la impresora02h Lee el estado de la impresora

18h Ejecuta el IBM ROM BASIC: Los computadores personales de originales de IBM contienen el BASIC en ROM para ser ejecutado por esta rutina en el evento de una falla en la carga (boot). Llamado por el BIOS

19h Boot Strap Loader. Después del POST, esta interrupción es usada por el BIOS para cargar el sistema operativo

1Ah Servicios del Real Time Clock (RTC) (Reloj de Tiempo Real) - Llamado por programas de software para comunicarse con el RTC

AH Descripción00h Lee el RTC01h Ajusta el RTC02h Lee la hora del RTC03h Ajusta la hora del RTC04h Lee la fecha del RTC05h Ajusta la fecha del RTC06h Ajusta la alarma RTC07h Resetea la alarma del RTC

1Bh Instalado por el sistema operativo; automáticamente llamado por INT 9h cuando ha sido presionado Ctrl-Break

1Ch Llamado automáticamente por INT 08h; disponible para el uso por programas de software cuando una rutina necesita ser ejecutada regularmente

1Dh No debe ser llamado; simplemente un puntero para la Tabla de Parámetros del Video (VPT), que contiene datos sobre modos de video

1Eh No debe ser llamado; simplemente un puntero para la Tabla de Parámetros del Diskette (DPT), conteniendo una variedad de información concerniente a las unidades de diskette

1Fh No debe ser llamado; simplemente un puntero para Tabla la Tabla de Caracteres de Gráficos de Video (VGCT), que contiene los datos para los caracteres ASCII 80h a FFh

Page 6: Trabajo Interrupciones

41h Puntero de dirección: Tabla de Parámetros del Disco Fijo (FDPT) (Primer unidad de disco)

46h Puntero de dirección: Tabla de Parámetros del Disco Fijo (FDPT) (Segunda unidad de disco)

4Ah Llamado por el RTC para alarma70h IRQ8: Llamado por el RTC74h IRQ12: Llamado por el ratón75h IRQ13: Llamado por el coprocesador matemático76h IRQ14: Llamado por el controlador IDE primario77h IRQ15: Llamado por el controlador IDE secundario

Que son los servicios de interrupción del DOS

La mayoría de las llamadas al DOS API invocan la interrupción de software 21h (INT 21h).

Llamando la INT 21h con un número de subfunción en el registro de procesador AH y otros parámetros en otros registros, se pueden invocar varios servicios del DOS. Los servicios del DOS incluyen la entrada por teclado, salida por pantalla, acceso a archivos de disco, ejecutar programas, la asignación de memoria, y otras cosas. Las subfunciones proporcionadas en el primer lanzamiento del MS-DOS en 1981 fueron fuertemente orientadas a la compatibilidad con el CP/M.

Enumerar las interrupciones del DOS (nombre y descripción)

Algunas llamadas de funciones INT 21h. El número de la llamada se pasa a través de AH:

AH Descripción

00 Termina programa01 Lee caracteres desde STDIN02 Escribe carácter a STDOUT03 Lee caracteres desde el puerto serial04 Escribe caracteres al puerto serial05 Escribe caracteres en la impresora06 Entrada/salida directa por consola07 Entrada directa por consola sin eco08 Entrada por consola sin eco09 Escribe string a STDOUT0A Entrada con buffer por teclado0B Lee estado de la entrada0C Limpia buffer de entrada0D Resetea disco0E Asigna unidad de disco por defecto0F Abre archivo10 Cierra archivo11 Encuentra primer archivo

Page 7: Trabajo Interrupciones

12 Encuentra siguiente archivo13 Borra archivo14 Lectura secuencial15 Escritura secuencial16 Crea o trunca un archivo17 Cambia nombre de un archivo18 Reservado19 Obtiene unidad de disco por defecto1A Asigna dirección de transferencia de disco1B Obtiene la información de asignación (allocation) para la unidad por

defecto1C Obtiene la información de asignación (allocation) para la unidad

especificada1D Reservado1E Reservado1F Obtiene el bloque de parámetros de disco (DPB) para la unidad por

defecto20 Reservado21 Lectura aleatoria22 Escritura aleatoria23 Obtiene el tamaño del archivo en número de registros24 Asigna número de registro aleatorio25 Asigna vector de interrupción26 Crea PSP27 Lee bloque aleatorio28 Escribe bloque aleatorio29 Parsea nombre de archivo2A Obtiene la fecha2B Ajusta la fecha2C Obtiene la hora

2D Asigna la hora2E Asigna la bandera de verificación3C Crea o trunca un archivo3D Abre archivo existente3F Lee desde un archivo o dispositivo40 Escribe a archivo o dispositivo3E Cierra archivo42 Ajusta la posición en el archivo

Page 8: Trabajo Interrupciones

Las interrupciones desde 20h hasta la 3fh están reservadas para operaciones del DOS.

INT 20H

Termina el Programa. Finaliza la ejecución de un programa .COM, restaura las direcciones para cltr +break y errores críticos, limpia los búfer de registros el control al DOS. Esta función por lo regular seria colocada en el procedimiento principal y al salir de el, CS contendría la dirección del PSP. La terminación preferida es el medio de la función 4CH de la INT 21h

INT 22H

Dirección de terminación. Copia la dirección de esta interrupción en el PSP del programa (en el desplazamiento 0AH) cuando el DOS carga un programa para la ejecución a la terminación del programa, el dos transfiere el control a la dirección de la interrupción. Sus programas no deben de emitir esta interrupción.

INT 23H

Dirección del Cltr + Break. Diseñada para transferir el control a una rutina del DOS (por medio del PSP desplazamiento 0EH) cuando se presiona Ctlt + Break o Ctlr + c. La rutina finaliza la ejecución de un programa o de un archivo de procesamiento por lotes. Sus Programas no deben de emitir esta interrupción.

INT 24HManejo de error crítico. Usada por el DOS para transferir el control (por medio del PSP desplazamiento 12h) cuando reconoce un error critico (a veces una operación de disco o de la impresora). Sus programas no deben emitir esta interrupción.

INT 25H Lectura absoluta de disco. Lee el contenido de uno o más sectores de disco.

INT 26H Escritura absoluta de disco. Escribe información desde la memoria a uno o más sectores de disco.

INT 27H Termina Pero permanece residente (reside en memoria). Hace que un programa .COM al salir permanezca residente en memoria.

INT 2FHInterrupción de multiplexion. Implica la comunicación entre programas, como la comunicación del estado de un spooler de la impresora, la presencia de un controlador de un dispositivo o un comando del dos tal como ASSING o APPEND

INT 33H Manejador del ratón. Proporciona Servicios para el manejo del ratón.