Kontextväxling är en teknik eller metod som används av operativsystemet för att växla en process från ett tillstånd till ett annat för att utföra dess funktion med hjälp av processorer i systemet. När växling utförs i systemet, lagrar den den gamla pågående processens status i form av register och tilldelar CPU:n en ny process för att utföra sina uppgifter. Medan en ny process körs i systemet måste den tidigare processen vänta i en klar kö. Körningen av den gamla processen startar vid den punkt där en annan process stoppade den. Den definierar egenskaperna hos ett multitasking-operativsystem där flera processer delade samma CPU för att utföra flera uppgifter utan behov av ytterligare processorer i systemet.
Behovet av kontextväxling
En kontextväxling hjälper till att dela en enda CPU över alla processer för att slutföra dess exekvering och lagra systemets uppgiftsstatus. När processen laddas om i systemet, startar exekveringen av processen vid samma punkt där det finns konflikter.
Följande är skälen som beskriver behovet av kontextväxling i operativsystemet.
- Bytet av en process till en annan process är inte direkt i systemet. En kontextväxling hjälper operativsystemet som växlar mellan de flera processerna att använda CPU:ns resurs för att utföra sina uppgifter och lagra dess sammanhang. Vi kan återuppta driften av processen vid samma tidpunkt senare. Om vi inte lagrar den aktuella processens data eller sammanhang kan den lagrade data gå förlorad när du växlar mellan processer.
- Om en process med hög prioritet hamnar i färdigkön, kommer den process som för närvarande körs att stängas av eller stoppas av en process med hög prioritet för att slutföra sina uppgifter i systemet.
- Om någon pågående process kräver I/O-resurser i systemet, kommer den aktuella processen att bytas av en annan process för att använda processorerna. Och när I/O-kravet är uppfyllt, går den gamla processen in i ett klart tillstånd för att vänta på dess exekvering i CPU:n. Kontextväxling lagrar processens tillstånd för att återuppta dess uppgifter i ett operativsystem. Annars måste processen starta om körningen från initialnivån.
- Om några avbrott inträffar när en process körs i operativsystemet, sparas processstatusen som register med hjälp av kontextväxling. Efter att ha löst avbrotten växlar processen från ett vänteläge till ett redoläge för att återuppta dess exekvering vid samma punkt senare, där det avbrutna operativsystemet inträffar.
- En kontextväxling tillåter en enda CPU att hantera flera processförfrågningar samtidigt utan att behöva några ytterligare processorer.
Exempel på kontextväxling
Antag att flera processer lagras i ett Process Control Block (PCB). En process kör tillstånd för att utföra sin uppgift med användning av processorer. När processen körs kommer en annan process i redo-kön, som har hög prioritet att slutföra sin uppgift med CPU. Här använde vi kontextväxling som växlar den nuvarande processen med den nya processen som kräver att processorn slutför sina uppgifter. Medan du byter processen sparar en kontextväxling statusen för den gamla processen i register. När processen laddas om i CPU:n startar den exekveringen av processen när den nya processen stoppar den gamla processen. Om vi inte sparar processens tillstånd måste vi börja köra den på den initiala nivån. På detta sätt hjälper kontextväxling operativsystemet att växla mellan processerna, lagra eller ladda om processen när den kräver att dess uppgifter utförs.
Kontextbyte utlöser
Följande är de tre typerna av kontextväxlingsutlösare enligt följande.
java sträng längd
- Avbryter
- Göra flera saker samtidigt
- Kärna/användaromkopplare
Avbryter : En CPU begär att data ska läsas från en disk, och om det finns några avbrott byter kontextväxlingen automatiskt en del av hårdvaran som kräver mindre tid för att hantera avbrotten.
Göra flera saker samtidigt : En kontextväxling är egenskapen för multitasking som gör att processen kan bytas från CPU så att en annan process kan köras. När processen byts sparas det gamla tillståndet för att återuppta processens exekvering vid samma punkt i systemet.
Kärna/användarväxel : Det används i operativsystemen när man växlar mellan användarläget och kärnan/användarläget utförs.
Vad är PCB?
Ett PCB (Process Control Block) är en datastruktur som används i operativsystemet för att lagra all datarelaterad information till processen. Till exempel, när en process skapas i operativsystemet, uppdaterad information om processen, byte av information om processen, avslutade processen i PCB.
Steg för kontextväxling
Det finns flera steg involverade i sammanhangsbyte av processerna. Följande diagram representerar kontextväxlingen av två processer, P1 till P2, när ett avbrott, I/O-behov eller prioritetsbaserad process inträffar i den färdiga kön av PCB.
Som vi kan se i diagrammet körs P1-processen initialt på CPU:n för att utföra sin uppgift, och samtidigt är en annan process, P2, i redo-tillståndet. Om ett fel eller avbrott har inträffat eller om processen kräver inmatning/utmatning, växlar P1-processen sitt tillstånd från körning till vänteläge. Innan tillståndet för processen Pl ändras, sparar kontextväxling sammanhanget för processen Pl i form av register och programräknaren till PCB1 . Efter det laddar den tillståndet för P2-processen från redo-läget för PCB2 till körläge.
tostring i java
Följande steg tas när du byter Process P1 till Process 2:
- Först måste denna kontextväxling spara tillståndet för processen Pl i form av programräknaren och registren till PCB (Program Counter Block), som är i drifttillstånd.
- Uppdatera nu PCB1 till process P1 och flyttar processen till lämplig kö, såsom klarkön, I/O-kön och väntekön.
- Efter det hamnar en annan process i körtillståndet, eller så kan vi välja en ny process från redoläget, som ska exekveras, eller så har processen hög prioritet för att utföra sin uppgift.
- Nu måste vi uppdatera PCB (Process Control Block) för den valda processen P2. Det inkluderar att byta processtillstånd från redo till körläge eller från ett annat tillstånd som blockerad, avsluta eller avbryta.
- Om CPU:n redan kör process P2 måste vi få status för process P2 för att återuppta dess exekvering vid samma tidpunkt där systemavbrottet inträffar.
På liknande sätt stängs process P2 av från CPU så att processen P1 kan återuppta exekvering. P1-processen laddas om från PCB1 till körläge för att återuppta sin uppgift vid samma punkt. Annars går informationen förlorad och när processen körs igen börjar den köras på den initiala nivån.