Pojdi na vsebino

Proces (računalništvo)

Iz Wikipedije, proste enciklopedije

Proces je v računalniškem sistemu izvršljivi program, ki je naložen v pomnilniku. Večopravilni sistemi lahko imajo naloženih več procesov. Operacijski sistem programu dodeli strukturo, v kateri so napisane nekatere ključne informacije, kot so:

  • pravice – na katerem nivoju se izvaja proces,
  • naslovni prostor – kateri naslovni prostor pomnilnika proces lahko uporablja,
  • stanje procesa – stanje procesa je lahko aktivno, v izvajanju ali blokiran. Aktivno stanje pomeni, da je proces naložen v pomnilniku in pripravljen na izvajanje. Stanje izvajanja pomeni, da CPE izvaja programske ukaze procesa. Kadar je proces v blokiranem stanju pomeni, da se je njegovo izvajanje začasno ustavilo, morebiti zaradi prekinitvenega klica oz. čakanje na le-tega. Na primer, če proces naredi V/I zahtevo na disk.
  • procesorski registri – vsak proces ima svojo kopijo procesorskih registrov,
  • prioritete – nekateri razvrščevalniki uredijo procese po njihovih prioritetah. Tako imajo procesi z višjo prioriteto večjo možnost za pridobitev procesorja.
Kazalec za povezavo v seznam Stanje procesa
Številka procesa
Programski števec
Registri
Prioriteta
Meje pomnilnika
Tabela strani
Seznam odprtih zbirk
Podatki za obračunavanje

Proces je po strukturi razdeljen na dve sekciji: programsko in podatkovno. V programski sekciji je shranjena izvedljiva programska koda, ki jo procesor izvaja, v podatkovni so pa zapisane podatkovne strukture in spremenljivke, ki jih proces potrebuje za pravilno izvajanje.

Izvajanje procesa se začne, ko ga razvrščevalnik postavi v stanje izvajanja. V enoopravilnem sistemu ima proces vedno na voljo procesor, ker bo število procesov, ki jih lahko sistem izvaja vedno ena. Drugače je pri večopravilnih sistemih, kjer mora sistem poskrbeti, da se vsi naloženi procesi izvedejo.

Ob ustvarjanju procesa mu sistem dodeli naslovni prostor. To je območje v pomnilniku, kjer je proces naložen in ima tam pravice branja ter zapisovanja. Ko se proces izvaja, ta ne vidi ostalih procesov oz. nima dostopa do drugih naslovnih prostorov. Mogoče je narediti navidezni „most“ med dvema ali več procesi preko medprocesne komunikacije (IPC)

Procesi se lahko glede na računsko zahtevnost delijo na dve kategoriji. Na procesorsko- in V/I- intenzivne procese. Tisti procesi, ki se dosti časa izvajajo so procesorsko intenzivni. Primer takšnega procesa je lahko matematični program, ki večina časa zaseda CPE. V/I intenzivni procesi so vsi tisti procesi, ki večina časa čakajo na V/I prekinitve. Primer takšnega procesa je lahko urejevalnik besedil, ki večinoma časa čaka na vhodne podatke iz tipkovnice.

Poleg omejitev procesa z naslovnim prostorom, pa sistem deli procese še na dva nivoja. Te sistemu povedo, kakšne pravice ima ta proces. To sta: uporabniški nivo in nivo jedra. Procesi, ki so na nivoju jedra, imajo pravico do dostopa vseh sistemskih struktur, podatkov operacijskega sistema ter neposrednega dostopa do strojne opreme. Procesi v takšnem nivoju so gonilniki. Vsi ostali procesi pa bivajo v uporabniškem nivoju, kjer nimajo pravic neposredno dostopati do naprav in sistema, temveč to delajo posredno preko sistemskih klicev, kjer lahko kličejo procedure, ki bivajo v nivoju jedra.

Posebna vrsta procesov so niti. Omogočajo paralelizacijo zaporednega procesa. Niti so po strukturi podobne procesom, le da nimajo lastnega naslovnega prostora, temveč tega obdržijo od starševskega procesa. Lahko dostopajo do podatkov, odprtih zbirk starša. Nekateri sistemi niti smatrajo kar za procese in jih tako tudi razvrščajo.