Вы находитесь на странице: 1из 30

UNIVERSIDAD CATLICA DE OCCIDENTE

FACULTAD DE INGENIERA Y ARQUITECTURA INGENIERA EN SISTEMAS INFORMATICOS CATEDRTICO: Ing. Jos Francisco Andaluz Guzmn ASIGNATURA: Microprocesadores y Ensambladores TEMA: Interrupciones del Microprocesador ESTUDIANTES: Jennifer Esmeralda Chacn Carranza Jaime Oswaldo Montoya Guzmn Marvin Eliezer Pea Figueroa Mario Javier Quintana Rodrguez FECHA DE ENTREGA: Jueves, 28 de Febrero de 2008.

Microprocesadores y Ensambladores

I
Tema

Resumen sobre interrupciones----------23 INDICE Bibliografa--------------------------------25 pagina

Introduccin-------------------------------1 Objetivos generales-----------------------2 Objetivos especficos---------------------2 Interrupciones-----------------------------3 Motivos de las interrupciones------------5 Excepciones--------------------------------9 Clases en excepciones---------------------9 Diferencia entre interrupciones y

excepciones--------------------------------9 Tratamiento de las interrupciones------11 Importancia de las interrupciones------11 Importancia de las excepciones---------11 Tipos de interrupciones-------------------12 Tabla descriptora de interrupciones para procesadores i386-------------------------13 Conclusin----------------------------------21 Glosario------------------------------------22 Anexos-------------------------------------23
2

NTRODUCCIN

Microprocesadores y Ensambladores

as interrupciones y excepciones son temas de gran importancia al estudiar los

microprocesadores de las computadoras, pues se trata de fenmenos continuos y no aislados en toda computadora. El simple hecho de presionar una tecla o hacer clic, produce una interrupcin. De igual forma el reloj de la computadora se mantiene constantemente generando un tipo de interrupciones que permite el buen funcionamiento de un sistema operativo. En este documento se da a conocer el funcionamiento con los de las interrupciones en los microprocesadores, comenzando conceptos elementales de lo que son y para qu sirven las interrupciones, hasta llegar a detalles detalladas tcnicos de y descripciones una de las cada

interrupciones que se dan en un CPU. Tambin se da a conocer la diferencia entre una interrupcin y una excepcin, reconocer permitiendo las al lector y caractersticas

particularidades de estos fenmenos, su utilidad y funcionamiento.

Microprocesadores y Ensambladores

BJETIVOS GENERAL

C
O

omprender importancia

la y

funcionamiento de las

interrupciones en las computadoras

BJETIVOS ESPECFICOS

Conocer los diferentes tipos de

interrupciones. Diferenciar entre una interrupcin

y una excepcin. Entender el motivo por el cual se

dan las interrupciones. Comprender la utilidad de las

interrupciones.

Microprocesadores y Ensambladores

servicios. Este es el concepto de una NTERRUPCIONES interrupcin, interrupcin de es modo una que solicitud una al

E
Estos Ahora requiere

microprocesador del

est

en

microprocesador para que suspenda el programa en ejecucin, y se ejecute la rutina de servicio de interrupcin. A nivel fsico, una interrupcin se solicita activando una seal que llega a la unidad de control del microprocesador. El agente generador o solicitante de la interrupcin activa la mencionada seal cuando necesita que se le atienda, es decir, que se ejecute un programa que le atienda. Ante la solicitud de una interrupcin, siempre y cuando est habilitado ese tipo de interrupcin, la unidad de control realiza un ciclo de aceptacin de interrupcin. Este ciclo se lleva a cabo en cuanto termina la ejecucin de la instruccin mquina que se est ejecutando y consiste en las siguientes operaciones: 1. Terminar la ejecucin en curso: el programa o proceso actual debe ser interrumpido temporalmente. 2. Salvar algunos registros del procesador, como son el de estado y el contador de programa, de modo que la CPU, al terminar el proceso que dio lugar a la interrupcin, pueda seguir ejecutando el
5

constante interaccin con los perifricos computador. que en requieren

ltimos

determinados momentos se ejecute otro programa, comnmente conocido como rutina de servicio de interrupcin, para procesar los datos que ellos generan. bien, cmo momento los el puede el microprocesador estar al tanto que en determinado de perifrico del servicios

microprocesador? Una de las respuestas a dicha pregunta es implementando una rutina que supervise constantemente el estado del perifrico. Cuando esta rutina detecta que se cumplen ciertas condiciones, se ejecuta la subrutina de servicio. Este mtodo o procedimiento trae como desventaja emplear innecesariamente ciclos de mquina del procesador en determinar el estado del perifrico, ya que la necesidad de ejecutar la subrutina de servicio es aleatoria. Una manera ms refinada de solucionar este problema es implementar un sistema en el microprocesador que permita que el perifrico le notifique la necesidad de sus

Microprocesadores y Ensambladores

programa que fue interrumpido a partir de la ltima instruccin: Los registros del procesador se emplean para controlar instrucciones en ejecucin, manejar direccionamiento de memoria y proporcionar capacidad aritmtica. Los registros son espacios fsicos dentro del microprocesador con capacidad de 4 bits hasta 64 bits dependiendo del procesador que se emplee. Uno de los registros que se salvan es el de estado, pues este registro deja constancia de algunas condiciones que se dieron en la ltima operacin realizada y que habrn de ser tenidas en cuenta para operaciones posteriores. Por ejemplo, en el caso de hacer una resta, tiene que quedar constancia si el resultado fue cero, positivo o negativo. Otro de los importantes registros del procesador que se guardan es el registro contador del programa, que lo que hace es indicar la posicin en la que est el procesador en su secuencia de instrucciones, de modo que contiene la direccin de la instruccin que es ejecutada, o la direccin de la prxima instruccin a ser ejecutada. Por esta razn se le llama puntero de instrucciones. El contador de

programa

es

incrementado

automticamente en cada ciclo de instruccin de tal manera que las instrucciones son ledas en secuencia desde la memoria. tales y las Ciertas las y instrucciones, bifurcaciones como llamadas

retornos de subrutinas, interrumpen la secuencia al colocar un nuevo valor en el contador de programa. Es importante que antes de ejecutar una interrupcin, el procesador guarde ciertos registros que permitirn regresar luego de que la interrupcin se realice, se continen ejecutando los procesos que se tenan de manera eficiente y con toda normalidad. 3. La CPU salta a la direccin donde est almacenada la rutina de interrupcin y ejecuta esa rutina que tiene como objetivo atender al dispositivo interrupcin. 4. Una vez que la rutina de la interrupcin termina el procesador vuelve a tomar el control: el procesador retoma los procesos que quedaron pendientes y que se estaban ejecutando antes que se generara la interrupcin.
6

que

gener

la

Microprocesadores y Ensambladores

producida por este oscilador o por cualquier otro se divide mediante un divisor de frecuencia para generar una interrupcin cada cierto intervalo de tiempo. Estas interrupciones, que se estn produciendo constantemente, se denominan interrupciones de reloj o ticks, dando lugar al reloj como generador peridicas. El de interrupciones de estas objetivo

OTIVO DE LAS

L
las

INTERRUPCIONES as interrupciones se pueden generar por diversas causas, que se pueden clasificar de la

siguiente forma: 1. Excepciones de programa: hay determinadas causas que hacen que un programa presente un problema en su ejecucin, por lo que deber generarse una interrupcin, de forma que el sistema operativo trate dicha causa. Ejemplos son el desbordamiento en operaciones aritmticas, la divisin por cero, el intento de ejecutar una instruccin con cdigo de operacin incorrecto o de direccional una posicin de memoria prohibida. 2. Interrupciones ejecucin de las de reloj: el

interrupciones es hacer que el sistema operativo entre a ejecutar operaciones de forma sistemtica cada cierto intervalo de tiempo. De esta manera, el sistema operativo puede evitar que un programa monopolice el uso de la computadora y puede hacer que entren a ejecutarse programas en determinados instantes de tiempo. Estas interrupciones se producen cada varios milisegundos, por ejemplo cada 20 milisegundos. 3. Interrupciones de E/S: una de las funciones principales del kernel o ncleo de cualquier sistema operativo es mantener una comunicacin tal con el microprocesador, que permita los controlar de estos correctamente dispositivos

oscilador que gobierna las fases de instrucciones mquina se denomina reloj. Cuando se dice que un microprocesador es de 1.60GHz, lo que se est especificando es que el oscilador que gobierna el ritmo de su funcionamiento interno produce una onda cuadrada con una frecuencia de 1.60GHz. La seal

dispositivos de E/S. Los controladores necesitan

Microprocesadores y Ensambladores

interrumpir

para

indicar

las

bits es par, se pone el bit de paridad a 0; si el nmero de bits es impar, se pone el bit de paridad a 1. De esta forma, cada byte tiene un nmero par de grupos de bits. En el caso de recepcin, el dispositivo chequea cada byte para asegurarse que tiene un nmero par de grupos de bits. Si el receptor encuentra un nmero impar de grupos de bits, sabe que se ha producido transmisin. un El error durante y la el transmisor

operaciones que realizan. 4. Excepciones del hardware: La deteccin de un error de paridad en la memoria o un corte de corriente se avisan mediante la correspondiente interrupcin. Las memorias RAM se dividen en estticas y dinmicas. Una computadora usa tanto memoria de nueve bits (ocho bits y un bit de paridad, en 9 chips de memoria RAM dinmica) como memoria de ocho bits sin paridad. En el primer caso los ocho primeros son para datos y el noveno es para el chequeo de paridad, que se refiere al uso de bits de paridad para verificar si los datos han sido transmitidos correctamente. El bit de paridad es aadido a cada siete bits que se transmite. El bit de paridad para cada byte (siete bits de datos ms un bit de paridad) se pone para que todos los bytes tengan un nmero impar o par de grupos de bits. Por ejemplo, si dos dispositivos se estn comunicando con paridad par (la forma ms comn de chequeo de paridad), cuando el dispositivo transmisor enva datos, se cuenta el nmero de grupos de bits en cada grupo de siete bits. Si el nmero de

receptor deben estar de acuerdo en chequear la paridad y el tipo de paridad a usar, par o impar. Si ambos no tienen configurada la misma paridad, la comunicacin se hace imposible. Este chequeo de paridad sirve para los dispositivos de almacenamiento de memoria, por ejemplo, para cada vez que se arranca la mquina. As, una interrupcin se genera cuando se detecta un error de paridad. 5. Instrucciones de TRAP: Estas instrucciones Estas permiten se que un programa genere una interrupcin. instrucciones del emplean operativo. fundamentalmente para solicitar los servicios sistema Precisamente la activacin misma del
8

Microprocesadores y Ensambladores

sistema operativo solamente se realiza mediante el mecanismo de las interrupciones. Cuando es un proceso en ejecucin el que desea un servicio del sistema operativo ha de utilizar una instruccin TRAP, que genera la interrupcin pertinente. En los dems casos ser una interrupcin, interna o externa, la que reclame la atencin del sistema operativo. Cuando se programa en un lenguaje de alto nivel, como C, la solicitud de un servicio del sistema operativo se hace mediante una llamada a una funcin (por ejemplo: n = fork(), que es para la creacin de un nuevo proceso). No hay que confundir esta llamada con el servicio del sistema operativo. La funcin fork del lenguaje C no realiza el servicio fork, simplemente se limita a solicitar este servicio del sistema operativo. En general estas funciones que solicitan los servicios del sistema operativo se componen de: a) Una parte inicial que prepara los parmetros del servicio de acuerdo con la forma en que los espera el sistema operativo. b) La instruccin TRAP que realiza el paso al sistema operativo.

c) Una parte final que recupera los parmetros de contestacin del sistema operativo, para devolverlos al programa que le llam. Todo este conjunto de funciones se encuentran en una biblioteca del sistema y se incluyen en el cdigo en el momento de su carga en memoria. Para completar la imagen de que se est llamando a una funcin, el sistema operativo devuelve un valor, como una funcin real. Al programador le parece, por tanto, que invoca al sistema operativo como a una funcin. Sin embargo, esto no es as, puesto que lo que hace es invocar una funcin que realiza la solicitud al sistema operativo. El siguiente cdigo muestra una hipottica implementacin de la llamada al sistema fork. Int fork(){ int r; LOAD R8, FORK_SYSTEM_CALL TRAP LOAD r, R9 return(r); }

El cdigo anterior carga en uno de los registros de la computadora (el


9

Microprocesadores y Ensambladores

registro R8 por ejemplo) el numero que identifica la llamada al sistema (en este caso FORK_SYSTEM_CALL). En el caso de que la llamada incluyera parmetros, stos se pasaran en otros registros o en la pila. A continuacin, la funcin de la biblioteca ejecuta la instruccin TRAP, con lo que se transfiere el control al sistema operativo, que accede al contenido del registro R8 para identificar la llamada a ejecutar y realizar el trabajo. Cuando el control se transfiere de nuevo al proceso que invoc la llamada fork, se accede al registro R9 para obtener el valor devuelto por la llamada y ste se retorna, finalizando as la ejecucin de la funcin de biblioteca. Por ejemplo, si el programa quiere escribir datos en un archivo, el cdigo del programa de usuario hace un CALL a la rutina en cdigo mquina write, con cdigo similar al mostrado anteriormente para la llamada fork. Esta rutina prepara los parmetros de la operacin de escritura y ejecuta la instruccin TRAP. El sistema operativo trata la interrupcin, identifica que se trata de una solicitud de servicio y que el servicio solicitado es la escritura en un archivo. Seguidamente ejecuta la rutina que lanza la pertinente operacin de E/S. Finalmente, se ejecuta

el planificador y el activador para dar paso a la ejecucin de otro proceso. Cuando el perifrico termina la operacin, su controlador genera una solicitud de interrupcin que es tratada por el sistema operativo. Como resultado de la misma, el proceso anterior pasar a estar listo para su ejecucin. En su momento, se seleccionar este proceso para que se ejecute. En este momento la rutina en cdigo mquina write recibe los parmetros que ha devuelto el sistema operativo y ejecuta un RET para volver al programa de usuario que la llam. Como complemento al mecanismo de aceptacin de interrupcin, las computadoras incluyen una instruccin mquina para retorno de interrupcin, llamada RETI. El efecto de esta instruccin es restituir los registros de estado y PC, desde el lugar en que fueron salvados al aceptarse la interrupcin (por ejemplo: desde la pila). Las computadoras incluyen varias seales de solicitud de interrupcin, cada una de las cuales tienen una determinada prioridad. En caso de activarse al tiempo varias de estas seales, se tratar la de mayor prioridad, quedando las dems a la espera de ser atendidas. Adems, la
10

Microprocesadores y Ensambladores

computadora incluye un mecanismo de inhibicin selectiva que permite detener todas o determinadas hasta que La seales a de estar de interrupcin. Las seales inhibidas no son atendidas pasen desinhibidas. informacin

L
Se

as instrucciones de un programa pueden estar mal construidas por diversas razones:

El cdigo de operacin puede ser incorrecto. intenta realizar alguna

inhibicin de las interrupciones suele incluirse en la parte del registro de estado que solamente es modificable en nivel de ncleo, por lo que su modificacin queda restringida al sistema operativo.

operacin no definida, como dividir por cero. La instruccin puede no estar permitida en el modo de ejecucin actual.

XCEPCIONES

La direccin de algn operando puede ser incorrecta o se intenta violar alguno de sus permisos de uso.

S
C

e dan cuando la CPU intenta ejecutar una instruccin construida, que las incorrectamente al igual

como divisiones por cero, etc. Las excepciones, interrupciones, deben estar identificadas.

IFERENCIA ENTRE

INTERRUPCIONES Y EXCEPCIONES

C
LASES DE EXCEPCIONES

uando la CPU intenta ejecutar una instruccin incorrectamente construida, la

unidad de control lanza una excepcin para permitir al sistema operativo ejecutar el tratamiento adecuado. Al contrario que en una interrupcin, la instruccin en curso es abortada.

11

Microprocesadores y Ensambladores

El sistema operativo ocupa una posicin intermedia entre los programas de aplicacin y el hardware. No se limita a utilizar el hardware a peticin de las aplicaciones ya que hay situaciones en las que es el hardware el que necesita que se ejecute al cdigo del SO. En tales estas situaciones el hardware debe poder llamar sistema, pudiendo deberse llamadas a dos condiciones: 1. Algn dispositivo de E/S necesita atencin. 2. Se ha producido una situacin de error al intentar del ejecutar una instruccin programa

requiere tratamiento por parte del sistema operativo. Peter Norton, distinguido

informtico nacido en 1943, dijo lo siguiente respecto a las interrupciones: (con interrupciones) el procesador no desperdicia su tiempo buscando trabajo cuando hay algo qu hacer, el trabajo va en busca del procesador. Se puede afirmar entonces que tanto las interrupciones como las excepciones alteran el flujo del programa. La diferencia entre ambas es que las interrupciones son usadas para manejar eventos externos (puertos seriales, teclado) y las excepciones son usadas

(normalmente la aplicacin). En realizada ambos no est casos, la accin por el

para manejar errores en las instrucciones (divisin por cero, opcode indefinido). Las interrupciones son manejadas por el procesador despus de que finaliza la instruccin actual. Si se encuentra una seal en su pin de interrupcin, buscar la direccin interrupciones rutina. Despus del en de manejador la tabla de de de el

ordenada

programa de aplicacin, es decir, no figura en el programa. Segn los dos casos anteriores, se tienen las interrupciones y las excepciones: 1. Interrupcin: seal que enva un dispositivo de E/S a la CPU para indicar que la operacin de la que estaba ocupado, ya ha terminado. 2. Excepcin: una situacin de error detectada ejecutaba por una la CPU mientras que instruccin,

interrupciones y pasar el control de la retornar manejador de rutina de interrupciones, retornar la ejecucin del programa en la instruccin posterior a la instruccin interrumpida.
12

Microprocesadores y Ensambladores

En ciertos intervalos de tiempo RATAMIENTO DE LAS puede convenir no aceptar seales de interrupcin. Por ello las interrupciones pueden inhibirse por programa (aunque esto no deben poder hacerlo las mismas). caso, despus de

U
I

INTERRUPCIONES na interrupcin se trata en todo terminar la ejecucin de la

instruccin en curso. El tratamiento depende de cul sea el dispositivo de E/S que ha causado la interrupcin, ante la cual debe poder identificar el dispositivo que la ha causado.

MPORTANCIA DE LAS EXCEPCIONES l mecanismo de tratamiento de las excepciones es esencial para impedir, junto a los modos de

ejecucin de la CPU y los mecanismos de MPORTANCIA DE LAS INTERRUPCIONES l mecanismo de tratamiento de las interrupciones permite al sistema operativo utilizar la Como en el caso de las interrupciones, el hardware se limita a dejar el control al sistema operativo, y ste es el que trata la situacin como convenga. proteccin de la memoria, que las aplicaciones realicen operaciones que no les estn permitidas. En cualquier caso, el tratamiento especfico de una excepcin lo realiza el sistema operativo.

CPU en servicio de una aplicacin, mientras otra permanece a la espera de que concluya una operacin en un dispositivo de E/S. El hardware se encarga de avisar al sistema operativo cuando el dispositivo de E/S ha terminado y el sistema operativo puede intervenir entonces, si es conveniente, para hacer que el programa que estaba esperando por el dispositivo, se contine ejecutando.

Es bastante frecuente que el tratamiento de una excepcin no retorne al programa que se estaba ejecutando cuando se produjo la excepcin, sino que el sistema operativo aborte la ejecucin de ese programa. Este factor depende de

13

Microprocesadores y Ensambladores

la pericia del programador para controlar la excepcin adecuadamente.

Excepciones: son interrupciones causadas por la propia CPU, cuando ocurre algo no deseado, por ejemplo una divisin por cero. En cuanto a las interrupciones de hardware, son producidas por varias fuentes, por ejemplo por el teclado, pues cada vez que se presiona una tecla se genera una interrupcin. Una interrupcin de tipo hardware es una seal producida por un dispositivo fsico del ordenador. Esta seal informa a la CPU que el dispositivo requiere de su atencin. La CPU parar el proceso que est ejecutando para atender la interrupcin. Cuando la interrupcin termina, la CPU reanuda en donde fue interrumpida, pudiendo ejecutar el proceso parado originalmente o bien otro proceso.

IPOS DE INTERRUPCIONES

H
tambin

asta este momento se ha venido hablando de los que son las interrupciones, su necesario clasificar las

funcin y cmo trabajan. Sin embargo es interrupciones. Se ha dicho que una interrupcin se genera cuando se requiere que la CPU deje de ejecutar el proceso en curso y ejecute una funcin especfica de quien produce la interrupcin. Cuando se ejecuta esta funcin especfica se dice que la CPU est atendiendo la interrupcin. Se puede realizar una clasificacin de las interrupciones, atendiendo a la fuente que las produce: Interrupcin de software: se

ABLA DESCRIPTORA DE

produce cuando un usuario solicita una llamada del sistema (a travs de un programa). Interrupciones de hardware: son

INTERRUPCIONES PARA PROCESADORES i386

Nmero Interrupcin 0 1

de Descripcin

causadas cuando un dispositivo de hardware requiere la atencin de la CPU para que se ejecute su manejador.

Divisin por cero Ejecucin paso a paso


14

Microprocesadores y Ensambladores

Interrupcin enmascarable

no 18

alineacin Chequeo mquina 19-31 Reservado por el microprocesador 32-255 Disponible interrupciones software hardware para de y de

3 4 5

Punto de ruptura Desbordamiento Volcar pantalla por impresora

Cdigo operacin incorrecto

de

Dispositivo disponible

no

0. Interrupcin 0, divisin por cero: Se da cuando el divisor en una divisin es cero o cuando el cociente en una divisin es mayor que el valor mximo que permite el destino. 1. Interrupcin 1, ejecucin paso a paso: Ocurre despus de ejecutar una instruccin si la bandera TF (Trap Flag) vale 1. Esto permite la ejecucin de un programa paso a paso, lo que es muy til para la depuracin de programas. 2. Interrupcin 2, no

8 9

Falta doble Desbordamiento de Segmento de coprocesador

10 11

TTS invlida Segmento presente no

12 13 14 15 16

Excepcin de pila Proteccin general Falta de pgina Reservada Error flotante de punto

enmascarable: Una interrupcin no enmascarable causa que la CPU deje lo que est haciendo, cambie el puntero de instruccin para que de apunte a una direccin particular y
15

17

Chequeo

Microprocesadores y Ensambladores

contine ejecutando el cdigo de esa direccin. Se diferencia de los otros tipos de interrupcin en que los programadores no pueden hacer que la CPU las ignore, aunque algunos ordenadores efecto pueden al Al por resto no medios de las por externos bloquear esa seal, dando un similar son interrupciones. desactivar poderse

una interrupcin no enmascarable se suspenda la ejecucin del programa actual y el control se transfera a un depurador para que el programador pudiera inspeccionar el estado de la memoria, los registros, etc. Estas instrucciones no enmascarables eran lanzadas de diferentes maneras, como pulsando un botn, por medio de una combinacin de teclas o por medio de un programa. En juegos, se produca una instruccin no enmascarable y se interrumpa el juego, de esta manera se podan conseguir vidas extras por ejemplo modificando el rea de memoria donde se guardaban las vidas restantes. 3. Interrupcin 3, punto de

empleadas

dispositivos para los que el tiempo de respuesta es crtico, como por ejemplo el coprocesador matemtico Intel 8087 en el IBM PC, el indicador de batera baja, o un error de paridad que ocurra en la memoria. En algunos ordenadores Clnicos (ordenador que se monta a partir de diferentes marcas) las interrupciones no enmascarables se usaban para manejar las diferencias entre su hardware y el original de IBM. As, si se intentaba acceder a uno de estos dispositivos se lanzaba una interrupcin no enmascarable y la BIOS ejecutaba el cdigo para el hardware presente en la mquina. Tambin se podan lanzar interrupciones no enmascarables por el usuario, permitiendo interrumpir el programa actual para permitir la depuracin. En este caso al lanzarse

ruptura: es una detencin intencional o lugar de pausa en un programa, que tiene propsitos de depuracin paso a paso. De manera ms general, un punto de ruptura es un medio para adquirir conocimiento acerca de un programa Durante de durante la su ejecucin. el interrupcin, (registros,

programador inspecciona el examen ambiente memoria, archivos, etc.) para detectar si el programa funciona como se esperaba. En la prctica, un punto de ruptura
16

Microprocesadores y Ensambladores

consiste de una o ms condiciones que determinan cundo la ejecucin de un programa debera ser interrumpida. La forma ms comn de punto de ruptura es una donde la ejecucin del programa es interrumpida antes de que una instruccin especificada por el programador sea ejecutada. A esto a menudo se le llama punto de ruptura de la instruccin. Otro tipo de condiciones modificacin pueden de tambin ser usadas, tales como lectura, escritura, o una especfica localizacin en un rea de memoria. A esto a menudo se le llama.punto de ruptura de datos o punto de reloj. Otros tipos de condiciones incluyen la ejecucin de interrupciones en un tiempo particular, o al presionar una tecla, y as sucesivamente. Muchos procesadores incluyen soporte de hardware para puntos de rupture (tpicamente instrucciones y datos de puntos de ruptura). Dicho hardware podra incluir limitaciones, por ejemplo no permitir puntos de rupture en instrucciones localizadas en huecos de retardo (contienen instrucciones que son ejecutadas sin tener en cuenta los efectos de la instruccin presedente). Este tipo de limitacin es

impuesta por la microarquitectura del procesador, por tanto vara de un procesador a otro. Sin soporte de hardware, los depuradores tienen que implementar puntos de ruptura en el software, que, particularmente para los puntos de ruptura de datos, puede impactar la actuacin de la aplicacin que se depura. 4. Interrupcin 4, desbordamiento: ocurre cuando una cantidad excede la capacidad que se tiene. Por ejemplo cuando un nmero es excesivamente grande (ms de lo que una puede determinada computadora

procesar), ocurre un desbordamiento. 5. Interrupcin 5, volcar pantalla por impresora: el servicio de impresin de pantalla est relacionado con la impresora y es solicitado mediante la interrupcin 5. Este servicio se dise para ser manejado mediante interrupciones, y puede ser invocado desde cualquier programa que lo necesite. Esta interrupcin enva el contenido del buffer de pantalla al puerto de la impresora. 6. Interrupcin 6, cdigo de

operacin incorrecto: la parte de la instruccin de lenguaje mquina de la


17

Microprocesadores y Ensambladores

computadora que designa la operacin que se debe realizar, es incorrecta (opcode o cdigo de operacin incorrecto). 7. Interrupcin 7, dispositivo no disponible: si ejecutamos una instruccin cuando un dispositivo no est disponible para el trabajo que se est pidiendo, como cuando ejecutamos una instruccin de punto flotante cuando la unidad de punto flotante no est disponible. 8. Interrupcin 8, doble falta: En la arquitectura x86, una excepcin doble falta ocurre si el procesador encuentra un problema mientras trata de servir una interrupcin Un o excepcin de una pendiente. ejemplo

sistema operativo moderno en modo protegido (con microprocesador que posea proteccin de memoria y soporte de hardware para memoria virtual as como de commutacin de tareas), a menos que el programa de alguna manera ganara acceso al kernel, como lo hacen algunos virus. 9. Interrupcin 9, desbordamiento de segmento de coprocesador: esta excepcin ocurre en modo protegido bajo las siguientes condiciones: Un operando de una instruccin de coprocesador envuelve alrededor un lmite de direccionamiento (0FFFFH para pequeos para para cero segmentos, grandes segmentos 0FFFFFFFFH segmentos,

situacin donde una doble falta ocurrira es cuando una interrupcin es activada pero el segmento en el que el manejador de interrupciones reside es invlido. Si el procesador encuentra un problema cuando llama al manejador de doble falta, un triple falta es generado y el procesador se apaga. Como el doble falta puede solamente suceder debido a errores del kernel, rara vez son causados por aplicaciones externas al kernel en un

extendidos hacia abajo). Un operando podra envonver alrededor un lmite de direccionamiento cuando el lmite segmento est cerca de un lmite de direccionamiento y el operando est cerca del segmento de direccionamiento vlido ms grande. Debido a la envoltura alrededor, el inicio y el fin direccionado de tal operando estar cerca del final del segmento.

18

Microprocesadores y Ensambladores

del

Ambos el primer y el ltimo bite operando (considerando en el

procedimiento

actual

no

tiene

derechos de acceso. La direccin de las instrucciones numricas que fallan y los operandos de datos podran ser perdidos; un FSTENV no retorna direcciones confiables. Como con el 80286/80287, la excepcin de desbordamiento de segmento debera ser manejada ejecutando una instruccin FNINIT (por ejemplo, un FINIT sin un WAIT que le preceda). La direccin de retorno en la pila no necesariamente apunta a la direccin fallida ni tampoco a la siguiente instruccin. La instruccin numrica fallida no es reiniciable. El caso 2 puede ser evitado ya sea alineando todos los segmentos en los lmites de una pgina o no inicindolos dentro de 108 bytes del inicio o del final de la pgina. (El tamao mximo de un operando de coprocesador es de 108 bytes). En caso 1 puede ser evitado asegurndose que el espacio entre el ltimo desplazamiento bsico y el primer desplazamiento de un segmento es ya sea no menor que 108 bytes o cero (por ejemplo, el segmento est lleno en tamao). Si ninguna limitacin de diseo de sistema de software es aceptable, el manejador de excepciones debera
19

envolvimiento alrededor) estn en direcciones accesibles. Los operandos se refieren a localizadas segmento y en pginas presentes y

direcciones inaccesibles. Hay dos maneras en que tal operando podra expandirse a direcciones inaccesibles: 1. El lmite de segmento no es igual al lmite del direccionamiento (por ejemplo, si el lmite de direccionamiento es FFFFH y el lmite de segmento es FFFDH). Por tanto, el operando se expandir a direcciones que no estn dentro del segmento (por ejemplo, un operando de 8 bytes que comienza de un desplazamiento vlido FFFC

expandir direcciones FFFC-FFFF y 0000-0003; sin embargo, direcciones FFFE y FFFF no son vlidas, pues stas exceden el lmite); 2. El operando comienza y termina en pginas presentes y accesibles pero bytes intermedios del operando caen ya sea en una pgina no presente o en una pgina para la que el

Microprocesadores y Ensambladores

ejecutar FNINIT y debera probablemente terminar la tarea. 10. Interrupcin 10, TTS invlida:

pila, cuando el lmite es menos o cargando el segmento que hace falta en memoria. 13. una Interrupcin violacin de 13, proteccin como

indica que el interruptor de tareas fue activado y encontr informacin invlida en el objetivo de tarea. Condiciones invlidas son por ejemplo: segmento de cdigo no ejecutable, segmento de datos que no se puede leer, etc. 11. Interrupcin 11, segmento no

general: indica que el procesador detect proteccin escritura a un segmento de cdigo o segmento de datos de slo escritura y muchas otras razones que existen para esta excepcin. 14. Interrupcin 14, falta de pgina:

presente: indica que la bandera de segmento o descriptor de puerta est limpio. El sistema operativo usa la excepcin de segmento no presente para implementar memoria virtual al nivel de segmento. Si el manejador de excepciones carga el segmento y retorna exitosamente, el programa interrumpido reactiva la ejecucin. El sistema operativo podra usar el segmento no presente en la bandera de descriptor de puerta para su propio uso. 12. Interrupcin 12, excepcin de

esta falta ocurre principalmente durante el mecanismo de traduccin de pgina para traducir desde una lnea de direccin a una direccin fsica. 15. Interrupcin 15, reservada:

reservada por el microprocesador. 16. Interrupcin 16, error de punto

flotante: esta interrupcin ocurre cuando ocurren errores aritmticos o cuando se detectan errores en clculos Se computacionales punto flotante: Invlido: operacin con matemticos.

pila: esta excepcin ser generada cuando la instruccin ENTER es ejecutada y si no hay suficiente espacio de pila o mientras se trata de cargar segmentos de registro de pila y si se detecta que no hay segmento de pila presenta. Es posible recuperarse de este error extendiendo la

identifican cinco tipos de excepciones de

operandos matemticos invlidos por ejemplo, 0.0/0.0, sqrt(-1.0), y log(37.8)

20

Microprocesadores y Ensambladores

Divisin por cero: El divisor es

18. Interrupcin 18, chequeo de mquina: es un error de hardware de la computadora que ocurre cuando el CPU de una computadora detecta un problema de hardware irreparable. En versiones de Windows anteriores a Windows XP, este error sola ser desplegado usando la pantalla azul de la muerte conteniendo el mensaje de error (los parmetros dentro del parntesis podran variar): STOP: 0x0000009C (0x00000004,

cero y el dividendo es un nmero finito diferente de cero por ejemplo, 9.9/0.0 Desbordamiento: operacin que

produce un resultado que excede el rango del exponente por ejemplo, MAXDOUBLE+0.0000000000001e3 08. Se puede dar tambin que se produzca demasiado por un resultado pequeo que para es ser *

representado como un nmero normal ejemplo, MINDOUBLE MINDOUBLE. Inexactitud: operacin que

0x00000000, 0xb2000000, 0x00020151) "MACHINE_CHECK_EXCEPTION" En Linux, esta excepcin se escribe en el registro del kernel y/o la pantalla de la consola (usualmente solamente en la consola cuando el error no es recuperable y la mquina se traba como resultado):

produce un resultado que no puede ser representado con precisin infinita por ejemplo, 2.0/3.0, log(1.1) y 0.1 en la entrada. 17. Interrupcin 17, chequeo de alineacin: indica que el procesador detect un operando de memoria desalineado cuando el chequeo est habilitado. Este chequeo es llevado solamente en el segmento de pila de datos, no en el cdigo o segmento del sistema. Un ejemplo de violacin de chequeo de alineacin es guardar un tipo double en una direccin que no admite divisibilidad por 4.

CPU 0: Machine Check Exception: 0000000000000004 Bank 2: f200200000000863 Kernel panic: CPU context corrupt Este error se debe usualmente al fallo o sobrecarga de components de hardware donde el error no puede ser ms especficamente identificado con un
21

Microprocesadores y Ensambladores

mensaje de error diferente. Diagnosticar el mensaje de error puede ser difcil, aunque los procesadores Intel Pentium generan cdigos ms especficos que pueden ser decodificados contactando al fabricante. Esta excepcin requere que se reinicie el sistema para continuar la ejecucin normal y a menudo indica un problema a largo plazo o de naturaleza general.

22

Microprocesadores y Ensambladores

comprender el funcionamiento bsico e ONCLUSIN importancia de las interrupciones en las computadoras.

sta investigacin ha sido de gran beneficio para de la las comprensin

interrupciones y su utilidad en cualquier computadora. Se ha podido examinar y valorar cmo el mecanismo de las interrupciones es una eficiente manera de hacer que las computadoras realicen tareas eficientemente, dando prioridad a las tareas que requieren atencin en determinados momentos y permitiendo una interaccin correcta de todo el sistema computacional como conjunto. Se ha estudiado son que con los una cmo forma tiene las de el

interrupciones comunicacin microprocesador

diferentes

componentes de hardware y con el software mismo. Por esa razn, todo sistema operativo para los utiliza recursos de las la interrupciones eficientemente a los usuarios. Como equipo de trabajo, se han logrado los objetivos propuestos al iniciar esta investigacin y se ha podido
23

administrar

computadora y brindar mejores resultados

Microprocesadores y Ensambladores

el proceso seleccionado por el planificador. Unidad de control: es el

LOSARIO

E/S: Entrada/Salida. Memoria RAM esttica y

cerebro del microprocesador o la parte encargada de activar o desactivar componentes microprocesador. los diversos del

dinmica: Una memoria RAM esttica mantiene su contenido inalterado memoria mientras RAM dinmica est la alimentada. En cambio en una lectura es destructiva, es decir que la informacin se pierde al leerla. la Opcode instruccin (cdigo de de

operacin): referente a la parte de lenguaje mquina de la computadora que designa la operacin que se debe realizar. Planificador y activador:

el planificador (scheduler) forma parte del ncleo del sistema operativo. Entra en ejecucin cada vez que se activa el sistema operativo y su funcin es seleccionar el proceso que se ha de seleccionar a continuacin. El activador (dispatcher) tambin forma parte del sistema operativo y su funcin es poner en ejecucin
24

Microprocesadores y Ensambladores

A R

una instruccin de interrupcin, como NEXOS por ejemplo la instruccin INT 30, donde INT es la instruccin de interrupcin de la serie de microprocesadores Intel (8088,

ESUMEN SOBRE

80286, 80386, 80486) y 30 es el nmero del puntero de la subrutina de servicio de dicha interrupcin. Estas se generan con instrucciones en cdigo ensamblador. Interrupciones de hardware: son causadas cuando un dispositivo de hardware requiere y solicita la atencin de la CPU para que se ejecute su manejador. Existen dos tipos de estas interrupciones, a saber: las mascarables y las no mascarables. Las interrupciones de hardware mascarables son aquellas que pueden ser deshabilitadas. Las no mascarables son aquellas que no pueden ser deshabilitadas. Excepciones: son interrupciones causadas por la propia CPU, cuando ocurre algo no deseado, por ejemplo una divisin por cero. Este tipo de interrupciones ejecucin de interrumpen un programa la a

INTERRUPCIONES l microprocesador est en constante interaccin con los perifricos del computador. El

hardware requiere muchas veces la atencin del CPU. En vez de que el microprocesador est constantemente verificando el estado de cada elemento de hardware (lo cual empleara innecesariamente ciclos de mquina del procesador en determinar el estado de cada perifrico), resulta ms inteligente que sea el hardware quien le notifique al procesador que necesita de sus servicios. En esto consiste una interrupcin, precisamente en una solicitud que se le hace al microprocesador para que suspenda el programa en ejecucin y ejecute la interrupcin correspondiente. Se puede realizar una clasificacin de las interrupciones, atendiendo a la fuente que las produce: Interrupcin de software: son

consecuencia de alguna anormalidad

interrupciones solicitadas a travs de


25

Microprocesadores y Ensambladores

durante

la

ejecucin

de

dicho

que ningn programa monopolice el uso de la computadora. 3. Los Interrupciones de E/S: controladores de para E/S de indicar los al necesitan

programa o por un error en el sistema. Las interrupciones se pueden dar por las siguientes razones: 1. Excepciones hay de determinadas en su

dispositivos interrumpir realizan. 4.

programa: presente

causas que hacen que un programa un problema ejecucin, por lo que deber generarse una interrupcin, de forma que el sistema operativo trate dicha causa. Ejemplos son el desbordamiento operaciones divisin por cero, etc. en aritmticas, las la

procesador las operaciones que

Excepciones problemas generan en

del el

hardware: hardware

funcionamiento de dispositivos de tambin interrupciones. 5. Instrucciones de TRAP: son capaces y de se

Estas instrucciones en cdigo ensamblador generar interrupciones

2.

Interrupciones de reloj: se dice que un

Cuando

utilizan para solicitar o desactivar servicios o procesos del sistema operativo.

microprocesador es de 1.60GHz, lo que se est especificando es que el oscilador o reloj que gobierna el ritmo interno de su produce funcionamiento una onda

cuadrada con una frecuencia de 1.60GHz. El objetivo de estas interrupciones es hacer que el sistema operativo entre a ejecutar operaciones de forma sistemtica cada cierto intervalo de tiempo y
26

Microprocesadores y Ensambladores

Wikipedia. Memoria RAM.

IBLIOGRAFA

Extrado el 23 de febrero, 2008, de


http://es.wikipedia.org/wiki/M

Carretero Prez, J.; Garca Carballeira, F.; De Miguel Anasagasti, P; Prez Costoya, F. (2001). Sistemas Operativos. Una visin aplicada. Espaa, Madrid: McGRAWHILL/INTERNAMERICANA DE ESPAA, S. A. U.

emoria_RAM

Pgina de Electrnica de Carlos

Das. Memoria. Extrado el 24 de febrero, 2008, de


http://perso.wanadoo.es/chyr yes/glosario/memoria.htm

Wikipedia. Unidad de Control.

Universidad Tecnolgica Nacional. Facultad Regional Mendoza. Introduccin a los Sistemas Operativos. Extrado el 24 de febrero, 2008, de
http://web.frm.utn.edu.ar/sop erativos/Archivos/procesos.pd f

Extrado el 16 de febrero, 2008, de


http://es.wikipedia.org/wiki/U nidad_de_control

Monografas. Registros. Extrado

el 16 de febrero, 2008, de
http://www.monografias.com/ trabajos7/regi/regi.shtml Wikipedia. Interrupciones y

excepciones. Extrado el 24 de febrero, 2008, de


http://es.wikipedia.org/wiki/Si stema_operativo#Excepcione s

Wikipedia. Contador de

programa. Extrado el 17 de febrero, 2008, de


http://es.wikipedia.org/wiki/Co ntador_de_programa

Internet FAQ Archives. Interrupts

and Exceptions. Extrado el 24 de


27

Microprocesadores y Ensambladores

febrero, 2008, de
http://www.faqs.org/faqs/asse mblylanguage/x86/general/part2/s ection-3.html

Extrado el 25 de febrero, 2008, de


http://www.alpertron.com.ar/ 8088.HTM

Wikipedia. Interrupciones no La Opinin Digital. Glosario de

enmascarable. Extrado el 24 de febrero, 2008, de


http://es.wikipedia.org/wiki/Int errupci %C3%B3n_no_emascarable

Internet. Extrado el 24 de febrero, 2008, de


http://www.laopinion.com/glo ssary/o.html

La Web de Sistemas Operativos.

Wikipedia. Breakpoint. Extrado

Interrupciones Hardware. Extrado el 24 de febrero, 2008, de http://sopa.dis.ulpgc.es/iidso/leclinux/interrupciones/int _hard/LEC3_INT_HARD.pdf

el 24 de febrero, 2008, de
http://en.wikipedia.org/wiki/Br eakpoint

Wikipedia. Double Fault.

Extrado el 24 de febrero, 2008,


Grupo Universitario de

de
http://en.wikipedia.org/wiki/D ouble_fault

Informtica. Tabla de Interrupciones del Sistems. Extrado el 25 de febrero, 2008, de


http://www.gui.uva.es/udigital /ap02.html

Michal Ludvig. Coprocessing.

Estrado el 24 de febrero, 2008, de


http://www.logix.cz/michal/do c/i386/chp11-01.htm

Sitio de Matemticas y Assembler

de Dario Alpern. Los Microprocesadores 8086 y 8088.

TracingBug.com. Exception Basis

by Yash K.S. Extrado el 24 de


28

Microprocesadores y Ensambladores

febrero, 2008, de
http://www.tracingbug.com/in dex.php/articles/view/7/9.htm l

Archives/l-linux0303/msg00406.html

Association For Computing

Machinery. University Of Illinois Student Chapter. The i386 Interrupt Descriptor Table. Extrado el 24 de febrero, 2008, de
http://www.acm.uiuc.edu/sigo ps/roll_your_own/i386/idt.html

docs.sun.com. Floating-Point

Arithmetic.
http://docs.sun.com/source/8 06-3593/6_floating.html

Wikipedia. Machine Check

Exception. Extrado el 25 de febrero, 2008, de


http://en.wikipedia.org/wiki/M achine_Check_Exception

Csar Mendoza Home Page. [l-

linux] lenguaje ensamblador en Intel vs sparc. Extrado el 26 de febrero, 2008, de


http://www.kitiara.org/Lists29

Microprocesadores y Ensambladores

Jaime Montoya webmaster@jaimemontoya.com www.jaimemontoya.com Santa Ana, 28 de febrero de 2008 El Salvador

30

Вам также может понравиться