Interrupt: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
→Voci correlate: , Aggiunta DMA (Direct Memory Access) alla lista delle voci correlate agli interrupt, sezione informatica |
|||
(37 versioni intermedie di 11 utenti non mostrate) | |||
Riga 1:
{{F|sistemi operativi|febbraio 2013}}
Un '''interrupt''', in [[informatica]], è un segnale asincrono che indica il "bisogno di attenzione" da parte di una [[periferica]] finalizzata ad una particolare richiesta di servizio, un evento sincrono che consente l'interruzione di un [[processo (informatica)|processo]] qualora si verifichino determinate condizioni ([[gestione dei processi]]) oppure più in generale una particolare richiesta al [[sistema operativo]] da parte di un [[processo (informatica)|processo]] in [[esecuzione (informatica)|esecuzione]].
== Tipologie ==
Ci sono due tipi di interrupt:
* ''Interrupt hardware'' generati da dispositivi esterni alla [[CPU]] (periferiche), che hanno il compito di comunicare il verificarsi di eventi esterni, di solito dispositivi di [[Input/Output]]. Un interrupt [[hardware]] costringe il [[processore]] a memorizzare il suo stato di esecuzione fino all'arrivo dell'interrupt e ad iniziare l'esecuzione della [[subroutine]] (sottoprogramma) ([[commutazione di contesto]]) che esegue il compito richiesto dall'interrupt, terminato il quale il processore riprende l'esecuzione delle operazioni che stava precedentemente elaborando. Nella pratica, si nota un rallentamento del sistema ed un aumento dell'uso della CPU, che può arrivare ad essere impegnata al 100% e per lunghi periodi.
* ''Interrupt software'': sono delle istruzioni [[assembly]], tipo ''INT xx'' o ''SYSCALL'', che possono essere assimilate alle chiamate di sottoprogrammi, ma che sfruttano il meccanismo delle interruzioni per passare il controllo dal [[programma (informatica)|programma]] chiamante a quello chiamato, e viceversa; vengono utilizzati per accedere direttamente alle risorse del sistema
▲* ''Interrupt software'': sono delle istruzioni [[assembly]], tipo ''INT xx'' o ''SYSCALL'', che possono essere assimilate alle chiamate di sottoprogrammi, ma che sfruttano il meccanismo delle interruzioni per passare il controllo dal [[programma (informatica)|programma]] chiamante a quello chiamato, e viceversa; vengono utilizzati per accedere direttamente alle risorse del sistema opera
== Uso degli interrupt ==
Riga 33 ⟶ 30:
La vettorizzazione fa uso di un [[circuito integrato]] detto [[Programmable Interrupt Controller]] che ha in ingresso un certo numero di linee di ''[[interrupt request]]'' (IRQ), usate dai dispositivi per richiedere un'interruzione. Quando riceve una richiesta, il PIC si occupa di inviare a sua volta una richiesta di interrupt al processore e, dopo che quest'ultimo ha confermato la richiesta (cosa che potrebbe non avvenire se gli interrupt fossero disabilitati), deposita nel [[bus dati]] l'indice del ''vettore'' di interrupt relativo all'indirizzo della ISR che gestisce l'interazione con il dispositivo. I vettori sono contenuti in una tabella situata ad una determinata locazione in memoria, predefinita o meno, e chiamata''[[Interrupt vector| interrupt vector table]]'' (''[[Interrupt Descriptor Table]]'' per [[8086]] e [[IA-32]]). Ogni vettore contiene i dati che permettono al processore di determinare l'indirizzo in memoria della ISR relativa al dispositivo che ha generato l'interrupt, e di gestire quindi l'operazione di I/O richiesta.
== Bibliografia ==
Riga 119 ⟶ 46:
* [[Polling (informatica)]]
* [[Programmable Interrupt Controller]]
* [[Direct Memory Access]]
== Collegamenti esterni ==
* {{Collegamenti esterni}}
{{Controllo di autorità}}
|