Processtatus - Process state

In een multitasking- computersysteem kunnen processen verschillende toestanden innemen . Deze verschillende toestanden worden mogelijk niet als zodanig herkend door de kernel van het besturingssysteem . Ze zijn echter een nuttige abstractie voor het begrijpen van processen.

Image
De verschillende procestoestanden, weergegeven in een toestandsdiagram , met pijlen die mogelijke overgangen tussen toestanden aangeven - zoals te zien is, zijn sommige processen opgeslagen in het hoofdgeheugen (geel) en sommige zijn opgeslagen in het secundaire geheugen (groen).

Primaire procestoestanden

De volgende typische procestoestanden zijn mogelijk op allerlei computersystemen. In de meeste van deze toestanden worden processen "opgeslagen" in het hoofdgeheugen .

Gemaakt

Wanneer een proces voor het eerst wordt gemaakt, bezet het de status " gemaakt " of " nieuw ". In deze toestand wacht het proces op toelating tot de "gereed" -toestand. Toelating wordt goedgekeurd of uitgesteld door een langdurige of toelating planner . In de meeste desktopcomputersystemen wordt deze toelating meestal automatisch goedgekeurd. Voor real-time besturingssystemen kan deze toelating echter worden uitgesteld. In een realtime systeem kan het toelaten van te veel processen tot de "gereed" -status leiden tot oververzadiging en overbezetting van de systeembronnen, wat leidt tot het onvermogen om procesdeadlines te halen.

Klaar

Een "gereed" of "wachtend" proces is in het hoofdgeheugen geladen en wacht op uitvoering op een CPU (om door de dispatcher of de korte-termijn planner van context naar de CPU te worden geschakeld). Er kunnen op elk punt van de systeemuitvoering veel "gereed" -processen zijn - in een systeem met één processor kan bijvoorbeeld slechts één proces tegelijk worden uitgevoerd, en alle andere "gelijktijdig uitgevoerde" processen wachten op uitvoering.

Een gereedstaande wachtrij of een run-wachtrij wordt gebruikt bij computerplanning . Moderne computers kunnen veel verschillende programma's of processen tegelijkertijd uitvoeren. De CPU kan echter maar één proces tegelijk verwerken. Processen die gereed zijn voor de CPU worden in een wachtrij gehouden voor "gereed" -processen. Andere processen die wachten op een gebeurtenis, zoals het laden van informatie van een harde schijf of wachten op een internetverbinding, staan ​​niet in de wachtrij gereed.

Rennen

Een proces gaat naar de actieve toestand wanneer het wordt gekozen voor uitvoering. De instructies van het proces worden uitgevoerd door een van de CPU's (of cores) van het systeem. Er is maximaal één actief proces per CPU of kern. Een proces kan in een van de twee modi worden uitgevoerd, namelijk kernelmodus of gebruikersmodus .

Kernel-modus

  • Processen in kernelmodus hebben toegang tot zowel: kernel- als gebruikersadressen.
  • De kernelmodus biedt onbeperkte toegang tot hardware, inclusief uitvoering van geprivilegieerde instructies.
  • Diverse instructies (zoals I / O- instructies en stopinstructies) zijn geprivilegieerd en kunnen alleen in kernelmodus worden uitgevoerd.
  • Een systeemoproep van een gebruikersprogramma leidt tot een omschakeling naar de kernelmodus.

Gebruikersmodus

  • Processen in gebruikersmodus hebben toegang tot hun eigen instructies en gegevens, maar niet tot kernelinstructies en gegevens (of die van andere processen).
  • Wanneer het computersysteem wordt uitgevoerd namens een gebruikerstoepassing, bevindt het systeem zich in de gebruikersmodus. Wanneer een gebruikerstoepassing echter een service van het besturingssysteem aanvraagt (via een systeemaanroep ), moet het systeem overschakelen van gebruiker- naar kernelmodus om aan het verzoek te voldoen.
  • De gebruikersmodus vermijdt verschillende catastrofale storingen:
    • Er is een geïsoleerde virtuele adresruimte voor elk proces in de gebruikersmodus.
    • De gebruikersmodus zorgt voor een geïsoleerde uitvoering van elk proces, zodat het geen invloed heeft op andere processen als zodanig.
    • Directe toegang tot een hardwareapparaat is niet toegestaan.

Geblokkeerd

Een proces gaat over naar een geblokkeerde toestand wanneer het niet kan worden voortgezet zonder dat er een externe verandering in de toestand of gebeurtenis plaatsvindt. Een proces kan bijvoorbeeld een oproep naar een I / O-apparaat, zoals een printer, blokkeren als de printer niet beschikbaar is. Processen worden ook vaak geblokkeerd wanneer ze gebruikersinvoer vereisen, of toegang vereisen tot een kritieke sectie die atomair moet worden uitgevoerd. Dergelijke kritieke secties worden beschermd met behulp van een synchronisatieobject, zoals een semafoor of mutex.

Beëindigd

Een proces kan worden beëindigd , hetzij vanuit de "lopende" staat door de uitvoering ervan te voltooien of door expliciet te worden gedood. In elk van deze gevallen gaat het proces naar de status "beëindigd". De onderliggende programma is niet meer uitvoeren, maar het proces blijft in het proces tabel als een zombie proces totdat de bovenliggende proces vraagt het wait systeem oproep om haar te lezen exitstatus , op welk punt het proces van het proces tafel verwijderd, waardoor een einde van het proces levenslang. Als de ouder niet aanroept wait , blijft dit de procestabelinvoer verbruiken (concreet de proces-ID of PID) en veroorzaakt het een bronlek .

Aanvullende processtatussen

Er zijn twee extra statussen beschikbaar voor processen in systemen die virtueel geheugen ondersteunen . In beide toestanden worden processen "opgeslagen" in secundair geheugen (doorgaans een harde schijf ).

Uitgewisseld en wachten

(Ook wel onderbroken en wachtend genoemd .) In systemen die virtueel geheugen ondersteunen, kan een proces worden verwisseld, dat wil zeggen uit het hoofdgeheugen worden verwijderd en door de planner op externe opslag worden geplaatst. Vanaf hier kan het proces worden teruggeschakeld naar de wachtstand.

Uitgewisseld en geblokkeerd

(Ook wel opgeschort en geblokkeerd genoemd .) Processen die zijn geblokkeerd, kunnen ook worden verwisseld. In dit geval wordt het proces zowel uitgewisseld als geblokkeerd, en kan het onder dezelfde omstandigheden weer worden ingewisseld als een uitgewisseld en wachtend proces (hoewel het proces in dit geval naar de geblokkeerde staat gaat en mogelijk nog steeds wacht) voor een hulpmiddel om beschikbaar te komen).

Zie ook

Referenties

  • Hengsten, William (2005). Besturingssystemen: internals en ontwerpprincipes (5e ed.). Prentice Hall. ISBN   0-13-127837-1
Met name hoofdstuk 3, paragraaf 3.2, "procestoestanden", inclusief figuur 3.9 "processtatusovergang met onderbroken toestanden"