Beruflich Dokumente
Kultur Dokumente
Microprocesadores y Ensambladores
I
Tema
NDICE
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
Microprocesadores y Ensambladores
NTRODUCCIN
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 de las interrupciones en los microprocesadores, comenzando con los conceptos elementales de lo que son y para qu sirven las interrupciones, hasta llegar a detalles tcnicos y descripciones detalladas de cada una de las interrupciones que se dan en un CPU. Tambin se da a conocer la diferencia entre una interrupcin y una excepcin, permitiendo al lector reconocer las caractersticas y particularidades de estos fenmenos, su utilidad y funcionamiento.
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 interrupcin, interrupcin de es modo una que solicitud una al
NTERRUPCIONES
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:
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 de los el puede el microprocesador estar al tanto que en determinado 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
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
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. Ciertas instrucciones, de el subrutinas, contador de tales como las la Es bifurcaciones y las llamadas y retornos interrumpen programa. secuencia al colocar un nuevo valor en 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
que
gener
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.
Microprocesadores y Ensambladores
oscilador o por cualquier otro se divide mediante un divisor de frecuencia para generar una interrupcin cada cierto intervalo de tiempo. que se constantemente, Estas estn se interrupciones, produciendo
OTIVO DE LAS
INTERRUPCIONES as interrupciones se pueden generar por diversas causas, que se pueden clasificar de la
denominan interrupciones de reloj o ticks, dando lugar al reloj como generador peridicas. El de interrupciones de estas objetivo
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 las 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
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
de
reloj:
el
20 milisegundos.
3. Interrupciones de E/S: una de las
oscilador que gobierna las fases de ejecucin de las 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 producida por este funciones principales del kernel o ncleo de cualquier sistema operativo es mantener una comunicacin tal con el microprocesador, que permita los necesitan controlar de estos correctamente dispositivos
Microprocesadores y Ensambladores
interrumpir
para
indicar
las
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
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 bits es par, se pone el bit de paridad
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 de dispositivos memoria, de por almacenamiento
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 sistema operativo solamente se realiza
8
Microprocesadores y Ensambladores
mediante
el
mecanismo
de
las
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 registro
9
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.
Microprocesadores y Ensambladores
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 seales a de estar interrupcin. Las seales inhibidas no son atendidas pasen desinhibidas. La informacin de 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.
L
Se
operacin no definida, como 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.
XCEPCIONES
e dan cuando la CPU intenta ejecutar una instruccin incorrectamente construida, como
divisiones por cero, etc. Las excepciones, al igual que las interrupciones, deben estar identificadas.
IFERENCIA ENTRE
INTERRUPCIONES Y EXCEPCIONES
C
C
LASES DE EXCEPCIONES abortada.
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
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 cdigo del SO. En tales situaciones el hardware debe poder llamar al sistema, pudiendo deberse estas 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
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 del manejador de interrupciones en la tabla de interrupciones y pasar el control de la rutina. Despus de retornar de el manejador de rutina de interrupciones, retornar la ejecucin del programa en la instruccin posterior a la instruccin interrumpida.
realizada no est ordenada por el 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
12
Microprocesadores y Ensambladores
En ciertos intervalos de tiempo puede convenir no aceptar seales de interrupcin. Por ello las interrupciones pueden inhibirse por programa (aunque esto no deben poder hacerlo las mismas).
RATAMIENTO DE LAS
U
causado.
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
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 proteccin de la memoria, que las aplicaciones realicen operaciones que no les estn permitidas. En cualquier caso, el 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. tratamiento especfico de una excepcin lo realiza el sistema operativo.
E
de E/S. puede
CPU en servicio de una aplicacin, mientras otra permanece a la espera de que concluya una operacin en un dispositivo
El hardware se encarga de avisar al sistema operativo cuando el dispositivo de E/S ha terminado y el sistema operativo intervenir entonces, si es conveniente, para hacer que el programa que estaba esperando por el dispositivo, se contine ejecutando.
Es
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.
13
Microprocesadores y Ensambladores
ocurre algo no deseado, por ejemplo una divisin por cero. En cuanto a las interrupciones de asta este momento se ha venido hablando de los que son las interrupciones, su necesario clasificar las 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
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 PARA PROCESADORES i386 Nmero de Descripcin Divisin por cero Ejecucin paso a paso Interrupcin no
causadas cuando un dispositivo de hardware requiere la atencin de la CPU para que se ejecute su manejador.
Interrupcin 0 1 2 3 4 5
Microprocesadores y Ensambladores
de
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
7 8 9
no
2,
no
10 11 12 13 14 15 16 17 18 19-31 32-255
enmascarable: Una interrupcin no 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 direccin. Se diferencia de los otros tipos de de de interrupcin en que los 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 ordenadores Clnicos (ordenador que se monta a partir de diferentes marcas) las interrupciones no enmascarables se
15
presente Excepcin de pila Proteccin general Falta de pgina Reservada Error de punto flotante Chequeo alineacin Chequeo
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.
Microprocesadores y Ensambladores
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 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 restantes.
3. Interrupcin
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 ambiente durante la su ejecucin. el interrupcin,
programador inspecciona el examen de (registros, memoria, archivos, etc.) para detectar si el programa funciona como se esperaba. En la prctica, un punto de ruptura 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 una ser usadas, tales como lectura, escritura, o 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
16
modificando
el
rea
de
3,
punto
de
Microprocesadores y Ensambladores
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:
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 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
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), ocurre un desbordamiento.
5. Interrupcin 5, volcar pantalla
arquitectura x86, una excepcin doble falta ocurre si el procesador encuentra un problema mientras trata de servir una interrupcin Un o excepcin de una
17
por
impresora:
el
servicio
de
pendiente.
ejemplo
Microprocesadores y Ensambladores
situacin
donde
una
doble
falta
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. Ambos el primer y el ltimo bite del operando (considerando envolvimiento alrededor) estn en direcciones localizadas en el segmento y en pginas presentes y accesibles. Los operandos se refieren Hay a dos
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 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
direcciones
inaccesibles.
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 FFFC18
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 segmentos, 0FFFFFFFFH para grandes segmentos, cero para segmentos extendidos hacia
Microprocesadores y Ensambladores
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 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 invlida:
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
presente: indica que la bandera de segmento o descriptor de puerta est limpio. El sistema operativo usa la excepcin de segmento no presente memoria para virtual al implementar 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
19
Microprocesadores y Ensambladores
segmento
no
presente
en
la
15.Interrupcin
15,
reservada:
flotante: esta interrupcin ocurre cuando ocurren errores aritmticos o cuando se detectan errores en clculos computacionales matemticos. Se identifican cinco tipos de excepciones de punto flotante:
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 pila, cuando el lmite es menos o cargando el segmento memoria.
13.Interrupcin
que
hace
falta
en
cero y el dividendo es un nmero finito 13, proteccin diferente de cero por ejemplo, 9.9/0.0
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:
produce un resultado que excede el rango del exponente por ejemplo, MAXDOUBLE+0.0000000000001e30 8. Se puede dar tambin que se produzca demasiado por un resultado pequeo que para es ser *
esta falta ocurre principalmente durante el mecanismo de traduccin de pgina para traducir desde una lnea de direccin a una direccin fsica.
Inexactitud:
operacin
que
Microprocesadores y Ensambladores
pantalla
de
la
consola
(usualmente
solamente en la consola cuando el error no 17, chequeo de es recuperable y la mquina se traba como resultado): CPU 0: Machine Check Exception:
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
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.
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,
Microprocesadores y Ensambladores
22
Microprocesadores y Ensambladores
ONCLUSIN
E
eficiente tareas
utilidad en cualquier computadora. Se ha podido examinar y valorar cmo el mecanismo de las interrupciones es una manera de hacer que las computadoras que realicen requieren tareas en
eficientemente, dando prioridad a las atencin 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 utiliza las interrupciones para administrar eficientemente los recursos de la computadora y brindar mejores resultados a los usuarios. Como equipo de trabajo, se han logrado los objetivos propuestos al iniciar esta investigacin y se ha podido comprender el funcionamiento bsico e
23
Microprocesadores y Ensambladores
proceso
seleccionado
por
el
LOSARIO
planificador. Unidad de control: es el cerebro del microprocesador o la parte encargada de activar o desactivar los diversos componentes del microprocesador.
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.
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.
y ncleo
activador: del
el
(scheduler)
forma 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 el
24
Microprocesadores y Ensambladores
A R
una instruccin de interrupcin, 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 en cdigo ensamblador.
NEXOS
ESUMEN SOBRE
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:
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, interrupciones a de saber: las mascarables y las no mascarables. Las hardware mascarables son aquellas que pueden ser deshabilitadas. Las no mascarables son aquellas que no pueden ser deshabilitadas.
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
Microprocesadores y Ensambladores
durante
la
ejecucin
de
dicho
monopolice computadora.
el
uso
de
la
programa o por un error en el sistema. Las interrupciones se pueden dar por las siguientes razones:
1. Excepciones de programa: hay
3. Interrupciones
de
E/S:
Los
controladores de los dispositivos de E/S necesitan interrumpir para indicar al procesador las operaciones que realizan.
4. Excepciones
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.
del
hardware:
en
cdigo capaces de
se dice que un microprocesador es de 1.60GHz, lo que se est especificando es que el 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 que el sistema operativo entre a ejecutar operaciones de forma sistemtica cada cierto intervalo de tiempo y que ningn programa
IBLIOGRAFA
26
Carballeira, F.; De Miguel Anasagasti, P; Prez Costoya, F. (2001). Sistemas Operativos. Una visin aplicada. Espaa, Madrid: McGRAWHILL/INTERNAMERICANA DE ESPAA, S. A. U.
Universidad Tecnolgica Nacional. Facultad Regional Mendoza. Introduccin a los Sistemas Operativos. Extrado el 24 de febrero, 2008, de
http://web.frm.utn.edu.ar/sope rativos/Archivos/procesos.pdf
Wikipedia. Interrupciones y
el 16 de febrero, 2008, de
http://www.monografias.com/t rabajos7/regi/regi.shtml
Wikipedia. Contador de
Microprocesadores y Ensambladores
2008, de
http://www.laopinion.com/glos sary/o.html Wikipedia. Breakpoint. Extrado el
24 de febrero, 2008, de
http://en.wikipedia.org/wiki/Br eakpoint
el 24 de febrero, 2008, de
http://en.wikipedia.org/wiki/Do uble_fault
Grupo Universitario de
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
28
Arithmetic.
http://docs.sun.com/source/80 6-3593/6_floating.html
29
Microprocesadores y Ensambladores
30