You are on page 1of 7

Interrupcin

DeWikipedia,laenciclopedialibre
En el contexto de la informtica, una interrupcin (del ingls interrupt request, en espaol peticin de
interrupcin)esunasealrecibidaporelprocesadordeunacomputadora,paraindicarlequedebeinterrumpir
elcursodeejecucinactualypasaraejecutarcdigoespecficoparatratarestasituacin.
Unainterrupcinesunasuspensintemporaldelaejecucindeunproceso,parapasaraejecutarunasubrutinade
servicio de interrupcin, la cual, por lo general, no forma parte del programa, sino que pertenece al sistema
operativooalBIOS.Unavezfinalizadadichasubrutina,sereanudalaejecucindelprograma.
LasinterrupcionessongeneradasporlosdispositivosperifricoshabilitandounasealdelCPU(llamadaIRQdel
ingls "interrupt request") para solicitar atencin del mismo. Por ejemplo. cuando un disco duro completa una
lecturasolicitaatencinaligualquecadavezquesepresionaunateclaosemueveelratn.
Laprimeratcnicaqueseempleparaestofueelpolling,queconsistaenqueelpropioprocesadorseencargara
desondearlosdispositivosperifricoscadaciertotiempoparaaveriguarsitenapendientealgunacomunicacin
para l. Este mtodo presentaba el inconveniente de ser muy ineficiente, ya que el procesador consuma
constantementetiempoyrecursosenrealizarestasinstruccionesdesondeo.
Elmecanismodeinterrupcionesfuelasolucinquepermitialprocesadordesentendersedeestaproblemtica,y
delegareneldispositivoperifricolaresponsabilidaddecomunicarseconlcuandolonecesitara.Elprocesador,
enestecaso,nosondeaaningndispositivo,sinoquequedaalaesperadequeestosleavisen(le"interrumpan")
cuandotenganalgoquecomunicarle(yaseaunevento,unatransferenciadeinformacin,unacondicindeerror,
etc.).

ndice
1 Funcionamientodelmecanismodeinterrupciones
1.1 Procesamientodeunainterrupcin
2 Mecanismoylneasdepeticindeinterrupcin
3 Tiposdeinterrupciones
3.1 Interrupcionesdehardware
3.2 Excepciones
3.3 Interrupcionesporsoftware
4 Determinacindeladireccindelarutinadeserviciodeinterrupcin
4.1 Direccionesvariables
5 Determinacindelafuentequegeneralainterrupcin
6 Sistemasdeprioridad
6.1 Interrupcionessimultneas
6.2 Interrupcionesanidadas
6.3 Inhibicindeinterrupciones
7 Vasetambin

Funcionamientodelmecanismodeinterrupciones

Todos los dispositivos que deseen comunicarse con el procesador por medio de interrupciones deben tener
asignada una lnea nica capaz de avisar al CPU cuando le requiere para realizar una operacin. Esta lnea se
denominaIRQ.
LasIRQsonlneasquelleganalcontroladordeinterrupciones,uncomponentedehardwarededicadoalagestin
delasinterrupciones,yquepuedeestarintegradoenelprocesadorprincipaloseruncircuitoseparadoconectadoal
mismo.Elcontroladordeinterrupcionesdebesercapazdehabilitaroinhibirlaslneasdeinterrupcinyestablecer
prioridadesentrelasmismas.Cuandovariaslneasdepeticindeinterrupcinseactivanalavez,elcontroladorde
interrupciones utilizar estas prioridades para escoger la interrupcin sobre la que informar al procesador
principal. Tambin puede darse el caso de que una rutina de tratamiento de interrupcin sea interrumpida para
realizarotrarutinadetratamientodeunainterrupcindemayorprioridadalaqueseestabaejecutandoaunque
hayinterrupcionesquenosepuedendeshabilitar(conocidascomointerrupcionesnoenmascarablesoNMI).
Unprocesadorprincipalquenotengauncontroladordeinterrupcionesintegrado,sueletenerunanicalneade
interrupcinllamadahabitualmenteINT.Estalneaesactivadaporelcontroladordeinterrupcionescuandotiene
una interrupcin que servir. Al activarse esta lnea, el procesador consulta los registros del controlador de
interrupcionesparaaveriguarcualIRQhayqueatender.ApartirdelnmerodelIRQbuscaenlatabladevectores
deinterrupcinladireccinde la rutina a la que debe llamar para atender la peticin del dispositivo asociado a
dichaIRQ.

Procesamientodeunainterrupcin
1.Terminarlaejecucindelainstruccinmquinaencurso.
2.Salvarelestadodelprocesador(valoresderegistrosyflags)yelvalordelcontadordeprograma,IP,enla
pila,demaneraqueenlaCPU,alterminarelprocesodeinterrupcin,puedaseguirejecutandoelprogramaa
partirdelaltimainstruccin.
3.LaCPUsaltaaladireccindondeestalmacenadalarutinadeserviciodeinterrupcin(InterruptService
Routine,oabreviadoISR)yejecutaesarutinaquetienecomoobjetivoatenderaldispositivoquegenerla
interrupcin.
4.Unavezquelarutinadelainterrupcintermina,elprocesadorrestauraelestadoquehabaguardadoenla
pilaenelpaso2yretornaalprogramaqueseestabausandoanteriormente.

Mecanismoylneasdepeticindeinterrupcin
Elbusdecontrol de la placa base dispone de lneas especficas para el sistema de interrupciones. Un PC tpico
disponeensuplacabasedeuncontroladordeinterrupciones8259deIntelodeuncircuitointegradoanlogo.Este
dispositivoelectrnicodisponedehasta16lneasIRQ,numeradasdesdeel00hastael15.Enlasnuevasplacas
baseestecircuitoestintegradojuntoconelrestodelchipsetypermitehasta24interrupciones.
EnelIBMPCyXTexistan8lneasdepeticindeinterrupcinmanejadasporelcontroladordeinterrupciones
Intel8259.Estaslneasestnnumeradasdel0al7,lasdosprimerasestnasignadasaltimertickdeltemporizador
Intel 8253, y al teclado. Solo quedaban 6 lneas para otros dispositivos, que aparecen como tales en el bus de
control(IRQ2IRQ7).ApartirdelmodeloATseaadieronotras8lneas,numeradasdel8al15,medianteun
segundocontroladordeinterrupciones(PIC),aunquelatecnologaempleadaexigicolgarlodelalneaIRQ2del
primero,deformaqueestalneasededicaaatenderlasinterrupcionesdelsegundocontroladoratravsdelalnea
9deesteltimo,ylalnea8sededicalrelojdetiemporeal,undispositivoquenoexistaenlosmodelosXT.
Aunque internamente se manejan 16 lneas, no todas tienen contacto en los zcalos del bus externo (son las
marcadasconasteriscoenlatablaquesigue).Larazndeestaausenciaenloszcalosdeconexinesquesonde
asignacinfija,ysolosonusadasporciertosdispositivosinstaladosenlapropiaplacabase.Enconcretolalnea

NMIestasignadaalmecanismodecontroldeparidaddelamemoria,lalnea0estasignadaalcronmetrodel
sistemaylalnea1alchipquecontrolaelteclado(dispositivosquepuedenrequeriratencinurgenteporpartedel
procesador).EscostumbredenominarIRQxalasquetienenprolongacinenelbus.
Tericamentelasrestanteslneaspodranserasignadasacualquiernuevodispositivo,peroenlaprcticaalgunas
estnreservadasadispositivosestndar.Porejemplo,IRQ3estcasisiempreasignadoalpuertoserieCOM2yel
IRQ4 al COM1 IRQ6 al controlador estndar de disquetes y IRQ7 al puerto de impresora LPT1. La tabla 1
muestralasasignacionesclsicasparaelXTyelAT.
En sistemas ms modernos utilizan la arquitectura APIC de Intel con 24 lneas y 8 extra para enrutar las
interrupcionesPCI.
Nombre Int(hex)

XT:Descripcin

AT:Descripcin

NMI

Paridad*

Paridad*

IRQ0

08

Temporizador*

Temporizador*

IRQ1

09

Teclado*

Teclado*

IRQ2

0A

Reservado

Interrupciones8a15(PIC#2)

IRQ3

0B

PuertosserieCOM2/COM4 PuertoserieCOM2/COM4

IRQ4

0C

PuertosserieCOM1/COM3 PuertosserieCOM1/COM3

IRQ5

0D

Discoduro

PuertoParaleloLPT2

IRQ6

0E

Disquete

Disquete

IRQ7

0F

PuertoParaleloLPT1

PuertoParaleloLPT1

IRQ8

70

Noexiste

Relojdetiemporeal*

IRQ9

71

Noexiste

RedirigidoaIRQ2*

IRQ10

72

Noexiste

noasignado

IRQ11

73

Noexiste

noasignado

IRQ12

74

Noexiste

RatnPS2

IRQ13

75

Noexiste

Coprocesador80287*

IRQ14

76

Noexiste

Contr.discoIDEprimario

IRQ15

77

Noexiste

Contr.discoIDEsecundario

IRQ16

78

Existe

Contr.discoSATAprimario

Cuando se instala un dispositivo de entrada o de salida que puede necesitar muchsima atencin del procesador
Pentium,debeasignrseleunaIRQadecuada.Dichoenotraspalabras,cuandoundispositivoperifricorequiera
atencin,debeenviarunasealenlalneaIRQespecificada.Inicialmenteestaasignacinseefectuabadeforma
manual y automtica, por medio de puentes (jumpers) en la placa o dispositivo mvil, pero actualmente esta
seleccinpuedehacersemediantesoftware.

Tiposdeinterrupciones
Atendiendoalafuentequelasproduce,lasinterrupcionespuedenclasificarsedelasiguienteforma:
Interrupcionesdehardware.Estassonasncronasalaejecucindelprocesador,esdecir,sepuedenproducir
encualquiermomentoindependientementedeloqueesthaciendoelCPUenesemomento.Lascausasque
las producen son externas al procesador y a menudo suelen estar ligadas con los distintos dispositivos de

entradaosalida.
Excepciones. Son aquellas que se producen de forma sncrona a la ejecucin del procesador y por tanto
podranpredecirsesiseanalizacondetenimientolatrazadelprogramaqueenesemomentoestabasiendo
ejecutado en la CPU. Normalmente son causadas al realizarse operaciones no permitidas tales como la
divisinentre0,eldesbordamiento,elaccesoaunaposicindememorianopermitida,etc.
Interrupciones por software. Las interrupciones por software son aquellas generadas por un programa en
ejecucin.Paragenerarlas,existendistintasinstruccionesenelcdigomquinaquepermitenalprogramador
producir una interrupcin, las cuales suelen tener nemotcnicos tales como INT (por ejemplo, en DOS se
realizalainstruccinINT0x21yenUnixseutilizaINT0x80parahacerllamadasdesistema).

Interrupcionesdehardware
Lasinterrupcionesdehardwaresonaquellasinterrupcionesqueseproducencomoresultadode,porlogeneral,una
operacindeE/S.Nosonproducidasporningunainstruccindeunprogramasinoporlassealesqueemitenlos
dispositivosperifricosparaindicarlealprocesadorquenecesitanseratendidos.
Cuandoelmicroprocesadoraccedeaunperifrico(discoduro,puertodecomunicacin...),puedetranscurriralgn
tiempoantesdequelosdatosseanobtenidosotransmitidos.Lasolucinmssimpleesesperarhastarecibirlos
datosohastaquesehayaefectuadolatransmisin(polling),peroestasolucinbloqueatodoslosprogramasen
ejecucin, y eso no puede admitirse en un sistema multitarea. Por ello, en los sistemas modernos se prefiere un
funcionamientomedianteinterrupciones,yaquestaspermitenmejorarlaproductividaddelprocesador,deforma
queesteltimopuedeordenarunaoperacindeentradaosaliday,enlugardetenerquerealizarunaesperaactiva,
sepuedededicaraatenderaotroprocesooaplicacinhastaqueeldispositivoestdenuevodisponible,siendo
dichodispositivoelencargadodenotificaralprocesadormediantelalneadeinterrupcinqueyaestpreparado
paracontinuaroterminarlaoperacindeentradaosalida.

Excepciones
Las excepciones son un tipo de interrupcin sincrnica tpicamente causada por una condicin de error en un
programa, como por ejemplo una divisin entre 0 o un acceso invlido a memoria en un proceso de usuario.
Normalmentegenerauncambiodecontextoamodosupervisorparaqueelsistemaoperativoatiendaelerror.As
pues, las excepciones son un mecanismo de proteccin que permite garantizar la integridad de los datos
almacenadostantoenelespaciodeusuariocomoenelespaciokernel.CuandoelSistemaOperativodetectauna
excepcin intenta solucionarla, pero en caso de no poder simplemente notificar la condicin de error a la
aplicacin/usuarioyabortarlamisma.

Interrupcionesporsoftware
Las interrupciones por software, tambin denominadas llamadas al sistema, son aquellas generadas por un
programamientrasesteestejecutndose.Engeneral,actandelasiguientemanera:Unprogramaenejecucin
llegaaunainstruccinquerequieredelsistemaoperativoparaalgunatarea,porejemploparaleerunarchivoenel
discoduro(cuandounprogramanecesitaundatoexterior,sedetieneypasaacumplirconlastareasderecogerese
dato). En ese momento por tanto llama al sistema y se interrumpe virtualmente hasta recibir respuesta, en el
ejemploanteriorhastaquenosehayaledoeldiscoyelarchivoestenmemoriaprincipal.Duranteesaesperalas
instruccionesqueseejecutarnnoserndelprograma,sinodelsistemaoperativoUnavezsteterminesurutina
ordenarreanudarlaejecucindelprogramaautointerrumpidoenesperaPorltimolaejecucindelprogramase
reanuda.

Determinacindeladireccindelarutinadeserviciodeinterrupcin

Haydosalternativasparadeterminarladireccindelarutinadeserviciodeinterrupcinquesedebeejecutaral
recibirunainterrupcindeterminada:
Direccionesfijas.Sehallancableadasenelprocesadoryportantonuncapuedensercambiadas.Estoimplica
quelasRSIsiempreestarnenunadeterminadaposicindelamemoria.
Direcciones variables (por interrupciones vectorizadas). En este grupo se incluyen aquellas que presentan
unadireccinvariableyque,portanto,nosehallacableadaenelprocesador.Deestamaneraeldispositivo
debe dar informacin acerca de la localizacin de la direccin de comienzo de la RSI asociada a dicho
perifrico.

Direccionesvariables
Hay distintas metodologas de diseo para las interrupciones con direcciones variables. En la actualidad, las
alternativasquesonimplementadasdemanerahabitualsonlassiguientes:
Direccionamiento absoluto: En este caso es el dispositivo o la interfaz del dispositivo la encargada de
conocerladireccindelaRSIydeenviarlaalprocesadorparaquestepuedalocalizardichasubrutinay
ejecutarla.
Direccionamiento relativo: El dispositivo solo suministra parte de la direccin de comienzo y es el
procesadorelencargadodecompletarla(aadiendobitsosumandounadeterminadacantidad,quesiempre
ser fija). Esta alternativa tiene una ventaja sobre la anterior y es que permite especificar la direccin de
comienzoconmenosbitsyportantosimplificaeldiseo.Ahorabientieneunadesventajaprincipalyesque
limitaelnmerodedispositivosquepodemosconectaryademsciertosbitsdeladireccinquedanfijados
deformapermanenteporlaCPUloquereducelacapacidaddereubicabilidaddelaRSI.Unaalternativaque
utilizan ciertos procesadores como el 8080 o el 8085 es que en vez de enviar solamente la direccin de
comienzodelaRSIseenvatambinelcdigodelaoperacindesalto(porejemploCALL).
Direccionamientoindirecto:Tambinconocidacomodireccionamientoporinterrupcionesvectorizadas.Se
mantiene una tabla de vectores de interrupcin (direcciones de comienzo de las distintas RSI) y a cada
interrupcinseleasociaunnmeroqueserelndiceporelcualseaccederalatablayserecuperarla
informacindeladireccindecomienzo.Necesitasealesdeconformidadohandshakingparasincronizar
al procesador con la interfaz, ya que esta ltima tiene que indicarle al procesador cuando va a enviarle el
ndicequenecesitaparabuscarelvectordeinterrupcin(INT)yelprocesadordeberenviarotrasealpara
indicarquesehareconocidolainterrupcin(INTA#).

Determinacindelafuentequegeneralainterrupcin
Hay distintas formas de identificar la fuente de una determinada interrupcin. La primera alternativa que se
consider fue asignar una lnea (un bit) para cada interrupcin, lo cual supona un gran costo en cuanto a la
relacindenmerodedispositivosynmerodebitsusadosyamenudolimitabaelnmerodedispositivosquese
podan conectar. Por ello, se pens con posterioridad en que en cada patilla de interrupcin debera poder
conectarsemsdeundispositivo,debiendoimplementarportantounametodologaquepermitieseidentificarde
formaunvocadequdispositivosetrataba.Paraellohayvariasdirectrices:
Polling:elmicroprocesadorcompruebademanerasistemticatodoslosdispositivosdemaneraquebusca
culdeellosfueelquesolicitlainterrupcin.Estotieneunaventajayesqueesbaratoaniveldecoste
hardwareyaqueelpollingseimplementaensoftware,noobstantetieneotrasdesventajasquenopodemos
olvidaryesquesueleserlentoporquetienequecomprobarenserietodoslosdispositivosyestableceuna
prioridadenlosdispositivos(elordendesondeo)yportantopuedeprovocarinanicin.
Interrupciones vectorizadas: este concepto fue ya tratado en el apartado anterior. Como ventajas podemos
destacarquesueleserrpidoperoimplicaunaltocostoenelhardware.
Hardwareparalelo:seutilizaunregistrodeinterrupcincuyosbitssecontrolandeformaindependientepor
lassealesdepeticindeinterrupcin
decadaperifrico.Segnlaposicindecadabitenelregistro,se
establecelaprioridad.

Sistemasdeprioridad
El sistema operativo necesita un mecanismo para priorizar las interrupciones y tratar primero las ms urgentes.
Paraello,existenvariasalternativas:
Interrupcionessimultneas:Notienenporquocurrirdemanerasimultneasinoqueserefiereaqueenun
momentodadopuedenhabervariasinterrupcionesactivas.
Interrupciones anidadas: Mientras se est procesando una determinada rutina de servicio de interrupcin
sucedeotrasealdeinterrupcin.
Inhibicindeinterrupciones:Sedeshabilitanlasdemsinterrupcionesmientrasseesttratandouna.

Interrupcionessimultneas
Enestemtodotenemosdosalternativas,unadeellasesqueexistaalgnhardwarequetengacomoentradaslas
seales de interrupcin y de como salida la interrupcin ms prioritaria que est activa en ese momento. Otra
alternativa es tener un mtodo de identificacin de prioridades distribuida y no generalizada como en el caso
anterior,enestecasotenemosquedestacardostcnicasdistintasquesepuedenimplementarenlaprctica:
Polling:elmicroprocesadorverificalosdispositivosyelordendesondeodeterminalaprioridad.
Daisychain (conexin en cadena): se puede conectar los distintos dispositivos en cadena, en orden
decrecientedeprioridadyportantolasealdereconocimientodeinterrupcin(INTA#)soloserpasadaal
siguiente dispositivo en caso de que el anterior (ms prioritario) no haya solicitado los servicios del
procesador. Sin embargo, algo importante es que las seales de interrupcin que van al procesador estn
conectadas todas a un mismo cable, por tanto, deberemos utilizar alguna tcnica especial para que no se
produzcauncortocircuito.Paraevitarprecisamentequelapistasecortocircuiteseutilizalatcnicadelopen
collectoocolectorabiertoyconsisteenconectarelcolectordeuntransistoralapistacomn(untransistor
por cada dispositivo) y por tanto estarn tantos colectores conectados como dispositivos tengamos (se
entiendequesondispositivosquemandanpeticindeinterrupcinalprocesador).
Hbrida:mezclalasdostcnicasexplicadasanteriormente.

Interrupcionesanidadas
Existen dos mtodos para tratar las interrupciones anidadas. El primero se basa en inhabilitar las interrupciones
mientras se est ejecutando una determinada RSI. Esto puede realizarlo el hardware de manera automtica en
algunosprocesadores,peroenotrosserelusuarioelencargadodedeshabilitarlasencasodequenodeseeque
ninguna otra interrupcin pueda interrumpir el transcurso normal de la rutina de servicio de interrupcin. No es
aconsejabledeshabilitarlasinterrupcionesdurantemuchotiempoyaqueestopuedeprovocarerroresyprdidade
informacin.
LaotraalternativaespermitirquesololasinterrupcionesmsprioritariaspuedansuspenderlaejecucindelaRSI
actual. Para esto tendremos que definir qu lneas son ms prioritarias que otras. Otra consideracin de esta
segundaalternativaesquealanidardistintasllamadasarutinastendremosquecontarconunapilasuficientemente
grandeparaqueestanosedesborde.

Inhibicindeinterrupciones
Haydistintasalternativasdeinhibicindeinterrupciones.Comoyahemosvistoestassepuedenhacerdemanera
automticaporelhardwareenalgunoscasosmientrasqueenotrosserelusuarioelencargadoderealizarlopor
softwareyestodependedelaarquitecturadelprocesadorqueconsideremos.Lasdistintasopcionesson:
Deshabilitar todas las interrupciones. Para esto basta con inhibir el bit del registro de flag dedicado a las
interrupciones.

Deshabilitar al principio de la RSI y activarlas de nuevo al finalizar la misma. Puede ser de manera
automticaoporelusuario.
Desactivar solo las interrupciones que tengan menor prioridad que la asociada a la RSI que se est
ejecutandoenesemomento.
Deshabilitar de forma selectiva distintos niveles de prioridad de interrupcin. Para lo cual se emplean
registrosespecialesdenominadosmscarasenelquecadaunodesusbitsidentificanaunniveldistintoy
modificandosucontenidosepuedeestablecerquenivelesestnactivosenesemomento.Sepuedecambiar
porelprogramador.

Vasetambin
LlamadadeinterrupcindelBIOS
Obtenidodehttps://es.wikipedia.org/w/index.php?title=Interrupcin&oldid=90966570
Categora: Interrupciones
Estapginafuemodificadaporltimavezel10may2016alas00:58.
EltextoestdisponiblebajolaLicenciaCreativeCommonsAtribucinCompartirIgual3.0podranser
aplicablesclusulasadicionales.Alusarestesitio,ustedaceptanuestrostrminosdeusoynuestrapoltica
deprivacidad.
WikipediaesunamarcaregistradadelaFundacinWikimedia,Inc.,unaorganizacinsinnimodelucro.

You might also like