Che cos’è il cambio di contesto?

Uno dei più grandi passi avanti nella progettazione e nel funzionamento delle unità di elaborazione centrale (CPU) è arrivato quando i progettisti dei sistemi operativi dei computer hanno sviluppato tecniche per consentire agli utenti di svolgere più attività. Il multitasking in riferimento ai computer è la pratica di eseguire due o più programmi contemporaneamente. Dal punto di vista dell’utente finale, questo potrebbe non sembrare complicato o inverosimile, ma in realtà rappresenta un notevole passo avanti nella progettazione del sistema. Nel multitasking, la CPU deve destreggiarsi tra tutte le operazioni per i diversi programmi attivi, registrando dove si trova con ciascun programma mentre l’utente passa avanti e indietro tra di loro. Il cambio di contesto è il processo che consente alla CPU di ricordare e ripristinare gli stati per una varietà di programmi attivi, consentendole di completare questo atto di giocoleria.

Durante il cambio di contesto, la CPU elimina qualsiasi programma che sta attualmente gestendo, memorizzando la posizione specifica in cui si trovava in quel programma in modo che possa riprendere i suoi progressi in seguito. Per metterlo in prospettiva, il cambio di contesto è un po’ come leggere più libri contemporaneamente, passando costantemente avanti e indietro tra di loro ricordando sempre i numeri di pagina per ciascuno. Le informazioni sul “numero di pagina” per i programmi durante un’operazione di cambio di contesto sono mantenute dal blocco di controllo del processo (PCB). Il PCB è talvolta indicato anche come “switchframe”. Queste informazioni vengono archiviate in memoria all’interno della CPU effettiva, fino a quando non sono nuovamente necessarie.

Il cambio di contesto si verifica durante tre possibili situazioni: gestione degli interrupt, multitasking e cambio utente. Nella gestione degli interrupt, un altro programma “interrompe” il programma corrente mentre è in esecuzione. Una volta che la CPU riceve l’interruzione, esegue un cambio di contesto per destreggiarsi tra il programma in esecuzione e il programma che richiede dati immediati. Nel multitasking, la CPU si sposta avanti e indietro tra i programmi, assegnando a ciascuno un intervallo di tempo di elaborazione ed eseguendo un’operazione di cambio di contesto per cambiare tra i due. Per alcuni sistemi operativi, viene eseguito anche un cambio di contesto durante un cambio di utente per il sistema operativo, sebbene ciò non sia espressamente richiesto.

Il sistema operativo o l’hardware del computer possono controllare il cambio di contesto. Alcuni sistemi operativi moderni e sono progettati per controllare il cambio di contesto attraverso il sistema operativo stesso, ignorando qualsiasi supporto hardware integrato per la procedura. Ciò consente al sistema operativo di salvare più informazioni durante un cambio di contesto, consentendogli di conservare più informazioni sul cambio.