Interrupt vector

In informatica, un interrupt vector (vettore delle interruzioni) è un indirizzo di memoria del gestore di interrupt, oppure un indice ad un array, chiamato interrupt vector table, il quale può essere implementato tramite una dispatch table. La tabella degli interrupt vector contiene gli indirizzi di memoria dei gestori di interrupt. Quando si genera una interruzione, il processore salva il suo stato di esecuzione con il context switch, ed inizia l'esecuzione del gestore di interruzione all'interrupt vector (questo procedimento avviene quando l'interruzione ha carattere sincrono). Infatti vi è una wait instruction (istruzione d'attesa) che obbliga la CPU ad effettuare cicli vuoti fino a che non arriva il prossimo interrupt. Nel caso in cui si dovesse verificare una interruzione asincrona il programma provvede a lanciare un interrupt con la richiesta di I/O e nell'attesa del dato continua ad effettuare operazioni logico-aritmetiche. Quando arriverà nel momento in cui gli servirà il risultato si fermerà e inizierà ad aspettare. L'I/O asincrono serve a far sì che alcuni programmi possano anticipare la richiesta di un dato così nel caso in cui esso dovesse servire lo possono già utilizzare.

Nei sistemi operativi guidati dagli interrupt, l'interrupt vector è il vettore che contiene gli indirizzi di tutte le routine di servizio.

Ogni interrupt ha una sua priorità. Il registro di mascheramento delle interruzioni è un registro di stato; questo significa che gli viene abbinato un valore binario:

  • 1 - quando deve bloccare i successivi interrupt in quanto hanno una priorità inferiore rispetto all'interrupt che al momento è in esecuzione (exe),
  • 0 - quando riceve richiesta di interrupt con priorità più alta dell'interrupt che è in esecuzione, così salva il contesto computazionale effettuando un context switching.

Si ricorda che il bit di mascheramento del registro di stato viene attivato dalla CPU per informare che non è disposta a servire altri interrupt.