interrupciones

4
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. Generalmente se aplica para realizar tareas elementales asincrónicas en el computador tales como responder al teclado, escribir en la pantalla, leer y escribir archivos. Podemos considerar una tarea asincrónica como aquella que es solicitada sin previo aviso y aleatoriamente desde el punto de vista del computador. Tomemos el caso de la operación Ctrl-Alt-Supr. En Windows tiene el efecto de que aparece en pantalla una lista de los procesos y ventanas en ejecución en el computador. En cambio en el Sistema Operativo DOS cuando el usuario presiona simultáneamente 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 interrupción varias veces durante un segundo para mantener la hora actualizada. Interrupciones externas de hardware Las interrupciones externas las generan los dispositivos periféricos, 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,

Upload: edgar-eduardo-mora-reyes

Post on 27-Sep-2015

222 views

Category:

Documents


0 download

DESCRIPTION

Programacion

TRANSCRIPT

INTERRUPCIONESUna 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 hardwareEste 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 hardwareLas 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 softwareLas 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.PILAUna 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 #include 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.