logo

Contextwisseling in besturingssysteem (besturingssysteem)

Contextwisseling is een techniek of methode die door het besturingssysteem wordt gebruikt om een ​​proces van de ene toestand naar de andere te schakelen om zijn functie uit te voeren met behulp van CPU's in het systeem. Bij het wisselen van prestatie in het systeem slaat het de status van het oude lopende proces op in de vorm van registers en wijst het de CPU toe aan een nieuw proces om zijn taken uit te voeren. Terwijl een nieuw proces in het systeem wordt uitgevoerd, moet het vorige proces in een gereedstaande wachtrij wachten. De uitvoering van het oude proces begint op het punt waar een ander proces het heeft gestopt. Het definieert de kenmerken van een multitasking besturingssysteem waarin meerdere processen dezelfde CPU delen om meerdere taken uit te voeren zonder dat er extra processors in het systeem nodig zijn.

c++ prototypefunctie

De behoefte aan contextwisseling

Een contextwisseling helpt om één enkele CPU over alle processen te delen om de uitvoering ervan te voltooien en de taakstatus van het systeem op te slaan. Wanneer het proces in het systeem opnieuw wordt geladen, begint de uitvoering van het proces op hetzelfde punt waar er een conflict is.

Hieronder volgen de redenen die de noodzaak van contextwisseling in het besturingssysteem beschrijven.

  1. Het overschakelen van het ene proces naar het andere proces zit niet direct in het systeem. Een contextwisseling helpt het besturingssysteem dat tussen de meerdere processen schakelt, om de CPU-bronnen te gebruiken om zijn taken uit te voeren en zijn context op te slaan. We kunnen de service van het proces later op hetzelfde punt hervatten. Als we de gegevens of context van het momenteel lopende proces niet opslaan, kunnen de opgeslagen gegevens verloren gaan tijdens het schakelen tussen processen.
  2. Als een proces met hoge prioriteit in de gereedstaande wachtrij terechtkomt, wordt het momenteel lopende proces afgesloten of gestopt door een proces met hoge prioriteit om zijn taken in het systeem te voltooien.
  3. Als een lopend proces I/O-bronnen in het systeem vereist, zal het huidige proces worden omgeschakeld door een ander proces om de CPU's te gebruiken. En wanneer aan de I/O-vereiste is voldaan, gaat het oude proces in de gereed-status om te wachten op uitvoering ervan in de CPU. Contextwisseling slaat de status van het proces op om zijn taken in een besturingssysteem te hervatten. Anders moet het proces de uitvoering opnieuw starten vanaf het initialenniveau.
  4. Als er interrupts optreden tijdens het uitvoeren van een proces in het besturingssysteem, wordt de processtatus opgeslagen als registers met behulp van contextwisseling. Na het oplossen van de interrupts schakelt het proces over van een wachtstatus naar een gereedstatus om de uitvoering later te hervatten op hetzelfde punt waar het onderbroken besturingssysteem plaatsvindt.
  5. Door contextwisseling kan een enkele CPU meerdere procesaanvragen tegelijkertijd verwerken zonder dat er extra processors nodig zijn.

Voorbeeld van contextwisseling

Stel dat er meerdere processen zijn opgeslagen in een Process Control Block (PCB). Eén proces voert de status uit om zijn taak uit te voeren met behulp van CPU's. Terwijl het proces wordt uitgevoerd, arriveert er een ander proces in de gereedwachtrij, dat een hoge prioriteit heeft bij het voltooien van zijn taak met behulp van CPU. Hier hebben we contextwisseling gebruikt die het huidige proces omschakelt naar het nieuwe proces waarbij de CPU zijn taken moet voltooien. Tijdens het wisselen van proces slaat een contextschakelaar de status van het oude proces op in registers. Wanneer het proces opnieuw in de CPU wordt geladen, begint het met de uitvoering van het proces wanneer het nieuwe proces het oude proces stopt. Als we de status van het proces niet opslaan, moeten we de uitvoering ervan op het beginniveau starten. Op deze manier helpt contextwisseling het besturingssysteem om tussen de processen te schakelen, het proces op te slaan of opnieuw te laden wanneer het zijn taken moet uitvoeren.

Context-switching-triggers

Hieronder volgen de drie typen triggers voor contextomschakeling:

  1. Onderbreekt
  2. Multitasking
  3. Kernel/Gebruiker-schakelaar

Onderbreekt : Een CPU vraagt ​​om de gegevens van een schijf te lezen, en als er sprake is van interrupts, schakelt de contextwisseling automatisch een deel van de hardware uit dat minder tijd nodig heeft om de interrupts af te handelen.

Multitasking : Een contextwisseling is het kenmerk van multitasking waardoor het proces van de CPU kan worden geschakeld, zodat een ander proces kan worden uitgevoerd. Wanneer u van proces wisselt, wordt de oude status opgeslagen, zodat de uitvoering van het proces op hetzelfde punt in het systeem kan worden hervat.

Kernel/gebruikerschakelaar : Het wordt gebruikt in de besturingssystemen wanneer er wordt geschakeld tussen de gebruikersmodus en de kernel/gebruikersmodus.

Wat is de printplaat?

Een PCB (Process Control Block) is een datastructuur die in het besturingssysteem wordt gebruikt om alle gegevensgerelateerde informatie voor het proces op te slaan. Wanneer bijvoorbeeld een proces in het besturingssysteem wordt aangemaakt, bijgewerkte informatie over het proces, schakelinformatie over het proces, beëindigd proces op de PCB.

np waar

Stappen voor het wisselen van context

Er zijn verschillende stappen die betrokken zijn bij het veranderen van de context van de processen. Het volgende diagram geeft de contextomschakeling weer van twee processen, P1 naar P2, wanneer een interrupt, I/O-behoeften of op prioriteit gebaseerd proces plaatsvindt in de gereedstaande wachtrij van PCB.

Wat is de contextwisseling in het besturingssysteem

Zoals we in het diagram kunnen zien, draait het P1-proces aanvankelijk op de CPU om zijn taak uit te voeren, en tegelijkertijd is een ander proces, P2, gereed. Als er een fout of onderbreking is opgetreden of als het proces invoer/uitvoer vereist, schakelt het P1-proces over van de status Actief naar de Wachtstatus. Voordat de status van proces P1 wordt gewijzigd, slaat contextwisseling de context van proces P1 op in de vorm van registers en de programmateller voor de PCB1 . Daarna laadt het de status van het P2-proces vanuit de gereedstatus van de PCB2 naar de lopende staat.

Bij het overschakelen van proces P1 naar proces 2 worden de volgende stappen genomen:

  1. Ten eerste moet de contextwisseling de status van proces P1 opslaan in de vorm van de programmateller en de registers op de PCB (Program Counter Block), die zich in de actieve status bevindt.
  2. Werk nu PCB1 bij om P1 te verwerken en verplaatst het proces naar de juiste wachtrij, zoals de gereedwachtrij, I/O-wachtrij en wachtwachtrij.
  3. Daarna komt een ander proces in de actieve status, of we kunnen vanuit de gereed-status een nieuw proces selecteren dat moet worden uitgevoerd, of het proces heeft een hoge prioriteit om zijn taak uit te voeren.
  4. Nu moeten we de PCB (Process Control Block) voor het geselecteerde proces P2 bijwerken. Het omvat het omschakelen van de processtatus van gereed naar actief of van een andere status zoals geblokkeerd, afsluiten of onderbreken.
  5. Als de CPU proces P2 al uitvoert, moeten we de status van proces P2 verkrijgen om de uitvoering ervan te hervatten op hetzelfde tijdstip waarop de systeemonderbreking plaatsvindt.

Op soortgelijke wijze wordt proces P2 uitgeschakeld van de CPU, zodat proces P1 de uitvoering kan hervatten. Het P1-proces wordt opnieuw geladen van PCB1 naar de actieve status om zijn taak op hetzelfde punt te hervatten. Anders gaat de informatie verloren en wanneer het proces opnieuw wordt uitgevoerd, begint het met de uitvoering op het oorspronkelijke niveau.