Wat is Contextomschakeling in het besturingssysteem?
In het besturingssysteem zijn er gevallen waarin je een proces dat zich in de status running bevindt, terug moet brengen naar een andere status, zoals de status ready of wait/block. Als het lopende proces een I/O operatie wil uitvoeren, dan moet je het proces uit de lopende status halen en het proces in de I/O wachtrij zetten. Soms gebruikt het proces een round-robin scheduling algoritme waarbij na ieder vast tijdsbestek het proces terug moet komen naar de “ready state” vanuit de “running state”. Dus, deze proceswisselingen worden gedaan met behulp van Context Switching. In deze blog zullen we leren over het concept van Context Schakelen in het Operating Systeem en we zullen ook leren over de voor- en nadelen van Context Schakelen. Dus, laten we aan de slag gaan.
Wat is Context Schakelen?
Een context schakelen is een proces waarbij de CPU overschakelt van het ene proces of taak naar een ander. Bij dit verschijnsel wordt de uitvoering van het proces dat zich in de lopende status bevindt, door de kernel opgeschort en wordt een ander proces dat zich in de gereedstatus bevindt, door de CPU uitgevoerd.
Het is een van de essentiële kenmerken van het multitasking-besturingssysteem. De processen worden zo snel geschakeld dat het de gebruiker de illusie geeft dat alle processen tegelijkertijd worden uitgevoerd.
Maar het context switching proces omvat een aantal stappen die moeten worden gevolgd. Je kunt een proces niet direct van de lopende status naar de gereed status schakelen. Je moet de context van dat proces opslaan. Als je de context van een proces P niet opslaat, dan zal na verloop van tijd, als het proces P weer in de CPU komt om uitgevoerd te worden, het proces vanaf het begin beginnen uit te voeren. Maar in werkelijkheid zou het verder moeten gaan vanaf het punt waar het de CPU verliet tijdens zijn vorige uitvoering. Dus moet de context van het proces worden opgeslagen voordat een ander proces in de lopende toestand wordt gebracht.
Een context is de inhoud van de registers en de programmateller van een CPU op een bepaald moment. Contextwisseling kan om de volgende redenen plaatsvinden:
- Wanneer een proces met hoge prioriteit in de gereed-staat komt. In dit geval moet de uitvoering van het lopende proces worden gestopt en moet het proces met een hogere prioriteit de CPU krijgen om te worden uitgevoerd.
- Wanneer een onderbreking optreedt, moet het proces in de lopende status worden gestopt en moet de CPU de onderbreking afhandelen voordat hij iets anders doet.
- Wanneer een overgang tussen de gebruikersmodus en de kernel-modus nodig is, dan moet je de context switching uitvoeren.
stappen betrokken bij Context Switching
Het proces van context switching bestaat uit een aantal stappen. Het volgende diagram toont het proces van contextswitching tussen de twee processen P1 en P2.
In de bovenstaande figuur is te zien dat in eerste instantie proces P1 in de lopende status is en proces P2 in de gereedstatus. Als er nu een onderbreking optreedt, moet proces P1 van de lopende status naar de gereedstatus worden geschakeld nadat de context is opgeslagen, en proces P2 van de gereedstatus naar de lopende status. De volgende stappen worden uitgevoerd:
- Eerst wordt de context van proces P1, d.w.z. het proces in de lopende status, opgeslagen in het procesbesturingsblok van proces P1, d.w.z. PCB1.
- Nu moet PCB1 naar de betreffende wachtrij worden verplaatst, d.w.z.
- Van de gereed-stand, selecteer het nieuwe proces dat moet worden uitgevoerd, d.w.z. het proces P2.
- Nu, update het Proces Control Block van proces P2, d.w.z. PCB2 door de proces-status op lopend te zetten. Als het proces P2 al eerder door de CPU is uitgevoerd, kunt u de positie van de laatst uitgevoerde instructie opvragen, zodat u de uitvoering van P2 kunt hervatten.
- Ook als u het proces P1 opnieuw wilt uitvoeren, moet u dezelfde stappen volgen als hierboven zijn genoemd (van stap 1 t/m 4).
Voor context switching zijn in het algemeen minstens twee processen nodig, en in het geval van het round-robin algoritme kun je context switching met behulp van slechts één proces uitvoeren.
De tijd die gemoeid is met het wisselen van de context van het ene proces door het andere wordt de Context Wisseltijd genoemd.
Voordeel van Context Wisselen
Context Wisselen wordt gebruikt om multitasking te bereiken, d.w.z. multiprogrammeren met tijdsdeling (leer meer over multitasking vanaf hier). Multitasking geeft de gebruiker de illusie dat er meer dan één proces tegelijkertijd wordt uitgevoerd. Maar in werkelijkheid wordt op een bepaald moment slechts één taak uitgevoerd door een processor. Hier gaat het wisselen van context zo snel dat de gebruiker het gevoel heeft dat de CPU meer dan één taak tegelijk uitvoert.
Het nadeel van Contextschakelen
Het nadeel van contextschakelen is dat het enige tijd vergt om van context te wisselen, d.w.z. de contextwisseltijd. Er is tijd nodig om de context op te slaan van een proces dat in de lopende status is en dan de context op te halen van een ander proces dat op het punt staat om in de lopende status te komen. Gedurende die tijd wordt er geen nuttig werk gedaan door de CPU vanuit het gebruikersperspectief. Dus, context switching is pure overhead in deze conditie.
Dat is het voor deze blog. Hopelijk heb je genoten van deze blog.