Vous êtes sur la page 1sur 3

INTERRUPCIONES

Una interrupcin es un mecanismo que permite ejecutar un bloque de


instrucciones interrumpiendo la ejecucin de un programa, y luego restablecer
la ejecucin 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 ejecucin como si nada hubiera pasado.
Generalmente se aplica para realizar tareas elementales asincrnicas en el
computador tales como responder al teclado, escribir en la pantalla, leer y
escribir archivos. Podemos considerar una tarea asincrnica como aquella que
es solicitada sin previo aviso y aleatoriamente desde el punto de vista del
computador. Tomemos el caso de la operacin Ctrl-Alt-Supr. En Windows tiene
el efecto de que aparece en pantalla una lista de los procesos y ventanas en
ejecucin en el computador. En cambio en el Sistema Operativo DOS cuando el
usuario presiona simultneamente dichas teclas el computador procede a
reinicializarse, aunque pueda estar ocupado ejecutando un programa en ese
instante.
Existen tres tipos de interrupciones:
Interrupciones internas de hardware
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
interrupcin varias veces durante un segundo para mantener la hora
actualizada.
Interrupciones externas de hardware
Las interrupciones externas las generan los dispositivos perifricos, como
pueden ser: teclado, impresoras, tarjetas de comunicaciones, etc. Tambin 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 funcin 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 comunicacin llamadas
puertos.
Interrupciones de software
Las interrupciones de software pueden ser activadas directamente por el
ensamblador invocando al nmero de interrupcin deseada con la instruccin
INT.
Este tipo de interrupciones podemos separarlas en dos categoras: las
interrupciones del sistema operativo DOS y las interrupciones del BIOS.

La diferencia entre ambas es que las interrupciones del sistema operativo son
ms fciles de usar pero tambin son ms lentas ya que estas interrupciones
hacen uso del BIOS para lograr su cometido, en cambio las interrupciones del
BIOS son mucho ms rpidas pero tienen la desventaja que, como son parte
del hardware son muy especficas y pueden variar dependiendo incluso de la
marca del fabricante del circuito.
PILA
Una pila (stack en ingls) es una lista ordenada o estructura de datos en la que
el modo de acceso a sus elementos es de tipo LIFO (del ingls Last In First Out,
ltimo en entrar, primero en salir) que permite almacenar y recuperar datos.
Esta estructura se aplica en multitud de ocasiones en el rea de informtica
debido a su simplicidad y ordenacin implcita de la propia estructura.
Para el manejo de los datos se cuenta con dos operaciones bsicas: apilar
(push), que coloca un objeto en la pila, y su operacin inversa, retirar (o
desapilar, pop), que retira el ltimo elemento apilado.
En cada momento slo se tiene acceso a la parte superior de la pila, es decir, al
ltimo objeto apilado. La operacin retirar permite la obtencin de este
elemento, que es retirado de la pila permitiendo el acceso al siguiente, que
pasa a ser el nuevo TOS.

Programa Ejemplo de una PILA para almacenar nmeros enteros.

#include <stdlib.h>
#include <stdio.h>
typedef struct _nodo {
int valor;
struct _nodo *siguiente;
} tipoNodo;
typedef tipoNodo *pNodo;
typedef tipoNodo *Pila;
/* Funciones con pilas: */
void Push(Pila *l, int v);
int Pop(Pila *l);
int main() {
Pila pila = NULL;
Push(&pila, 20);
Push(&pila, 10);
printf("%d, ", Pop(&pila));
Push(&pila, 40);
Push(&pila, 30);
printf("%d, ", Pop(&pila));
printf("%d, ", Pop(&pila));
Push(&pila, 90);
printf("%d, ", Pop(&pila));
printf("%d\n", Pop(&pila));
getchar();
return 0;
}

void Push(Pila *pila, int v) {


pNodo nuevo;
/* Crear un nodo nuevo */
nuevo = (pNodo)malloc(sizeof(tipoNodo));
nuevo->valor = v;
/* Aadimos la pila a continuacin del nuevo nodo */
nuevo->siguiente = *pila;
/* Ahora, el comienzo de nuestra pila es en nuevo nodo */
*pila = nuevo;
}
int Pop(Pila *pila) {
pNodo nodo; /* variable auxiliar para manipular nodo */
int v;
/* variable auxiliar para retorno */
/* Nodo apunta al primer elemento de la pila */
nodo = *pila;
if(!nodo) return 0; /*Si no hay nodos en la pila retornamos 0
*/ /* Asignamos a pila toda la pila menos el primer elemento
*/
*pila = nodo->siguiente;
/* Guardamos el valor de retorno */
v = nodo->valor;
/* Borrar el nodo */
free(nodo);
return v;
}

Conclusin Edgar Eduardo Mora Reyes

Los lenguajes de interfaz son utilizados en cualquier contexto informtico y


sistemtico, que se conozca hoy en da, tanto la parte de software como hardware
siempre estn enlazadas para lograr conjuntamente un objetivo definido por el
programador o especificado por el cliente o usuario, es decir el hardware por s
solo puede ser un poco anticuado de operar sin una interfaz (software o programa
informtico), al igual que una interfaz necesita de la parte hardware para poder
trabajar.
Los niveles de programacin tanto bsico, medio y alto, tienen sus ventajas y
desventajas, si me preguntaran que nivel es mejor, respondera que primero se
debe tener en cuenta el tipo de proyecto o aplicacin que se vaya a realizar, ya
que dependiendo de este es como se pude recomendar que nivel de
programacin es el ms adecuado para utilizar, en dicha aplicacin.
Para cualquier lenguaje de programacin es necesario contar con un intrprete y
un traductor, el intrprete es la parte ms importante que traduce todo nuestro
cdigo lnea por lnea a lenguaje maquina para que despus este sea ejecutado,
es decir el hardware por s solo no conoce el alfabeto, ni los nmeros decimales,
etc., es por eso que es necesario estos intrpretes que traduzcan estos smbolos a
su forma binaria que es la lengua por as decirlo del hardware.
El ser humano cada vez ms como avanza la tecnologa se est adaptando a
realizar distintas tareas al mismo tiempo. Por lo que las interrupciones como las
pilas son un tema fundamental para comprender y utilizar en aplicaciones que
puedan hacer distintas tareas a la vez.

Vous aimerez peut-être aussi