Академический Документы
Профессиональный Документы
Культура Документы
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
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
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
Microprocesadores y Ensambladores
BJETIVOS GENERAL
C
O
omprender importancia
la y
funcionamiento de las
BJETIVOS ESPECFICOS
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
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
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); }
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
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
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
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
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
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
Nmero Interrupcin 0 1
de Descripcin
causadas cuando un dispositivo de hardware requiere la atencin de la CPU para que se ejecute su manejador.
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
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
10 11
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
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
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:
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
20
Microprocesadores y Ensambladores
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
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
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
Microprocesadores y Ensambladores
LOSARIO
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
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
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
del el
hardware: hardware
2.
Cuando
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
IBLIOGRAFA
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
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
el 16 de febrero, 2008, de
http://www.monografias.com/ trabajos7/regi/regi.shtml Wikipedia. Interrupciones y
Wikipedia. Contador de
Microprocesadores y Ensambladores
febrero, 2008, de
http://www.faqs.org/faqs/asse mblylanguage/x86/general/part2/s ection-3.html
el 24 de febrero, 2008, de
http://en.wikipedia.org/wiki/Br eakpoint
de
http://en.wikipedia.org/wiki/D ouble_fault
Microprocesadores y Ensambladores
febrero, 2008, de
http://www.tracingbug.com/in dex.php/articles/view/7/9.htm l
Archives/l-linux0303/msg00406.html
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
Microprocesadores y Ensambladores
30