Topics: TODO-LINKS


Proces kot pasivna entiteta (shranjena koda / podatki) in aktivna entiteta (program v izvajanju)
Glavni nalogi: lastništvo virov (procesi) in izvajanje kode (niti)
Storitve OS: upravljanje življenj procesov in medprocesna komunikacija

Sestava procesa:

  • programska koda: strojna koda, ki se izvaja na procesorju
  • sklad in kopica: podatki, pomembni za izvajanje (naslovni prostor, ki ga proces uporablja)
  • podatki: ostali podatki
  • deskriptor procesa: nadzorni podatki OS za upravljanje procesa

Življenje procesa

Hierarhija procesov: starš poda poda zahtevo po stvaritvi novega procesa - otroka

Stvaritev procesa:

  • evidenca procesov: PID (identifikator procesa) in PPID (identifikator starša procesa)
  • inicializacija PID, PPID, stanja procesa, podajanje argumentov, priprava pomnilnika, …
  • nalaganje izvršne datoteke: eager - nalaganje celote pred izvajanjem, lazy - po potrebi

Končanje procesa:

  • sprostitev zasedenih virov
  • sprostitev deskriptorja procesa

Stanje procesa:

Nov: tekom stvaritve in inicializacije

Aktiven:

  • pripravljen: pripravljen na izvajanje - čakanje na dodelite procesorja
  • izvajan: dejansko izvajanje na procesorju

Nekativen:

  • čakajoč/blokiran: čakanje na nek dogodek, potreben za nadaljevanje procesa
    Končan: tekom ukinjanja in sprostitve virov

Podatkovne strukture

Seznami pripravljenih, čakajočih, … procesov vsebujejo deskriptorje procesov: jedrna podatkovna strukturam ki hrani nadzorne podatke procesa in omogoča preklapljanje procesov

  • Identiteta: PID in PPID, čas stvarjenja procesa
  • Okolje: argumenti in okoljske spremenljivke
  • Razvrščevalni podatki: stanje, prioriteta, dogodki na katere proces čaka, …
  • Poverjenja: UID in GID, dotopne pravice
  • Izvajalni kontekst: uporabniški in kontrolni registri
  • Kontekst datotečnega sistema: trenutni delovni imenik, seznam odprtih datotek, …