Junior
Ce este schimbarea de context?
sobes.tech AI
Răspuns de la AI
Schimbarea de context (Context Switching) este procesul de salvare a stării unui proces (sau thread) și de restaurare a stării altui proces (sau thread) de către sistemul de operare. Acest lucru permite mai multor procese să împartă același procesor.
Algoritmul include următorii pași:
- Salvarea contextului curent: Registrele procesorului, contorul de instrucțiuni (PC), starea stivei și alte informații despre procesul curent sunt salvate în descriptorul său (PCB - Blocul de Control al Procesului).
- Selectarea următorului proces: Planificatorul sistemului de operare alege următorul proces pentru execuție.
- Restaurarea contextului: Starea salvată a procesului selectat este încărcată din PCB în registrele procesorului.
Costurile (overhead) ale schimbării de context includ:
- Timpul dedicat salvării și restaurării stării.
- Pierderea eficienței din cauza cache misses, deoarece cache-ul umplut cu date de un proces devine irelevant pentru altul.
- Costurile de executare a instrucțiunilor planificatorului.
Exemplu:
Să presupunem că avem două procese, A și B, care rulează pe un singur nucleu de procesor.
// Inițial, se execută Procesul A
// Procesul A utilizează resursele CPU
// Are loc un eveniment care necesită o schimbare, de exemplu, expirarea quantum-ului de timp al Procesului A
// Starea Procesului A (registre, PC) este salvată
// Sistemul de operare selectează Procesul B pentru execuție
// Starea Procesului B este încărcată
// Procesul B începe execuția
Schimbarea de context este un mecanism fundamental al multitasking-ului în sistemele de operare, permițând crearea iluziii de execuție paralelă a mai multor procese pe un singur procesor fizic.