Sto leggendo l'articolo di Wikipedia per la gestione dei processi . Il mio focus è su Linux. Non riesco a capire la relazione e le differenze tra chiamata di sistema, passaggio di messaggi e interruzione, nei loro concetti e scopi. Sono tutti per i processi che fanno richieste al kernel per risorse e servizi?
Alcune citazioni dall'articolo e altre:
Esistono due modi possibili per un sistema operativo di riprendere il controllo del processore durante l'esecuzione di un programma in modo che il sistema operativo possa eseguire la disallocazione o l'allocazione:
- Il processo emette una chiamata di sistema (a volte chiamata interruzione software); ad esempio, si verifica una richiesta I / O che richiede di accedere a un file sul disco rigido.
- Si verifica un interrupt di processo; ad esempio, è stato premuto un tasto sulla tastiera oppure è scaduto un timer (utilizzato nel multitasking preventivo).
Esistono due tecniche mediante le quali un programma in esecuzione in modalità utente può richiedere i servizi del kernel:
* System call * Message passing
un interrupt è un segnale asincrono che indica la necessità di attenzione o un evento sincrono nel software che indica la necessità di un cambiamento nell'esecuzione.
Un interrupt di processo fa sì che il processore salvi il suo stato di esecuzione e inizi l'esecuzione di un gestore di interrupt. Gli interrupt software sono di solito implementati come istruzioni nel set di istruzioni, che causano un cambio di contesto a un gestore di interrupt simile a un interrupt di processo.