Interrupciones:
Una
interrupción es un mecanismo que permite ejecutar un bloque de instrucciones
interrumpiendo la ejecución de un programa, y luego restablecer la ejecución
del mismo sin afectarlo directamente. De este modo un programa puede ser
interrumpido temporalmente para atender alguna necesidad urgente del computador
y luego continuar su ejecución como si nada hubiera pasado.
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.
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
Prioridad
|
Función
|
|
0
|
1
|
Timer
|
1
|
2
|
Teclado
Hardware
|
2
|
Reservada
|
|
3
|
11
|
COM 2
|
4
|
12
|
COM 1
|
5
|
13
|
Tarjeta de
Sonido
|
6
|
14
|
Controlador
Floppy
|
7
|
15
|
Puerta
Paralela
|
8
|
3
|
Reloj
(tics)
|
9
|
4
|
Libre para
tarjeta de red, sonido, puerta SCSI
|
10
|
5
|
idem
|
11
|
6
|
idem
|
12
|
7
|
PS-mouse
|
13
|
8
|
Co-procesador
matemático
|
14
|
9
|
Canal IDE
primario
|
15
|
10
|
Canal IDE
secundario
|
Las interrupciones de software pueden ser activadas
directamente por el ensamblador invocando al número de interrupción deseada con
la instrucción INT.
El uso de las interrupciones nos ayuda en la creación de
programas, utilizandolas nuestros programas son más cortos, es más fácil
entenderlos y usualmente tienen un mejor desempeño debido en gran parte a su
menor tamaño.
Este tipo de interrupciones podemos separarlas en dos
categorias: las interrupciones del sistema operativo DOS y las interrupciones
del BIOS.
La diferencia entre ambas es que las interrupciones del
sistema operativo son más fáciles de usar pero también son más lentas ya que
estas interrupciones hacen uso del BIOS para lograr su cometido, en cambio las
interrupciones del BIOS son mucho más rápidas pero tienen la desventaja que,
como son parte del hardware son muy específicas y pueden variar dependiendo
incluso de la marca del fabricante del circuito.
Llamadas de emergencia del sistema:
Las llamadas
son peticiones a ejecución de rutinas y proporcionan la interfaz entre el
sistema operativo y un programa en ejecución. Estas llamadas son instrucciones
de lenguaje ensamblador y se presentan en los manuales que emplean los
programadores de este lenguaje. Algunos sistemas permiten efectuar llamadas al
sistema directamente desde un programa realizado en el lenguaje de mayor nivel,
normalmente estas llamadas se asemejan a una función o sub-rutinas
predefinidas, que generan una llamada a una ruta en especial de tiempo de
ejecución, que realice efectivamente la llamada al sistema, o bien pueden
generarla directamente en la línea. Por ejemplo: En el procesador INTEL es INT
y en UNIX son rutinas en C.
Los
programadores de sistemas de aplicación invocan con frecuencia los servicios
del sistema operativo desde sus programas mediante llamadas del sistema. Las
ordenes del sistema emitidas por los usuarios que manejan el lenguaje de
ordenes (lenguaje de control JCL) normalmente se convierten a lenguaje de
máquina y se ejecutan como una serie de llamadas del sistema.
No hay comentarios:
Publicar un comentario