Interrutzione (informàtica)

Un**'interrutzione** (fintzas **interrupt**, dae s'inglesu), in informàtica, est unu signale asìncronu chi indicat su "bisòngiu de atentu" de una perifèrica cun su fine de una recherta piessigna de servìtziu, un'eventu sìncronu chi cunsentit s'interrutzione de unu protzessu si in casu mai s'avèrguent cunditziones determinadas (manìgiu de is protzessos) o, prus in generale, una piessigna recherta a su sistema operativu a banda de unu protzessu in esecutzione.

## Tipos de interrutziones
Ddoe at duos tipos de interrutziones:

* **Interrutzione dae dispositivu** *(hardware interrupt)*, generadas dae aparatos esternos a sa CPU (perifèricas), chi tenent su còmpitu de comunicare s'averguare de eventos esternos, de sòlitu dispositivos de Intrada/Essida. Un'interrutzione hardware òbligat su protzessore a ammentare s'istadu suo de esecutzione e a incumentzare s'esecutzione de su suta-programma (càmbiu de cuntestu) chi esecutat su còmpitu rechertu dae s'interrutzione. Cando custu acabbat, su protzessore torrat a su traballu chi fiat fadende in antis.
* **Interrutzione dae programma** (*software interrupt*): sunt istrutziones assembly, tipu *INT xx* o *SYSCALL*, chi podent èssere assimiladas a sas mutidas de suta-programmas, ma chi isfrutant su mecanismu de interrutzione pro passare su controllu dae su programma in esecutzione a cuddu mutidu; sunt impreadas pro atzèdere a is risursas de su sistema operativu.

## Impreu de is interrutziones
Is interrutziones sunt impreadas prus che totu cando:

* unu protzessu intentat de esecutare un'istrutzione non bàlida, comente a una partzidura pro zero. In custos casos no est possìbile sighire cun s'esecutzione de su protzessu, ca diat generare medas faddinas, diat corrùmpere is datos in sos registros de sa CPU e/o diat batire a unu crash su sistema matessi. Tando s'interrutzione cunsentit de informare su sistema operativu de cantu acontèssidu a manera de permìtere su manìgiu curretu de su problema.
* unu protzessu pedit un'operatzione de I/E a su sistema operativu. Is micro-protzessores modernos donant sa possibilidade de impreare prus livellos de privilègios, pro resones de seguridade, chi sos protzessos in esecutzione podent retzire. Su sistema operativu isceti podet fàghere carchi operatzione comente a atzèdere a carchi àrea de memòria amparadas o manigiare sas perifèricas.
* un'aparatu de I/E informat sa CPU chi est disponìbile pro retzire o frunire datos. In custu casu benit aviada una protzedura de su sistema operativu preposta a s'ocupare de sa relativa perifèrica. Custu tipu de interrutziones netzèssitat una gestione meda atenta, difatis est possìbile chi dups dispositivos apant generadu un'interrutzione durante s'esecutzione de unu protzessu, e sunt netzessàrios mecanismos chi èvitent cunflitos e su pèrdere informatziones, a esèmpiu detzidende cale interrutzione tenet prioridade majore e depet èssere esecutada pro prima e ponende in coa sa segunda, deleghende su còmpitu a su Controllore de interrutziones programmàbile.
* su tempus màssimu a disponimentu pro tale protzessu est segudadu e su pianificadore depet donare sa CPU a un'àteru protzessu in coa.
* sa limpiadura de un'aplicatzione est in cursu. Durante sa fase de isvilupu de unu programma su funtzionamentu bolet proadu pro iscobèrrere e risòlvere problemas e faddinas. Sa limpiadura permitit de sighire s'evolutzione de su programma, istrutzione pro istrutzione, donende sa possibilidade de interrùmpere su protzessu in cale si siat momentu pro averguare su balore de ogni paràmetru. Pro fàghere custu est netzessàriu chi su còdighe de orìgine siat compiladu in manera apòsita. In custu casu, si su programma est esecutadu in suta de su controllu de unu programma ispetziale, su limpiadore (*debugger*), a ogni istrutzione est imbiada un'interrutzione chi permitit de averguare si in tale puntu est recherta sa firmada de su protzessu.

## Manìgiu de is interrutziones
In su su momentu chi su protzessore retzit una recherta de interrutzione, ddoe at su bisòngiu de determinare cale siat s'aparatu chi dd'at generada. Ddoe at tres sistemas printzipales pro ddu fàghere:

* Lìnias de interrutzione mùltiplas.
* Iscansione de is interrutziones (polling).
* Vetorizatzione de is interrutziones.

Cun sas lìnias de interrutzione mùltiplas a ogni dispositivu est assotziadu unu pròpiu cuntatu elètricu de su microprotzessore pro su manìgiu de is interrutziones. Custu sistema est impraticàbile pro su manìgiu de dispositivos numerosos ma podet èssere impreadu in tecnologias a destinatzione ispetziale.

Cun s'iscansione de is interrutziones, cada dispositivu est interrogadu pro chircare cale at imbiadu sa pedida de interrutzione.

Sa Vetorizatzione impreat unu tzircùitu integradu, su Controllore de interrutziones programmàbile, chi tenet unu tzertu nùmeru de lìnias in intrada de rechertas de interrutzione (IRQ, *interrupt request*), impreadas dae is aparatos pro pedire un'interrutzione. Cando retzit una recherta, su controllore imbiat issu etotu una recherta de interrutzione a su protzessore e, a pustis chi custu at cunfirmadu sa recherta (dda podet fintzas ignorare si is interrutziones sunt istudadas), depòsitat in su bus datos s'ìnditze de su *vetore* *de interrutzione* relativu a s'indiritzu de sa protzedura chi manìgiat s'interatzione cun s'aparatu.

## Bibliografia

* 
*