INTERRUPCIÓN Y FUNCIONAMIENTO DE LINEA DE COMANDOS



INTERRUPCIÓN 



Una interrupción es una señal recibida por el procesador de un ordenador, indicando que debe "interrumpir" el curso de ejecución actual y pasar a ejecutar código específico para tratar esta situación. 

FUNCIONAMIENTO 

para realizar una operación. Esta línea se denomina. Las IRQ son líneas que llegan al controlador de interrupciones, un componente de hardware dedicado a la gestión de las interrupciones, y que puede estar integrado en el procesador principal o ser un circuito separado conectado al mismo. El controlador de interrupciones debe ser capaz de habilitar o inhibir las líneas de interrupción y establecer prioridades entre las mismas. Cuando varias líneas de petición de interrupción se activan a la vez, el controlador de interrupciones utilizará estas prioridades para escoger la interrupción sobre la que informará al procesador principal. 

Un procesador principal que no tenga un controlador de interrupciones integrado, suele tener una única línea de interrupción llamada habitualmente INT. Esta línea es activada por el controlador de interrupciones cuando tiene una interrupción que servir. Al activarse esta línea, el procesador consulta los registros del controlador de interrupciones para averiguar cuál IRQ hay que atender. 

INTERRUPCIONES DE HARDWARE 

Las interrupciones de hardware son aquellas interrupciones que se producen como resultado de, por lo general, una operación de E/S. No son producidas por ninguna instrucción de un programa sino por las señales que emiten los dispositivos periféricos para indicarle al procesador que necesitan ser atendidos. 

Cuando el microprocesador accede a un periférico, puede transcurrir algún tiempo antes de que los datos sean obtenidos o transmitidos. La solución más simple es esperar hasta recibir los datos o hasta que se haya efectuado la transmisión, pero esta solución bloquea todos los programas en ejecución, y eso no puede admitirse en un sistema multitarea. Por ello, en los sistemas modernos se prefiere un funcionamiento mediante interrupciones, ya que éstas permiten mejorar la productividad del procesador, de forma que este último puede ordenar una operación de E/S y, en lugar de tener que realizar una espera activa, se puede dedicar a atender a otro proceso o aplicación hasta que el dispositivo esté de nuevo disponible, siendo dicho dispositivo el encargado de notificar al procesador mediante la línea de interrupción que ya está preparado para continuar/terminar la operación de E/S



Interrupciones internas de hardware 

Las interrupciones internas son generadas por ciertos eventos que surgen durante la ejecución de un programa. Este tipo de interrupciones son manejadas en su totalidad por el hardware y no es posible modificarlas. 

Un ejemplo claro de este tipo de interrupciones es la que actualiza el contador del reloj interno de la computadora, el hardware hace el llamado a esta interrupción varias veces durante un segundo para mantener la hora actualizada. 

Aunque no podemos manejar directamente esta interrupción (no podemos controlar por software las actualizaciones del reloj), es posible utilizar sus efectos en la computadora para nuestro beneficio, por ejemplo para crear un "reloj virtual" actualizado continuamente gracias al contador del reloj interno. Unicamente debemos escribir un programa que lea el valor actual del contador y lo traduzca a un formato entendible para el usuario.




INTERRUPCIONES EXTERNAS DE HARDWARE 

Las interrupciones externas las generan los dispositivos perifericos, como pueden ser: teclado, impresoras, tarjetas de comunicaciones, etc. También son generadas por los coprocesadores. 

No es posible desactivar a las interrupciones externas. 

Estas interrupciones no son enviadas directamente a la UCP, sino que se mandan a un circuito integrado cuya función es exclusivamente manejar este tipo de interrupciones. El circuito, llamado PIC 8259A, si es controlado por la UCP utilizando para tal control una serie de vias de comunicación llamadas puertos. 

Una lista de las interrupciones generadas por hardware es la siguiente 




IRQ 

Prioridad 

Función 




Timer 




Teclado Hardware 



Reservada 



11 

COM 2 



12 

COM 1 



13 

Tarjeta de Sonido 



14 

Controlador Floppy 



15 

Puerta Paralela 




Reloj (tics) 




Libre para tarjeta de red, sonido, puerta SCSI 


10 


idem 


11 


idem 


12 


PS-mouse 


13 


Co-procesador matemático 


14 


Canal IDE primario 


15 

10 

Canal IDE secundario 




Las interrupciones de software llaman a rutinas de servicio de interrupciones (ISRs), que se encuentran en el BIOS o en DOS. Algunas interrupciones de uso frecuente son:

• INT 10h (Servicios de video). Procedimientos que muestran rutinas que controlan la posición del cursor, escriben texto a color, desplazan la pantalla y muestran gráficos de video.

• INT 16h (Servicios de teclado). Procedimientos que leen el teclado y comprueban su estado.

• INT 17h (Servicios de impresora). Procedimientos que inicializan, imprimen y devuelven el estado de la impresora.

• INT 1Ah (Hora del día). Procedimiento que obtiene el número de pulsaciones del reloj desde que se encendió el equipo, o establece el contador a un nuevo valor.

• INT 1Ch (Interrupción de temporizador del usuario). Un procedimiento vacío que se ejecuta 18.2 veces por segundo.

• INT 21h (Servicios de MS-DOS). Procedimientos que proporcionan entrada-salida, manejo de archivos y administración de memoria. También se conocen como llamadas a funciones de MS-DOS. 

El Basic Input/Output System (BIOS), también conocido como System BIOS, ROM BIOS o PC BIOS, es un estándar de facto que define un firmware de interfaz.1 El nombre se originó en el Basic Input/Output System usado en el sistema operativo CP/M en 1975.2 3 El software BIOS es instalado dentro de la PC, y es el primer programa que se ejecuta cuando se enciende la computadora. 

El propósito fundamental del BIOS es inicializar y probar el hardware del sistema y cargar un bootloader o un sistema operativo de un dispositivo dispositivo de almacenamiento de datos. EL BIOS adicionalmente provee una capa de abstracción para el hardware, p.e. consiste en una vía para los programas de aplicaciones y los sistemas operativos para interactuar con el teclado, el monitor y otros dispositivos de entrada/salida. Variaciones en el hardware del sistema quedan ocultos por el BIOS, ya que los programas usan servicios de BIOS en lugar de acceder directamente al hardware. Los sistemas operativos modernos ignoran la capa de abstracción provista por el BIOS y acceden al hardware directamente 



¿Cuáles son por categoría? 

Los controladores de hardware del BIOS están escritos en 16 bits siendo incompatibles con los SO de 32 y 64 bits, estos cargan sus propias versiones durante su arranque que reemplazan a los utilizados en las primeras etapas. 





¿Función? 

Después de un reset o del encendido, el procesador ejecuta la instrucción que encuentra en el llamado vector de reset (16 bytes antes de la instrucción máxima direccionable en el caso de los procesadores x86), ahí se encuentra la primera línea de código del BIOS: es una instrucción de salto incondicional, que remite a una dirección más baja en la BIOS. En los PC más antiguos el procesador continuaba leyendo directamente en la memoria RAM las instrucciones (dado que esa memoria era de la misma velocidad de la RAM), ejecutando las rutinas POST para verificar el funcionamiento del sistema y posteriormente cargando un sistema operativo (de 16 bits) en la RAM, que compartiría funcionalidades de la BIOS. 

De acuerdo a cada fabricante del BIOS, realizará procedimientos diferentes, pero en general se carga una copia del firmware hacia la memoria RAM, dado que esta última es más rápida. Desde allí se realiza la detección y la configuración de los diversos dispositivos que pueden contener un sistema operativo. Mientras se realiza el proceso de búsqueda de un SO, el programa del BIOS ofrece la opción de acceder a la RAM-CMOS del sistema donde el usuario puede configurar varias características del sistema, por ejemplo, el reloj de tiempo real. La información contenida en la RAM-CMOS es utilizada durante la ejecución del BIOS para configurar dispositivos como ventiladores, buses y controladores. 







3.2 INTERRUPCIONES DEL BIOS. 



INT 10H VIDEO 



INT 11H OBTENER EL ESTADO DEL EQUIPO. 



INT 12H OBTENER EL TAMAÑO DE LA MEMORIA. 



INT 13H MANEJO DE DISCOS 



INT 14H PUERTO SERIE 



INT 15H SERVICIOS DEL SISTEMA. 



INT 16H TECLADO. 



INT 17H IMPRESORA 



INT 18H ENTRADA CON EL Basic DE ROM 



INT 19H BOOT AL SISTEMA. 

Es similar al CTR – ALT – DEL 



INT 1AH LEER Y ESTABLECER LA HORA 


INT 1BH CTRL. - BREAK 



INT 1CH INTERRUPCION TIMER TICK 

La rutina de servicio tiene normalmente un IRET para que el programa la utilice, esta rutina es llamada por la INT 08H 18.2 veces por segundo. 



INT 1DH TABLA DE PARÁMETROS DE INICIALIZACION – VIDEO. 
No es una interrupción verdadera, apunta a una tabla. 
Puesto que no tiene código ejecutable esta interrupción, no deberá ser llamada por el programador. 



INT 1EH TABLA DE PARÁMETROS DE INICIALIZACION – DISK. 
Igual que la anterior. 

INT 1FH TABLA BIT – MAP DE CARACTERES GRAFICOS. 
No es una interrupción verdadera, apunta a una tabla de caracteres (ASCII) del 128 ® 255. 



PROCESAMIENTO AVANZADO DE LA PANTALLA O VIDEO 

FUNCIONES DE LA INTERRUPCION 10H ( VIDEO) 

AH = 00H ESTABLECE EL MODO DE VIDEO. 

AH = 01H ESTABLECE EL TAMAÑO DEL CURSOR. 

AH = 02H ESTABLECE LA POSICIÓN DEL CURSOR 

AH = 03H LEE LA POSICIÓN DEL CURSOR 

AH = 04H LEE LA POSICIÓN DE LA PLUMA OPTICA. 

AH = 05H SELECCIONAR LA PAGINA ACTIVA. 

AH = 06H RECORRE LA PANTALLA HACIA ARRIBA (SCROLL WINDOW UP.) 

AH = 07H RECORRE LA PANTALLA HACIA ABAJO (SCROLL WINDOW DOWN). 

AH = 08H LEER CARÁCTER Y ATRIBUTO EN LA POSICIÓN DEL CURSOR. 

AH = 09H ESCRIBIR UN CARÁCTER Y ATRIBUTO EN LA POSICIÓN DEL CURSOR. 

AH = 0AH ESCRIBIR UN CARÁCTER EN EL CURSOR(MODO GRAFICO). 

AH = 0BH PONER EL PALETTE DE COLOR. 

AH = 0CH ESCRIBIR UN PÍXEL(MODO GRAFICO). 

AH = 0DH LEER UN PÍXEL(MODO GRAFICO) . 

AH = 0EH ESCRIBIR TEXTO EN MODO TELETIPO. 

AH = 0FH OBTENER EL MODO DE VIDEO ACTUAL. 

AH = 11H GENERA CARÁCTER 

AH = 12H SELECCIONA RUTINA ALTERNA DE PANTALLA 
AH = 13H DESPLIEGA CADENA DE CARACTERES 



AH = 1BH REGRESA LA INFORMACIÓN DE FUNCIONALIDAD O DE ESTADO 

AH = 1CH GUARDA O RESTAURA EL ESTADO DE VIDEO 



Interrupciones del DOS. El número de función se pasa en el registro AH 





Función Descripción 

00h Terminar un programa 

01h Entrada de caracteres con salida 

02h Salida de un caracter 

03h Recepción de un caracter por el puerto serial 

04h Envío de un caracter por el puerto serial 

05h Salida por puerto paralelo 

06h Entrada/salida de caracteres directa 

07h Entrada/salida de caracteres directa 

08h Entrada de caracteres sin salida 

09h Salida de un string de caracteres 

0Ah Entrada de un string de caracteres 

0Bh Leer estado de una entrada 

0Ch Borra buffer de entrada y llama a entrada de caracteres 

0Dh Reset de los drivers de bloques 

0Eh Selección de unidad actual 

0Fh Abrir archivo usando FCBs (File Control Blocks) 

10h Cerrar archivo (FCBs) 

11h Busca primera entrada de directorio (FCBs) 

12h Busca siguiente entrada de directorio (FCBs) 

13h Borrar archivo(s) (FCBs) 

14h Lectura secuencial (FCBs) 

15h Escritura secuencial (FCBs) 

16h Crear o vaciar un archivo (FCBs) 

17h Renombrar archivos (FCBs) 

18h Obsoleta 

19h Obtener denominación de dispositivo, unidad actual 

1Ah Fijar dirección para DTA (Disk Transfer Area) 

1Bh Obtener información sobre unidad actual 

1Ch Obtener información sobre una unidad cualquiera 

1Dh/1Eh Obsoletos 

1Fh Fijar puntero a DPB (Drive Parameter Block) a la unidad actual 

20h Obsoleta 

21h Lectura random (FCB) 

22h Escritura random (FCB) 

23h Leer tamaño de archivo (FCB) 

24h Establecer número de registro (FCB) 

25h Establecer vector de interrupción 

26h Crear nuevo PSP (Program Segment Prefix) 

27h Lectura random de varios registros (FCB) 

28h Escritura random de varios registros (FCB) 

29h Transferir nombre de archivo al FCB 

2Ah Obtener fecha 

2Bh Establecer fecha 

2Ch Obtener hora 

2Dh Establecer hora 

2Eh Fijar bandera de Verify 

2Fh Obtener DTA 

30h Obtener número de versión del DOS 

31h Terminar programa pero dejarlo residente en memoria 

32h Obtener puntero a DPB de una unidad específica 

33h Leer/escribir bandera de break 

34h Obtener dirección de bandera INDOS 

35h Leer vector de interrupción 

36h Obtener espacio de disco disponible 

37h Obtener/fijar signo p/separador de línea de comandos 

38h Obtener/fijar formatos específicos de un país 

39h Crear subdirectorio 

3Ah Borrar subdirectorio 

3Bh Fijar directorio actual 

3Ch Crear o vaciar archivo (handle) 

3Dh Abrir archivo (handle) 

3Eh Cerrar archivo (handle) 

3Fh Leer desde archivo (handle) 

40h Escribir en archivo (handle) 

41h Borrar archivo (handle) 

42h Mover puntero de archivo (handle) 

43h Obtener/fijar atributo de archivo 

44h Funciones IOCTL (control de I/O) 

45h Duplicar handle 

46h Duplicación forzosa de handles 

47h Obtener directorio actual 

48h Reservar memoria RAM 

49h Liberar memoria RAM 

4Ah Modificar tamaño de memoria reservada 

4Bh EXEC: ejecutar o cargar programas 

4Ch Terminar programa con valor de salida 

4Dh Obtener valor de salida de un programa 

4Eh Buscar primera entrada en el directorio (handle) 

4Fh Buscar siguiente entrada en el directorio (handle) 

50h Establecer PSP activo 

51h Obtener PSP activo 

52h Obtener puntero al DOS-info-block 

53h Traducir Bios Parameter Block a Drive Parameter Block 

54h Leer bandera Verify 

55h Crear PSP nuevo 

56h Renombrar o mover archivo 

57h Obtener/fijar fecha y hora de modificación de archivo 

58h Leer/fijar estrategia de alocación de memoria 

59h Obtener informaciones de error ampliadas 

5Ah Crear archivo temporal (handles) 

5Bh Crear archivo nuevo (handles) 

5Ch Proteger parte de un archivo contra accesos 

5Dh Funciones de Share.exe 

5Eh Obtener nombres de dispositivos de red 

5Fh Obtener/fijar/borrar entrada de la lista de red 

60h Ampliar nombre de archivo 

61h No usada 

62h Obtener dirección del PSP 

63h/64h No usadas 

65h Obtener información ampliada de pais específico 

66h Obtener/fijar página de códigos actual 

67h Determinar el número de handles disponibles 

68h Vaciar buffer de archivos 

69/6A/6B No usadas 

6Ch Función Open ampla 















No hay comentarios.:

Publicar un comentario