Differenza tra Chiamata di sistema e Interrupt in informatica

Differenza tra Chiamata di sistema e Interrupt in informatica

In informatica, un tipico processore esegue le istruzioni una per una. Ma ci possono essere occasioni in cui il processore deve fermarsi temporaneamente e mantenere l’istruzione corrente ed eseguire qualche altro programma o segmento di codice (che risiede in qualche altro posto). Dopo aver fatto ciò, il processore torna alla normale esecuzione e continua dal punto in cui era stato interrotto. Una chiamata di sistema e un’interrupt permettono queste occasioni. Una chiamata di sistema è una chiamata a una subroutine incorporata nel sistema. Un interrupt invece è un’interruzione del controllo del programma causata da eventi hardware esterni.

Chiamata di sistema

Le chiamate di sistema (in inglese System Call) forniscono ai programmi in esecuzione sul computer un’interfaccia per parlare con il sistema operativo. Quando un programma ha bisogno di richiedere un servizio (per il quale non dispone dell’autorizzazione stessa) dal kernel del sistema operativo, utilizza una chiamata di sistema. I processi a livello utente non hanno le stesse autorizzazioni dei processi che interagiscono direttamente con il sistema operativo. Ad esempio, per comunicare con un dispositivo I/O esterno o per interagire con altri processi, un programma deve utilizzare le chiamate di sistema.

Interrupt

Durante la normale esecuzione di un programma per computer, potrebbero verificarsi eventi che possono causare l’arresto temporaneo della CPU. Eventi come questo sono chiamati interrupt (o in intaliano interruzioni). Gli interrupt possono essere causati da errori software o hardware. Gli interrupt hardware sono chiamati (semplicemente) interrupt, mentre gli interrupt software sono chiamati eccezioni o trap. Una volta che viene generato un interrupt (software o hardware), il controllo viene trasferito a una speciale subroutine chiamata ISR (Interrupt Service Routine) che può gestire le condizioni che vengono sollevate dall’interrupt.

D’altro canto, il termine Interrupt è solitamente riservato agli interrupt hardware. Sono interruzioni del controllo del programma causate da eventi hardware esterni. Qui, esterno significa esterno alla CPU .Gli interrupt hardware di solito provengono da molte fonti diverse come chip timer, dispositivi periferici (tastiere, mouse, ecc.), Porte I/O (seriali, parallele, ecc.), Unità disco, clock CMOS, schede di espansione (scheda audio, video carta, ecc.). Ciò significa che gli interrupt hardware non si verificano quasi mai a causa di alcuni eventi relativi al programma in esecuzione. Ad esempio, un evento come la pressione di un tasto sulla tastiera da parte dell’utente o il timeout di un timer hardware interno possono generare questo tipo di interruzione e possono informare la CPU che un determinato dispositivo richiede una certa attenzione. In una situazione del genere la CPU interromperà qualunque cosa stesse facendo (cioè sospende il programma corrente), fornisce il servizio richiesto dal dispositivo e tornerà al programma normale.

Differenza tra Chiamata di sistema e Interrupt in informatica

Differenza tra chiamata di sistema e Interrupt

Di seguito, le differenze principali tra chiamata di sistema e Interrupt in informatica.

La chiamata di sistema è una chiamata a una subroutine incorporata nel sistema, mentre Interrupt è un evento, che fa sì che il processore sospenda temporaneamente l’esecuzione corrente. Tuttavia, una delle principali differenze è che le chiamate di sistema sono sincrone, mentre gli interrupt non lo sono. Ciò significa che le chiamate di sistema avvengono a un orario prestabilito (generalmente determinato dal programmatore), ma possono verificarsi interruzioni in qualsiasi momento a causa di un evento imprevisto come la pressione di un tasto sulla tastiera da parte dell’utente. Pertanto, ogni volta che si verifica una chiamata di sistema, il processore deve solo ricordare dove tornare, ma in caso di interruzione, il processore deve ricordare sia il luogo in cui tornare sia lo stato del sistema. A differenza di una chiamata di sistema, un interrupt di solito non ha nulla a che fare con il programma corrente.

Pubblicato da Vito Lavecchia

Lavecchia Vito Ingegnere Informatico (Politecnico di Bari) Email: [email protected] Sito Web: https://vitolavecchia.altervista.org

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *