Sobes.tech
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:

  1. 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).
  2. Selectarea următorului proces: Planificatorul sistemului de operare alege următorul proces pentru execuție.
  3. 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.