Interrupt: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
fix |
Nessun oggetto della modifica |
||
Riga 1:
{{Sposta|Interruzione|Propongo il cambio di nome della voce nel rispetto della convenzione secondo cui debbano essere utilizzati i nomi italiani per facilitare la comprensione dell'argomento (vedasi ad es. "rete sociale" al posto di "social network" o "gestore di interruzioni programmabile" al posto di "programmable interrupt controller"), ove gli stessi in inglese non siano entrati stabilmente nella lingua italiana (ad es. computer e mouse). '''Aperta discussione: [[Discussioni progetto:Informatica#Interrupt --> Interruzione?]].'''}}
{{F|sistemi operativi|febbraio 2013}} Un''''interruzione''' (in [[Lingua inglese|inglese]]: ''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]].
==
Ci sono due tipi di interruzioni:
*Interruzioni hardware, generate da dispositivi esterni alla [[CPU]] (periferiche), che hanno il compito di comunicare il verificarsi di eventi esterni, di solito dispositivi di [[input/output]]. Una interruzione [[hardware]] costringe il [[processore]] a memorizzare il suo stato di esecuzione fino all'arrivo dell'interruzione e ad iniziare l'esecuzione della [[Funzione (informatica)|funzione]] ([[commutazione di contesto]]) che esegue il compito richiesto dall'interruzione, 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.
*Interruzioni software, delle istruzioni [[Linguaggio assembly|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 operativo.
==
Le interruzioni vengono utilizzati principalmente quando:
Riga 16 ⟶ 17:
*viene effettuato il [[debugging|debug]] di un'applicazione. Durante la fase di sviluppo di un [[software|programma]] è frequente la necessità di testare il funzionamento di quanto creato per scoprire e risolvere l'origine dei malfunzionamenti. Il debugging consente di seguire l'evoluzione del programma istruzione per istruzione, dando la possibilità di interrompere il processo in qualunque momento per verificare il valore di ogni parametro. Per effettuare questo è necessario che il [[codice sorgente]] sia compilato in maniera apposita, in questo caso se il programma viene eseguito sotto il controllo di un apposito programma, il [[debugger]], ad ogni istruzione viene eseguita un'interruzione che consente di verificare se in tale punto è richiesta l'interruzione del processo.
==
Nel momento in cui il processore riceve una richiesta di interruzione, vi è l'esigenza di determinare quale sia il dispositivo ad averla generata. Vi sono tre sistemi principali per farlo:
*Linee di interruzione multiple.
|