Sobes.tech
Junior

Mis on konteksti vahetamine?

sobes.tech AI

Vastus AI-lt

Konteksti vahetus (Context Switching) on protsess, mille käigus operatsioonisüsteem salvestab ühe protsessi (või niidi) oleku ja taastab teise protsessi (või niidi) oleku. See võimaldab mitmel protsessil jagada sama protsessorit.

Algoritm hõlmab järgmisi samme:

  1. Praeguse konteksti salvestamine: Protsessori registerid, käskude loendur (PC), virna olek ja muu teave praeguse protsessi kohta salvestatakse selle kirjelduse (PCB - Process Control Block) sisse.
  2. Järgmise protsessi valimine: Operatsioonisüsteemi scheduler valib järgmise protsessi täitmiseks.
  3. Konteksti taastamine: Salvestatud olek valitud protsessist laaditakse protsessori registritesse.

Ülemineku (overhead) kulud hõlmavad:

  • Aega, mis kulub oleku salvestamisele ja taastamisele.
  • Efektiivsuse kaotust cache-misside tõttu, kuna ühe protsessi andmetega täidetud vahemälu muutub teise protsessi jaoks ebaoluliseks.
  • Aega scheduler'i instruktsioonide täitmiseks.

Näide:

Oletame, et meil on kaks protsessi, A ja B, mis töötavad ühel protsessorituumal.

// Alguses töötab protsess A
// Protsess A kasutab CPU ressursse

// Juhtum, mis nõuab ülekatkestust, näiteks protsessi A ajakava lõpp
// Protsessi A olek (registerid, PC) salvestatakse
// OS valib täitmiseks protsessi B
// B olek laaditakse
// B hakkab täitma

Konteksti vahetus on oluline mitutöötluse mehhanism operatsioonisüsteemides, mis võimaldab luua illusiooni paralleelsest mitme protsessi täitmisest ühel füüsilisel protsessoril.