Commutazione di contesto: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Etichette: Modifica da mobile Modifica da web per mobile
Rivedo la voce
Riga 1:
{{F|sistema operativo|febbraio 2013}}
{{S|sistema operativo}}
In [[informatica]] la '''commutazione di contesto''' (in inglese '''context switch''') è ununa particolare statooperazione del [[sistema operativo]] duranteche il quale si interrompecambia il [[Processo (informatica)| processo]] correntemente in [[esecuzione (informatica)|esecuzione]] su una delle [[CPU]].
Questo avviene all'occorrenza di una qualsiasi interruzione dovuta allo scheduler, ma anche a interruzioni dovute a errori di altri processi o segnali;
viene effettuato per salvare tutte le informazioni necessarie al riavvio successivo del processo ( per esempio registri di CPU, stato del processo, indirizzo tabelle di paginazione...).
Permette a più processi di condividere una stessa CPU, ed è utile quindi sia nei [[uniprocessor| sistemi monoprocessore]], perché consente di eseguire più programmi contemporaneamente, sia nell'ambito del [[calcolo parallelo]], perché consente un migliore [[load balancing|bilanciamento del carico]].
Va ben distinto dal cambio di processo, operazione più elaborata e costosa sia in termini di tempo che risorse.
 
== Fasi della commutazione di contesto ==
Prima di tutto la commutazione avvieneviene all'occorrenzacausata dida un'interruzione che forza il sistema a sospendere il proprio lavoro per eseguire una routine del kernel: il sistema deve '''salvare il contesto''' del processo corrente.
 
Il contesto di un processo in [[esecuzione (informatica)|esecuzione]] è rappresentato da vari dati, tra cui il [[program counter]] ed il contenuto dei registri generali o lo stato del processo, in modo che l'esecuzione possa essere ripresa in seguito. Queste informazioni sullo stato del processo vengono generalmente salvate nel [[Process control block| PCB del processo]].
 
Successivamente si esegue il '''salvataggio dello stato''' corrente della CPU; in seguito isi effettuerà un corrispettivo '''ripristino dello stato''' per poter riprendere l'elaborazione interrotta.
 
Il passaggio ad un nuovo processo implica tale operazione di salvataggio ed il successivo ripristino dedel contesto del nuovo processo che si vuole porre in esecuzione sulla CPU; esso sarà ovviamente scelto dalla [[coda pronti]], in base alla propria [[scheduling|politica di scheduling]], e accederà al suo PCB per ripristinare il suo stato nel [[processore]].
 
Il cambio di contesto è puro overhead.