Ce este schimbarea contextului?

Unul dintre cei mai mari pași înainte în proiectarea și funcționarea unităților centrale de procesare (CPU) a venit atunci când proiectanții sistemelor de operare pentru computere au dezvoltat tehnici care să permită utilizatorilor să facă mai multe sarcini. Multitasking cu referire la computere este practica de a rula două sau mai multe programe în același timp. Din punctul de vedere al utilizatorului final, acest lucru ar putea să nu pară complicat sau exagerat, dar reprezintă de fapt un salt considerabil în proiectarea sistemului. În multitasking, CPU trebuie să jongleze cu toate operațiunile pentru diferitele programe active, înregistrând unde se află cu fiecare program pe măsură ce utilizatorul comută înainte și înapoi între ele. Comutarea contextului este procesul care permite procesorului să-și amintească și să restabilească stări pentru o varietate de programe active, permițându-i să finalizeze acest act de jonglare.

În timpul comutării contextului, procesorul renunță la orice program pe care îl gestionează în prezent, stochând locul specific în care se afla în acel program, astfel încât să își poată relua progresul mai târziu. Pentru a pune asta în perspectivă, schimbarea contextului este un pic ca și citirea mai multor cărți în același timp, comutând constant înainte și înapoi între ele, amintindu-ți mereu numerele de pagină pentru fiecare. Informațiile „numărul paginii” pentru programe în timpul unei operațiuni de comutare de context sunt deținute de blocul de control al procesului (PCB). PCB este uneori denumit și „cadru comutator”. Aceste informații sunt stocate în memorie în CPU-ul actual, până când sunt necesare din nou.

Schimbarea contextului are loc în trei situații posibile: gestionarea întreruperilor, multitasking și schimbarea utilizatorului. În gestionarea întreruperilor, un alt program „întrerupe” programul curent în timp ce acesta rulează. Odată ce CPU primește întreruperea, efectuează o comutare de context pentru a jongla între programul care rulează și programul care solicită date imediate. În multitasking, CPU-ul trece înainte și înapoi între programe, oferind fiecăruia o porțiune de timp de timp de procesare și efectuând o operație de schimbare a contextului pentru a schimba între cele două. Pentru unele sisteme de operare, o schimbare de context este, de asemenea, efectuată în timpul comutării utilizatorului pentru sistemul de operare, deși acest lucru nu este necesar în mod expres.

Fie sistemul de operare, fie hardware-ul computerului poate controla schimbarea contextului. Unele sisteme de operare moderne sunt concepute pentru a controla comutarea contextului prin sistemul de operare în sine, ignorând orice suport hardware încorporat pentru procedură. Acest lucru permite sistemului de operare să salveze mai multe informații în timpul comutării de context, permițându-i să păstreze mai multe informații despre comutare.