OperativniSistemi_v2.2008_skripta

Embed Size (px)

Citation preview

  • 8/6/2019 OperativniSistemi_v2.2008_skripta

    1/90

    Sadraj

    I

    VISOKA TEHNIKA KOLA

    SKRIPTA IZ PREDMETA:

    OPERATIVNI SISTEMI RAUNARA

    ODABRANA POGLAVLJAIZ OPERATIVNIH SISTEMA

    SADRAJ

    1. UVOD

    2. UPRAVLJANJE PROCESIMA

    3. UPRAVLJANJE PROCESOROM

    4.UPRAVLJANJE MEMORIJOM

    5.UPRAVLJANJE DATOTEKAMA

    Kragujevac, Maj 2008.

    Mr Sran Atanasijevi, dipl.ing.inf.

  • 8/6/2019 OperativniSistemi_v2.2008_skripta

    2/90

    Sadraj

  • 8/6/2019 OperativniSistemi_v2.2008_skripta

    3/90

    Operativni sistemi: Uvod

    1

    1 UVODPod operativnim sistemom podrazumeva se organizovan skup sistemskih programa koji deluju kao

    posrednik izmedju hardvera i korisnika, pruajui korisniku usluge koje olakavaju projektovanje,

    implementaciju i odravanje programa, a istovremeno upravljaju dodeljivanjem (alokacijom) resursa

    sistema u cilju njegovog efikasnog rada, ili krae reeno:

    Operativni sistem je organizovan skup sistemskih programa koji upravlja radom razliitih

    komponenti raunarskog sistema sa ciljem da omogui efikasan rad korisnika i efikasno korienje

    resursa samog sistema.

    Vrlo je teko dati definiciju operativnog sistema na osnovu onoga to on jeste. I u strunoj

    literaturi koja se bavi ovom problematikom, mnogo ee se daje definicija na osnovu onoga to on

    radi. Operativni sistem je program namenjen da zajedno sa hardverom raunara obezbedi upotrebljiv

    raunarski sistem. Pod tim se podrazumeva da operativni sistem treba da obezbedi korisniku udobno

    radno okruenje i korienje resursa raunara na najbolji mogui nain. Pored ovih, on vri i kontrolnu

    funkciju - kontrolie da li se raunar koristi na odgovarajui nain i spreava eventualne greke.

    Operativni sistem esto vodi i evidenciju korienja resursa, dogaaja na sistemu, otkaza sistema i sl.

    Mesto operativnog sistema u okviru raunarskog sistema se moe prikazati emom na slici 1.

    HARDVER

    OPERATIVNI SISTEM

    APLIKATIVNI SOFTVER

    KORISNICI

    Slika 1. Struktura raunarskog sistema.

    Najee se operativni sistem i definie prema mestu koje zauzima u njoj:

    Operativni sistem je skup programa koji predstavljaju interfejs izmeu korisnika i hardvera raunarskog

    sistema.

    Druga definicija koja se takoe esto koristi je vezana je za resurse kojima operativni sistem upravlja:

    Operativni sistem je skup programa za upravljanje: procesorom (jednim ili vie), operativnom memorijom, I/O

    ureajima i fajlovima .

  • 8/6/2019 OperativniSistemi_v2.2008_skripta

    4/90

    Operativni sistemi: Uvod

    2

    1.1 Klasifikacija operativnih sistemaJedna od najeih podela operativnih sistema, vri se na osnovu broja korisnika i programa koji u jednom

    trenutku koriste raunarski sistem.

    Po ovom kriterijumu operativni sistemi se dele na:

    monokorisnike/monoprogramske operativne sisteme kod kojih postoji samo jedan korisnik i jedan program

    koji se izvrava u bilo kom trenutku vremena. Personalni raunari rade sa ovakvim operativnim sistemima -

    CP/M, DOS...

    multikorisnike/monoprogramske operativne sisteme kod kojih vie korisnika koriste jedan isti program.

    Ovakav operativni sistem sreemo kod namenskih ureaja - rezervisanje avionskih karata, obrada potanskih

    usluga...

    multikorisnike/multiprogramske operativne sisteme koji predstavljaju najoptiji sluaj. U ovom sluaju

    razliiti korisnici izvravaju razliite programe. Izvravanje programa je kvaziparalelno ili kako se to ee

    kae konkurentno. Program se izvrava za vreme dok drugi program eka na neki dogaaj (na periferiju kojaje znatno sporija od procesora, ili neki resurs zauzet od strane drugog programa koji je vieg prioriteta od

    tekueg). Time se obezbeuje paralelan rad procesora i periferije to doprinosi boljoj iskorienosti

    procesora.

    Druga podela operativnih sistema se vri na osnovu tipa obrade i komunikacije sa korisnikom:

    Operativni sistemi sa paketnom obradom (batch processing) su najstariji po vremenu nastanka, a ime im

    potie iz vremena kada su programi unoeni putem buenih kartica. Poslovi se izvravaju onim redosledom

    kojim pristiu u red poslova spremnih za izvravanje. esto se poslovi dele u vie redova (klasa) po hitnosti

    njihovog izvravanja. Skoro svi savremeni operativni sistemi nude i ovaj tip obrade (ak i operativni sistemi

    namenjeni personalnim raunarima).

    Operativni sistemi sa raspodijeljenim vremenom ("Time Sharing") su klasa kojoj pripadaju skoro svi

    savremeni multiprogramski operativni sistemi. Svakom od procesa (korisnika) se dodeljuje odreeni kvant

    vremena u kome isti dobija na korienje procesor - interval u kome se program izvrava. Po isteku kvanta

    vremena procesor se oduzima tekuem i dodeljuje drugom procesu (korisniku).

    Operativni sistemi za rad u realnom vremenu (Real Time Operating Systems) predstavljaju treu klasu

    operativnih sistema. Njihova namena je upravljanje industrijskim procesima i mainama, to jest obrada

    spoljnih asinhronih dogaaja. Spadaju u klasu multiprogramskih operativnih sistema od kojih se trai da

    ispune zahtev reakcije u nekom fiksiranom vremenskom intervalu. U sluaju da ovaj uslov nije zadovoljen

    mogui su gubitci vitalnih podataka i katastrofalne posledice usled nereagovanja sistema.

    1.2 Struktura operativnih sistemaZavisno od stepena sloenosti i naina realizacije operativni sistemi po strukturi mogu biti vrlo raznoliki.

    Jednostavni, mali operativni sistemi mogu imati takozvanu monolitnu strukturu, to jest predstavljati skupprograma koje poziva korisniki program i koji se meusobno pozivaju u cilju obavljanja odreenih

    funkcija.

    Za vee operativne sisteme, kod kojih je broj funkcija koje se od sistema trae znatno vei, ovakvastruktura je nepogodna, pa se preporuuje takozvana slojevita (spratna) struktura. Programi se grupiu u

  • 8/6/2019 OperativniSistemi_v2.2008_skripta

    5/90

    Operativni sistemi: Uvod

    3

    slojeve koji se oznaavaju brojevima: 1, 2, ..., n. Pri tome se podrazumeva da moduli sloja 5 pozivaju

    samo module sloja 4, moduli sloja 4, samo module sloja 3 itd. esto se ovo pravilo ne potuje do kraja

    pa moduli sloja 5 mogu da pozivaju i module sloja 3, na primer.

    Dva primera slojevite strukture data su na slici 2.:

    KORISNIKI PROGRAMI 6

    FAJL SISTEM 5 KORISNIKI PROGRAMI

    UPRAVLJANJE I/O UREAJIMA 4 FAJL SISTEM

    GORNJI NIVO UPRAVLJANJA

    PROCESIMA

    3 UPRAVLJANJE I/O UREAJIMA

    UPRAVLJANJE OPERATIVNOM

    MEMORIJOM

    2 UPRAVLJANJE OPERATIVNOM

    MEMORIJOM

    DONJI NIVO UPRAVLJANJA

    PROCESIMA

    1 JEZGRO

    (UPRAVLJANJE PROCESIMA)

    HARDVER 0 HARDVER

    Slika 2. Dva primera operativnih sistema sa slojevitom srukturom.

    U jednostavnijoj varijanti takozvano jezgro (kernel), sadri samo deo za upravljanje procesima (Pod

    terminom upravljanje procesima podrazumeva se dodeljivanje procesora odreenom procesu). Svi ostali

    moduli nalaze se van jezgra. Jezgro operativnog sistema se po pravilu pravi tako da radi u privilegovanom

    reimu rada - nijedna druga rutina ni dogaaj ne moe prekinuti izvravanje rutina koje mu pripadaju.

    Trei pristup realizaciji operativnog sistema koristi tzv. klijent - server koncepciju. Sve funkcijeoperativnog sistema realizuju se pomou procesa koji se nazivaju serveri. Korisniki programi se

    nazivaju klijenti i u okviru njih se vri pozivanje funkcija i preuzimanje rezultata. Jezgro operativnog

    sistema pri tome slui samo za organizaciju komunikacije izmeu klijenata i servera (slika 3.).

    PROCES KLIJENT 1

    PROCES SERVER 1

    JEZGRO OPERATIVNOG SISTEMA

    PROCES KLIJENT 2 PROCES KLIJENT N

    PROCES SERVER 2 PROCES SERVER N

    Slika 3. Struktura operativnog sistema sa klijent-server arhitekturom.

    1.3 Komunikacija korisnika i operativnog sistemaKomunikacija korisnika i operativnog sistema se odvija putem sistemskih poziva. Njima se iz korisnikog

    programa pokreu funkcije koje obezbeuje operativni sistem. Sistemski pozivi u okviru korisnike aplikacijeimaju izgled naredbi viih programskih jezika. Na tom mestu prevodilac ubacuje makroproirenje - niz

    instrukcija koje procesor mora da izvri da bi se pokrenula funkcija operativnog sistema. Njima se obezbe uje

    prenos parametara sistemskog poziva na mesto gde ih operativni sistem oekuje, poziva se funkcija operativnog

    sistema, i vraaju rezultati sistemskog poziva.

    1.4 Pristup problematici operativnih sistema tokom kursaUvod u operativne sisteme

  • 8/6/2019 OperativniSistemi_v2.2008_skripta

    6/90

    Operativni sistemi: Uvod

    4

    Tokom predavanja apstrahovaemo problematiku operativnih sistema prema sledeoj definiciji,

    iznetom na poetku poglavlja:

    Operativni sistem je organizovan skup sistemskih programa koji upravlja radom razliitih

    komponenti raunarskog sistema sa ciljem da omogui efikasan rad korisnika i efikasno korienje

    resursa samog sistema.

    Pri tome se funkcije operativnog sistema mogu, grubo, podeliti u etiri grupe:- upravljanje procesima

    - upravljanje memorijom

    - upravljanje uredjajima

    - upravljanje podacima.

    Oigledno je da akcenat na rei upravljanje u navodjenju funkcija operativnog sistema nije

    sluajan. Naime, u situaciji kada se u raunaru odvija vie aktivnih procesa (programa koji se

    izvravaju) jasno je da e ti procesi konkurisati jedan drugom u pogledu korienja resursa raunara

    (procesora, memorije, razliitih uredjaja, datoteka itd.). Zadatak operativnog sistema je da omogui

    neometano odvijanje svih procesa na takav nain da se svi resursi sistema to efikasnije iskoriste.

    Sa stanovita naina komuniciranja izmedju korisnika i raunara i vremena odziva raunara na

    zahtev korisnika razlikujemo tri osnovna reima rada raunarskog sistema:

    Grupna (ili serijska - batch) obrada je takav nain rada raunara u kome korisnici predaju svoje

    poslove (job-ove) na izvrenje posredstvom ulaznih jedinica raunara i koji se zatim odvijaju jedan za

    drugim u nizu, pri emu korisnik nema mogunost komuniciranja sa svojim poslom.Vreme odziva

    raunara je obino u granicama od nekoliko minuta.

    Obrada sa zajednikim korienjem vremena (time - sharing) je takav nain rada raunara u kome

    vie korisnika paralelno (istovremeno) koristi raunar i pri tome komunicira sa svojim poslovima.

    Paralelnost u radu se postie tako to se svakom korisnikom programu dodeljuje jedan kvantum

    vremena centralnog procesora (Pc-a) (na primer 100 ms), tako da je odziv na svaku poruku korisnika u

    granicama od nekoliko sekundi. Po isteku vremenskog kvantuma dodeljenog jednom procesu, on se

    prekida, bez obzira da li je zavrio sa radom ili ne, a procesor se dodeljuje sledeem procesu u redu

    ekanja.

    Rad u realnom vremenu (real-time) je takav nain rada u kome se nekom procesu omoguava

    odziv sistema u strogo zahtevanom vremenskom intervalu (izraenom najee u milisekundama ili

    sekundama u zavisnosti od samog procesa). Takvim procesima se omoguava da generisanjem zahteva

    (signala) za prekid dobijaju centralni procesor na raspolaganje.

    Nain (reim) rada raunarskog sistema u znatnoj meri utie na projektovanje i strukturu

    operativnog sistema, pri emu esto jedan operativni sistem moe da podrava vie razliitih reima

    rada raunara.

  • 8/6/2019 OperativniSistemi_v2.2008_skripta

    7/90

    Operativni sistemi: Upravljanje procesima

    2

    2 UPRAVLJANJE PROCESIMA

    2.1 PROCES, STANJA PROCESA I KONTROLNI BLOK PROCESA

    Pod procesom se, najkrae reeno, podrazumeva program koji se izvrava. Naime,

    program predstavlja statiki pojam - skup instrukcija, odnos opisa akcija koje treba izvriti.

    Samo izvravanje tih akcija dovodi do promene stanja (sadraja) registara centralnog

    procesora, memorijskih lokacija i drugih uredjaja raunarskog sistema; drugim reima u

    raunarskom sistemu se odvija proces koji menja stanje sistema.

    SPREMAN ^EKA

    IZV[AVA

    SE

    aktiviranje

    dodeljen Pcistekao

    vremenski

    kventum

    zahtev za resurs

    dodeljen resurs

    zavr{etak

    programa

    Slika 2.1

    Zahtevom za izvravanje odredjenog programa aktivira se odgovarajui proces. Takav

    zahtev moe da potekne od korisnika, od operativnog sistema ili od nekog drugog ve

    aktivnog procesa. Kada se tako aktiviranom procesu dodeli (od strane operativnog

    sistema) memorija i drugi resursi neophodni za njegovo odvijanje, proces se nalazi ustanju SPREMAN (za rad), gde u redu sa drugim spremnim procesima eka na

    dodeljivanje procesora, (slika 2.1). Kada mu se dodeli procesor proces poinje da se

    izvrava, tj. prelazi u stanje IZVRAVA SE. U toku izvravanja moe doi do prekida

    procesa jer on sam zahteva izvravanje neke ulazne/izlazne operacije. Proces tada prelazi

    u stanje EKA, gde u redu sa drugim procesima eka da se oslobodi neki od U/I

    procesora i U/I uredjaja da bi se zahtevana U/I instrukcija izvrila. Kada se to dogodi

    proces je ponovo SPREMANza rad. No, proces moe biti prekinut od strane operativnog

    sistema i iz drugih razloga (istek vremenskog kvantuma koji mu je dodeljen, na primer)tako da je on u stvari i dalje SPREMANza rad ali mora da eka svoj red za ponovno

  • 8/6/2019 OperativniSistemi_v2.2008_skripta

    8/90

    Operativni sistemi: Upravljanje procesima

    3

    dodeljivanje procesora. Konano, mogue je da se proces izvri do kraja i operativni

    sistem o njemu dalje ne vodi rauna.

    Navedenu podelu stanja u kojima moe da se nadje aktivan proces mogue je "finije"

    podeliti no za potrebe daljeg izlaganja ovakva podela je sasvim dovoljna.

    Za svaki aktivan proces, operativni sistem mora da vodi odredjene podatke. Skup

    takvih podataka naziva se kontrolni blok procesa, KBP (ili kako se jo kae vektor stanja ili

    deskriptor procesa). Tipian izgled jednog KBP-a prikazan je na slici 2.2.

    Kako operativni sistem mora da vodi kontrolni blok procesa za svaki aktivan proces,

    oigledno je da e u memoriji postojati vie KBP-a, koji su medjusobno povezani,

    najee u obliku liste. O odravanju i korienju takve liste bie vie rei kasnije.

    Ime procesa

    Identitet vlasnika

    Prioritet

    Stanje

    PSW

    Oblast programa

    Gornja granica prog.

    Oblast podataka

    Gornja granica podataka

    Op{ti registar - 1

    Program

    Podaci

    Slika 2.2 Kontrolni blok procesa

    2.1.1 UPOREDNI PROCESI

    Vratimo se za trenutak definiciji procesa koju smo dali u prethodnom odeljku, gde smo

    rekli da je proces program koji se izvrava. Odatle proizlazi da pojmovi procesa i programa

    nisu ekvivalentni. Naime, program je statiki pojam - oznaava skup instrukcija koje

    definiu (opisuje) akcije ili radnje koje treba izvriti. No, da bi se te radnje mogle izvriti

    mora da postoji i aktivni element-procesor koji izvrava instrukcije. Prema tome, uslov za

    nastanak procesa je postojanje programa i procesora koji izvrava program, pa je proces

    dinamiki pojam definisan kao par .

  • 8/6/2019 OperativniSistemi_v2.2008_skripta

    9/90

    Operativni sistemi: Upravljanje procesima

    4

    P

    K K

    P

    K

    P

    P1

    P2

    P3

    P4

    P3 P5 P6 P4

    P7 P8

    P1 P2 P3 P4

    (a) (b) (c)

    P1

    P2

    Slika 2.3 Podela procesa na podprocese

    Posmatrajmo sada jedan proces i predpostavimo da se on moe podeliti na vie

    jednostavnijih procesa, koje emo nazvati podprocesima. Tada pod sekvencijalnim

    procesom podrazumevamo proces ija je medjuzavisnost podprocesa takva da jedan

    podproces ne moe da pone dok se neki drugi podproces ne zavri. Takav proces se

    moe predstaviti kao na slici 2.3.(a). gde P i K oznaavaju po

    etak, odnosno krajposmatranog procesa, Pi, i=1,4 oznaava podprocese. Na slici 2.3.(b) prikazana je

    situacija u kojoj je sistem podprocesa takav da se oni mogu izvravati uporedo (paralelno).

    Konano na slici 2.3.(c) prikazana je situacija u kojoj je prethodjenje procesa takvo da se

    neki mogu izvravati paralelno, a neki se moraju izvravati sekvencijalno. Prikazani

    dijagrami nazivaju se grafovi toka procesa.

    Posmatrajmo sada jedan program u kome je potrebno da se izrauna vrednost

    aritmetikog izraza

    (a + b) * (c + d) - e / f

    Na slici 2.4. prikazano je kako se pojedini podizrazi mogu paralelno izraunati. No da li

    je to i ostvarljivo? Odgovor je da - ako postoji vie nezavisnih aktivnih elemenata -

    procesora. Drugim reima, potvrdjuje se valjanost definicije da je proces definisan parom

    .

  • 8/6/2019 OperativniSistemi_v2.2008_skripta

    10/90

    Operativni sistemi: Upravljanje procesima

    5

    a b c d

    + + ef

    K

    K

    t1

    :=a+b

    t3

    :=t1

    *t2

    t2

    :=c+d

    t4

    :=e/f

    t5

    :=t3

    -t4

    Slika 2.4 Paralelno izraunavanje delova izraza

    Iz prethodne diskusije proizlazi da je paralelno izvravanje vie programa, odnosno

    paralelno (istovremeno) odvijanje vie procesa u raunaru mogue samo ako se

    raunarski sistem sastoji od vie centralnih procesora. Za takav raunarski sistem se kae

    da je vieprocesorski(multiprocesorski) sistem. No, to ne znai da je za vieprogramski

    rad (multiprogramiranje) neophodno da se raunar sastoji od vie centralnih procesora.

    Naime, veina raunarskih sistema se sastoji od jednog centralnog procesora i vie U/I

    procesora. To praktino znai da procesor moe da u jednom vremenskom trenutku

    izvrava naredbe samo jednog programa. U trenutku kada taj program zahteva izvrenje

    neke U/I operacije procesorzahtev prenosi nekom od Pio (input/output processor) koji e

    obaviti odgovarajuu U/I operaciju. Za to vreme procesormoe izvravati naredbe nekogdrugog programa, sve dotle dok taj program ne zahteva izvrenje neke U/I operacije. Tada

    procesor prelazi na izvravanje naredbi nekog treeg programa, ili se vraa na prvi

    program ako je zavrena U/I operacija koju je on zahtevao. Opisana situacija bi se za dva

    aktivna programa mogla prikazati kao na slici 2.5. U bilo kom vremenskom trenutku t

    (0,T) procesor izvrava naredbe samo jednog programa, ali gledajui ceo interval (0,T)

    moemo zakljuiti da se oba programa nalaze izmedju svog poetka i zavretka. Za

    ovakav nain izvravanja programa kae se da se oni izvravaju kvaziparalelno.

    P1

    P2

    T0 t

    U bilo kom trenutku izvr{ava se

    samo jedan program

    Slika 2.5 Kvaziparalelno izvravanje dva procesa

  • 8/6/2019 OperativniSistemi_v2.2008_skripta

    11/90

    Operativni sistemi: Upravljanje procesima

    6

    Pri tome, treba posebno istai da dva ili vie procesa, bez obzira da li se izvravaju

    paralelno ili kvaziparalelno, konkuriu jedan drugom za dobijanje resursa raunara

    (hardvera, softvera, datoteka itd.). Jedan od bitnih problema operativnog sistema je

    upravljanje ovakvim, uporednim procesima.

    2.1.2 POJAM NITI

    Aktivnost procesa karakterie redosled u kome se izvravaju naredbe programa. Ovaj

    redosled se naziva trag (trace) procesa.

    Trag procesa moe da se prikae kao nit (thread) koja povezuje izvrene naredbe u

    redosledu njihovog izvravanja. Ako se za proces vee jedna nit, tada ona ima atribute

    procesa, znai njegovo stanje i njegov prioritet. U toku aktivnosti niti izvravaju se naredbekoje ona povezuje.

    Vezivanje za proces jedne niti je posledica pretpostavke da proces odgovara

    izvravanju sekvencijalnog programa. Za sekvencijalni program se podrazumeva da se

    naredbe izvravaju jedna za drugom u unapred zadanom redosledu, koji je zavisan od

    obraivanih podataka. Ovakve naredbe obrazuju sekvencu naredbi.

    Praksa pokazuje da je korisno za procese vezati vie od jedne niti. U tom sluaju stek,

    prioritet i stanje se ne vezuju za proces, nego za njegove niti. Znai, svaka od niti procesa

    ima svoj stek, svoj prioritet i svoje stanje, odnosno svoj deskriptor. Na primer, za editiranjeteksta su vane, izmeu ostalog, dve aktivnosti. Prva je posveena interakciji sa

    korisnikom, a druga je zaduena za periodino smetanje unesenog teksta na masovnu

    memoriju (radi spreavanja gubljenja teksta).

    Ako je za editorski proces vezana jedna nit, tada se pomenute aktivnosti odvijaju jedna

    za drugom (sekvencijalno). Znai, za vreme trajanja druge aktivnosti nije mogua

    interakcija sa korisnikom, to je ozbiljan nedostatak. On se moe otkloniti, ako se za

    editorski proces veu dve niti raznih prioriteta. Prioritetnija (hitna) nit se pridruuje prvoj

    aktivnosti, a manje prioritetna (pozadinska) nit se pridruuje drugoj aktivnosti. Pod

    pretpostavkom da hitna nit eka na interakciju sa korisnikom, pozadinska nit moe biti

    aktivna sve dok, na primer, pritisak dirke na tastraturi ne najavi poetak interakcije sa

    korisnikom. Tada obrada odgovarajueg prekida prevodi hitnu nit u stanje spremna, pa se

    procesor prekljuuje sa prekinute pozadinske niti na hitnu nit. U toku svoje aktivnosti hitna

    nit obavi interakciju sa korisnikom i vrati se u stanje eka, to dovodi do prekljuivanja

    procesora na prekinutu pozadinsku nit. Zahvaljujui prekljuivanju procesora sa

    pozadinske niti na hitnu nit, u toku editiranja nema perioda bez odziva. Procesi sa vie niti

    odgovaraju izvravanju konkurentnih programa u kojima istovremeno (concurrently) postoji

    vie relativno nezavisnih sekvenci naredbi.

  • 8/6/2019 OperativniSistemi_v2.2008_skripta

    12/90

    Operativni sistemi: Upravljanje procesima

    7

    2.1.3 PROBLEMI UPRAVLJANJA UPOREDNIM PROCESIMA

    U cilju ilustracije osnovnih problema koji se javljaju kod upravljanja uporednim

    procesima posmatrajmo proces S i R na Slici. 2.6 ProcesS (poiljalac) formira poruke iupisuje ih u bafer iji je maksimalni kapacitet C-poruka. Pri tome, proces S je duan da

    povea vrednost promenljive N kako bi drugi proces, R (primalac) znao koliko ima poruka

    u baferu. Slino tome, proces R po uzimanju poruke iz bafera duan je da vrednost N

    smanji za 1, kako bi proces S znao koliko ima mesta u baferu.

    S: begin P: begin

    stop:=false; stop:=false;

    repeat repeat

    pripremi_poruku;

    prihvati_poruku;

    poalji_poruku; n:=n-1;;

    n:=n+1; obradi_poruku

    until stop; until stop;

    end; end;

    Bafer kapaciteta C poruka

    Slika 2.6

    Da bi procesi S i R ispravno funkcionisali, u situaciji kada njihove relativne brzine nisu

    poznate, neophodno je da budu ispunjeni sledei uslovi:

    - poiljalacS ne sme da alje poruku kada je bafer pun jer bi se ona izgubila

    - primalac R ne sme da uzima poruku kada je bafer prazan jer bi to mogao

    protumaiti kao signal da treba da prestane sa radom

    - procesine smeju istovremeno pristupiti baferu

    - vrednost promenljive N mora, u trenutku pristupa baferu bilo kog procesa, biti

    jednaka stvarnom broju poruka u baferu.

    Dok je predposlednji zahtev oigledan, za poslednji bi se moglo rei da je suvian.

    Medjutim ne treba zaboraviti da bi se naredbe kojima se menja vrednost N, u sluajujednoadresnog raunara prevele na sledee mainske instrukcije.

  • 8/6/2019 OperativniSistemi_v2.2008_skripta

    13/90

    Operativni sistemi: Upravljanje procesima

    8

    Proces S: N: = N + 1: Proces R: N: = N - 1:

    LOAD N LOAD N

    prekid prekid

    ADD JEDAN SUB JEDAN

    STORE N STORE N

    Predpostavimo sada da je trenutna vrednost N = 4 i da u baferu ima stvarno 4 poruke.

    Neka je dalje proces S upisao novu poruku u bafer tako da sada u baferu ima 5 poruka.

    Proces S sada izvrava instrukciju LOAD N i ita vrednost N = 4. Ako posle izvrenja ove

    naredbe dodje do prekida Pc se dodeljuje procesu R, koji uzima jednu poruku iz bafera

    (sada ih je 4) i potom izvrava instrukcije LOAD, SUB i STORE. Vrednost N bie posle

    toga jednaka 3 (zato?). Ako sada prekinemo proces R i Pc dodelimo procesu S on eizvriti naredbe ADD i STORE, tako da e vrednost promenljive N biti 5, a u baferu e biti

    4 poruke.

    DEFINICIJA POJMA KRITINE SEKCIJE PROGRAMA

    Opisani problem nastao je zbog toga to su i bafer i promenljiva N zajedniki resursi za

    procese S i R. Skup instrukcija kojima jedan proces pristupa resursu koji deli sa nekim

    drugim procesom naziva se kritina sekcija. Oigledno, ne smemo dozvoliti da dva

    procesa budu istovremeno u svojim kritinim sekcijama - neophodno je obezbediti njihovo

    medjusobno iskljuenje u odnosu na kritine sekcije.Prva dva zahteva ukazuju na drugi problem. Naime, da bi oni bili zadovoljeni oigledno

    je neophodno da obezbedimo sinhronizaciju procesa S tako da, ako je bafer pun, on mora

    da eka da proces R uzme jednu poruku i smanji vrednost N za jedan i tako generie

    signal procesu S da moe da nastavi sa radom. Slino tome, ako je bafer prazan R mora

    da eka, sve dok S ne upie poruku u bafer i vrednost N povea za jedan i time signalizira

    procesu R da moe da nastavi sa radom.

    POJAM ME

    USOBNOG BLOKIRANJA PROCESAPosmatrajmo sada dva procesa, P1 i P2, koji koriste iste resurse R1 i R2, ali ih

    zahtevaju i uzimaju u obrnutom redosledu. Predpostavimo da proces P1 prvi pone sa

    radom i uzme oba resursa pre nego to dodje do njegovog prekida (na primer zbog isteka

    vremenskog kvantuma koji mi je dodeljen). Neka se zatim procesor dodeli procesu P2.

    Ovaj proces e oigledno moi da se izvrava do trenutka kada zahteva resurs R2, kada

    e morati da se prekine i predje u stanje EKA. No, proces P1 koji raspolae sa oba

    zahtevana resursa moe da nastavi sa radom, pri emu e oslobodjati resurse i omoguiti

    i procesu P2 da se izvri. Analogna situacija bi nastala kada bi proces P2 prvi dobio

    centralni procesor i dobio oba resursa pre nego to bude prekinut. Medjutim,

    predpostavimo sada da proces P1 pone prvi sa radom i dodje do prekida posle uzimanja

  • 8/6/2019 OperativniSistemi_v2.2008_skripta

    14/90

    Operativni sistemi: Upravljanje procesima

    9

    resursa R1, a pre uzimanja resursa R2. Neka se u toj situaciji procesu P2 dodeli centralni

    procesor i neka proces P2 uzme resurs R2. On e dalje nastaviti sa radom sve do

    trenutka kada treba da uzme resurs R1.

    P1: begin P2: begin

    uzmi R1; uzmi R2;

    - -

    uzmi R2; uzmi R1;

    - -

    vrati R2; vrati R2;

    - -

    vrati R1; vrati R1;

    end. end.

    Slika 2.7 Situacija kada moe nastati meusobno blokiranje procesa

    No, kako je resurs R1 ve zauzet proces B e da eka da se resurs oslobodi. procesor

    se tada dodeljuje procesu P1, no on e moi da se izvrava samo do trenutka kada treba

    da uzme resurs R2. Kako je resurs R2 ve zauzet proces P1 mora da eka na njegovo

    oslobadjanje. Oigledno je da ni proces P1 ni proces P2 nee moi da se dalje odvijaju jer

    ekaju jedan na drugog. Za opisanu situaciju se kae da su procesi medjusobno blokirani,

    odnosno da je dolo do potpunog zastoja.

    Konano treba istai da je neophodno realizovati mehanizam u raunaru koji e

    omoguiti medjusobnu komunikaciju procesa.

    U daljem izlaganju daemo rezime osnovna etiri problema u upravljanju procesima,

    uslove koje treba zadovoljiti u njihovom reavanju i razmotriemo neka od moguih

    reenja.

    Problem 1. Medjusobno iskljuivanje procesa u odnosu na kritine sekcije znai da se u

    bilo kom vremenskom trenutku samo jedan proces moe nai u svojoj kritinoj

    sekciji.

    Problem 2. Sinhronizacija procesa znai da odredjen proces ne moe ii dalje od unapred

    definisane take bez eksplicitnog signala koji on sam ne moe da generie.

    Problem 3. Dva procesa su blokirana ako nijedan od njih ne moe da nastavi sa radom

    dok drugi ne nastavi sa radom. Sistem je blokiran ako su svi procesi blokirani.

    Problem 4. U raunarskom sistemu neophodno je realizovati mehanizam za komunikaciju

    izmedju procesa na takav nain da im omogui da medjusobno saradjuju i

    uspeno razmenjuju poruke.

  • 8/6/2019 OperativniSistemi_v2.2008_skripta

    15/90

    Operativni sistemi: Upravljanje procesima

    10

    Uspeno reenje navedenih problema mogue je ako operativni sistem obezbedi

    zadovoljenje sledea tri osnovna zahteva:

    Zahtev 1. Uporedni procesi sa kritinim sekcijama, jedan u odnosu na drugog, moraju se

    medjusobno iskljuivati tako da se istovremeno ne nalaze u svojim kritinim

    sekcijama.

    Zahtev 2. Proces koji se zaustavio van svoje kritine sekcije ne sme onemoguiti dalje

    odvijanje drugih, nezavisnih procesa.

    Zahtev 3. Procesi ne smeju beskonano dugo ekati na resurse ili signale.

  • 8/6/2019 OperativniSistemi_v2.2008_skripta

    16/90

    Operativni sistemi: Upravljanje procesima

    11

    2.1.4 MEDJUSOBNO ISKLJUENJE I SINHRONIZACIJA

    Posmatrajmo dva sekvencijalna, medjusobno nezavisna procesa, uz ogranienje da

    ne smeju istovremeno biti u svojim kritinim sekcijama. Razmotrimo neka od moguih

    reenja problema medjusobnog iskljuenja i sinhronizacije posmatranih procesa koja eistovremeno zadovoljiti i zahteve definisane u prethodnom odeljku.

    Reenje 1: Uvedimo jednu promenljivu, koju emo nazvati prebaci, ije vrednosti

    mogu biti 1 ili 2 u zavisnosti od toga da li je procesu P1, odnosno procesu P2, dozvoljen

    ulazak u kritinu sekciju.

    var prebaci : integer;

    beginprebaci := 1; (* postavi poetnu vrednost promenljive *)

    parbegin

    P1 : begin

    stop:=false

    repeat

    L1: if prebaci = 2 then goto L1;

    kritina_sekcija_1;

    prebaci : = 2;ostale_naredbe_1;

    until stop;

    end;

    P2 : begin

    stop:=false;

    repeat

    L2: if prebaci = 1 then goto L2;

    kritina_sekcija_2;

    prebaci : = 1;

    ostale_naredbe_2;

    until stop;

    end;

    parend;

    end.

  • 8/6/2019 OperativniSistemi_v2.2008_skripta

    17/90

    Operativni sistemi: Upravljanje procesima

    12

    Analizom ovog reenja moe se pokazati da je problem medjusobnog iskljuenja

    uspeno reen. Naime, pretpostavimo da je proces P1 prvi dobio centralni procesor i da je

    izvrio testiranje promenljive prebaci. Kako je poetna vrednost ove promenljive jednaka

    jedinici proces P1 ulazi u svoju kritinu sekciju. Pretpostavimo sada da je proces P1

    prekinut u svojoj kritinoj sekciji i da je procesor dodeljen procesu P2. Ovaj proces e

    takodje testirati vrednost promenljive prebaci, ali kako je ona i dalje jednaka jedinici

    proces P2 nee moi da napreduje vee se stalno vraati na izvrenje iste naredbe sa

    simbolikom adresom L2. Na taj nain proces P2 nee moi da udje u svoju kritinu

    sekciju sve dok proces P1 ne dobije ponovo procesor, izvri sve naredbe svoje kritine

    sekcije i vrednost promenljive prebaci ne postavi na dva. Analognim razmiljanjem moe

    se pokazati da ni proces P1 nee moi da udje u kritinu sekciju ukoliko se proces P2

    nalazi u svojoj kritinoj sekciji.

    Ovo reenje ima medjutim i bitnih nedostataka koji se ogledaju u sledeem:

    (i) reenje je restriktivno : s obzirom na poetni uslov u kritinu sekciju moe prvo ui

    samo proces P1, a zatim samo proces P2, pa opet P1, itd.

    (ii) prekid jednog od procesa van kritine sekcije onemoguava odvijanje drugog procesa,

    to znai da zahtev 2 nije zadovoljen. Naime, prepostavimo da se proces P1 zavri

    (normalno ili abnormalno, svejedno) van kritine sekcije, na primer posle postavljanja

    promenljive prebaci na dva, u delu ostale_naredbe_1. Proces P2 e u tom sluaju moida udje u svoju kritinu sekciju jo samo jedanput jer e po izlasku iz kritine sekcije

    vrednost promenljive prebaci postaviti na jedinicu ime e sebi onemoguiti ponovni

    ulazak u kritinu sekciju, pa samim tim i dalje izvravanje.

    Pored navedenih nedostataka ovog reenja treba istai da nije opte, odnosno da vai

    samo u sluaju dva procesa koji imaju kritine sekcije jedan u odnosu na drugog.

    Uvodjenje novih procesa praktino nije mogue.

    Reenje 2: U prethodnom reenju promenljiva prebaci imala je ulogu "skretnice"

    izmedju dva procesa, to je zapravo i uzrok opisanim nedostacima. Umesto jedne

    promenljive takvog tipa uvedimo za svaki proces posebnu promenljivu ija e vrednost

    ukazivati na to da li se posmatrani proces nalazi u kritinoj sekciji ili ne.

    Sada moemo pokuati da reimo problem medjusobnog iskljuenja na sledei nain:

    var C1, C2 : integer; (* Ci = 0 proces Pi je u kritinoj sekciji

    Ci = 1 proces Pi nije u kritinoj sekciji *)

    begin

  • 8/6/2019 OperativniSistemi_v2.2008_skripta

    18/90

    Operativni sistemi: Upravljanje procesima

    13

    C1:=1; C2:=1; (* poetni uslov - nijedan proces nije u kritinoj sekciji *)

    parbegin

    P1 : begin

    repeat

    L1 : if C2 = 0 then goto L1;

    prekid_1

    C1 : = 0;

    kritina_sekcija_1;

    C1 : = 1;

    ostale_naredbe_1;

    until stop;

    end;

    P2 : beginrepeat

    L2 : if C1 = 0 then goto L2;

    C2 : = 0;

    prekid_2 kritina_sekcija_2;

    C2 : = 1;

    ostale_naredbe_2;

    until stop;

    end;parend;

    end.

    Ovo reenje nije restriktivno jer se moe pokazati da je redosled ulazaka procesa u

    kritine sekcije proizvoljan. Naime, oigledno je da pri zadatim poetnim uslovima bilo koji

    proces moe prvi da udje u svoju kritinu sekciju, a kako, po izlasku iz kritine sekcije,

    svaki proces opet uspostavlja poetnu vrednost odgovarajue promenljive C1, odnosno

    C2 to znai da opet bilo koji od njih moe da udje u svoju kriti

    nu sekciju. Dalje, moe seuoiti da bilo koji od procesa, ako se prekine van svoje kritine sekcije, ne ometa

    izvravanje onog drugog procesa.

    Medjutim, ukoliko dodje do prekida procesa na mestima oznaenim kao prekid_broj

    oba procesa e se istovremeno nai u svojim kritinim sekcijama, to znai da osnovni

    cilj ovog reenja nije ostvaren, odnosno da nije obezbedjeno medjusobno iskljuenje

    procesa u odnosu na kritine sekcije. Naime, pretpostavimo da je trenutno centralni

    procesor dodeljen procesu P1, koji je testirao vrednost promenljive C2 i kako je ona bila

    jednaka jedinici, pokaziva instrukcija je postavljen na adresu sledee instrukcije (C1:=0).

    Neka je medjutim, proces P1 prekinut (prekid_1) pre nego to je izvrio tu instrukciju, to

  • 8/6/2019 OperativniSistemi_v2.2008_skripta

    19/90

    Operativni sistemi: Upravljanje procesima

    14

    znai da je vrednost promenljive C1 i dalje jednaka jedinici. Ako se sada procesor dodeli

    procesu P2, on e posle ispitivanja vrednost promenljive C1 moi da nastavi sa radom, da

    promenljivu C2 postavi na nulu i da udje u svoju kritinu sekciju. Nastala situacija je

    kritina jer moe dovesti do toga da se oba procesa nadju istovremeno u svojim kritinim

    sekcijama. Neka, naime u ovoj situaciji dodje do prekida procesa P2 (prekid_2) i neka se

    procesor ponovo dodeli procesu P1. Kako je ovaj proces prekinut posle izvrene

    instrukcije testiranja vrednosti promenljive C2, on e nastaviti izvravanje od instrukcije

    iju je adresu sadravao pokaziva instrukcija u trenutku prekida, tj. postavie vrednost

    promenljive C1 na nulu i ui e u svoju kritinu sekciju. Naravno, ukoliko dodje samo do

    prekida prekid_1, a ne dodje do prekida prekid_2, procesi ne bi bili istovremeno u kritinim

    sekcijama. (Tada bi se moglo rei da je dolo do "bliskog susreta", ali bez traginih

    posledica.) Napomenimo jo i to da bi u simetrinoj situaciji (kada bi se proces P2

    prekinuo iznedju naredbe sa simbolikom adresom L2 i naredbe C2:=0) takodje moglo da

    dodje do toga da se oba procesa istovremeno nadju u svojim kritinim sekcijama.

    Reenje 3: Problem u prethodnom reenju nastao je zbog toga to je proces P1 bio

    prekinut izmedju trenutka kada je uspeno izvrio testiranje promenljive C2 (naredba sa

    simbolikom adresom L1) i trenutka kada je trebalo da postavljanjem vrednosti promenljive

    C1 na nulu obavesti, odnosno efektivno zabrani procesu P2 da udje u svoju kritinu

    sekciju. Pokuajmo zbog toga da modifikujemo prethodno reenje tako to emo izmeniti

    redosled ovih instrukcija, pa e svaki od procesa prvo istai zabranu drugom procesu da

    udje u njegovu kritinu sekciju, a zatim e vriti ispitivanje da li moe da udje u svojukritinu sekciju. Ovakvo reenje bi bilo oblika:

    var C1, C2 : integer; (* Ci = 0 proces Pi je u kritinoj sekciji

    Ci = 1 proces Pi nije u kritinoj sekciji *)

    begin

    C1:=1; C2:=1; (* poetni uslov - nijedan proces nije u kritinoj sekciji *)

    parbegin

    P1 : beginrepeat

    C1 : = 0;

    prekid

    L1 : if C2 = 0 then goto L1;

    kritina_sekcija_1;

    C1 : = 1;

    ostale_naredbe_1;

    until stop;

    end;

  • 8/6/2019 OperativniSistemi_v2.2008_skripta

    20/90

    Operativni sistemi: Upravljanje procesima

    15

    P2 : begin

    repeat

    C2 : = 0;

    L2 : if C1 = 0 then goto L2;

    kritina_sekcija_2;

    C2 : = 1;

    ostale_naredbe_2;

    until stop;

    end;

    parend;

    end.

    Slino prethodnom reenju, moe se lako pokazati da je i u ovom sluaju, redosledulazaka procesa u kritine sekcije je proizvoljan, kao i to da proces prekinut van svoje

    kritine sekcije ne ometa izvravanje drugog nezavisnog procesa. Za razliku od

    prethodnog reenja ovde se postie medjusobno iskljuenje, to se takodje moe lako

    pokazati analiziranjem reenja u sluaju da se jedan od procesa prekine posle instrukcije

    ispitivanja promenljive C1, odnosno C2, a pre ulaska u kritinu sekciju.

    Medjutim ovo reenje dovodi do jednog drugog problema.Naime, neka dodje do prekida procesa P1 na oznaenom mestu, (prekid) i neka se

    procesor dodeli procesu P2. Ovaj poslednji e u tom sluaju postaviti vrednost promenljive

    C2 na nulu, a zatim e ispitivati vrednost promenljive C1. Kako je vrednost ove promenljive

    u tom trenutku jednaka nuli proces P2 nee moi da napreduje dalje od instrikcije sa

    simbolikom adresom L2. Neka se sada procesu P2 oduzme procesor i dodeli ponovo

    procesu P1. Kako ovaj proces nastavlja od mesta gde je bio prekinut, sada e on testirati

    vrednost promenljive C2 i kako je ta vrednost takodje jednaka nuli, ni ovaj proces nee

    moi da napreduje dalje od instrukcije sa simboli

    kom adresom L1.Drugim reima posmatrani procesi su medjusobno blokirani jer ni jedan ne moe da

    nastavi sa radom dok onaj drugi ne nastavi sa radom.

    2.1.5 SEMAFORI, P I V OPERACIJE

    Analizom prethodna dva reenja uoili smo da ona ne daju eljeni efekat zbog toga to

    je izmedju koraka ispitivanja mogunosti da se udje u kritinu sekciju i postavljanja

    zabrane drugom procesu da udje u svoju kritinu sekciju mogu prekid. Polazei od togaE. Dijkstraje dao reenje problema medjusobnog iskljuenja i sinhronizacije procesa tako

  • 8/6/2019 OperativniSistemi_v2.2008_skripta

    21/90

    Operativni sistemi: Upravljanje procesima

    16

    to je uveo nov tip promenljive koji se naziva semafor i iji je skup dozvoljenih vrednosti

    skup nenegativnih celih brojeva. Pri tome je uveo dve dozvoljene operacije nad ovim

    promenljivima koje je nazvao P i V operacijama, pri emu je

    s : = s - 1 ako je s>0

    P(s) = {

    ekaj u suprotnom

    V(s) = s : = s + 1,

    gde je s promenljiva tipa semafor.

    Naravno, sada se postavlja pitanje implementacije ovako definisanih operacija, pri

    emu je poseban problem implementacija P operacije u sluaju kada je vrednost

    promenljive s jednaka nuli. Jedna od mogunosti bi bila da se to uradi pomou instrukcije

    tipa if, na nain slian onom koji prikazan u prethodna dva reenja. No to bi znailo da

    proces koji pokuava da izvri P operaciju u situaciji kada je vrednost promenljive s

    jednaka nuli, troi vreme centralnog procesora, pri emu ne moe da napreduje dalje, a

    istovremeno onemoguava ostale procese da se izvravaju. Takva situacija se naziva

    zaposleno ekanje (busy wait).

    Umesto toga bilo bi loginije i efikasnije reenje da se proces, koji pokuava da izvri P

    operaciju u posmatranoj situaciji, prekine i stavi u stanje ekanja na semafor, odnosno da

    se "uspava". To medjutim, povlai za sobom i drugaiju implementaciju V operacije.

    Naime, proces koji izlazi iz svoje kritine sekcije treba da omogui drugim procesima da

    udju u njihove kritine sekcije, to se moe postii nasledei nain: ako u tom trenutku

    postoji neki uspavan proces koji eka na semafor, tada proces koji izlazi iz svoje kritine

    sekcije treba da ga "probudi", odnosno da mu omogui da se vrati u stanje SPREMAN,kada probudjeni proces dolazi u red ekanja na centralni procesor, dok u suprotnom, kada

    nijedan proces ne eka na semafor treba samo da poveava vrednost promenljive tipa

    semafor za jedan.

    Predloeno reenjeP i V operacija moe se opisati na sledei nain:

    procedure P (s : semaphore);

    (* Procedura P(s) realizuje P-operaciju *)

    (* *)

  • 8/6/2019 OperativniSistemi_v2.2008_skripta

    22/90

    Operativni sistemi: Upravljanje procesima

    17

    (* P(s) = s := s - 1 ako je s>0 *)

    (* ekaj u suprotnom *)

    begin

    zabrani prekide;

    if s>0

    then s : = s - 1

    else begin

    izbaci proces iz reda ekanja na Pc; (* uspavaj *)

    ubaci proces u red ekanja na semafor (* proces *)

    end;

    dozvoli prekide;

    end;

    procedure V (s : semaphore);

    (* Procedura v(s) realizuje v-operaciju-budjenje procesa *)

    begin

    zabrani prekide;

    if red ekanja na semafor prazanthen s : =s+1

    else begin

    izbaci proces iz reda ekanja na semafor; (* probudi *)

    ubaci proces u red ekanja na Pc (* proces *)

    end;

    dozvoli prekide;

    end;

    U predloenom reenju krije se medjutim i jedna opasnost. Naime, u predloenoj

    implementaciji i P i V operacije postoji ispitivanje vrednosti promenljive tipa semafor,

    odnosno stanja reda ekanja na semafor. Ukoliko bi u toku izvrenja ovih procedura dolo

    do njihovog prekida mogli bi nastati problemi slini onima koje smo videli u prethodna dva

    reenja problem medjusobnog iskljuenja i sinhronizacije. Zbog toga je Dijkstra P i V

    operacije definisao kao "primitivne" operacije, odnosno hardverski neprekidiveoperacije

    tako da se u opisanoj implementaciji P i V operacija pojavljuju koraci "zabrani prekide" i

    "dozvoli prekide", koje oznaavaju da se pre poetka njihovog izvravanja hardverski

    onemoguavaju prekidi, dok se po nihovom kompletnom izvravanju prekidi ponovo

  • 8/6/2019 OperativniSistemi_v2.2008_skripta

    23/90

    Operativni sistemi: Upravljanje procesima

    18

    omoguavaju (to se, na primer, moe postii pomou odgovarajuih bitova u registru

    stanja procesora).

    Konano, prema predloenom reenju P i V operacije menjaju stanja aktivnih procesa

    (iz IZVRAVA_SE u EKA, odnosno iz EKA u SPREMAN) to znai da se obe operacije

    moraju implementirati kao sastavni deo operativnog sistema. Drugim reima, procesi

    korisnika ne mogu direktno izvravati ove operacije, ve, pozivanjem ovih procedura

    predaju upravljanje operativnom sistemu koji ih zatim izvrava na opisani nain.

    U cilju ilustracije efekta implementacije P i V operacija posmatrajmo situaciju kada se u

    listi aktivnih procesa nalaze tri procesa P1, P2 i P3, pri emu procesi P1 i P2 koriste neki

    zajedniki resurs. Neka su dalje procesi P1, P2 i P3 istog prioriteta, tako da jedan proces,

    kada mu istekne vreme dodele procesora, dolazi sa prvog na poslednje mesto u redu

    ekanja na centralni procesor, dok se ostali procesi pomeraju za jedno mesto unapred.

    Na slici 2.8a prikazana je situacija kada je proces P1 izvrio P(sem) operaciju nad

    semaforom sem. ( Iako se ovde koristi termin "izvrio" operaciju stalno treba imati u vidu

    da procesi korisnika samo iniciraju izvrenje ovih operacija od strane operativnog

    sistema). S obzirom da je prethodno vrednost sem bila jedan, ona postaje nula. Prema

    tome kada, neto kasnije, proces P2 dobije centralni procesor on e izvriti operaciju

    P(sem) ali tako to e se "uspavati" - odlazi u red ekanja na sem (slika 2.8b. Kada,

    kasnije, proces P1 izvri V(sem) operaciju, slika 2.8c on e "probuditi" proces P2 - vratiega u red ekanja na centralni procesor. Konano, kada proces P2 izvri V(sem)operaciju,

    slika 2.8d on e, s obzirom da niko ne eka na sem (nema koga da "probudi"),

    jednostavno vrednost sem postaviti na jedan. Na taj nain on omoguava sebi ili procesu

    P1 da ponovo dodju do resursa, ako im je to naravno potrebno.

  • 8/6/2019 OperativniSistemi_v2.2008_skripta

    24/90

    Operativni sistemi: Upravljanje procesima

    19

    P P P1 2 3

    REDCP

    P P P1 3 2

    REDCP

    P2

    REDSEM

    SEM

    (a) Proces P1 je izvrio P(sem) operaciju

    REDSEM

    REDSEM

    1

    P P P2 3 1

    REDCP

    P P P1 1 3

    SEM

    (b) Proces P2 je izvrio P(sem) operaciju

    SEM

    REDSEM

    P2

    (d) Proces P2 je izvrio V(sem) operaciju

    REDSEM

    1

    (c) Proces P1 je izvrio V(sem) operaciju

    Slika 2.8

    Razmotrimo sada reenje problema medjusobnog iskljuenja procesa korienjemsemafora, odnosno P i V operacija. U tu svrhu uvedimo promenljivu medisk(medjusobno

    iskljuenje) tipa semafor. Oigledno je da se postavljanjem poetne vrednosti promenljive

    medisk na jedan, omoguava bilo kom procesu da prvi izvri P operaciju i udje u svoju

    kritinu sekciju. U sluaju da dodje do prekida tog procesa u kritinoj sekciji i dodele

    procesora drugom procesu, ovaj potonji e pri pokuaju da izvri P operaciju biti prebaen

    u red ekanja na semafor. Proces koji je prvi izvrio P operaciju, po izlasku iz svoje kritine

    sekcije izvrava V operaciju tako to vrednost semafora ponovo postavlja na jedan, ili tako

    to neki proces koji

    eka na semafor prebacuje u red

    ekanja na centralni procesor.

    var medisk : semaphore;

    begin

    medisk : = 1;

    parbegin

    P1 : begin

    repeat

    P(medisk);

    kritina_sekcija_1;

    V(medisk);

  • 8/6/2019 OperativniSistemi_v2.2008_skripta

    25/90

    Operativni sistemi: Upravljanje procesima

    20

    ostale_naredbe_1;

    until stop;

    end;

    P2 : begin

    repeat

    P(medisk);

    kritina_sekcija_2;

    V(medisk);

    ostale_naredbe_2;

    until stop;

    end;

    parend;

    end.

    Opisano reenje se moe generalizovati na sluaj n > 2 procesa koji imaju kritine

    sekcije jedan u odnosu na druge. U tom sluaju svaki od procesa bi bio oblika:

    Pi : begin

    repeat

    P(medisk);

    kritina_sekcija_i;V(medisk);

    ostale_naredbe_i;

    until stop;

    end;

    Pri tome treba napomenuti da smo u oba reenja vrednost semafora medisk ograniili

    na skup (0,1). Takav semafor se naziva binarni semafor. U optem sluaju to ne mora bititako. Naime, razmotrimo sada kako se problem medjusobnog iskljuenja i sinhronizacije

    procesa poiljaoca S (sender) i procesa primaoca poruka R (receiver) moe uspeno reiti

    korienjem semafora.

    Pri tome emo uvesti tri semafora. Prvi semafor im (ima mesta) uzima vrednosti iz

    skupa {0,C}, gde je C kapacitet bafera.

    Drugi semafor ip (ima poruka) uzima vrednost iz istog skupa ali tako da je im + ip = C.

    Ova dva semafora omoguavaju sinhronizaciju procesa S i R, tako da proces S vri P

    operaciju nad semaforom in. Ukoliko je im > 0 proces smanjuje broj mesta u baferu,

    upsuje poruku i vri V operaciju nad semaforom ip. tj. poveava broj poruka za jedan.

  • 8/6/2019 OperativniSistemi_v2.2008_skripta

    26/90

    Operativni sistemi: Upravljanje procesima

    21

    Ukoliko je im = 0 poces S eka da se oslobodi mesto u baferu. Slino tome proces R

    izvrava P operaciju nad semaforom ip, ime smanjuje broj poruka u baferu, a zatim

    Izvrava operaciju V nad semaforom im ime poveava broj slobodnih mesta za jedan.

    Ukoliko je ip = 0, proces R eka da se unese poruka u bafer. Konano semafor medisk

    slui za medjusobno iskljuenje procesa S i R u odnosu na pristup baferu koji je zajedniki

    resurs za oba procesa.

    Reenje sa odgovarajuim komentarima bilo bi oblika:

    var im, (* im - ima mesta *)

    ip, (* ip - ima poruka *)

    medisk : semaphore (* medjusobno iskljuenje *)

    begin

    im : = C; (* u poetnom stanju bafer je prazan *)ip : = 0; (* prema tome u njemu nema poruka *)

    medisk : = 1; (* nijedan proces nije u kritinoj sekciji *)

    parbegin

    S : begin

    stop:=false;

    repeat

    pripremi_poruku;

    P(im); (* ako je im = 0 ne sme da alje poruku *)P(medisk) (* postoji bar jedno prazno mesto u baferu *)

    upii poruku;

    V(medisk); (* oslobodi pristup baferu *)

    V(ip); (* poveaj broj poruka u baferu za jedan *)

    until stop;

    end;

    R : begin

    stop:=false;repeat

    P(ip); (* ako je ip = 0-nema poruka-ekaj *)

    P(medisk); (* postoji bar jedna poruka u baferu

    prihvati_poruku;

    V(medisk); (* oslobodi pristup baferu *)

    V(im); (* poveaj broj raspoloivih mesta u baferu za 1 *)

    obradi poruku;

    until stop;

    end;

    parend;

  • 8/6/2019 OperativniSistemi_v2.2008_skripta

    27/90

    Operativni sistemi: Upravljanje procesima

    22

    end.

    2.2 ZASTOJ (DEADLOCK)

    Raunarski sistem se sastoji od konanog broja resursa, pri emu se u jednomsistemu za svaki resurs definie njegov tip i broj komada. Pod resursom se podrazumeva

    bilo koja hardverska (centralni procesor, U/I procesor, memorijski prostor, magnetna traka

    itd.) ili softverska (odredjeni program (rutina), datoteka itd.) komponenta neophodna

    nekom procesu da bi mogao da se izvrava.

    U reimu vieprogramskog rada procesi konkuriu jedan drugom za resurse, pri

    emu svaki od aktivnih procesa moe da zahteva, koristi i oslobadja vie resursa razliitog

    tipa i/ili vie resursa istog tipa.

    Proces prvo ispostavlja zahtev za resursom (naprimer: open (ime-datoteke),allocate(broj-memorijskih blokova ili broj-bajtova), itd.), pri emu su mogua dva ishoda:

    (i) resurs se dodeljuje procesu i on se nalazi u stanju IZVRAVA - SE ili u stanju

    SPREMAN, ili

    (ii) ne postoje slobodni resursi zahtevanog tipa i proces prelazi u stanje EKA

    (prebacuje se u red ekanja na zahtevani resurs).

    Zahtev za resursom, u stvari predstavlja poziv opertivnom sistemu koji vodi evidenciju

    o tipu, broju i zauzetosti resursa i ukoliko je resurs slobodan dodeljuej resurs procesu na

    korienje.

    Po korienju resursa, proces oslobadja resurs (naprimer: close (ime-datoteke),

    free(broj-bajtova), itd.) tako to, u stvari ponovo predaje upravljanje operativnom sistemu

    koji aurira stanje zauzetosti resursa i, ukoliko neki drugi proces eka na resurs, vri

    njegovu dodelu.

    U uslovima vieprogramskog rada, procesi oigledno esto dolaze u situaciju da

    ekaju na resurse. Pri tome, medjutim moe doi do situacije koja se naziva potpuni

    zastojili blokiranje (deadlock).

    Pri tome se mogu definisati etiri uslovakoji, kada su istovremeno ispunjeni, mogu da

    dovedu do potpunog zastoja:

    1. Medjusobno iskljuenje, to znai da u sistemu postoje nedeljivi resursi, odnosno

    resursi koji u svakom vremenskom trenutku mogu biti dodeljeni samo jednom procesu nakorienje.

  • 8/6/2019 OperativniSistemi_v2.2008_skripta

    28/90

    Operativni sistemi: Upravljanje procesima

    23

    2. Posedovanje i ekanje (hold-and-wait) znai da postoje procesi koji poseduju bar

    jedan nedeljivi resurs i ekaju na druge nedeljive resurse koje koriste drugi procesi.

    3. Resursi se ne mogu oduzimati (no-preemption) to znai da se resurs dodeljen

    nekom procesu ne moe oduzeti dok sam proces, eksplicitno, ne oslobodi resurs.

    4. Postoji kruno (ciklino) ekanje tako da postoji skup procesa p0, p1,...,pnpri emu proces p0 eka na resurs koji dri proces p1,..., proces pn eka na resurs kojidri proces p0.

    Potpuni zastoj je nepoeljan u sistemu i treba ga, ako je mogue, spreiti ili, kadase dogodi, intervencijom operativnog sistema rasreiti. Naime, u zastoju dolazi dozaustavljanja procesa koji dou u stanje zastoja i ekanja. Do zastoja meu procesimadolazi zbog takmienja sa resursima kompjuterskog sistema ili zbog ekanja da se dogodineki dogaaj koji se ne moe dogoditi.

    Pojavu zastoja najlake je ilustrovati na primeru dvaju procesa P1 i P2. Svaki od tadva procesa poseduje, "dri", ili bolje rei, dodeljen mu je jedan resurs, dok drugi resusrtraI i nastoji dobiti da bi mogao nastaviti izvoenje. Tako proces P1 dri resurs R1 a trairesurs R2 da bi mogao nastaviti izvoenje, dok proces P2, obratno od P1, dri R2 a traiR1 da bi mogao nastaviti izvoenje. Kako niti jedan proces ne oslobaa resurs koji dri, au sistemu pretpostavimo da nema vie takvih resursa, ne moe niti jedan od procesanastaviti izvoenje i zauvek e ekati resurse koje trae. takvu situaciju najlake jeprikazati pomou usmerenog grafika. Pri tom vorovi predstavljaju resurse. U svakomvoru, kao to se moe uoiti na slici 14, upisan je broj resursa a kraj svakog vora vrstaresursa koju dotini vor predstavlja. Lukovi grafika predstavljaju procese i to tako da

    izlaze iz onog vora (resursa) koji "dre" a usmereni su prema voru (resursa) koji "trae",dakle strelica pokazuje resurs koji proces trai, a iznad svake strelice upisano je imeprocesa koji one predstavljaju. Na slici 2.9 prikazana je upravo spomenuta situacija sa dvaprocesa.

    1 1

    R2 R1

    P1

    P2

    Slika2.9 - Prikaz zastoja dva procesa pomou usmrenog grafa

    Situacija je u kompijuterskom sistemu obino mnogo sloenija. Obino moe se reida e zastoj nastupiti onda kada iz svakog vora izlazi onoliko grana koliko resursa dotinivor ima i kad su sve grane povezane tako da ine zatvorenu petlju bez obzira kojimputem poli. Na slici 2.10 prikazana je neto sloenija situacija, gde imamo i vie procesa ivie resursa. Tako na primer imamo resurse vrste R2, kojih ima ukupno 3, a dri ih procesP1 (jednog) i P2 (dva), proces P2 trai jo jedan resurs tipa R2, proces P1 trai resursetipa R5 i R1 itd.

  • 8/6/2019 OperativniSistemi_v2.2008_skripta

    29/90

    Operativni sistemi: Upravljanje procesima

    24

    1 3

    2

    1

    1

    R1 R2

    R3

    R4

    R5

    P1

    P2

    P2P3

    P5P4

    P2

    P1

    Slika2.10 - Prikaz zasojne situacije pomou grafika

    Reavanju problema potpunog zastoja moe se pristupiti pomou razliitih

    strategija, u zavisnosti od toga da li operativni sistem ne dozvoljava pojavu zastoja, kada

    se primenjuju strategije spreavanja ili izbegavanja zastoja, ili operativni sistem

    dozvoljava nastanak zastojakada je neophodno da se predvide algoritmi za otkrivanje

    zastoja i oporavak sistema.

    Strategija spreavanja zastoja zasniva se na injenici da do zastoja moe da

    dodje samo ako su istovremeno zadovoljena sva, ranije navedena, etiri potrebna uslova.

    Iz toga proizilazi da eliminisanjem, odnosno spreavanjem postojanja bilo kog od tih

    uslova sistem ne moe doi u zastoj.

    Eliminisanje prvog uslova, medjusobnog iskljuenja, u optem sluaju nije mogue

    jer su neki resursi po prirodi nedeljivi.

    Eliminisanje drugog uslova, posedovanja i ekanja, moe se postii tako to proces,u trenutku kada trai neki resurs, ne sme posedovati nijedan drugi resurs. Jedan od naina

    da se to obezbedi je da proces mora da zahteva sve resurse na poetku i svi mu se

    moraju dodeliti pre poetka izvravanja. Drugi nain elininacije ovog uslova je da proces,

    pre nego to zahteva jedan resurs mora da oslobodi sve resurse koje je do tada

    posedovao.

    Treba medjutim istai da oba naina dovode do slabog iskorienja resursa, jer se

    resursi dugo dre a slabo koriste, a sa druge strane mogu dovesti do pojave gladovanja

    kada jedan proces eka na resurse neodredjeno dugo vreme (jer je uvek bar jedan odresursa koji mu je neophodan, zauzet).

  • 8/6/2019 OperativniSistemi_v2.2008_skripta

    30/90

    Operativni sistemi: Upravljanje procesima

    25

    Trei uslov, zabrana oduzimanja resursa, moe se eliminisati, medjutim to moe da

    dovede od situacije da se proces kome je oduzet resurs praktino nasilno prekida i

    njegovo izvravanje mora da pone od poetka.

    etvrti uslov, kruno ekanje, moe se eliminisati tako to se resursi numeriu

    rednim brojevima i uvede pravilo da proces moe da zahteva resurse samo u rastuem

    redosledu njihovih rednih brojeva.Strategija izbegavanja potpunog zastoja sastoji se u tome da se od procesa trai da

    unapred trae sve resurse koje e trebati. Na temelju toga vri se ispitivanje moe li doido zastoja ako se resursi dodele procesu u situaciji koja tada postoji u sistemu. Ako dozastoja ne moe doi, proces moe poeti sa izvoenjem. Takav je nain reavanjaproblema zastoja sloen i nije ga mogue sprovesti u svim sluajevima i sistemima.

    Operativni sistem, zahteva a priori informaciju od svakog procesa u pogleduzahteva za resursima. Imajui pri tome informaciju o ukupnom broju resursa i njihovomtrenutnom zauzeu, operativni sistem moe, pre nego to dodeli resurs nekom procesu,da proveri da li e tom dodelom ostati u bezbednom stanju ili e sistem prevesti u

    nebezbedno stanje. U ovom, drugom sluaju, zahtev se odbija i proces se stavlja u redekanja na posmatrani resurs. Ilustrujmo to jednim primerom:

    Sistem raspolae sa 12 primeraka jednog resursa. Trenutno su aktivna tri procesa sa

    sledeim stanjem

    max.zahtev trenutno dodeljeno

    p1 10 5

    p2 4 2

    p3 9 2

    U posmatranom trenutku postoje jo tri slobodna primerka resursa i sistem je u

    bezbednom stanju, to znai da postoji takav redosled dodele resursa koji garantuje da e

    se sva tri procesa izvriti. Naime, redosled dodeljivanja < p2, p1, p3 > garantuje

    zavretak sva tri procesa jer:

    proces p2: (i) dobija 2 primerka (jedan ostaje slobodan) i

    (ii) zavrava sa radom i oslobadja 4 primerka (ostaje pet slobodnih)

    proces p1: (i) dobija svih pet primeraka (nema vie slobodnih) i

    (ii) zavrava se radom i oslobadja 10 primeraka

    proces p3 : (i) dobija sedam primeraka (tri ostaju slobodna) i

    (ii) zavrava sa radom i oslobadja sve resurse.

  • 8/6/2019 OperativniSistemi_v2.2008_skripta

    31/90

    Operativni sistemi: Upravljanje procesima

    26

    Sa druge strane, pogrenom dodelom resursa sistem moe da dodje u nebezbedno

    stanje tako to se na zahtev procesa p3 njemu dodeli jo jedan resurs. Novo stanje

    sistema je:

    max.zahtev trenutno dodeljeno

    p1 10 5

    p2 4 2

    p3 9 3

    i dva primerka resursa su slobodna. Sada jedino proces p2 moe da nastavi, ali i kada

    zavri oslobadja etiri resursa. Tada proces p1 trai jo pet, a proces p3 jo est resursa i

    oba (beznadeno) ekaju. Sistem je prema tome u nebezbednom stanju i moe doi dozastoja u sluaju da nijedan proces (p1 i p3) ne oslobadjaju ranije zauzete resurse.

    Iz izloenog proizilazi da je, u sluaju strategije izbegavanja zastoja, neophodno da

    operativni sistem svaki put, pre dodele nekog resursa, proveri da li sistem, posle takve

    dodele, ostaje u bezbednom stanju. Jedan od poznatih algoritama provere je tzv.

    Bankarov algoritam za sluaj kada u raunarskom sistemu postoji vie primeraka istog

    resursa. (Po ovom algoritmu banka nikad ne ulae raspoloivu koliinu novca na takav

    nain da ne moe da zadovolji svoje komitente). Procesi su obavezni da prilikom

    aktiviranja deklariu tip i maksimalan broj resursa koji e zahtevati. Pri svakom zahtevu zadodelu resursa u toku izvravanja procesa, sistem, koristei Bankarov algoritam,

    proverava da li e posle dodele ostati u bezbednom stanju. Ukoliko je to istina, procesu se

    dodeljuje resurs, a u suprotnom se zahtev odbija i proces se smeta u red ekanja na

    resurs.

    Poslednja strategija, u kojoj se dozvoljava nastanak zastoja sastoji se od dva

    algoritma. Prvi se aktivira periodino i slui za otkrivanje postojanja zastoja. Ukoliko se

    otkrije da postoji zastoj, aktivira se algoritam za oporavak sistema koji se najee svodina izbor "rtve", odnosno procesa koji e se nasilno prekinuti. Resursi koji se tom prilikom

    oslobadjaju dodeljuju se ostalim procesima na takav nain da se svi preostali procesi

    mogu izvriti. Ukoliko to nije mogue, bira se sledea rtva i postupak provere se

    nastavlja.

  • 8/6/2019 OperativniSistemi_v2.2008_skripta

    32/90

    Operativni sistemi: Upravljanje procesorom

    27

    3 UPRAVLJANE PROCESOROM

    Osnovni resurs svakog kompjuterskog sistema jeste centralni procesor, odnosno

    centralni procesori, ako se radi o multiprocesorskom sistemu. U naim razmatranjimaograniiemo se na posmatranje samo jednoprocesorskih sistema. Ve i u takvimsistemima javljaju se sloeni problemi oko dodele (alokacije) procesora procesima.Reavanjem tih i s njima nekih drugih direktno povezanih problema bavi se deooperativnog sistema koji zovemo "upravljanje procesorom" (Procesor Management).

    Osnovni zadaci upravljanja procesorom jesu, prema tome sledei:

    - odluivanje o tome koji od READY procesa dobija procesor, odnosno pravoizvoenja ili kontrola izvoenja,

    - odluivanje o tome kadae "neki proces dobiti procesor",- odluivane o tome kakoe dugo "proces zadrati procesor",

    - pretvaranje zadataka obrade u procese i ukljuivanje procesa u odgovarajuired,

    - dealociranjeprocesaora,- voenjestanja (statusa) svih procesa.

    Ti se osnovni zadaci odnose na procese i esto sa nazivaju "rasporeivanjeprocesa" (Process Scheduling). Uz "ovu brigu o procesima" potrebno je voditi i brigu ozadacima obrade koji jo nisu postali procesi. To moemo nazvati "rasporeivanjezadataka" (Job Scheduling),

    Job Scheduling ukljuuje slede

    e zadatke:- odluivanje kojie zadatak od onih koji ekaju biti uveden u sistem, tj. pretvoren u

    proces i povezan u red ekanja za dodelu procesora (READY red);- alociranje resursa zadacima da bi mogli postati procesi, odnosno da bi mogli

    prei u READY stanje,- dealociranjeresursa za procese koji su zavrili izvoenjem.

    Ti se zadaci razlikuju i s obzirom na vrstu sistema. Tako e, na primer, kod sistemazajednike obrade (Batch sistem) zadaci koji ekaju na ulaz u sistem biti smeteni naeksternoj memoriji. Odavde e zadaci biti uzimani i pretvarani u procese i ukljuivani u redza izvoenje. Ujedno e im biti dodeljivani resursi to su im potrebni za izvoenje. U

    interaktivnom sistemu procesi e biti kreirani odmah im korisnik pone rad (Log-in) aujedno e im biti dodeljeni i resursi. Poveanjem brojakorisnika poveae se i zahtevi zakorienjem pojedinih resursa. Alociranje resursa zadacima mi smo posmatrali odvojenood upravljanja procesorima, odnosno odvojeno od alociranja procesora. U mnogim jesistemima, meutim, alociranje svih ostalih resursa povezano sa alociranjem procesora iprovodi se tako da se resursi trae prekodela operativnog sistema koji slui za upravljaneprocesorom. Taj deo poziva ostale delove zaduene za svaku vrstu resursa.

    Za svaku od dve vrste poslova obino postoji posebni deo operativnog sistema kojiih prevodi, ali to, uopteno posmatrajui i ne mora biti. Deo operativnog sistema koji izvodisve postupke oko rasporeivanja procesa nazivamo "upravlja procesora" (ProcessorSchedular), a deo koji izvodi postupke oko upravljanja zadacima zovemo "upravljazadataka" (Job Schedular).

  • 8/6/2019 OperativniSistemi_v2.2008_skripta

    33/90

    Operativni sistemi: Upravljanje procesorom

    28

    Ako su obadve funkcije ukljuene u jedan modul, onda ga obino nazivamo"Glavni upravlja" (Master Scheduler, High Level Scheduler). Sve u svemu, postoji upraksi razliitih vrsta i kombinacija tih osnovnih funkcija.

    Mi emo u nastavku govoriti uglavnom samo o upravljanju i rasporeivanju procesai dodeli procesora.

    Upravlja procesora izvodi se i sam kao proces. Zbog toga to je njegovoizvoenje vano i hitno daju mu najvei prioritet te e ga dispeer odmah uzeti i predati muprocesor na izvoenje. Meutim, upravlja procesora moe se ukljuivati onda kada je topotrebno, a to znai kad se pojavi situacija, odnosno dogaaj u sistemu koji trai izvoenjeneke od funkcija koje upravlja procesora izvodi. Ti se dogaaji ne mogu unapredpredvideti nego se pojavljuju nesihronizovano i tko ih je potrebno obraivati, odnosnoukljuivati upravlja procesora. Taj se dogaaj naziva dogaajima za upravljanjeprocesorom (scheduling event). Ukljuivanje upravljaa u pravom asu se s pomou

    semaforske tehnike prilino jednostavno. Naime, svaki dogaaj koji predstavlja dogaaj zaupravljanje mora izvesti operaciju SIGNAL na odreenom semaforu, a upravlja procesoraizvodi posle zavretka svog izvoenja operacije WAITna tom semaforu. Time dogaaj zaupravljanje procesorom poziva i aktivira upravlja procesora a upravlja procesora samsebe poto je zavrio izvoenje. Ponovno ukljuivanje upravljaa dogodie se tek ondakada se pojavi novi dogaaj za upravljanje.

    Postoji dosta slinosti izmeu dogaaja za upravljanje i prekida ali se oni ne moguni u kojem sluaju poistovetiti. Oba dogaaja nastaju u unapred nepredvidljivimvremenskim intervalima i oba utiu na to da sistem promeni svoje stanje izvoenja i

    ponaanja. Dogaaji za upravljanje, moe se rei menjaju ponaanje sistema na viojdistanci jer utiu na globalne parametre sistema kao to su prioriteti procesa, broj procesa,redovi ekanja itd., dok prekidi utiu na promenu samo tekueg procesa ili u krajnjemsluaju na stanje samo ogranienog broja procesa, dakle na lokalne parametre, pa se zaprekide moe rei da utiu na nioj visini upravljanja procesorom.

    Prekidi se pojavljuju znatno ee nego dogaaji za upravljanje procesorom. Takoprekidi nastaju u proseku svake milisekunde a dogaaji za upravljanje svake sekunde(LIST 75). S tim u vezi treba napomenuti da je bolje reenje ugraditi to vie funkcija uupravlja procesora a to manje u dispeer, jer se dispeer pozivasvaki put posle obradeprekida. Dispeer i upravlja procesora unekoliko se nadopunjuje u ostvarivanju funkcijaupravljanja procesorom. Zbog toga se dispeer esto naziva upravljaem na niem nivou(Low Level Scheduler) a upravlja procesora upravljaem na viem nivou (High LevelScheduler).

    3.1 ODREIVANJE PRIORITETA NEZAVISNO OD STANJA U SISTEMU

    Red procesa koji ekaju procesor formira se u sistemu zbog toga da bi

    dispeer mogao odabrati proces koji je na redu za izvoenje. Taj red (ili redove, jer

    ih moe biti i vie) formira upravlja procesora, dok dispeer jednostavno uzima prvi

    proces u redu. Tako upravlja procesora zapravo indirektno dodeljuje procesor

    pojedinom procesu. Formiranje redova upravlja procecesora provodi na osnovi

  • 8/6/2019 OperativniSistemi_v2.2008_skripta

    34/90

    Operativni sistemi: Upravljanje procesorom

    29

    dodeljivanja takozvanih prioriteta. Prioriteti koji se dodeljuju svakom procesu

    oznaavaju i odreuju kakav e biti tretman tog procesa u sistemu prilikom

    dodeljivanja procesora. Tako shvaeni prioriteti mogu biti izraeni eksplicitno, to

    znai da e u svakom procesu biti dodeljen brojano izraen prioritet ali mogu biti

    izraeni i implicitno tako proces ne dobija brojano izraen prioritet ali se moe

    upotrebom odreenog algoritma ustanoviti za svaki proces kakvu prednost pred

    drugim procesima ima dotini proces pri dodeli procesora. Tako se odreeni

    prioriteti mogu, ali ne moraju, upotrebljavati i pri dodeli ostalih resursa.

    Postoji vrlo veliki broj razliitih naina odreivanja prioriteta. Te naine

    nazivamo algoritmima za upravljanje ili algoritmima za odreivanje redosleda

    izvoenja (scheduling algorithms, scheduling policies). Veina tih algoritama

    odreuje prioritet procesa imlicitno. Sve algoritme za upravljanje moemo podeliti u

    dve osnovne grupe.

    U prvu emo svrstati sve algoritme koji pri odreivanju redosleda izvoenja

    procesa ne uzimaju u obzir sva mogua stanja procesa u sistemu, odnosno

    mogue situacije u kojima se sistem nalazi nego polaze od pojednostavljene

    situacije unutar sistema, koja je prikazana modelom na slici 3.1. Ta se

    pojednostavljena sitaucija sastoji u tome da se posmatra jedino ekanje za

    dobijanje procesora a sva ostala ekanja, odnosno razlozi za ekanje ne uzimaju se

    u obzir. Zbog toga u ovakvom modelu postoji samo procesorski red ekanja koji

    ukljuuje READY procese, a red ekanja koji sadri procese koji ekaju zbog nekogdrugog razloga (red WAIT procesa) nije ukljuen u ovaj model. Algortitmi za

    odreivanje redosleda izvoenja procesa odnose se dakle samo na READY

    procese.

    Drugu grupu algoritama ine oni algoritmi koji uzimaju u obzir i stanje

    procesa u sistemu. Oni e pri odreivanju prioriteta uzeti u obzir i stanje u itavom

    sistemu. Takvo posmatranje mnogo je realistinije i tako odreeni prioriteti (state

    dependent priorities) bolje i efikasnije reguliu izvoenje pojedinih procesa,

    odnosno dodeljivanje centralnog procesora. Takvi su algoritmi, meutin, mnogo

    sloeniji i mnogo se tee implementiraju.

    Na slici 3.1 prikazan je model upravljanja u sistemu koji se naziva

    procesorski ogranieni sistem (processor bound system). Taj model, kao to je

    reeno, uzima u obzir samo procesorski red (READY procesi). Novodolazei

    procesi ukljuuju se u taj red a takoe i delimino zavreni procesi. To ujedno znai

    da je procesor tretiran kao resurs od prvenstvene i superiorne vanosti (to u

    realnosti nije uvek sluaj), a uticaji se zahtevaju i ekanja za drugim resursima

    zanemaruju. Model takoe predstavlja da procesor uvek ima posla, dakle da uvek

    moe pronai neki proces za izvoenje to je jo manje realno.

  • 8/6/2019 OperativniSistemi_v2.2008_skripta

    35/90

    Operativni sistemi: Upravljanje procesorom

    30

    Novi procesi

    Procesorski red

    Delimi~no zavr[ eni procesi

    Zavr{eni procesi

    Sslika3.1 - Model upravljanja procesorski ogranienog sistema

    Uprkos svemu moe se i na temelju ovako nerealnog modela doi do upotrebljivihalgoritama. Procesi koji su zavrili izvoenje naputaju sistem. Svi ostali procesi predmetsu odreivanja redosleda u redu ekanja, odnosno oni se ukljuuju u red premaimplicitnom ili eksplicitnom prioritetu koji im algoritam za odreivanje redosleda odreuje.

    Na temelju ovakvog modela moe se konstruisati niz razliitih algoritama. Svaki odnjih nastoji maksimizirati ili minimizirati neku od veliina kojom se meri ili efikasnost itavogsistema, iskorienost centralnog procesora ili neka druga korisna veliina. To moe bitirazliito i s obzirom na pojedinu vrstu rada sistema. Tako kod sistema sa ukupnomobradom (Batch) to moe biti vreme obrtaja zadatka a kod time-sharing sistema vremeodgovora. Spomenuemo nekoliko poznatih alogoritama. Svaki od njih primenjuje se upraksi ali nalzimo i niz modifikacija u pojedinim konkretnim sistemima.

    3.2 EKSTERNO ODREENI PRIORITETI

    Eksterno odreeni prioriteti postoje kod mnogih sistema. Korisnik sam unapred iizvan kompijuterskog sistema dodeljuje pojedinim zadacima prioritete izraene brojano uobliku celih brojeva. Ti se prioriteti mogu dodeljivati na temelju vanosti, cene plaanja,koristi za korisnika ili sistem itd. Takvi su prioriteti eksplicitno izraeni. Oni mogu bitiiskljuivi ali se unutar sistema mogu i kombinovati sa nekim drugim i na drugaiji nainodreenim prioritetima.

    Tako, na primer, moe se kombinovati spoljni prioritet sa RR (Round Robin)algoritmom za odreivanje prioriteta, dakle sa interno odreenim prioritetom, i to tako davremenski interval koji se dodeljuje procesu na temelju RR algoritma zavisi(proporcionalno) o eksterno dodeljenom prioritetu. Drugi je nain da se procesu dodeli, natemelju eksternog i internog prioriteta, novi brojano izraen prioritet te procesor dobijaonaj proces koji ima najvii prioritet. Moe se kombinovati eksterno odreeni prioritet saprioritetom dodeljenim na temelju ispitivanja veliine procesa ili vremena potrebnog zaizvoenje. Vreme izvoenja moe se takoe eksterno za izvoenje. Vreme izvoenjamoe se takoe eksterno zadavati (na temelju procene ili iskustva). Eksterno odreeniprioriteti ne moraju nuno biti eksplicitni. Naime, algoritam za odreivanje redosledaizvoenja moe biti jednostavni FIFO (First In First Out) algoritam, gde najvei prioritet imaonaj proces koji je prvi uao u sistem. Redosled dolazaka zadataka odreuje dakleprioritet a taj se redosled odreuje odreuje izvan sistema. Postoje i druge mogunosti zaeksterno odreivanje prioriteta.

  • 8/6/2019 OperativniSistemi_v2.2008_skripta

    36/90

    Operativni sistemi: Upravljanje procesorom

    31

    3.3 ODREIVANJE PRIORITETA

    NA OSNOVU PROCENE VREMENA IZVOENJA

    Poznati algoritam za odreivanje prioriteta je SJFalgoritam (Shortest Jobs First)

    koji svrstava procese u red za izvoenje na temelju vremena koji zadatak trai za svojeizvoenje, i tako da krai procesi imaju prednost. Takav je nain odreivanja prioritetapogodan, na primer, pri skupnoj obradi jer daje krae proseno vreme obrtaja. Postoje dvemodifikacije, koje se esto upotrebljavaju.

    Prvu modifikaciju nazivamo SJF algoritam s pretpranjenjem procesora(Preemptive SJF). Pretraivanje procesora znai da e proces koji se izvodi biti prekinut usvom izvoenju ("proces ispranjen) ako u asu izvoenja doe u sistem zadatak koji imavei prioritet (krae vreme izvoenja).

    Druga modifikacija naziva se SJF algoritam bez pretpraenjenja procesora, isuprotno prvoj, ne prazni procesor ako u toku izvoenja naie zadatak s veim prioritetom,

    odnosno kraim vremenom izvo

    enja. Zbog toga se i naziva SJF bez pretpranjenja(nonpreemptive SJF).

    Ovakve modifikacije s pretpranjenjem i bez pretpranjenja procesora mogu sesusresti i kod drugih algoritama. Nedostatak takvih odreanja redosleda izvoenja jeste tajto dui zadaci mogu ekati vrlo dugo (teoretski ak neogranieno). Zbog toga je esta imodifikacija koja doputa porast prioriteta procesa u zavisnosti od vremena ekanja u reduza izvoenje. Za ovu se modifikaciju moe rei da je uspennija od obinog SJF algoritmaali je znatno sloenija za implementiranje jer treba da prati vreme ekanja u redu za sveprocese. Uopteno vredi i za druge algoritme da moraju biti to jednostavniji i krai zaizvoenje, jer moe doi do generisanja internog rada i do komplikovanogimplementiranja.

    Poznati je algoritam i RRalgoritam (Round Robin) gde se svi procesi posluujucikliki i svaki od njih zadrava procesor za neko odreeno vreme q koje nazivamovremenski odseak ili kvantum (time slice, quantum). Vreme izvoenja ovde implicitnoutie na dodelu procesora. Zavisno od vremena q, mogu biti favorizovani kratki zadaci iline. Ako je q malen, procesor se deli tano prema stvarnom vremenu izvoenja. Ako je qbeskonaan, algoritam prelazi u FIFO.

    Glavni nedostatak RR algoritmajeste to mnogo zadataka ostaje u aktivnom stanjurelativno dugo, a to zahteva veu memoriju. Postoji nekoliko modifikacija ovog osnovnogalgoritma. Na primer, u sistemu gde su novi dolazi esti i brojni, vreme odgovora sve evie rasti, dakle performanse sistema degradiraju se s porastom optereenja. Efikasnamodifikacija u takvim sistemima jeste da i q raste sa brojem procesa. Time e doi dobreg zavravanja pojedinih procesa i njihova nestajanja iz sistema.

    Sledei algoritam koji treba spomenuti jeste FB algoritam (Foreground-Backround). U njemu postoje dva reda ekanja. Proces ulazi u F red koji ima vei prioritetizvoenja. Ako tokom nekoliko ciklusa (po RR principu unutar F reda) ne zavri rad, padau B red koji ima manji prioritet izvoenja. U B redu opet se procesi izvode po RR algoritmuali samo onda kada u F redu nema nijednog procesa. Takav se algoritam esto koristi usistemima koji podravaju skupni i interaktivni nain rada. Dugi e procesi svi pasti u Bred koji se izvodi poto se poslui F red, dok e se kratki interaktivni procesi uspeti zavriti

    u F redu. FB algoritam ima samo dva reda ekanja za izvoenje. Ovakav nainodreivanja redosleda izvoenja moe sa proiriti na vie redova ekanja. U praksisusreemo sisteme sa tri reda ekanja (DEC-10 na primer).

  • 8/6/2019 OperativniSistemi_v2.2008_skripta

    37/90

    Operativni sistemi: Upravljanje procesorom

    32

    Osim spomenutih postoje i drugi algoritmi koji su opisani u literaturi.

    3.4 ODREIVANJE PRIORITETA PREMA VREMENU EKANJA U REDU

    Ako se eli svim procesima dati mogunost to breg izvoenja, onda se prioritetiprocesa menjati (poveavati) zavisno o toga koliko dugo ekaju u redu za izvoenje. Takoe prioriteti procesa rasti i svaki e proces doi relativno brzo do izvoenja. Mogue je dase takav nain dodele prioriteta kombinovati sa eksternim zadavanjem prioriteta. Tada eproces poeti sa eksterno zadanim prioritetom i prioritet e mu sa ekanjem rasti za nekotakoe eksterno odreeno vreme.

    Odreivanje prioriteta moe se provesti neke zadane funkcije troka. Svaki procesdolazi u sistem sa svojom zadanom funkcijom troka koji zavisi od vremena ekanja. Zaizvoenje se uzima onaj proces koji minimizira sumu trokova za sve procese koji ekajuza izvoenje. Takve i sline mogunosti za odreivanje redosleda izvoenja ree se u

    praksi primenjuju.

    3.5 ODREIVANJE PRIORITETA PREMA STANJU U SISTEMU

    U opisanim algoritmima za odreivanje redosleda izvoenja procesa, odnosno zadodeljivanje procesora procesima nije se vodilo rauna o stanju u sistemu, zbog togainterni rad moe narsti iznad tolerantnih granica. Model koji uzima u obzir stanje u sistemumoe u tom sluaju pomoi. Takvi slgoritmi, iako sloeniji, dre interno generisani rad utolerantnim granicama, a naroito ublaavaju degradaciju performansi sistema prilikompreopterenja. Model je prikazan ematski na slici 3.2, a sadri, za razliku od procesorski

    ogranienog modela, i red odnosno redove ekanja koji mogu nastati zbog zahteva zaresursima ili ulazno/izlaznim operacijama.

    Takav model, iako na prvi pogled ne izgleda mnogo sloeniji od prethodnoga sadri usebi znatno veu kompleksnost posmatranja i puno je blii stvarnom stanju u sistemu.Naime, pod blokiranim procesima smatraju se svi procesima smatraju se svi procesi WAITstanju koji su zaustavljeni na rzanim semaforima ili ekaju na ulazno.izlazne operacije. Nasemaforima, kao to znamo, procesi mogu ekati traenje resursa ali zbog meusobnihodnosa meu procesima. Praenje je oslobaanja (signalizacija) svih tih semaforasloeno, i postoje razne mogunosti da proces pree iz WAITu READYstanje, odnosnoda izae iz reda ekanja i ue u red za izvoenje.

    U ovom sluaju upravlja procesora prei donoenju odluke o upravljanju procesorom

    mora voditi rauna i o alokaciji drugih resursa. Razliiti algoritmi i strategije postoje ali ih jeu praksi dosta teko primeniti.

    Ti se algoritmi temelje na odreenim empirikim dokazanim kriterijumima kao tosu, na primer, sledei kriterijumi:

  • 8/6/2019 OperativniSistemi_v2.2008_skripta

    38/90

    Operativni sistemi: Upravljanje procesorom

    33

    Novi procesi

    Delimi~no zavr{eni procesi

    Procesor

    Zavr{eni procesi

    Dispe~er

    dodeljuje

    Blokirani procesi

    Zahtevi ispunjeni

    READY

    WAIT

    Slika3.2 - Proireni model za upravljanje procesorom

    - Procesima koji imaju veliki broj resursa treba davati visok prioritet da bi seubrzalo oslobaanje tih resursa a time i njihovo dodeljivanje drugim procesima. Pritom seu ekstremnim sluajevima moe dogoditi da veliki procesi monopolizuju sistem.

    - Procesima koji imaju veliki broj resursa, a blokirani su zbog njih, treba davatiprednost i u dobijanju tih resursa iz istog razloga kao i u dobijanju procesora.

    - Alokaciju memorije treba provoditi prema principima radnog skupa stranica.

    - Procesi operativnog sistema moraju imati prioritet koji odgovara hitnosti funkcijakoje provode. Pritom najvei prioritet treba svakako dodeliti upravljau procesora.

    Treba voditi rauna da interni rad generie ovakav nain upravljanja procesorom nabude prevelik.

    Spomenuemo samo kratko neke mogunosti za izgradnju jednostavnijihalgoritama.

    RR algoritam moe se modifikovati tako da se posle svakog ciklusa izraunavremenski odseak koji se dodeljuje procesima. Pritom se obino uzima neko fiksnovreme kao vreme itavog ciklusa dodeljuvanja procesorima. Pod ciklusom se smatra

    dodela procesora svim procesima koji su u redu za izvo

    enje. To se vreme deli sa brojemprocesa u redu koji se stalno menja. Ako ima nekoliko procesa, vremenski odseak e bitidui, a ako ima vie procesa bie krai. Slini se zahtevi mogu uiniti i kod FB algoritma.Moe se izgraditi algoritam koji minimizira prelaze iz RUN stanja u WAIT stanja zbogtraenja novih resursa.

    Broj moguih algoritama i ideja na temelju kojih bi te algoritme trebalo sagraditi jeste veliki. Ne postoji, meutim, mogunost da se vrednost svakog pojedinog algoritmaproceni teoretski nego ga treba praktino ispitati. Tu znatnu pomo mogu pruiti ispitivanjapomou simulacija takvih upravljanja procesorom.

  • 8/6/2019 OperativniSistemi_v2.2008_skripta

    39/90

    Operativni sistemi: Upravljanje memorijom

    34

    4 UPRAVLJANJE MEMORIJOM

    4.1 UVOD

    Pod upravljanjem memorijom sa stanovita operativnog sistema, podrazumevaju se

    funkcije:

    - praenja stanja memorije(u smislu vodjenja evidencije o delovima memorije koji su

    slobodni i delovima memorije koji su zauzeti i koji ih procesi zauzimaju)

    - dodeljivanja (alokacije) slobodnih delova memorije procesima koji ih zahtevaju i

    - oslobadjanja (dealokacije) zauzetih delova memorije kada, iz bilo kojih razlogaprestaje potreba da neki proces zauzima delove memorije.

    4.2 ADRESNI PROSTOR, MEMORIJSKI PROSTOR I PRELIKAVANJEIZADRESNOG U MEMORIJSKI PROSTOR

    Bez obzira na konkretan nain na koji operativni sistem upravlja memorijom u smislu

    navedenih funkcija, on je duan da svakom pojedinanom programu obezbedi nesmetano

    i uspeno izvravanje. To praktino znai da upravljanje memorijom, u najirem smislu

    poinje ve sa prevodjenjem programa i obuhvata sledee funkcije preslikavanja,

    prikazane na slici 4.1.

    A E

    XMIN X

    C

    011010

    011100

    101100

    101110111000

    10250

    10300

    10260

    1010010400

    Skup imena koje

    dodeljuje program

    Skup programskih

    adresa

    Skup memorijskih

    adresa

    preslikavanje

    adresa

    preslikavanje

    imena

    Slika 4.1

  • 8/6/2019 OperativniSistemi_v2.2008_skripta

    40/90

    Operativni sistemi: Upravljanje memorijom

    35

    1. Preslikavanje imena - se odnosi na preslikavanje simbolikih adresa (imena) koje

    programer dodeljuje promenljivima i pojedinim naredbama u programu u binarne adrese

    koje se esto nazivaju jedinstvenim identifikatorima ili programskim adresama.

    2. Preslikavanje adresa - se odnosi na preslikavanje programskih adresa u stvarne,

    fizike memorijske adrese.

    3. Preslikavanja sadraja - se odnosi na preslikavanje memorijskih adresa u vrednosti

    (podatke) koje one sadre.

    Navedena preslikavanja dogadjaju se u razliitim vremenskim trenucima. Preslikavanje

    imena se najee obavlja u toku prevodjenja, ali se esto ne moe u potpunosti zavriti

    pre povezivanja (zbog eksplicitnih poziva podprograma i/ili implicitnog pozivanja

    sistemskih procedura). Preslikavanje adresa se u najjednostavnijem sluaju obavlja u tokupunjenja u memoriju. No, u zavisnosti od naina upravljanja memorijom od strane

    operativnog sistema preslikavanje adresa moe se obavljati u toku samog izvravanja

    programa. ta vie, kod nekih naina upravljanja memorijom ni povezivanje se ne moe

    obavljati pre poetka izvravanja programa. Konano, preslikavanje sadraja se obavlja u

    vreme izvravanja programa.

    Sam in ili dogadjaj preslikavanja se naziva vezivanje (binding). Na primer kada se

    izvri preslikavanje simbolikog imena u programsku adresu, kaemo da je posmatrana

    simbolika adresa vezana za odredjenu programsku adresu (da joj jednoznano odgovarata programska adresa). Kada se programska adresa preslika u memorijsku adresu

    kaemo da je vezana za tu memorijsku adresu. Vremenski trenutak kada se odigrava

    vezivanje naziva se vreme vezivanja (binding time).

    to se vreme odredjenih vezivanja vie odlae to je mogue fleksibilnije upravljanje

    memorijom (sa stanovita operativnog sistema) i obrnuto. Na primer ako se i preslikavanje

    imena i preslikavanje adresa odigrava pre punjenja u memoriju (to je mogue samo u

    sluaju da se unapred zna gde e biti program smeten u memoriji) onda bi adresni delovi

    instrukcija tog programa sadravali stvarne, memorijske adrese podataka i nekihinstrukcija. Takav program se onda moe izvravati samo u tim, unapred odredjenim

    memorijskim lokacijama to predstavlja veoma kruto ogranienje za operativni sistem.

    Oigledno je, prema tome, da postoji veoma jaka zavisnost izmedju programa za

    prevodjenje (compiler-a), programa za povezivanje (linker-a) i programa za punjenje

    (loader-a) kao delova sistemskog softvera sa jedne strane i operativnog sistema, odnosno

    njegovog dela za upravljanje memorijom, sa druge strane.

    Pri tome najvei uticaj na operativni sistem ima preslikavanje adresa, ili kako se to

    kae preslikavanje adresnog prostora programa (skupa programskih adresa) u memorijski

    prostor (skup memorijskih adresa). U sluaju statikog povezivanja adresni prostor je

    linearan (sastoji se od niza kontinualnih adresa). U zavisnosti od naina upravljanja

  • 8/6/2019 OperativniSistemi_v2.2008_skripta

    41/90

    Operativni sistemi: Upravljanje memorijom

    36

    memorijom takav adresni prostor moe se preslikati u odgovarajui linearan memorijski

    prostor pa se preslikavanje adresa moe opisati funkcijom:

    a ' = p + a

    gde je: a'- memorijska adresa,

    p - poetna adresa programa u memoriji i

    a - programska adresa.

    U optem sluaju preslikavanje adresa moe biti realizovano na razliite naine pa se

    moe predstaviti funkcijom:

    a ' = f (a)

    pri emu implementaciju funkcije f obavlja operativni sistem.

    4.3 PROBLEM UPRAVLJANJA MEMORIJOM

    Kako je ve ranije istaknuto, da bi se jedan program izvrio neophodno je da se u

    memoriju unesu i njegovi instrukcije i podaci, kako bi bili dostupni centralnom procesoru.

    No, to ne znai da sve instrukcije i svi podaci programa moraju biti u memoriji za sve

    vreme izvravanja programa. Naime, u principu je mogue uneti u memoriju samo jedan

    deo instrukcija programa sa podacima neophodnim za njihovo izvravanje. Po izvravanju

    tog dela programa u memoriju se moe uneti, i to u iste lokacije, sledei niz naredbi sa

    podacima potrebnim za njihovo izvrenje. U uslovima vieprogramskog rada ovakva

    mogunost je posebno interesantna. Naime, dranjem u memoriji delova, a ne celihprograma, mogue je aktivirati vie programa u jednom vremenskom intervalu ime se

    poveava stepen vieprogramskog rada a time i stepen iskorienjaostalih resursa

    raunara. Naravno, ovakav nain rada zahteva dodatne hardverske komponente i

    uslonjava operativni sistem. Pri tome bi, sa stanovita operativnog sistema memorija bila

    podeljena na dva nivoa. Prvi nivo inila bi primarna (glavna) memorija u kojoj bi se drali

    trenutno aktivni delovi razliitih programa, dok bi drugi nivo inila sekundarna (pomona)

    memorija sa relativno brzim pristupom (na primer magnetni disk sa fiksnim glavama), na

    kome bi se uvale kompletne kopije svih aktivnih programa. Operativni sistem bi tada

    problem upravljanja memorijom sveo na problem vremenske i prostorne raspodele

    programa ili delova programa izmedju dva nivoa memorije. Drugim reima, upravljanje

    memorijom se sastoji od tri komponente:

    upravljanje unoenjem (fetch policy) - u smislu donoenja odluke o tome kada e se

    program ili njegovi delovi uneti u memoriju

    upravljanje smetanjem (placement policy) - u smislu donoenja odluke o tome gde e

    se program ili njegovi delovi smestiti u memoriji i

  • 8/6/2019 OperativniSistemi_v2.2008_skripta

    42/90

    Operativni sist