2191146 interrupciones del microprocesador

Upload: adonixrm

Post on 14-Jul-2015

367 views

Category:

Documents


0 download

TRANSCRIPT

UNIVERSIDAD CATLICA DE OCCIDENTEFACULTAD 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

ITema

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-------------------------------------232

I

NTRODUCCIN

Microprocesadores y Ensambladores

L

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.

3

Microprocesadores y Ensambladores

O

BJETIVOS GENERAL

CO

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.

4

Microprocesadores y Ensambladores

I

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

EEstos Ahora requiere

l

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:

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

el programa o proceso actual debe ser interrumpido temporalmente.2. Salvar

algunos registros del y el contador de

procesador, como son el de estado programa, de modo que la CPU, al terminar el proceso que dio lugar a la interrupcin, pueda5

Microprocesadores y Ensambladores

seguir ejecutando el programa que fue interrumpido a partir de la ltima instruccin: Los registros emplean instrucciones manejar memoria y del procesador en se para controlar ejecucin, de proporcionar

instruccin que es ejecutada, o la direccin de la prxima instruccin a ser ejecutada. Por esta razn se le llama puntero de instrucciones. programa El es contador de incrementado

direccionamiento

automticamente en cada ciclo de instruccin de tal manera que las instrucciones secuencia son la ledas en desde memoria.

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, contiene la de modo de que la direccin

Ciertas instrucciones, tales como las bifurcaciones y las llamadas y retornos interrumpen contador de de la subrutinas, secuencia programa. al Es

colocar un nuevo valor en el 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 que gener la interrupcin.

6

Microprocesadores y Ensambladores 4. Una vez que la rutina de la 2. Interrupciones

de

reloj:

el

interrupcin

termina

el

oscilador que gobierna las fases de ejecucin de las instrucciones mquina Cuando se se denomina dice que reloj. un

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.

microprocesador es de 1.60GHz, lo que se est especificando es que el oscilador que gobierna el ritmo de su funcionamiento interno

M

OTIVO DE LAS

produce una onda cuadrada con una frecuencia de 1.60GHz. La seal 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

L

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 trate son en aritmticas, instruccin una dicha el las la con interrupcin, de forma que el sistema causa. operativo Ejemplos

produciendo constantemente, se denominan interrupciones de reloj o ticks, dando lugar al reloj como generador de interrupciones peridicas. El objetivo de estas 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 en7

desbordamiento operaciones ejecutar una

divisin por cero, el intento de cdigo de operacin incorrecto o de direccional una posicin de memoria prohibida.

Microprocesadores y Ensambladores

determinados instantes de tiempo. Estas interrupciones se producen cada varios milisegundos, por ejemplo cada 20 milisegundos.3. Interrupciones de E/S: una de las

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 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 un error durante la transmisin. El transmisor y el receptor deben estar de acuerdo en chequear la8

funciones principales del kernel o ncleo operativo de es cualquier tal que E/S. sistema una el los Los con mantener

comunicacin microprocesador, controlar dispositivos

permita

correctamente de

controladores de estos dispositivos necesitan interrumpir para indicar las 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

Microprocesadores y Ensambladores

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

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 este el servicio En que servicio del general solicitan fork, sistema estas los simplemente se limita a solicitar operativo. funciones

instrucciones permiten que un programa genere una interrupcin. Estas instrucciones se emplean fundamentalmente para solicitar los servicios del sistema la operativo. Precisamente

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 llam. Todo este conjunto de funciones se encuentran en una biblioteca del sistema y9

activacin misma del 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

operativo,

para

devolverlos al programa que le

Microprocesadores y Ensambladores

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); }

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 resultado10

El cdigo anterior carga en uno de los registros de la computadora (el 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

Microprocesadores y Ensambladores

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 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

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.

E

XCEPCIONES

SC

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.

LASES DE EXCEPCIONES

L

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

El cdigo de operacin puede ser incorrecto.

11

Microprocesadores y Ensambladores

Se

intenta no

realizar definida,

alguna como

ejecute al

cdigo

del

SO.

En

tales estas

operacin

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 ejecutar una instruccin del programa (normalmente la aplicacin). En ambos no est casos, la accin por el

dividir por cero. La instruccin puede no estar permitida en el modo de ejecucin actual. La direccin de algn operando puede ser incorrecta o se intenta violar alguno de sus permisos de uso.

D

IFERENCIA ENTRE

realizada

ordenada

INTERRUPCIONES Y EXCEPCIONES

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 por la CPU mientras ejecutaba una instruccin, que requiere tratamiento por parte del sistema operativo. Peter Norton, distinguido

C

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. 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

informtico nacido en 1943, dijo lo siguiente respecto a las interrupciones:12

Microprocesadores y Ensambladores

(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 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

UI

na interrupcin se trata en todo caso, despus de 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 INTERRUPCIONES l mecanismo de tratamiento de las interrupciones permite al sistema operativo utilizar la

E

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.

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

T

RATAMIENTO DE LAS

En ciertos intervalos de tiempo puede convenir no aceptar seales de interrupcin. Por ello las interrupciones

INTERRUPCIONES

13

Microprocesadores y Ensambladores

pueden inhibirse por programa (aunque esto no deben poder hacerlo las mismas).

T

IPOS DE INTERRUPCIONES

I

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

E

Htambin

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:

ejecucin de la CPU y los mecanismos de 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. 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. 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 la pericia del programador para controlar la excepcin adecuadamente.

Interrupcin de software: se produce cuando un usuario solicita una llamada del sistema (a travs de un programa).

Interrupciones son causadas

de

hardware: un

cuando

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

Excepciones: son interrupciones causadas por la propia CPU,14

Microprocesadores y Ensambladores

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. 17 18 19-31 32-255 10 11 12 13 14 15 16 7 8 9 6

impresora Cdigo operacin incorrecto Dispositivo disponible Falta doble Desbordamiento

de

no

de Segmento de coprocesador TTS invlida Segmento

no

presente Excepcin de pila Proteccin general Falta de pgina Reservada Error de punto flotante Chequeo alineacin Chequeo de de

T

ABLA DESCRIPTORA DE

mquina Reservado por el microprocesador Disponible para interrupciones software hardware de y

INTERRUPCIONES PARA PROCESADORES i386 Nmero Interrupcin 0 1 2 3 4 5 de Descripcin Divisin por cero Ejecucin paso a paso Interrupcin 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.15

enmascarable Punto de ruptura Desbordamiento Volcar pantalla por

Microprocesadores y Ensambladores 1. Interrupcin 1, ejecucin paso a

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 se en la no el al no la un el mquina. lanzar permitiendo depuracin. lanzarse enmascarable control depurador se Tambin podan

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

enmascarable: Una interrupcin no enmascarable causa que la CPU deje lo que est haciendo, cambie el puntero de instruccin para que apunte a una direccin particular y contine ejecutando el cdigo de esa en direccin. que Se los diferencia de los otros tipos de interrupcin programadores no pueden hacer que la CPU las ignore, aunque algunos ordenadores pueden por medios externos bloquear esa seal, dando un efecto similar al resto de las interrupciones. Al no poderse desactivar son empleadas por 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

interrupciones interrumpir En se este caso

enmascarables por el usuario, programa actual para permitir la una interrupcin suspenda a

ejecucin del programa actual y el transfera para que

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 no16

Microprocesadores y Ensambladores

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

a menudo se le llama punto de ruptura de la instruccin. Otro tipo de condiciones pueden tambin ser usadas, tales como lectura, escritura, o modificacin de 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 limitaciones, instrucciones huecos de podra por incluir no en ejemplo

3, una

punto

de

ruptura:

es

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 Durante la acerca de un el el para programa durante su ejecucin. interrupcin, inspecciona etc.) programador memoria,

examen de ambiente (registros, archivos, detectar si el programa funciona como se esperaba. En la prctica, un punto de ruptura consiste de una un o ms condiciones debera La forma que ser ms determinan cundo la ejecucin de programa interrumpida.

permitir puntos de rupture en localizadas 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 de17

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

Microprocesadores y Ensambladores

ruptura

en el

software,

que,

de la computadora que designa la operacin que se debe realizar, es incorrecta (opcode o cdigo de operacin incorrecto).7. Interrupcin 7, dispositivo no

particularmente para los puntos de ruptura de datos, puede impactar la actuacin de la aplicacin que se depura.4. Interrupcin

4,

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

desbordamiento: ocurre cuando una cantidad excede la capacidad que se tiene. Por ejemplo cuando un nmero es excesivamente grande (ms de lo que una determinada computadora puede procesar), desbordamiento.5. Interrupcin 5, volcar pantalla

ocurre

un

arquitectura x86, una excepcin doble falta ocurre si el procesador encuentra un problema mientras trata de servir una interrupcin o excepcin pendiente. Un ejemplo de una situacin donde una doble falta ocurrira es cuando una interrupcin es activada pero el segmento en el que el manejador de interrupciones Si el reside es invlido. procesador

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 interrupciones, invocado y desde mediante puede ser cualquier

programa que lo necesite. Esta interrupcin enva el contenido del buffer de pantalla al puerto de la impresora.6. Interrupcin

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 del18

6,

cdigo

de

operacin incorrecto: la parte de la instruccin de lenguaje mquina

Microprocesadores y Ensambladores

kernel, rara vez son causados por aplicaciones externas al kernel en un sistema operativo moderno en modo protegido que (con posea microprocesador

est

cerca

del

segmento vlido

de ms

direccionamiento

grande. Debido a la envoltura alrededor, el inicio y el fin direccionado estar cerca segmento. Ambos el primer y el ltimo bite del operando (considerando en el envolvimiento alrededor) estn en direcciones accesibles. Los operandos se refieren a 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 un desplazamiento vlido de FFFC expandir direcciones FFFC-FFFF y 000019

de

tal

operando final del

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

del

localizadas

segmento y en pginas presentes y

de segmento de coprocesador: esta excepcin ocurre en modo protegido bajo las siguientes condiciones: Un operando de una instruccin de coprocesador un envuelve lmite de alrededor pequeos 0FFFFFFFFH extendidos operando alrededor para

direccionamiento (0FFFFH para segmentos, grandes Un de

segmentos, cero para segmentos hacia podra un abajo). lmite envonver

direccionamiento cuando el lmite segmento est cerca de un lmite de direccionamiento y el operando

Microprocesadores y Ensambladores

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 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 ejecutar FNINIT y debera probablemente terminar la tarea.10. Interrupcin

10, TTS encontr invlidas

invlida:

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

11,

segmento

no

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 el20

Microprocesadores y Ensambladores

segmento no presente en la bandera de descriptor de puerta para su propio uso.12. Interrupcin 12, excepcin de pila:

16. Interrupcin 16, error de punto

flotante: esta interrupcin ocurre cuando ocurren errores aritmticos o cuando se detectan errores en clculos computacionales de punto flotante:

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 pila, cuando el lmite es menos o cargando el segmento que hace falta en memoria.13. Interrupcin

matemticos.

Se

identifican cinco tipos de excepciones

Invlido:

operacin

con

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

Divisin por cero: El divisor es cero y el dividendo es un nmero finito diferente de cero por ejemplo, 9.9/0.0

13,

proteccin

general: indica que el procesador detect una violacin de proteccin como 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:

Desbordamiento: operacin que produce un resultado que excede el rango del exponente por ejemplo, MAXDOUBLE+0.000000000000 1e308. Se puede dar tambin que se produzca un resultado que es demasiado normal pequeo por para ser representado como un nmero ejemplo, MINDOUBLE * MINDOUBLE.

esta

falta

ocurre

principalmente

durante el mecanismo de traduccin de pgina para traducir desde una lnea de direccin a una direccin fsica.15. Interrupcin

Inexactitud: puede ser

operacin representado

que con21

15,

reservada:

produce un resultado que no

reservada por el microprocesador.

Microprocesadores y Ensambladores

precisin infinita por entrada.

ejemplo,

STOP:

0x0000009C

(0x00000004,

2.0/3.0, log(1.1) y 0.1 en la

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): 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 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

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.18. Interrupcin 18, chequeo de

mquina: es un error de hardware de la computadora que ocurre cuando de el CPU de una En computadora detecta un problema hardware irreparable. 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 variar): del parntesis podran

Microprocesadores y Ensambladores

23

Microprocesadores y Ensambladores

C

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

E

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 podido24

administrar

computadora y brindar mejores resultados

Microprocesadores y Ensambladores

G

parte del sistema operativo y su funcin es el por poner en el ejecucin proceso

LOSARIO

E/S: Entrada/Salida. Memoria RAM esttica y dinmica: Una memoria RAM esttica mantiene su contenido inalterado mientras est alimentada. En cambio en una memoria RAM dinmica la lectura es destructiva, es decir que la informacin se pierde al leerla.

seleccionado planificador.

Unidad de control: es el cerebro del microprocesador o la parte encargada de activar o desactivar los diversos del componentes microprocesador.

Opcode

(cdigo

de

operacin): referente a la parte de la instruccin 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 El tambin a continuacin. (dispatcher) activador forma25

Microprocesadores y Ensambladores

A R

de una instruccin de interrupcin, NEXOS como por ejemplo la instruccin INT 30, donde INT es la instruccin de interrupcin de la serie de microprocesadores Intel (8088, 80286, 80386, 80486) y 30 es el nmero del puntero de la subrutina de servicio de dicha interrupcin. Estas se generan con instrucciones ensamblador.

ESUMEN SOBRE

E

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

en

cdigo

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:

Interrupciones son causadas

de

hardware: un

cuando

dispositivo de hardware requiere y solicita la atencin de la CPU para que se ejecute su manejador. Existen dos tipos a de saber: estas las interrupciones,

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 interrumpen la ejecucin de un26

Interrupcin de software: son interrupciones solicitadas a travs

Microprocesadores y Ensambladores

programa

a

consecuencia

de

que el sistema operativo entre a ejecutar operaciones de forma sistemtica cada cierto intervalo de tiempo y que ningn programa monopolice el uso de la computadora.3. Interrupciones de E/S: Los

alguna anormalidad durante la ejecucin de dicho programa o por un error en el sistema. Las interrupciones se pueden dar por las siguientes razones: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 las operaciones aritmticas, la divisin por cero, etc.

controladores

de

los

dispositivos de E/S necesitan interrumpir para indicar al procesador que realizan.4. Excepciones del hardware:

las

operaciones

problemas funcionamiento dispositivos generan interrupciones. de

en

el de hardware tambin

2. Interrupciones

de es es

reloj: que un de el

5. Instrucciones

de

TRAP:

Cuando

se

dice

Estas instrucciones en cdigo ensamblador son capaces de generar interrupciones y se utilizan para solicitar o desactivar servicios o procesos del sistema operativo.

microprocesador especificando

1.60GHz, lo que se est que oscilador o reloj que gobierna el ritmo de su funcionamiento interno produce una onda cuadrada con una frecuencia de 1.60GHz. El objetivo de estas interrupciones es hacer

27

Microprocesadores y Ensambladores

febrero, 2008, dehttp://es.wikipedia.org/wiki/Co ntador_de_programa

B

Wikipedia. Memoria RAM.

IBLIOGRAFA

Extrado el 23 de febrero, 2008, dehttp://es.wikipedia.org/wiki/M emoria_RAM

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. Wikipedia. Unidad de Control. Pgina de Electrnica de Carlos

Das. Memoria. Extrado el 24 de febrero, 2008, dehttp://perso.wanadoo.es/chyr yes/glosario/memoria.htm

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

Extrado el 16 de febrero, 2008, dehttp://es.wikipedia.org/wiki/Un idad_de_control

Monografas. Registros. Extrado

el 16 de febrero, 2008, dehttp://www.monografias.com/t rabajos7/regi/regi.shtml Wikipedia. Interrupciones y

excepciones. Extrado el 24 de febrero, 2008, dehttp://es.wikipedia.org/wiki/Si stema_operativo#Excepcione s 28

Wikipedia. Contador de

programa. Extrado el 17 de

Microprocesadores y Ensambladores Sitio de Matemticas y Assembler Internet FAQ Archives. Interrupts

de Dario Alpern. Los Microprocesadores 8086 y 8088. Extrado el 25 de febrero, 2008, dehttp://www.alpertron.com.ar/8 088.HTM

and Exceptions. Extrado el 24 de febrero, 2008, dehttp://www.faqs.org/faqs/asse mblylanguage/x86/general/part2/s ection-3.html

Wikipedia. Interrupciones no La Opinin Digital. Glosario de

enmascarable. Extrado el 24 de febrero, 2008, dehttp://es.wikipedia.org/wiki/Int errupci%C3%B3n_no_emasca rable

Internet. Extrado el 24 de febrero, 2008, dehttp://www.laopinion.com/glos sary/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, dehttp://en.wikipedia.org/wiki/Br eakpoint

Wikipedia. Double Fault. Extrado

el 24 de febrero, 2008, de Grupo Universitario de http://en.wikipedia.org/wiki/D ouble_fault

Informtica. Tabla de Interrupciones del Sistems. Extrado el 25 de febrero, 2008, dehttp://www.gui.uva.es/udigital /ap02.html

Michal Ludvig. Coprocessing.

Estrado el 24 de febrero, 2008, dehttp://www.logix.cz/michal/do c/i386/chp11-01.htm

29

Microprocesadores y Ensambladores TracingBug.com. Exception Basis

febrero, 2008, dehttp://www.kitiara.org/ListsArchives/l-linux0303/msg00406.html

by Yash K.S. Extrado el 24 de febrero, 2008, dehttp://www.tracingbug.com/in dex.php/articles/view/7/9.htm l

Association For Computing

Machinery. University Of Illinois Student Chapter. The i386 Interrupt Descriptor Table. Extrado el 24 de febrero, 2008, dehttp://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, dehttp://en.wikipedia.org/wiki/M achine_Check_Exception

Csar Mendoza Home Page. [l-

linux] lenguaje ensamblador en Intel vs sparc. Extrado el 26 de30

Microprocesadores y Ensambladores

Jaime Montoya [email protected] www.jaimemontoya.com Santa Ana, 28 de febrero de 2008 El Salvador

31