Prosess

Fra IT2
Hopp til: navigasjon, søk

I operativsystemer som støtter multitasking vil det eksistere mange prosesser samtidig. Operativsystemet vil fordele prosessortid til de forskjellige prosessene, da en prosessor bare kan gjøre én ting om gangen.

For å sørge for at forskjellige prosesser ikke kan ødelegge for hverandre vil operativsystemet tildele adskilte minnesegmenter til prosessene. For å la flere prosesser kommunisere på en effektiv måte, tilbyr mange operativsystemer likevel måter for flere prosesser å dele bestemte minneområder.

Prosessmodellen. Viser hvordan prosessoren jobber med flere prosesser som ligger i kø.

Kort fortalt

-sier vi at en prosess er et program under utførelse. En prosess består av følgende komponenter:

  • Programkoden som skal kjøres. Med programkoden menes instruksjonene som befinner seg i den kjørbare fil som er lagret på disken, dvs. binærkoden til programmet.
  • Dataene som programkoden bruker under kjøringen. I programkoden vil det alltid være referanser til dataområder. Det kan være enkle referanser som i=i+1 eller det kan være regnearkprogrammets referanse til tall og formler.
  • Ressurser som kreves av programmet, f.eks ei fil som må åpnes for å hente fram nødvendige data.
  • Status til prosessen under kjøringen. Med status menes her ganske mange data som beskriver prosessens liv og levnet. Den kalles ofte for en prosess-deskriptor.


Forskjellen mellom program og prosess

Kan også uttrykkes på følgende måte: Programmer er en statisk enhet bestående av programinstruksjoner som definerer prosessens oppførsel når den kjøres på et sett av data. Prosessen derimot er en dynamisk enhet som kjører programmer på et sett av data. Dette betyr f.eks at to forskjellige prosesser kan kjøre programmer, men bruker sine egne private dokumenter.

Prosesser i MS Windows

Microsoft Windows støtter flere prosesser og tråder av gangen. Hver prosess får en gitt mengde tid med tilgang til prosessoren.

Windows XP bruker 32 forskjellige prioriteringsnivå, fra 0 til 31. 0 til 15 er brukerens prosesser, mens resten er operativsystemkjernens prosesser.

Prosesser i UNIX

I UNIX får hver prosess et spesielt nummer kjent som PID (Process ID). En prosess skapes av at en allerede eksisterende prosess kaller en rutine kalt fork. Den nye prosessen blir kalt for barnet (barneprosessen) til foreldreprosessen (prosessen som gjorde kallet på fork). Det er foreldreprosessen som får tilgangen til PID. Barneprosessen oppfatter PID for seg selv som 0.

Mens barneprosessen kjører, vil foreldreprosessen si fra til systemet om at den ikke trenger prosessortid. Den vil da vente/sove.

For at UNIX skal holde rede på de forskjellige prosessene, brukes en prosesstabell. Når en prosess har brukt opp kvoten sin hos prosessoren, vil den prosessen i tabellen med høyest prioritet kjøres. For å se oversikten over prosesser i Linux skriver du top i terminal eller shell.