Junior
Cos'è il cambio di contesto?
sobes.tech AI
Risposta dell'AI
Il cambio di contesto (Context Switching) è il processo di salvataggio dello stato di un processo (o thread) e di ripristino dello stato di un altro processo (o thread) dal sistema operativo. Questo permette a più processi di condividere un singolo processore.
L'algoritmo include i seguenti passaggi:
- Salvataggio del contesto attuale: I registri del processore, il contatore delle istruzioni (PC), lo stato dello stack e altre informazioni sul processo corrente vengono salvati nel suo descrittore (PCB - Process Control Block).
- Selezione del processo successivo: Il pianificatore del sistema operativo sceglie il prossimo processo da eseguire.
- Ripristino del contesto: Lo stato salvato del processo selezionato viene caricato dal suo PCB nei registri del processore.
I costi (overhead) del cambio di contesto includono:
- Tempo dedicato a salvare e ripristinare lo stato.
- Perdita di efficienza a causa di cache misses, poiché la cache riempita con i dati di un processo diventa irrilevante per un altro.
- Costi di esecuzione delle istruzioni del pianificatore.
Esempio:
Supponiamo di avere due processi, A e B, in esecuzione su un singolo core di CPU.
// Inizialmente, viene eseguito il Processo A
// Il Processo A utilizza le risorse della CPU
// Si verifica un evento che richiede un cambio, ad esempio, l'expiry del quantum di tempo del Processo A
// Lo stato del Processo A (registri, PC) viene salvato
// Il sistema operativo seleziona il Processo B per l'esecuzione
// Lo stato del Processo B viene caricato
// Il Processo B inizia l'esecuzione
Il cambio di contesto è un meccanismo fondamentale del multitasking nei sistemi operativi, che permette di creare l'illusione di esecuzione parallela di più processi su un singolo processore fisico.