Differenza Tra Chiamata Di Sistema E Interruzione

Differenza Tra Chiamata Di Sistema E Interruzione
Differenza Tra Chiamata Di Sistema E Interruzione

Video: Differenza Tra Chiamata Di Sistema E Interruzione

Video: Differenza Tra Chiamata Di Sistema E Interruzione
Video: Sistemi Operativi ITA 07: approfondimento - system calls - prima parte 2024, Novembre
Anonim

Chiamata di sistema vs interruzione

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'interruzione sono queste occasioni. Una chiamata di sistema è una chiamata a una subroutine incorporata nel sistema. Un interrupt è un'interruzione del controllo del programma causata da eventi hardware esterni.

Cos'è una chiamata di sistema?

Le chiamate di sistema forniscono ai programmi in esecuzione sul computer un'interfaccia per dialogare 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.

Cos'è un 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 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 sollevate dall'interruzione.

Come accennato in precedenza, 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 un timeout del timer hardware interno può aumentare questo tipo di interruzione e può informare la CPU che un determinato dispositivo necessita di 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 normale programma.

Qual è la differenza tra System Call e Interrupt?

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.

Raccomandato: