22
1 3. O PEARATIVNI SISTEMI Operativni sistem je uopšten poznat pojam asocirajući na programski paket koji omogućuje ispravan rad računarskog sitema. Uglavnom se pod računarski sistem podrazuemva desktop i prenosivi računari u koje spadaju laptop-ovi, notebook-ovi, tableti. Svaki od ovih sistema ima specifičan hadrver kome upravlja podržani operativni sistem. Uopšteno, operativni sistem je skup sistemskih programa uskladištenih u internoj memoriji hardvera koje sistem može da dekodira u izvršne fizičke operacije specifirane arhitekturom, omogućavajući fukcionalnost i upotrebljivost hardvera. Zaključuje se da svi ureĎaji koji imaju ugraĎen blok za čuvanje algoritama upravljanja njegovim resursima podržavaju koncept operativnog sistema. Primer su takozvani embedded (ugraĎeni) sistemi sa ugraĎenim mikroprocesorima i ROM memorijom u kojima se nalazi svojstven operativni sistem. Fotoaparati, TV, klima uredjaji spadaju u embedded grupu ureĎaja. U ovom razmatranju usredsredićemo se na operativne sisteme personalnih računara. Presonalni računar je multifukcionalni ureĎaj sa raznolikim komponetima u koje spadaju procesor, operativna memorija, ulazni i izlazni uraĎaji, pa upravljanje ovim resursima nij e jednostavan posao. Zadatak operativnog sistem se može ukratko razdeliti prema sledećim ciljevima: omogućiti upotrebljivost hadrvera omogućiti transparentnost aplikativnog softvera na raznolikost hardvera omogućiti jednostavno korišćenje od strane korisnika Na tržištu se mogu kupiti komponente računara od velikog broja različitih proizvoĎača pa operativan sistem mora obezbediti korišćenje aplikativnog programa nezavisno od konfiguracije. To se postiže pomoću posebnih upravljačkih programa (drajvera) koji komunciraju na isti način sa operativnim sistemom ne zavisno od specifičnosti hardvera. Sam drajever je zadužen za upravlajnje date komponente hardvera. Da bi korisnik mogao koristiti računar, hardver mora da obzebedi ureĎaje za prihvatenje komande korisnika i prikazivanje rezultata na osnovu unete komande. Upareni ulazni i izlazni ureĎaji zaduženi za komunikaciju računara sa korisnikom definišu terminal. Tastataura i monitor predstavljaju najstandarniji tip terminala. Operativni sistem treba obezbediti lak i intuitivan način korišćenja terminala. Današnji komercijalni operativni sistemi podražavaju grafičko korisničko okruženje (GUI – graphical user inteface), kakav je dobro poznat Windows. Za vreme prvih operativnih sistemima komunikacija se obavljala isključivo preko znakovnih simbola, konzole. Korisnik zadaje zadatak putem niza znakova računaru, a rezultat računar predaje putem niza znakova, takoĎe. Konzolno okruženje se i danas koristi u administraciji servera jer GUI opterećuje nepotrebno procesorske resurse, kao i zbog potrebe višeg poznavanja korišćenja iz bezbednosnih razloga (ako znaš šta treba da odradiš, onda poznaješ i komandu za izvršavanje).

3. OPEARATIVNI SISTEMI - etsntesla.edu.rs sistemi.pdf · Fotoaparati, TV, klima uredjaji spadaju u embedded grupu ureĎaja. U ovom razmatranju usredsredićemo se na operativne sisteme

  • Upload
    others

  • View
    12

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 3. OPEARATIVNI SISTEMI - etsntesla.edu.rs sistemi.pdf · Fotoaparati, TV, klima uredjaji spadaju u embedded grupu ureĎaja. U ovom razmatranju usredsredićemo se na operativne sisteme

1

3. OPEARATIVNI SISTEMI

Operativni sistem je uopšten poznat pojam asocirajući na programski paket koji omogućuje

ispravan rad računarskog sitema. Uglavnom se pod računarski sistem podrazuemva desktop i

prenosivi računari u koje spadaju laptop-ovi, notebook-ovi, tableti. Svaki od ovih sistema ima

specifičan hadrver kome upravlja podržani operativni sistem. Uopšteno, operativni sistem je

skup sistemskih programa uskladištenih u internoj memoriji hardvera koje sistem može da

dekodira u izvršne fizičke operacije specifirane arhitekturom, omogućavajući fukcionalnost i

upotrebljivost hardvera. Zaključuje se da svi ureĎaji koji imaju ugraĎen blok za čuvanje

algoritama upravljanja njegovim resursima podržavaju koncept operativnog sistema. Primer su

takozvani embedded (ugraĎeni) sistemi sa ugraĎenim mikroprocesorima i ROM memorijom u

kojima se nalazi svojstven operativni sistem. Fotoaparati, TV, klima uredjaji spadaju u embedded

grupu ureĎaja.

U ovom razmatranju usredsredićemo se na operativne sisteme personalnih računara. Presonalni

računar je multifukcionalni ureĎaj sa raznolikim komponetima u koje spadaju procesor,

operativna memorija, ulazni i izlazni uraĎaji, pa upravljanje ovim resursima nije jednostavan

posao. Zadatak operativnog sistem se može ukratko razdeliti prema sledećim ciljevima:

omogućiti upotrebljivost hadrvera

omogućiti transparentnost aplikativnog softvera na raznolikost hardvera

omogućiti jednostavno korišćenje od strane korisnika

Na tržištu se mogu kupiti komponente računara od velikog broja različitih proizvoĎača pa

operativan sistem mora obezbediti korišćenje aplikativnog programa nezavisno od konfiguracije.

To se postiže pomoću posebnih upravljačkih programa (drajvera) koji komunciraju na isti način

sa operativnim sistemom ne zavisno od specifičnosti hardvera. Sam drajever je zadužen za

upravlajnje date komponente hardvera. Da bi korisnik mogao koristiti računar, hardver mora da

obzebedi ureĎaje za prihvatenje komande korisnika i prikazivanje rezultata na osnovu unete

komande. Upareni ulazni i izlazni ureĎaji zaduženi za komunikaciju računara sa korisnikom

definišu terminal. Tastataura i monitor predstavljaju najstandarniji tip terminala. Operativni

sistem treba obezbediti lak i intuitivan način korišćenja terminala. Današnji komercijalni

operativni sistemi podražavaju grafičko korisničko okruženje (GUI – graphical user inteface),

kakav je dobro poznat Windows. Za vreme prvih operativnih sistemima komunikacija se

obavljala isključivo preko znakovnih simbola, konzole. Korisnik zadaje zadatak putem niza

znakova računaru, a rezultat računar predaje putem niza znakova, takoĎe. Konzolno okruženje se

i danas koristi u administraciji servera jer GUI opterećuje nepotrebno procesorske resurse, kao i

zbog potrebe višeg poznavanja korišćenja iz bezbednosnih razloga (ako znaš šta treba da

odradiš, onda poznaješ i komandu za izvršavanje).

Page 2: 3. OPEARATIVNI SISTEMI - etsntesla.edu.rs sistemi.pdf · Fotoaparati, TV, klima uredjaji spadaju u embedded grupu ureĎaja. U ovom razmatranju usredsredićemo se na operativne sisteme

2

Na osnovu cilja koje treba obezbediti, radni okvir operativnog sistema se svodi na izvrašavanje

sledećih radnji:

upravljanje reusrsima: CPU, OM. I/O , File system

komunikacija se aplikativnim softverom – sistemski pozivi

upravljanje procesima

Dakle, operativni sistem je posrednik izmeĎu hadvera i korisnika, odnosno programa koji rešava

konkretan problem korisnika.Upravljanje resursima računara zadužen je skup sistemskih

programa gupisanih u celinu čineći jezgro operativnog sistema koje se češće naziva kernel.

Kernel obavlja osnovne funkcije operativnog sistema i uvek se nalazi u memoriji tokom rada

računara. Na Sl. 3.1.1. predstavljen je slojevit prikaz povezanosti hadrvera sa jedne strane,

operativnog sistema i aplikativnog softvera, odnosno korisnika sa druge strane, dok je na Sl.

3.1.2. prikazana blok šema kernela koji odvojeno upravlja resursima hardvera.

3.1.1.

3.1.2.

Page 3: 3. OPEARATIVNI SISTEMI - etsntesla.edu.rs sistemi.pdf · Fotoaparati, TV, klima uredjaji spadaju u embedded grupu ureĎaja. U ovom razmatranju usredsredićemo se na operativne sisteme

3

3.1.1. S ISTEMSK I P O ZIVI

Aplikativni softver nema direktan pristup hardveru računara, nego mora da zatraži zahtev

operativnom sistemu za uslugu koju će odraditi umesto njega. Ovakav način pristupa oslobaĎa

programere korisničkih softvera poznavanje unutrašnjih osobenosti hardvera, i programiranje

svodi na pozivanje funkcija i procedura koje se nalaze u bibilotekama podržanih programskih

jezika. Biblioteke (library) su datoteke u kojoj se nalazi skup procedura i funkcija, pri čemu

programer može da je poveže sa svojim pisanim programom i na taj način omogući njihovo

pozivanje iz koda programa. Bibloteke koje se koriste za komunikaciju izmeĎu različitih

softverskih podsistema (npr. izmeĎu aplikacije i operativnog sistema) nazivaju se API -

application programming interface.

Procedure i funkcije pozvane od strane aplikativnog softvera, a nalaze se u sastavu operativnog

sistem predstavljaju sistemske pozive. Jedna od njih su procedure read() i write() za rad u

konzoli, podržani od Pascal programskog jezika. Kad god program zatraži prenos podataka sa

treminala sistemskim pozivom read() ili write(), izvršavanje se prenosi na operativni sistem koji

obavlja prenos podatka sa terminalom, i nakon završetka se vraća na pozivajući program.

Sistemski pozivim se ograničava direktno korišćenje hardverskih resursa od strane aplikativnih

softvera, prebacujući na domen operativnog sistema. Stoga, pouzdanost i zaštita sistema se

povećavaju, blokirajući zloupotrebe odreĎenih korisnika da upravljaju ili koriste prostor

rezervisane za druge aplikacije, kao i samog operativnog sistema.

3.2. PROCESI

Da bi računar izvršavao program on mora da se nalazi u operativnoj memoriji računara.

Uobičajno je da će se neki delovi programa ćešće izvršavati od drugih, može se dogoditi da neke

procedure i funkcije ne budu pozvane tokom celog rada programa. Postoje programi čije

veličine znatno premašuju kapacitet operativne memorije. U višekorisničkom radu postoji

potreba da se paralelno izvršavaju više programa.

Svi navedeni problemi i zahtevi uslovljavaju odreĎen metod organizacije operativnog sistema, uz

obavezu da omogući efikasnost i ispravnost rada. Rešenje je da se samo deo programa koji se

trenutno izvršava sa svim svojim podacima nalazi u memoriji, formirajući posebnu celinu,

proces. Proces je osnovni element operativnog sistema, koji se razgraničava od ostalih svojim

adresnim prostorom, pozicijom izvršavanja (PC-programe counter), inditetom i drugo. Može

posojati više nezavisnih procesa nad istim delom programa. TakoĎe, program se može razdeliti u

više meĎusobno povezanih procesa.

Page 4: 3. OPEARATIVNI SISTEMI - etsntesla.edu.rs sistemi.pdf · Fotoaparati, TV, klima uredjaji spadaju u embedded grupu ureĎaja. U ovom razmatranju usredsredićemo se na operativne sisteme

4

3.2.1. OS OB IN E PROC ES A

Operativan sistem upravlja procesima, dajući ili oduzimajući im resurse hardvera. Zbog toga se

svakom procesu dodeljuju prateće informacije koje se čuvaju u adresnom prostoru operativnog

sistema. Za ispravan nastavak izvršavanja procesa, osnovne informacije su:

ID – indentitet procesa (jedinstven pozitivan broj za indetifikaciju procesa u sistemu)

kontekst procesora – sadržaj svih dostupni registra nakon oduzimanja procesora

procesu (PC, PSW, IR …)

memorijski parametri – veličina i pozicija dodeljenog adresnog prostora (PMTP)

I/O parametri – spisak otvorenih datoteka

Informacije o rasporeĎivanju – informacije potrebne uslužnim programima operativnog

sistema (procesorsko vreme, prioritet, stanje )

ostalo – npr. pokazivač na sledeći proces u nizu

Sve navedene informacije procesa se grupišu u struktuiran podatak koji se zove kontrolni blok

PCB – Process Control Block, predstavljen na Sl. 3.2.1.

3.2.1.

Page 5: 3. OPEARATIVNI SISTEMI - etsntesla.edu.rs sistemi.pdf · Fotoaparati, TV, klima uredjaji spadaju u embedded grupu ureĎaja. U ovom razmatranju usredsredićemo se na operativne sisteme

5

3.2.2. STANJ A PROC ES A

U zavisnosti trenutnog dešavanja procesa, procesi mogi biti u jednom od sledećih stanja:

1. Running – procesu je dat procesor koji ga izvršava.

2. Ready – proces čeka u redu za dobijanja procesora. U trenutku oduzimanja procesora

running procesu, operativni sistem može predati nekom procesu sa ready liste.

Uglavnom, running procesi ulaze u ready stanje, nakon kreiranja, spoljašnjeg prekida

(IRQ linije) od strane operativnog sistema ili je sam proces zatražio sistemski poziv koji

ne zahteva uslugu operativnog sistema.

3. Blocked - proces iz running stanja ulazi u blocked (blokirajuće) kada traži odreĎenu

uslugu od operativnog sistema i ostaje u njemu sveg dok ga operativni sistem ne opsluži.

Zahtev se može odnositi na neku operaciju ulaznog-izlaznog ureĎaja ili na odreĎeni

dogaĎaj unutar drugog procesa koji signalizira obavljen dogaĎaj sitemskim pozivom.

Procesi mogu preći iz running u blocked stanje jedino preko sistemskih poziva.

Na Sl. 3.2.2. prikazan je vremenski okvir rada prosesa, u kome se primećuje promena iz running

stanja procesa preko sistemskih poziva – wait(), openfile(), exit(), dispatch(), dok je za ostale

promene stanja odgovoran operativni sistem ili sistemski pozivi roditeljskog procesa – fork (),

execlp().

3.2.2.

Page 6: 3. OPEARATIVNI SISTEMI - etsntesla.edu.rs sistemi.pdf · Fotoaparati, TV, klima uredjaji spadaju u embedded grupu ureĎaja. U ovom razmatranju usredsredićemo se na operativne sisteme

6

3.2.3. KRE IR ANJ E PROC ES A

Novi proces se kreira sistemskim pozivom kreirajućeg (roditeljskog) procesa – Parent, pri čemu

se novonastali naziva Child (dete). Parent i child procesi formiraju hijerarhisku povezanost, koja

se ogleda uticajem dogaĎaja u jednom procesu na drugi. Na primer, ako se roditeljski proces

ugasi, gase se svi njegovi child procesi.

3.2.3.1. Sistemski poziv fork()

U Unix-su, roditeljski proces sistemskim pozivom fork() kreira kopiju svog adresnog prostora u

slobodnom delu operativne memorije prikazanoj na Sl. 3.2.4. Operatvni sistem može da selektuje

jedan od ovih nezavisnih procesa koji su totalno identični uz razliku u poziciji trenutnog

izvršavanja. fork() je funkcija koja vraća celobrojnu vrednost jednaka nulu u procesu detea, dok

u roditeljskom vraća pozitivan celobrojan indifikacioni broj porcesa deteta (PID – process ID)

3.2.3.2. Sistemski poziv execlp()

Unutar kopiranog dete procesa sistemski pozivom execlp (string imePrograma), adresni prostor

se zamenjuje programom navedenog imenom za argument execlp() procedure. Na taj način

kreiran je novi sadržaj, a da nije kopija kreirajućeg.

3.2.3.

Page 7: 3. OPEARATIVNI SISTEMI - etsntesla.edu.rs sistemi.pdf · Fotoaparati, TV, klima uredjaji spadaju u embedded grupu ureĎaja. U ovom razmatranju usredsredićemo se na operativne sisteme

7

3.2.4.

Sleduje primer koda parent procesa u sintaksi Pascal jezika, koji kreira novi proces. (Napomena:

execlp i fork podržava C programski jezik, ovde je samo upotrebljena sintaksa Pascala)

program KreiranjeProcesa;

var pid:Integer;

begin

pid:= Fork();

if pid > 0 then

begin

Wait();

writeln (‘Ovo je proces roditelj’);

end;

Page 8: 3. OPEARATIVNI SISTEMI - etsntesla.edu.rs sistemi.pdf · Fotoaparati, TV, klima uredjaji spadaju u embedded grupu ureĎaja. U ovom razmatranju usredsredićemo se na operativne sisteme

8

if pid := 0 then

begin

writeln (‘Ovo je proces dete’);

Execlp(‘/tmp/HelloWorld.exe’);

end;

end.

Sistemskim poziv wait( ) blokira roditeljski proces sve dok se proces dete ne ugasi, nakon čega

se deblokira i kada mu operativni sistem preda procesor, nastavlja izvršavanje. Ako je

HelloWorld.exe u direktijumu /tmp izvršni program koji ispisuje na ekranu: ‘Hello World’,

onda će posle izvršenja programa KreiranjeProces, sledeće poruke biti prikazane na

ekranu:

Ovo je proces dete

Hello World

Ovo je proces roditelj

3.2.4. GAŠ ENJE P ROCE S A

Gašenje procesa podrazumeva oslobaĎanje resursa, a to su procesor, adresni prostor operativne

memorije, zatvarnje liste otvorenih datoteka i drugo. Pri tome operativni sistem briše kontrolni

blok pocesa (PCB) iz tabele procesa, signalizira da je proces ugašen i obavlja ostale usluge

sprečavajući naknadne greške nastale uticajem gašenja. Uzroci gašenja procesa su:

izvršavanje poslednje nardbe u glavnom programu (U Pascalu, naredba ispred ključne

reči end.)

kada program zatraži sistemskim pozivom exit()

od strane operativnog sistema usled pokušaja nedozvoljene operacije

3.2.5 Dispatch() PRO CEDUR A

Dispatch() -dispačer je procedura operativnog sistema zadužena za zamenu i selekciju procesa

sa ready liste sa trenutnim running procesom. Proces sam može da zatraži rasporeĎivanje,

sistemski pozivom dispatch(), ako na primer radi u multiprocesnom režimu, prepuštajući

procesor drugim procesima. Pošto samo jedan program poseduje procesor bilo korisnički proces

ili operativni sistem, prelazak na dispačer sa nekog procesa se ostvaruje preko IRQ linije

(hadverskog prekida) pridružene operativnom sistemu. Dakle, dispačer je prekidna rutina na

koju se skače nakon aktiviranja IRQ linije. Dispačera se aktivira periodično (sinhroni prekid)

ili u odreĎenim vremenskim trenucima.

Page 9: 3. OPEARATIVNI SISTEMI - etsntesla.edu.rs sistemi.pdf · Fotoaparati, TV, klima uredjaji spadaju u embedded grupu ureĎaja. U ovom razmatranju usredsredićemo se na operativne sisteme

9

Dispečer skuplja sve informacije o prekinutom running procesu i skladišti ih u njegov kontrolni

blok (PCB) uz dodelu ready stanja. Zatim na osnovu algoritma zamene odbira neki proces iz

ready liste i markira ga running stanjem, pri čemu može biti i prošli proces. Na osnovu konteksta

kontrolnog bloka running procesa, dispačer obezbeĎuje procesor i druge resurse procesu.

Završetakom dispačera, nastavlja se izvršavanje selektovanog procesa.

Podsetiti se RTI naredbe, kako bi se izvršio prenos iz kontrolnog bloka u registre

procesora, ako u posmatranoj arhitekturi imao samo PC, PSW, ACC, IR, DR0..3

registre koje se čuvaju u kontrol bloku.

Na Sl. 3.2.5. predstavljena je šema promene running stanja iz procesa A u proces B.

3.2.5.

Dispačer se ne sme prekidati, jer bi izazvalo hazardne greške u strukturi podataka operativnog

sistema. Dipačer nema kontrolni blok (PCB) i nije proces u pravom smislu, jer nema smisla da

prvo sam sebe selektuje da bi izvršavao selekciju nekog konkretnog procesa. Ako bi se

realizovao prekid za ponovni poziv disprečera izgubila bi se informacije koje su se u tom

trenutku prenosilie u kontrolni blok, pa nisu uspešno sačuvane da kraja. Samo neočekivani

prekidi od IRQ linije mogu zaustaviti rad dispečera, zbog toga potrebno ih je maskirati. Na

Page 10: 3. OPEARATIVNI SISTEMI - etsntesla.edu.rs sistemi.pdf · Fotoaparati, TV, klima uredjaji spadaju u embedded grupu ureĎaja. U ovom razmatranju usredsredićemo se na operativne sisteme

10

osnovu arhitekture iz prve oblasti (Procesor), maskiranje se obavlja jednostavnom instrukcijom

INTD koja prestavlaj lock primitivu na Sl. 3.2.5. dok unlock primitiva predstavlja jednu INTE

instrukciju koja dopušta prekide. Na multiprocesorskim sistemima, hardver mora obezbediti

odgovaruću podršku.

3.2.6. KO OPER ATIVN I P ROCES I

Procesi meĎu sobom dele resurse hardvera, prenoseći informacije jednom drugome. Na taj način

povećava se fleksibilnost sistema. Umesto jednog glomaznog program, zadaci se podele na više

procesa koji uporedno konkurišu resurse, sinhronizovano rešavaju problem, meĎusobno

prenoseći podtake. Osnovni mehanizme interakcije izmeĎu procesa su:

komunikacija

sinhronizacija

3.2.6.1. Komunikacija između procesa

Kooperativni procesi zahtevaju operativnom sistemu mogućnost upostavljanja komunikacije.

Postoje dva metode komunikacije

deljeni adresni prostor

prenos poruka sistemski pozivom

3.2.6.

Page 11: 3. OPEARATIVNI SISTEMI - etsntesla.edu.rs sistemi.pdf · Fotoaparati, TV, klima uredjaji spadaju u embedded grupu ureĎaja. U ovom razmatranju usredsredićemo se na operativne sisteme

11

Kod komunikacije sa deljenim adresnim prostorom na sl.3.2.6.a), jedan od procesa traži

sistemskim pozivom od operativnog sistema, da njegov deo memorije bude u sklopu adresnog

prostora drugog procesa. Komunikacija se obavlja razmenom informacija preko deljene

promenjive ili deljenih podataka koje se nalaze u deljenom adresnom prostoru.

Kod prenosa poruka sistemskim pozivom na sl.3.2.6.b), posrednik u komunikaciji je operativni

sistem. Proces šalje poruku i sve potrebne informacije sistemskim pozivom u untrašnje resurse

operativnog sistema na privremeno čuvanje. TakoĎe, drugi proces šalje sistemski poziv da bi

primio odgovarajuću poruku.

3.2.6.2. Sinhronizacija između procesa

Kooperativni procesi su uposleni u rešavanju jednog posla, pri čemu je svaki zadužen za

odreĎeni deo. Zbog toga je potrebana sinhronizacija izmeĎu procesa, tj. proces će odraditi

zadatak ako se steknu odreĎeni uslovi. Procesi meĎusobno prate stanja u kojima se nalaze, na

osnovu kojih se opredeljuju za čekanje ili izvršavanje svojih zadataka.

Uposleno čekanje je oblik sinhronizacije u kome jedan proces aktivno provera dali se u drugom

procesu dogaĎaj dogodio. Procesu se daje procesor na raspolaganju kako bi proverio stanje, pa

se gubi procesorsko vreme na izvršavanje prazne petlje, pokazane u sledećem primeru:

process P1;

begin

. . .

while flag = false do null end;{proces čeka signal, kako bi nastavio dalje}

. . .

end P1;

process P2;

begin

. . .

flag := false;

{ovde je deo koda koji čeka proces P1 da se izvrši}

flag := true;

. . .

End P2;

U pojedinim delovima izvršavanja procesa, pojava prekida i promena na drugi proces izazvala bi

logičke greške uzrokujući neželjne efekte. Na primer kod dvoadresnog formata instrukcija, za

prostu naredbu sabiranja, u kojoj se zbir simboličke vrednosti b i c smeštaju na adresu pod

simboličkom oznakom a, potrebno je najmanje dve instrukcije da se izvrše:

a:= b+c; → MOV b,a; {sdaržaj promenjive b se sladištu a, -> a=b}

ADD a,c; {a=b+c}

Page 12: 3. OPEARATIVNI SISTEMI - etsntesla.edu.rs sistemi.pdf · Fotoaparati, TV, klima uredjaji spadaju u embedded grupu ureĎaja. U ovom razmatranju usredsredićemo se na operativne sisteme

12

Predpostavimo da a deljenja promenjiva koju koristi najmanje još jedan proces. Ako bi se

realizovao prekid tokom prve instrukcije uz prelazak na proces koji takoĎe koristi promenjivu a,

onda bi on prihvatio pogrešnu vrednost koja nije rezultat sabiranja izraza b+c, već vrednost

promenjive b. Zbog toga je potrebno zabraniti prekidanje kritičnog dela programa, da ne bi

izazvalo greške. Deo naredbi koji mora da se izvršava nedeljivo (atomično) zove se kritična

sekcija. Atomičnost kritične sekcije se obezbeĎuje jednostavnim umetanjem izmeĎu sistmeskih

poziva lock() i unlock() kojima se maskiraju odnosno demaskiraju prekidi, konkretno za gornji

primer sabiranja:

lock();

a:= b+c;

unlock();

Ako se često ulazi u krtične sekcije uz njihovo dugo izvršavanje, sistem je neosetljiv (trom,

gluv) na neočekivane dogaĎaje većim delom vremema. Problem se rešava dozvolom prekida, pri

čemu samo jedan proces može biti u kritičnoj sekciji. Proces mora da sačeka ulazak u svoju

kritičnu sekciju, ako postoji već neki proces u stanju kritične sekcije. Ovakav mehanizm

sinhronizacije procesa se naziva međusobno isključenje. Dat je primer, dva procesa sa

meĎusobnim isključenjem koristeći uposleno čekanje kao rešenje.

Process P1;

begin

. . .

flag1 := true;

while flag2 = true do null end;

{kritična sekcija procesa1}

flag1 := false;

{nekritična sekcija procesa1}

. . .

end P1;

process P2;

begin

. . .

flag2 := true;

while flag1 = true do null end;

{kritična sekcija procesa2}

flag2 := false;

{nekritična sekcija procesa2}

. . .

end P1;

U gornjem primeru, problem se javlja prilikom prelaska iz jednog procesa u drugi tokom

izvršavanja instrukcija flag1 := true; odnosno flag2 := true; Oba procesa će ući u

beskonačno uposleno čekanje, izvršavajući praznu petlju. Stagnacija procesa tokom svog

izvršavanja naziva se livelock. Postoje izvori u drugim litreaturama koji rešavaju problem

livelocka-a, npr. Dekker-ov algoritam.

Za razliku od livelock-a, deadlock je stanje blokirajućeg procesa koji se nikad deblokira. Primer

su istovremeni zahtevi otvaranja dve datoteke od dva procesa, pa kada ih dobiju, zaključaju ih.

Svaki proces je, prvo, otvorio i zaključao različitu datoteku, pa zatražio zahtev za drugu,

blokirajući se do opsluživanja. Procesi će ostati zauvek blokirani čekajući otvaranje druge

datoteke, jer su obe zaključane, a ne mogu da se otključaju jer su im procesi blokirani. Procesi

Page 13: 3. OPEARATIVNI SISTEMI - etsntesla.edu.rs sistemi.pdf · Fotoaparati, TV, klima uredjaji spadaju u embedded grupu ureĎaja. U ovom razmatranju usredsredićemo se na operativne sisteme

13

nikad neće ući u running stanje, pa treba ugraditi kritične sekcije u ovim delovima koda oba

procesa.

Programer koji programira programe u višeprocesnom režimu, mora definsiati kritične sekcije

koda i sprečiti ulazak procesa u deadlock ili livelock stanja.

3.2.7. SEM AFOR I

Kod rešenja meĎusobnog isključenja sa uposlenim čekanjem, procesi izvršavaju jalove

instrukcije čekajući da se kritična sekcija drugog procesa završi. Umesto da se procesor preda

čekajućem procesu, efikasnije je da se proces blokira i postavi u listu čekanja, dok se kritična

sekcija neoslobodi. Dakle, proces komunicira sa operativnim sistemom, signalizirajući mu da li

može da nastavi sa radom, ako ne može proces se blokira. Kad mu se pošalje odreĎena

signalizacija, operativni sistem će deblokirati čekaujći proces, postavljanjem u ready stanje,

omogućujući mu da dobije procesor.

Semafori, sistemski pozivi wait() i signal() se koriste u blokrianju i deblokiranju čekajućih

procesa. Wait() i signal() su atomične procedure kratkog trajanja, koje se ne mogu prekinuti

(ugarĎene lock() i unlock() primitive, slično kod dispatch()).

Wait() deljenju promenjivu val umanjuje za jedan, zatim blokira proces i stavlja ga u listu

čekanja dogaĎaja semafora, ako je val<0.

Signal() vrednost val povećava za jedan, zatim deblokira neki proces iz liste čekanja dogaĎaja

semafora ako je val<=0.

Dat je izmenjen predhodni primer meĎusobnog isključenja u kojem se sada ugrĎeni wait() i

signal(), uz početnu vrednost val=1:

process P1;

begin

. . .

wait();

{kritična sekcija procesa1}

signal();

{nekritična sekcija procesa1}

. . .

end P1;

process P2;

begin

. . .

wait();

{kritična sekcija procesa2}

signal()

{nekritična sekcija procesa2}

. . .

end P1;

Neka se trenutno izvršava proces1, pa porcedurom wait() se vrednost menja u val=0 i proces

ulazi u kritičnu sekciju. U toku izvršavanja pocesa1, prelazi se na proces2 koji se blokira jer će

vrednost biti val=-1. Nakon završetka kritične sekcije procesa proces1, signal() deblokira

proces2 uz izmenu val=0, što će omogućiti prelazak na njegovu kritičnu sekciju. Kada se

Page 14: 3. OPEARATIVNI SISTEMI - etsntesla.edu.rs sistemi.pdf · Fotoaparati, TV, klima uredjaji spadaju u embedded grupu ureĎaja. U ovom razmatranju usredsredićemo se na operativne sisteme

14

kritična sekcija proces2 završi, signal() semafor će prvo povećati val na 1, pa ispitati njegovu

vrednost. Prvom sledećem procesu će se dozvoliti izvršavanje, preko njegovog wait() semafora

nakon koga sledi njegova kritčna oblast.

3.3. NITI

Niti (Thread) su procesi nad istim adresnim prostorom pri čemu dele iste resurse i otvorene

datoteke. Zbog toga se ovim procesima kontrolni blokovi (PCB) preklapaju, gde se relativne

razlike grupišu u tabeli niti u kojoj svaka niti ima svoj kontrolni blok (TCB – Therad Control

Block). Sleduje da se promena konteksta niti obavlja mnogo brže nego izmeĎu „teških“

procesa. Na taj način se obezbeĎuje bolji odziv procesa jer je operativni sistem mnogo brži u

izvršavanju režijskih troškova, neproduktivnih za korinsika. U ostalom, niti se još i zovu „laki“

procesi.

3.3.1. OS OB IN E NITI

Osobine niti se mogu podeliti u dve kategorije, jednu predstavljaju zajedničke osbine niti:

adresni prostor – programski kod i globalne podtake

resurse – spisak otvorenih datoteka

Druga kategorija su razlike po kojma se prepoznaju i čuvaju u njihovom kontrolnom bloku

(TCB):

pozicuju u izvršavanju – PC

nezavisne adrese pozvanih procedura i finkcija tokom svog izvršavanja – SP i stek

Dakle, sve informacije o niti se svode na kontekst proceosra (dostupni registri), što olakšava

upravlaljanje nitima.

3.3.3. KRE IR ANJ E N ITI

U Linux-u, sistemski pozivom clone() kreira se novi proces nad istim adresnim prostorom

roditelja. Clone() je funkcija koja roditeljskom procesu vraća PID (process ID) deteta niti.

Dispačer može izabrati bilo koji proces, stim što se prelazak izmeĎu niti deteta i roditelja

procesa svodi na promenu pozicije u izvršavanju. Poziv funkcije clone() nije bez argumenta, gde

ovde nisu prokazani zbog sažetosti izlaganja. Na osnovu sl.3.3.1. se može naslutiti da je jedan od

argumenta pokazavač koji pokazuje početnu poziciju izvršavanja kreirane niti.

Page 15: 3. OPEARATIVNI SISTEMI - etsntesla.edu.rs sistemi.pdf · Fotoaparati, TV, klima uredjaji spadaju u embedded grupu ureĎaja. U ovom razmatranju usredsredićemo se na operativne sisteme

15

3.3.1.

3.3.4. IM PLMEN TAC IJ A NITI

Da bi aplikacije koristile prednosti niti, programer mora da ugradi niti u program. Svi ozbiljni

objektno orjentisani programski jezici imaju podršku za rad sa nitima u svojim bibliotekama.

Delphi podržava implemntaciju niti sa skupom bibliteka u zavisnosti od potrebe programera.

Primer je klasa Tthread ugraĎena u programski jezik na osnovu koje deklarišemo sopstvene niti.

Pokazaćemo jedan banalan primer korišećenja Create i Execute procedura klase Tthread,

implementirane u novokreiranoj klasi Nit.

Klase, metode, svojstva su tremini koje se koriste u objektno orjentisanim porgramskim

jezicima, drugčije od standradnih starijih jezika u kojima se definišu funkcije i

procedure. Ne baš korektno, klasa je sinonim za objektnu proceduru.

Kod niti:

Type

Nit = class(Tthread); // Nit nasleđuje sve procedure i funkcije iz ugrađene

. // klase Tthread, kao što su procedure Create i

. // Execute

.

procedure Execute; override; // override naredbom se dozvoljava izmena

Page 16: 3. OPEARATIVNI SISTEMI - etsntesla.edu.rs sistemi.pdf · Fotoaparati, TV, klima uredjaji spadaju u embedded grupu ureĎaja. U ovom razmatranju usredsredićemo se na operativne sisteme

16

. // procedure Execute ugređene u klasi Tthread

. // koju je nasledila klasa Nit

Procedure Nit.Execute;

var ... // deklarišemo skup promenjivih za našu nit

.

.

begin

.

.

//telo naše niti

.

.

end;

Kod programa koji koristi predhodnu nit:

Program KorišćenjeNiti;

var PrvaNit, DrugaNit:Nit; // PrvaNit i DrugaNit su klase Nit, tj.

// koriste sve osobine klase Nit.

Begin

PrvaNit.Create; // kreira se nit i počinje izvršavanje

// nardebi unutar pocedrue Nit.Execute

DrugaNit.Create; // kreira se još jedna nit koja takođe izvršava

// iste naredbe kao i predhodna

end.

Kada se program KorišćenjeNiti završi, postojaće dve niti nad istim nardebama koje se nalaze

unutar procedure Nit.Execute, tj. Ove niti dele isti ardesni program, uz različite pozicije

izvršavanja usled rasporeĎivanja od strane dipačera operativnog sistema.

3.4. SISTEMI DATOTEKA

U računaru, podaci se mogu obraditi jedino ako se nalaze u operativnoj memoriji. Često je

kapacitet memorije nedovoljan da se svi podaci istovremno nalaze u njoj, pa je potrebno

prebaciti ih na druge medijume radi privremnog čuvanja. Gašenjam računara, podaci postaju

trajno izgubljeni iz memorije, pa se rešenje opet svodi na čuvanje podtaka u medijima

sposobnim za čuvanje podtaka nakon ukidanja napajanja, koje se zovu sekudarne memorije.

Postoje razni medijumi za skladištenje podataka kao što su čvtrsti diskovi, optički diskovi. SSD

(solid state disk) diskovi, magneten trake i drugo. Svakim od ovih ureĎaj upravlja se preko

svojstvenih upravljačkih programa (drajevera) koji komunicira sa operativnim sistemom.

Sa druge strane da bi korisnik koristio podatke, potrebno je ih formirati u razumljivu formu,

odnosno u datoteku. Pronalažanje i organizacija datoteka unutar sekudranih memorija se obavlja

preko specijalne datoteke koje se zove sistem datoteka. Sistem datoteka se nalazi, takoĎe na

istom medijumu kao i podaci za koje je pridružen. Da bi operativni sistem pristupio nekoj

Page 17: 3. OPEARATIVNI SISTEMI - etsntesla.edu.rs sistemi.pdf · Fotoaparati, TV, klima uredjaji spadaju u embedded grupu ureĎaja. U ovom razmatranju usredsredićemo se na operativne sisteme

17

datoteci na medijumu, dovoljno je poznavati adresu sistema datoteke u kojoj se nalazi

informacija o poziciji tražene datoteke na tom ureĎaju.

3.4.1. ORGANIZAC IJ A B LOK URE ĐAJ A

Čvrsti diskovi (HDD – Hard disk drive), ili jednostavno disk, se najučestalije koriste kao

sekudrane memorije. Pri podizanju sistema, operativni sistem se iz čvrstog diska upisjue u

operativnu memoriji, pa se nakon toga prelazi na njegovo izvršavanje.

Jedinica prenosa izmeĎu diska se uvek obavlja u blokove koje su veličine od 512 bajtova pa

sistem. Blok je najmanja adresibilna jedinica koju prepoznaje operativni sistem. Sektor je

najmanja adresibilna jedinica koju realno može da adresira disk i kapaciteta je 512 bajtova. Blok

može imati jedan ili vise sektora. Na sl.3.4.1. data je blok šema diska, na kojoj se vidi da su

sektori poreĎani u kružne staze. Rotacijom se glava fokusira na odreĎeni sektor date staze, dok

se horizontalnim pomerajem glave selektuje odreĎena staza.

3.4.1.

Page 18: 3. OPEARATIVNI SISTEMI - etsntesla.edu.rs sistemi.pdf · Fotoaparati, TV, klima uredjaji spadaju u embedded grupu ureĎaja. U ovom razmatranju usredsredićemo se na operativne sisteme

18

Disk može imati više diskova čije su obe površine pokrivene magnetnim slojem na kojima se

nalaze glave za čitanje i pisanje. Svi diskovi imaju jednak broj staza, pri čemu su glave diska

meĎusobno fiksirane. To znači da se glave svih diskova nalaze na istim stazama. Staze nad

kojima se u istim trenucima nalaze glave predstavljaju jedan cilindar. Dakle, kad se govori samo

o jednom magnetnom disku, misli se na stazu, a kad se govori o svim magnetnim diskovima,

misli se na cilindar. Datoteke se upisuju na disk tako da uvek nalaze u jednom cilndru. Datoteke

koje se nalaze na dva različita cilndra su fragmentisane, što izaziva dodtano kašnjenje.

Informacije o broju sektora, cilindra i glava se čuva u internoj memoriji diska koju čita

operativni sistem pri inicijalizaciji drajvera. Često je taj podatak sakriven, jer drajver predaje

logičke informacije o organizaciji diska operativnom sistemu. Kada operativni sistem zatraži

podatak sa odreĎenog bloka, drajever diska ga prevodi u realan u kome se upisuje ili čita.

3.4.1.1. Particije diska

Disk se može podeliti na više delova, particija, koje operativni sistem posmatra kao nezavisne

blok ureĎaje. Organizacija diska na particije se uvodi kako bi se omogućilo smeštanje više

operativnih sistema na jednom disku, jedna particija za jedan operativni sistem.

Svaki disk ureĎaj čuva sve potreben informacije o svim particijama u svojoj particionoj tabeli

MBR (Master Boot Sector). Particiona tabela je smeštana na prvom sektoru disk ureĎaja

(sl.3.4.2.). Na osnovu nje se poznaje iz koje particije treba učitati operativni sistem u operativnu

memoriju prilikom podizanja sistema. Sistem podržava konačan broj particija na jednom disku

(uglavnom do četri particije). Da bi omogućili više particija, više logičkih particja se kreira

unutar jedne. Particja koja se koristi kao okvir logičkih particja naziva se proširena particija –

extended.

Sadržaj particje je podeljen na nekoliko celina prema svrsi podtaka koje skladište, prikazane na

sl.3.4.2:

Boot sector – počinje od prvog bloka particje. U njemu se nalazi mikro program za podizanje

operativnog sistema. Ako particija ne sadrži operativni sistem, onda je ovaj deo

prazan.

Volume control block – Superblock deo particje u kome se čuvaju sve bitne informacije o

praticiji. Na primer, veličina particje, lista neispravnih sektora – bad

sectors, pokazivači na sistem datoteka, pokazivač na koreni

direktorijum "/" (root), pokazaivači na prvi prazan blok, itd. Svi

superblokovi aktivnih sistema datoteka se nalaze u operativnoj

memoriji.

Page 19: 3. OPEARATIVNI SISTEMI - etsntesla.edu.rs sistemi.pdf · Fotoaparati, TV, klima uredjaji spadaju u embedded grupu ureĎaja. U ovom razmatranju usredsredićemo se na operativne sisteme

19

File system table – sistem datoteka u kojoj se čuvaju sve informacije potrebne da se datoteka

pronaĎe na disku. Sastvani deo sistema datoteka je FCB (File Control

Block) u kojoj se nalaze sve prateće informacije o datoteci

Directory entries – Direktorijumi, folderi, specijalne datoteke koje sadrže listu datoteka čija

imena preslikavaju u indifikacioni broj FCB.

Data – deo particje u kojoj se nalaze podaci i programi. TakoĎe, direktorijumi se nalaze unutar

Data particije.

3.4.2.

3.4.2. PRIM ER I SIS TEM A D ATO TEK A

3.4.2.1. ext3 sistem datoteka

ext3 je sistem datoteka podržan od Linux operativnog sistema. Na sl. 3.4.3. prikazana je jedna

particija sa ext3 sistemom datoteka. Informaciona baza datoteke predstavlja jedan i – node

(indeksni FCB) koji se indetifikuje svojstvenim brojem u tabeli i –nodova. Direktorijumi

predstavljaju specijalne datoteke koje sadrže listu datototeka u kojoj je ime datoteke vezano sa

brojem odgovarjućeg i – noda. i -node sadrži grupu pokazivača u kojima se nalaze adrese

blokova datoteke. Blokovi su kapaciteta 1kB, što je malo da bi se skaldištili podaci većeg

kapaciteta, pa se zbog toga koriste indirektni pokazivači koji pokazuju na blok u kome se nalaze

Page 20: 3. OPEARATIVNI SISTEMI - etsntesla.edu.rs sistemi.pdf · Fotoaparati, TV, klima uredjaji spadaju u embedded grupu ureĎaja. U ovom razmatranju usredsredićemo se na operativne sisteme

20

direktni pokazivači na blokove datoteke. Jedan pokazivač je veličine 4B, pa unutar 1kB bloka se

može smestiti 256 pokazivača. Na taj način je omogućen maksimalan kapacitet datoteke do 16

GB.

3.4.3.

3.4.2.1. FAT (File Allocation Table) sistem datoteka

FAT je sistem datoteka korišćen od strane Windows operativnih sistema, mada ga je u novije

vreme zamenio NTFS sistem datoteka. Svaki blok na disku ima svoj broj ulaza u FAT tabeli.

Ovde je FAT tabela, što je za ext3 i –node tabela. Za razliku od ext3, osim broja ulaza u FAT

tabli, direktorijum sadrži sve prateće informacije o datoteci (FCB) prikazanoj na sl.3.4.4. U FAT

tabeli se samo nalazi pokazivač na sledeći blok koji zauzima datoteka. U našem primeru na sl.

3.4.4. prvi sektor datoteke je na 4-tom ulazu u FAT tabeli, pa se prvi podaci nalaze u 4-tom

bloku ureĎaja. Zatim sadržaj 4-tog ulaza pokazuje sledeći blok u nizu tj. 8-mi blok, gde opet

njegov ulaz pokazuje na blok 3 koji pokzuje na blok 6. Ulaz bloka 6 pokazuje na kraj bloka

(EOC), pa se posmatrani podtatak nalazi od početnog do krajnjeg bloka redom: 4, 8, 3, 6. Dakle,

u FAT su podaci povezani u lančanu listu, u kojoj svaki ulaz pokazuje na sledeći ulaz bloka u

nizu. Na osnovu ovakve organizacije sistema datoteka veličina datoteke je neograničena.

Page 21: 3. OPEARATIVNI SISTEMI - etsntesla.edu.rs sistemi.pdf · Fotoaparati, TV, klima uredjaji spadaju u embedded grupu ureĎaja. U ovom razmatranju usredsredićemo se na operativne sisteme

21

3.4.4.

3.5. POJAM DATOTEKE

Datoteka (fajl - file) je logička jedinica smeštanja u kojoj se nalaze programi i podaci. Prenos

podtaka izmeĎu različitih tipova ureĎaja se apstrahuje kroz formu datoteke. Kako se skladišti

datoteka na ureĎaju je problem samog ureĎaja i njegovog drajevera. Datotka je u razumljivoj

formi koju prepoznaje korisnik.

Da bi se datoteke koristile u sistemu, treba obezbediti operacije nad njim, kao i prateće

informacije. Računar ili korisnik odraĎuje odreĎene operacije na osnovu informacija o datoteci,

odnosno atributa. Neki atributi datoteke su:

simboličko ime, jedini podatak koji razumljiv korisniku, korisnik pristupa i indetifikuje

datotke preko njenog imena

indentifikator, podatak kojim se datoteka prepoznaje u sistemu, jer računari lakše

komuniciraju preko brojeva

tip, odreĎuje operacije nad datom datotekom i spisak podražanih programa koji njome

upravljaju

lokacija, informacije o ureĎaju i mestu gde se nalazi datoteka

veličina

ostalo, prava pristupa, zaštita ...

Page 22: 3. OPEARATIVNI SISTEMI - etsntesla.edu.rs sistemi.pdf · Fotoaparati, TV, klima uredjaji spadaju u embedded grupu ureĎaja. U ovom razmatranju usredsredićemo se na operativne sisteme

22

Atributi se grupišu u posebnu datoteku, kontrolni blok (FCB –File Control Block). Svi FCB svih

datoteka se grupišu u zajedničku tabelu. Svaki FCB ima svoj ulaz u tabeli, preko koje se pristupa

toj datoteci. Ulaz u tabelu je prosto simboličko ime datoteke navedene od korisnika ili programa.

Struktuiran podatak u kome se nalazi lista svih FCB sa svojim ulazima naziva se direktorijum

(katalog, imenik). Dakle, da bi pristupali odreĎenoj datoteci potrebno da operativni sistem učita

direktorijum u operativnoj memoriji, pa iz nje da prihvati FCB iz koje pronalazi poziciju

datoteke na ureĎaju.

Ako bi se upisali svi FCB datoteka u isti direktorijum, direktorijum bi bio nepregledan i

glomazan, pa se direktorijumi organizuju u hijrarhiji stabla na direktorijume i podirektorijume.

Na primer, u Linux-u za ext3, drugi i –node je rezeravisan za koren direktorijum "/", pa kad se

on dovuče iz operativne memorije, čitaju se i-nodovi podirektorijuma korena i tako dalje do

konače putanje datoteke. Ako se jedna datoteka uzastopno čita više puta, neefikasno je da se

stalno prolazi kroz sistem direktorijuma. Umesto toga, koristi se sistemski poziv open() koji

smešta FCB pozvane datoteke u spisak otvorenih datoteka. Spisak otovrenih datoteka se nalazi

u operativnoj memoriji i sadrži tabelu svih otvorenih FCB preko kojih se brže pristupa

datotekama iz sekundarnih memorija. Svako sledeće pristupanje datoteci se ostvaruje preko

indetifikatora koju ima kao ulaz u spisak otvorenih datoteka. Sistemski poziv close() je obrunta

operacija od open() koja briše FCB datoteke iz spiska otovrenih datoteka.

Osim izvršnih datoteka, operativni sistem ne ulazi u tumačenje sadržaja datoteke, već prepušta

programu koji ga je kreirao. Program zahteva od operativnnog sistema pomoću sistemtemskih

poziva pristup odreĎenoj datoteci. Najosnovnije operacije nad datotekama su:

kreiranje

čitanje

upisivanje

brisanje