Ecco un'illustrazione semplificata:
`` `
+-----------------++-----------------++-----------------+
| Processo a | <-> | Scheduler di processo | <-> | Processo b |
+-----------------++-----------------++-----------------+
^ |
| V
+-------------------------------------------------+
Interruttore di contesto
`` `
Spiegazione:
1. Il processo A è in esecuzione: La CPU sta eseguendo le istruzioni per il processo A. I registri della CPU, il contatore del programma (PC - che indicano l'istruzione successiva) e le informazioni sulla gestione della memoria (come le tabelle di pagina) riflettono tutti lo stato del processo A.
2. Switch di contesto avviato: Un interrupt (ad es. Timer Interrupt, I/O Completion) o una decisione di pianificazione fa intervenire lo scheduler del sistema operativo.
3. Stato di processo A salvato: Lo scheduler consente di risparmiare lo stato completo del processo A (registri della CPU, PC, informazioni sulla gestione della memoria) a un blocco di controllo del processo (PCB), una struttura di dati in memoria. Pensa al PCB come un'istantanea del processo.
4. Processo B Selezionato: Lo scheduler seleziona il processo successivo da eseguire, dire il processo B, in base a vari algoritmi di pianificazione (ad esempio, round-robin, basato su priorità).
5. Stato del processo B caricato: Lo scheduler carica lo stato salvato del processo B (dal suo PCB) nei registri della CPU, PC e unità di gestione della memoria.
6. Processo B eseguono: La CPU ora esegue le istruzioni per il processo B.
Questo processo si ripete continuamente, consentendo a più processi di condividere il tempo della CPU, creando l'illusione dell'esecuzione parallela (concorrenza). Più veloce è lo switch di contesto, più fluido l'esperienza multitasking. Tuttavia, il cambio di contesto ha un po 'di sovraccarico.
hardware © www.354353.com