INTRODUCCIÓN Las interrupciones y excepciones son temas de gran importancia al estudiar los microprocesadores de las computadoras, pues se trata de fenómenos continuos y no aislados en toda computadora !l simple "ec"o de presionar una tecla o "acer clic, produce una interrupción De igual forma el relo# de la computadora se mantiene constantemente generando generando un tipo de interrupciones $ue permite el %uen funcionamiento de un sistema operati&o operati&o INT!RRU'CION!( !l microprocesador microprocesador est) en constante interacción con los perif*ricos del computador !stos +ltimos re$uieren $ue en determinados momentos se e#ecute otro programa, com+nmente com+nmente conocido como rutina de ser&icio de interrupción, para procesar procesar los datos $ue ellos generan "ora %ien, -cómo puede el microprocesador estar al tanto $ue en determinado momento el perif*rico re$uiere de los ser&icios del microprocesador. Una de las respuestas a dic"a pregunta es implementando una rutina $ue super&ise constantemente constantemente el estado del perif*rico Cuando esta rutina detecta $ue se cumplen ciertas condiciones, se e#ecuta la su%rutina de ser&icio !ste m*todo o procedimiento procedimiento trae como des&enta#a emplear innecesariamente ciclos de m)$uina del procesador en determinar el estado del perif*rico, ya $ue la necesidad de e#ecutar la su%rutina de ser&icio es aleatoria Una manera m)s re/nada de solucionar este pro%lema es implementar un sistema en el microprocesador $ue permita $ue el perif*rico le noti/$ue la necesidad de sus ser&icios !ste es el concepto de una interrupción, de modo $ue una interrupción es una solicitud al microprocesador microprocesador para $ue suspenda el programa en e#ecución, y se e#ecute la rutina de ser&icio de interrupción ni&el f0sico, una interrupción se solicita acti&ando una se1al $ue llega a la unidad de control del microprocesador !l agente generador o solicitante de la interrupción acti&a la mencionada se1al cuando necesita $ue se le atienda, es decir, $ue se e#ecute un programa $ue le atienda nte la solicitud de una interrupción, siempre y cuando est* "a%ilitado ese tipo de interrupción, la unidad de control reali2a un ciclo de aceptación de interrupción !ste ciclo se lle&a a ca%o en cuanto termina la e#ecución de la instrucción m)$uina $ue se est* e#ecutando y consiste en las siguientes operaciones3 4 Termin erminar ar la e#ecuc e#ecución ión en curso3 curso3 el progr program ama a o pr proceso oceso actua actuall de%e de%e ser interrumpido temporalmente temporalmente 5 (al& (al&ar ar algu alguno noss reg regis istr tros os del del proc proces esad ador or,, como como son son el el de esta estado do y el contador de programa, de modo $ue la C'U, al terminar el proceso $ue dio lugar a la interrupción, interrupción, pueda seguir e#ecutando el programa $ue fue interrumpido a partir de la +ltima instrucción3 Los registros del procesador se emplean para controlar instrucciones en e#ecución, mane#ar direccionamiento direccionamiento de memoria y proporcionar capacidad aritm*tica Los registros registros son espacios f0sicos dentro del microprocesador microprocesador con capacidad de 6 %its "asta 76 %its dependiendo del procesador $ue se emplee Uno de los registros $ue se sal&an es el de estado, pues este registro de#a constancia
de algunas condiciones $ue se dieron en la +ltima operación reali2ada y $ue "a%r)n de ser tenidas en cuenta para operaciones posteriores 'or e#emplo, en el caso de "acer una resta, tiene $ue $uedar constancia si el resultado fue cero, positi&o o negati&o Otro de los importantes registros del procesador $ue se guardan es el registro contador del programa, $ue lo $ue "ace es indicar la posición en la $ue est) el procesador en su secuencia de instrucciones, de modo $ue contiene la dirección de la instrucción $ue es e#ecutada, o la dirección de la próxima instrucción a ser e#ecutada 'or esta ra2ón se le llama puntero de instrucciones !l contador de programa es incrementado autom)ticamente en cada ciclo de instrucción de tal manera $ue las instrucciones son le0das en secuencia desde la memoria Ciertas instrucciones, tales como las %ifurcaciones y las llamadas y retornos de su%rutinas, interrumpen la secuencia al colocar un nue&o &alor en el contador de programa !s importante $ue antes de e#ecutar una interrupción, el procesador guarde ciertos registros $ue permitir)n regresar luego de $ue la interrupción se realice, se contin+en e#ecutando los procesos $ue se ten0an de manera e/ciente y con toda normalidad 8 La C'U salta a la dirección donde est) almacenada la rutina de interrupción y e#ecuta esa rutina $ue tiene como o%#eti&o atender al dispositi&o $ue generó la interrupción 6 Una &e2 $ue la rutina de la interrupción termina el procesador &uel&e a tomar el control3 el procesador retoma los procesos $ue $uedaron pendientes y $ue se esta%an e#ecutando antes $ue se generara la interrupción 9OTI:O D! L( INT!RRU'CION!( Las interrupciones se pueden generar por di&ersas causas, $ue se pueden clasi/car de la siguiente forma3 4 !xcepciones de programa3 "ay determinadas causas $ue "acen $ue un programa presente un pro%lema en su e#ecución, por lo $ue de%er) generarse una interrupción, de forma $ue el sistema operati&o trate dic"a causa !#emplos son el des%ordamiento en las operaciones aritm*ticas, la di&isión por cero, el intento de e#ecutar una instrucción con código de operación incorrecto o de direccional una posición de memoria pro"i%ida 5 Interrupciones de relo#3 el oscilador $ue go%ierna las fases de e#ecución de las instrucciones m)$uina se denomina relo# Cuando se dice $ue un microprocesador es de 47;<=2, lo $ue se est) especi/cando es $ue el oscilador $ue go%ierna el ritmo de su funcionamiento interno produce una onda cuadrada con una frecuencia de 47;<=2 La se1al producida por este oscilador o por cual$uier otro se di&ide mediante un di&isor de frecuencia para generar una interrupción cada cierto inter&alo de tiempo !stas interrupciones, $ue se est)n produciendo constantemente, se denominan interrupciones de relo# o tic>s, dando lugar al relo# como generador de interrupciones periódicas !l o%#eti&o de estas interrupciones es "acer $ue el sistema operati&o entre a e#ecutar operaciones de forma sistem)tica cada cierto inter&alo de tiempo De esta manera, el sistema operati&o puede e&itar $ue un programa monopolice el uso de la computadora y puede "acer $ue entren a e#ecutarse programas en determinados instantes de tiempo
!stas interrupciones se producen cada &arios milisegundos, por e#emplo cada 5; milisegundos 8 Interrupciones de !?(3 una de las funciones principales del >ernel o n+cleo de cual$uier sistema operati&o es mantener una comunicación tal con el microprocesador, $ue permita controlar correctamente los dispositi&os de !?( Los controladores de estos dispositi&os necesitan interrumpir para indicar las operaciones $ue reali2an 6 !xcepciones del "ard@are3 La detección de un error de paridad en la memoria o un corte de corriente se a&isan mediante la correspondiente interrupción Las memorias R9 se di&iden en est)ticas y din)micas Una computadora usa tanto memoria de nue&e %its Aoc"o %its y un %it de paridad, en B c"ips de memoria R9 din)mica como memoria de oc"o %its sin paridad !n el primer caso los oc"o primeros son para datos y el no&eno es para el c"e$ueo de paridad, $ue se re/ere al uso de %its de paridad para &eri/car si los datos "an sido transmitidos correctamente !l %it de paridad es a1adido a cada siete %its $ue se transmite !l %it de paridad para cada %yte Asiete %its de datos m)s un %it de paridad se pone para $ue todos los %ytes tengan un n+mero impar o par de grupos de %its 'or e#emplo, si dos dispositi&os se est)n comunicando con paridad par Ala forma m)s com+n de c"e$ueo de paridad, cuando el dispositi&o transmisor en&0a datos, se cuenta el n+mero de grupos de %its en cada grupo de siete %its (i el n+mero de %its es par, se pone el %it de paridad a ; si el n+mero de %its es impar, se pone el %it de paridad a 4 De esta forma, cada %yte tiene un n+mero par de grupos de %its !n el caso de recepción, el dispositi&o c"e$uea cada %yte para asegurarse $ue tiene un n+mero par de grupos de %its (i el receptor encuentra un n+mero impar de grupos de %its, sa%e $ue se "a producido un error durante la transmisión !l transmisor y el receptor de%en estar de acuerdo en c"e$uear la paridad y el tipo de paridad a usar, par o impar (i am%os no tienen con/gurada la misma paridad, la comunicación se "ace imposi%le !ste c"e$ueo de paridad sir&e para los dispositi&os de almacenamiento de memoria, por e#emplo, para cada &e2 $ue se arranca la m)$uina s0, una interrupción se genera cuando se detecta un error de paridad E Instrucciones de TR'3 !stas instrucciones permiten $ue un programa genere una interrupción !stas instrucciones se emplean fundamentalmente para solicitar los ser&icios del sistema operati&o 'recisamente la acti&ación misma del sistema operati&o solamente se reali2a mediante el mecanismo de las interrupciones Cuando es un proceso en e#ecución el $ue desea un ser&icio del sistema operati&o "a de utili2ar una instrucción TR', $ue genera la interrupción pertinente !n los dem)s casos ser) una interrupción, interna o externa, la $ue reclame la atención del sistema operati&o Cuando se programa en un lengua#e de alto ni&el, como C, la solicitud de un ser&icio del sistema operati&o se "ace mediante una llamada a una función Apor e#emplo3 n F for>A, $ue es para la creación de un nue&o proceso No "ay $ue confundir esta llamada con el ser&icio del sistema operati&o La función for> del lengua#e C no reali2a el ser&icio for>, simplemente se limita a solicitar este ser&icio del sistema operati&o !n general estas funciones $ue solicitan los ser&icios del sistema operati&o se componen de3
a Una parte inicial $ue prepara los par)metros del ser&icio de acuerdo con la forma en $ue los espera el sistema operati&o %
La instrucción TR' $ue reali2a el paso al sistema operati&o
c Una parte /nal $ue recupera los par)metros de contestación del sistema operati&o, para de&ol&erlos al programa $ue le llamó Todo este con#unto de funciones se encuentran en una %i%lioteca del sistema y se incluyen en el código en el momento de su carga en memoria 'ara completar la imagen de $ue se est) llamando a una función, el sistema operati&o de&uel&e un &alor, como una función real l programador le parece, por tanto, $ue in&oca al sistema operati&o como a una función (in em%argo, esto no es as0, puesto $ue lo $ue "ace es in&ocar una función $ue reali2a la solicitud al sistema operati&o !l código anterior carga en uno de los registros de la computadora Ael registro RG por e#emplo el n+mero $ue identi/ca la llamada al sistema Aen este caso HORJ(K(T!9JCLL !n el caso de $ue la llamada incluyera par)metros, *stos se pasar0an en otros registros o en la pila continuación, la función de la %i%lioteca e#ecuta la instrucción TR', con lo $ue se trans/ere el control al sistema operati&o, $ue accede al contenido del registro RG para identi/car la llamada a e#ecutar y reali2ar el tra%a#o Cuando el control se trans/ere de nue&o al proceso $ue in&ocó la llamada for>, se accede al registro RB para o%tener el &alor de&uelto por la llamada y *ste se retorna, /nali2ando as0 la e#ecución de la función de %i%lioteca 'or e#emplo, si el programa $uiere escri%ir datos en un arc"i&o, el código del programa de usuario "ace un CLL a la rutina en código m)$uina @rite, con código similar al mostrado anteriormente para la llamada for> !sta rutina prepara los par)metros de la operación de escritura y e#ecuta la instrucción TR' !l sistema operati&o trata la interrupción, identi/ca $ue se trata de una solicitud de ser&icio y $ue el ser&icio solicitado es la escritura en un arc"i&o (eguidamente e#ecuta la rutina $ue lan2a la pertinente operación de !?( Hinalmente, se e#ecuta el plani/cador y el acti&ador para dar paso a la e#ecución de otro proceso Cuando el perif*rico termina la operación, su controlador genera una solicitud de interrupción $ue es tratada por el sistema operati&o Como resultado de la misma, el proceso anterior pasar) a estar listo para su e#ecución !n su momento, se seleccionar) este proceso para $ue se e#ecute !n este momento la rutina en código m)$uina @rite reci%e los par)metros $ue "a de&uelto el sistema operati&o y e#ecuta un R!T para &ol&er al programa de usuario $ue la llamó Como complemento al mecanismo de aceptación de interrupción, las computadoras incluyen una instrucción m)$uina para retorno de interrupción, llamada R!TI !l efecto de esta instrucción es restituir los registros de estado y 'C, desde el lugar en $ue fueron sal&ados al aceptarse la interrupción Apor e#emplo3 desde la pila Las computadoras incluyen &arias se1ales de solicitud de interrupción, cada una de las cuales tienen una determinada prioridad !n caso de acti&arse al
tiempo &arias de estas se1ales, se tratar) la de mayor prioridad, $uedando las dem)s a la espera de ser atendidas dem)s, la computadora incluye un mecanismo de in"i%ición selecti&a $ue permite detener todas o determinadas se1ales de interrupción Las se1ales in"i%idas no son atendidas "asta $ue pasen a estar desin"i%idas La información de in"i%ición de las interrupciones suele incluirse en la parte del registro de estado $ue solamente es modi/ca%le en ni&el de n+cleo, por lo $ue su modi/cación $ueda restringida al sistema operati&o TRT9I!NTO D! L( INT!RRU'CION!( Una interrupción se trata en todo caso, despu*s de terminar la e#ecución de la instrucción en curso !l tratamiento depende de cu)l sea el dispositi&o de !?( $ue "a causado la interrupción, ante la cual de%e poder identi/car el dispositi&o $ue la "a causado I9'ORTNCI D! L( INT!RRU'CION!( !l mecanismo de tratamiento de las interrupciones permite al sistema operati&o utili2ar la C'U en ser&icio de una aplicación, mientras otra permanece a la espera de $ue concluya una operación en un dispositi&o de !?( !l "ard@are se encarga de a&isar al sistema operati&o cuando el dispositi&o de !?( "a terminado y el sistema operati&o puede inter&enir entonces, si es con&eniente, para "acer $ue el programa $ue esta%a esperando por el dispositi&o, se contin+e e#ecutando !n ciertos inter&alos de tiempo puede con&enir no aceptar se1ales de interrupción 'or ello las interrupciones pueden in"i%irse por programa Aaun$ue esto no de%en poder "acerlo las mismas TI'O( D! INT!RRU'CION!( =asta este momento se "a &enido "a%lando de los $ue son las interrupciones, su función y cómo tra%a#an (in em%argo es tam%i*n necesario clasi/car las interrupciones (e "a dic"o $ue una interrupción se genera cuando se re$uiere $ue la C'U de#e de e#ecutar el proceso en curso y e#ecute una función espec0/ca de $uien produce la interrupción Cuando se e#ecuta esta función espec0/ca se dice $ue la C'U est) atendiendo la interrupción (e puede reali2ar una clasi/cación de las interrupciones, atendiendo a la fuente $ue las produce3 Interrupción de soft@are3 se produce cuando un usuario solicita una llamada del sistema Aa tra&*s de un programa Interrupciones de "ard@are3 son causadas cuando un dispositi&o de "ard@are re$uiere la atención de la C'U para $ue se e#ecute su mane#ador !xcepciones3 son interrupciones causadas por la propia C'U, cuando ocurre algo no deseado, por e#emplo una di&isión por cero !n cuanto a las interrupciones de "ard@are, son producidas por &arias fuentes, por e#emplo por el teclado, pues cada &e2 $ue se presiona una tecla se genera una interrupción Una interrupción de tipo "ard@are es una se1al producida por un dispositi&o f0sico del ordenador !sta se1al informa a la
C'U $ue el dispositi&o re$uiere de su atención La C'U parar) el proceso $ue est) e#ecutando para atender la interrupción Cuando la interrupción termina, la C'U reanuda en donde fue interrumpida, pudiendo e#ecutar el proceso parado originalmente o %ien otro proceso CONCLU(IÓN !sta in&estigación "a sido de gran %ene/cio para la comprensión de las interrupciones y su utilidad en cual$uier computadora (e "a podido examinar y &alorar cómo el mecanismo de las interrupciones es una e/ciente manera de "acer $ue las computadoras realicen tareas e/cientemente, dando prioridad a las tareas $ue re$uieren atención en determinados momentos y permitiendo una interacción correcta de todo el sistema computacional como con#unto (e "a estudiado cómo las interrupciones son una forma de comunicación $ue tiene el microprocesador con los diferentes componentes de "ard@are y con el soft@are mismo 'or esa ra2ón, todo sistema operati&o utili2a las interrupciones para administrar e/cientemente los recursos de la computadora y %rindar me#ores resultados a los usuarios Como e$uipo de tra%a#o, se "an logrado los o%#eti&os propuestos al iniciar esta in&estigación y se "a podido comprender el funcionamiento %)sico e importancia de las interrupciones en las computadoras