Junior
Wat is contextwisseling?
sobes.tech AI
Antwoord van AI
Context Switching (Context Switching) is het proces waarbij de toestand van een proces (of thread) wordt opgeslagen en de toestand van een ander proces (of thread) wordt hersteld door het besturingssysteem. Dit stelt meerdere processen in staat om één en dezelfde processor te delen.
Het algoritme omvat de volgende stappen:
- Opslaan van de huidige context: De registers van de processor, de instructie-teller (PC), de stackstatus en andere informatie over het huidige proces worden opgeslagen in zijn descriptor (PCB - Process Control Block).
- Selectie van het volgende proces: De scheduler van het besturingssysteem kiest het volgende proces om uit te voeren.
- Herstellen van de context: De opgeslagen toestand van het geselecteerde proces wordt geladen uit zijn PCB in de registers van de processor.
De overheadkosten van context switching omvatten:
- Tijd die wordt besteed aan het opslaan en herstellen van de toestand.
- Verlies van efficiëntie door cache misses, omdat de cache gevuld met gegevens van één proces niet relevant wordt voor een ander.
- Kosten voor het uitvoeren van de scheduler-instructies.
Voorbeeld:
Stel dat we twee processen hebben, A en B, die op één CPU-kern draaien.
// Aanvankelijk wordt proces A uitgevoerd
// Proces A gebruikt de CPU-resources
// Er gebeurt een gebeurtenis die een wissel vereist, bijvoorbeeld, de quantum van proces A verloopt
// De toestand van proces A (registers, PC) wordt opgeslagen
// Het besturingssysteem kiest proces B om uit te voeren
// De toestand van proces B wordt geladen
// Proces B begint uit te voeren
Context switching is een fundamenteel mechanisme van multitasking in besturingssystemen, dat het mogelijk maakt de illusie te creëren van gelijktijdige uitvoering van meerdere processen op één fysieke processor.