Comutarea contextului

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare

În calcul , comutarea contextului (context switch în engleză) este o operație specială a sistemului de operare care păstrează starea procesului sau a firului , astfel încât să poată fi reluată în altă perioadă. Această activitate permite proceselor multiple să partajeze CPU și este, de asemenea, o caracteristică esențială pentru sistemele de operare multitasking .

Semnificația „comutatorului de context” variază în funcție de tipul de activitate în care se desfășoară.

În multitasking, ne referim la un proces care salvează starea unui program care rulează pentru a face loc unui alt program pentru a rula, oferind noului program resursele necesare.

O altă semnificație a comutatorului de context este că, din cauza întreruperilor , adică atunci când un proces necesită utilizarea unui disc sau a unei activități de I / O, CPU este obligat să oprească procesul în execuție, să-și salveze starea cu toate informațiile din registre și altele informații diverse și să ocupe CPU în satisfacerea cererii de întrerupere.

În plus, există unele sisteme de operare care necesită utilizarea comutatorului context pentru a muta procesele între modul utilizator și modul kernel.

În cele din urmă, acest proces poate avea impact negativ asupra performanței sistemului.

Descriere

Etapele procesului

În primul rând, comutatorul este cauzat de o întrerupere care obligă sistemul să-și suspende activitatea pentru a executa o rutină de nucleu: sistemul trebuie să salveze contextul procesului curent. Contextul unui proces în desfășurare este reprezentat de diferite date, inclusiv contorul programului și conținutul registrelor generale sau starea procesului, astfel încât execuția să poată fi reluată ulterior. Aceste informații despre starea procesului sunt de obicei salvate pe PCB .

Starea curentă a procesorului este apoi salvată ; ulterior, va fi efectuată o restaurare corespunzătoare a statutului pentru a relua procesarea întreruptă. Trecerea la un nou proces implică această operațiune de salvare și restabilirea ulterioară a contextului noului proces pe care doriți să îl executați pe CPU; în mod evident, va fi ales din coada gata , conform politicii sale de planificare , și va accesa PCB-ul său pentru a-și restabili starea în procesor . Comutarea contextuală este pură.

Cost

Comutarea contextuală necesită o capacitate de calcul foarte intensă și mulți dintre dezvoltatorii de sisteme de operare optimizează utilizarea acestora cu scopul de a face utilizarea resurselor mai puțin risipitoare. Punerea la dispoziție a resurselor computerizate de la un proces la altul necesită o anumită cantitate de timp și sarcini de administrare a resurselor, cum ar fi - salvarea și încărcarea registrelor, maparea memoriei, actualizarea tabelelor și listelor etc.

Ceea ce este de fapt implicat în rularea comutatorului context depinde de mulți factori, cum ar fi arhitectura familiei de procesoare, sistemul de operare utilizat și numărul de resurse partajate.

Firele aparținând aceluiași proces împărtășesc mai multe resurse decât alte procese care nu cooperează; de exemplu, în kernel-ul Linux, schimbul de context implică activitățile de - schimb de registre, indicatorul stivei (pointerul către stiva care se referă la procedura unui program), contorul programului , actualizarea tamponului de traducere lookaside (TLB) și încărcarea tabelului de pagini a următorului proces de rulat (cu excepția cazului în care vechiul proces partajează memoria cu cel nou folosind secțiunea de memorie în care procedura este încărcată și secțiunea de date este remapată).

Elemente conexe

Informatică Portal IT : accesați intrările Wikipedia care se ocupă cu IT