b'\n_START_ARTICLE_\nInterrupci\xc3\xb3\n_START_PARAGRAPH_\nUna interrupci\xc3\xb3 (tamb\xc3\xa9 coneguda com a interrupci\xc3\xb3 de maquinari o petici\xc3\xb3 d\'interrupci\xc3\xb3) \xc3\xa9s un senyal rebut pel processador d\'un ordinador, indicant que ha d\'interrompre el curs d\'execuci\xc3\xb3 actual i passar a executar codi espec\xc3\xadfic per tractar aquesta situaci\xc3\xb3. Una interrupci\xc3\xb3 suposa una pausa en l\'execuci\xc3\xb3 del programa, desant l\'estat actual del processador, per passar a executar una "subrutina de servei d\'interrupci\xc3\xb3", que pertany al BIOS (Basic Input Output System)._NEWLINE_Les interrupcions sorgeixen de les necessitats que tenen els dispositius perif\xc3\xa8rics d\'enviar informaci\xc3\xb3 al processador principal d\'un sistema de computaci\xc3\xb3. La primera t\xc3\xa8cnica que es va utilitzar fou que el mateix processador s\'encarregu\xc3\xa9s de sondejar (polling) el dispositiu cada cert temps per esbrinar si tenia pendent alguna comunicaci\xc3\xb3 per a ell. Aquest m\xc3\xa8tode presentava l\'inconvenient de ser molt ineficient, ja que el processador constantment consumia temps realitzant totes les instruccions de sondeig._NEWLINE_El mecanisme d\'interrupcions fou la soluci\xc3\xb3 que va permetre al processador desentendre\'s d\'aquesta problem\xc3\xa0tica, i delegar en el dispositiu la responsabilitat de comunicar-se amb el processador quan ho necessit\xc3\xa9s. El processador, en aquest cas, no sondeja cap dispositiu, sin\xc3\xb3 que queda a l\'espera que aquests l\'avisin (l\'interrompin) quan tinguin alguna cosa a comunicar-li (ja sigui una transfer\xc3\xa8ncia d\'informaci\xc3\xb3, una condici\xc3\xb3 d\'error, un esdeveniment, etc.).\n_START_SECTION_\nFuncionament del mecanisme d\'interrupcions\n_START_PARAGRAPH_\nCada dispositiu que voleu comunicar-se amb el processador per interrupcions ha de tenir assignada una l\xc3\xadnia \xc3\xbanica capa\xc3\xa7 d\'avisar a aquest que li requereix per a una operaci\xc3\xb3. Aquesta l\xc3\xadnia \xc3\xa9s l\xe2\x80\x99anomenada IRQ (Interrupt Request ", petici\xc3\xb3 d\xe2\x80\x99interrupci\xc3\xb3)._NEWLINE_Les IRQ s\xc3\xb3n l\xc3\xadnies que arriben al controlador d\xe2\x80\x99interrupcions, Un component maquinari dedicat a la gesti\xc3\xb3 de les interrupcions, i que pot estar integrat en la UCP o ser un circuit separat connectat al processador principal. El controlador d\xe2\x80\x99interrupcions ha de ser capa\xc3\xa7 d\xe2\x80\x99activar o inhibir l\xc3\xadnies d\xe2\x80\x99interrupci\xc3\xb3 (operaci\xc3\xb3 anomenada comunament emmascarar per la utilitzaci\xc3\xb3 d\xe2\x80\x99una m\xc3\xa0scara), I establir prioritats entre les diferents interrupcions habilitades. Quan diverses l\xc3\xadnies de petici\xc3\xb3 d\xe2\x80\x99interrupci\xc3\xb3 s\xe2\x80\x99activen a la vegada, el controlador d\xe2\x80\x99interrupcions utilitzar\xc3\xa0 aquestes prioritats per escollir la interrupci\xc3\xb3 sobre la qual informar\xc3\xa0 al processador principal. No obstant aix\xc3\xb2 hi ha interrupcions que no es poden emmascarar, o b\xc3\xa9, les conegudes com interrupcions no emmascarar o NMI._NEWLINE_Un processador principal (sense controlador d\xe2\x80\x99interrupcions integrat) sol tenir una \xc3\xbanica l\xc3\xadnia d\'interrupci\xc3\xb3 anomenada habitualment INT. Aquesta l\xc3\xadnia \xc3\xa9s activada pel controlador d\'interrupcions quan t\xc3\xa9 una interrupci\xc3\xb3 de servir. En activar aquesta l\xc3\xadnia, el processador consulta els registres del controlador d\xe2\x80\x99interrupcions per a esbrinar quina IRQ \xc3\xa9s la que ha d\'atendre. A partir del nombre de IRQ cerca al vector d\xe2\x80\x99interrupcions qu\xc3\xa8 rutina ha de trucar per atendre una petici\xc3\xb3 del dispositiu associat a aquesta IRQ._NEWLINE_Les rutines d\xe2\x80\x99interrupci\xc3\xb3 generalment prenen un petit temps d\xe2\x80\x99execuci\xc3\xb3 i la majoria no poden ser interrompudes quan s\xe2\x80\x99estan atenent, perqu\xc3\xa8 en entrar-hi s\xe2\x80\x99emmagatzema l\xe2\x80\x99estat dels registres en una pila i si s\xe2\x80\x99interrompen moltes vegades, la pila es pot desbordar._NEWLINE_Passos per al processament d\xe2\x80\x99una IRQ:_NEWLINE_1) Acabar l\xe2\x80\x99execuci\xc3\xb3 de la instrucci\xc3\xb3 m\xc3\xa0quina en curs._NEWLINE_2) Salva el valor de comptador de programa, PC, a la pila, de manera que en la CPU, en acabar el proc\xc3\xa9s, pugui seguir executant el programa a partir de l\xe2\x80\x99ultima instrucci\xc3\xb3._NEWLINE_3) La CPU salta a l\xe2\x80\x99adre\xc3\xa7a on est\xc3\xa0 emmagatzemada la rutina de servei d\xe2\x80\x99interrupci\xc3\xb3 (ISR, Interrupt Service Routine) i executa aquesta rutina que t\xc3\xa9 com a objectiu atendre al dispositiu que va generar la interrupci\xc3\xb3._NEWLINE_4) Una vegada que la rutina de la interrupci\xc3\xb3 acaba, el processador restaura l\xe2\x80\x99estat que havia guardat a la pila en el pas 2 i torna al programa que s\xe2\x80\x99estava usant anteriorment.'