You are on page 1of 110

SKRIPTA SKRIPTA

Autor: Boidar Kovai

. Rijeka, 2008.

Operacijski sustavi 1

SADRAJ 1. UVOD ................................................................................................................................. 1


1.1. POVIJEST OPERACIJSKIH SUSTAVA............................................................................................... 2 1.2. VRSTE OPERACIJSKIH SUSTAVA .................................................................................................... 5 1.3. OSNOVNI KONCEPTI OPERACIJSKIH SUSTAVA .......................................................................... 6

2. STRUKTURE OPERACIJSKIH SUSTAVA ................................................................ 8 3. PROCESI ......................................................................................................................... 11


2.1. UVJETI NATJECANJA PROCESA (RACE CONDITIONS) ............................................................. 16 2.2. MUTUAL EXCLUSION ZA ZAPOSLENIM EKANJEM (BUSY WAIT) ..................................... 19 2.3. MUTUAL EXCLUSION SA SLEEP AND WAKE UP TEHNIKOM .......................................................... 24 2.4. UPRAVLJANJE PROCESOROM ....................................................................................................... 33 2.5. ZASTOJI ................................................................................................................................................ 42

4. UPRAVLJANJE MEMORIJOM .................................................................................. 53 5. UPRAVLJANJE ULAZNO-IZLAZNIM JEDINICAMA .......................................... 76


5.1 HARDVERSKA PODRKA RADU U-I UREAJA ........................................................................... 76 5.2. SOFVERSKA PODRKA RADU U-I UREAJA .............................................................................. 80

6. UPRAVLJANJE DATOTENIM SUSTAVOM ......................................................... 84


6.1. DATOTEKA ......................................................................................................................................... 84 6.2. DIREKTORIJ........................................................................................................................................ 88 6.3. ALOKACIJA VANJSKE MEMORIJE ................................................................................................ 90

7. SIGURNOST I ZATITA ............................................................................................ 101


7.1. SIGURNOST ...................................................................................................................................... 101 7.2. ZATITA ............................................................................................................................................ 105

8. LITERATURA: ............................................................................................................ 108

Operacijski sustavi 1

1. UVOD
Raunalni sustav ini jedan ili vie glavnih procesora, radna memorija, diskovi, pisai, tipkovnica, monitor, mrene kartice i druge vrste ulazno-izlaznih ureaja. Pisanje uinkovitih programa za takav sustav je vrlo sloen i teak posao. Zbog toga se raunala nadograuju softverskim slojem koji zovemo operacijski sustav (OS). Zadatak OS-a je povezivanje svih dijelova raunalnog sustava i pruanje korisnikim programima jednostavno suelje za rad sa hardverom. Mjesto operativnog sustava u hijerarhiji raunalnog sustava prikazano je slikom 1.

Slika 1. Poloaj OS-a u raunalnom sustavu Hardver ini fiziki sloj raunala, mikroarhitektura raunala i strojni jezik (machine language). Mikroarhitekturu raunala ine meusobno povezani fiziki ureaji sa ciljem izvoenje odreene funkcije (npr. skup registara unutar centralne procesorske jedinice CPU-a). Rad sa takvim fizikim ureajima ostvaren je mikroprogramima. Skup ureaja i instrukcija koje koristi programski jezik asembler tvori ISA Instruction set arhitecture ili strojni jezik (machine language). Na hardver raunalnog sustava se nadograuje OS kao softverski sloj koji programerima skriva sloenost hardvera i prua jednostavniji set instrukcija za rad sa raunalom. Na viim razinama sistemskog softvera nalaze se sistemski programi (editori, kompajleri, tumai naredbi shell itd.). Iznad sistemskog sloja nalaze se aplikativni programi koje koriste krajnji korisnici sustava. Pri radu raunalo izvodi aplikativne i sistemske programe. Pri radu sa aplikativnim programima raunalo je u

Operacijski sustavi 1 korisnikom nainu izvoenja (user mode), a kada izvodi sistemske programe u kernel nainu rada (kernel mod ili supervisor mod). OS ima dvije osnovne namjene: Proirenje osnovnih mogunosti hardvera pruanjem ugodnijeg suelja za rad korisnicima. Upravljanje resursima.

Proirenje osnovnih mogunosti raunala (extended machine) rezultira virtualnom slikom hardvera raunala prema korisnicima sa namjenom olakanja poslova programiranja i uporabe raunala. Upravljanje resursima ogleda se u usklaivanju razliitosti izmeu dijelova raunalnog sustava, rezerviranju i otputanju pojedinih komponenti omoguujui izvoenje zahtjeva korisnikih programa prema hardveru raunala.

1.1. POVIJEST OPERACIJSKIH SUSTAVA

Razvoj operacijskih sustava uvjetovan je razvojem raunala pa svaka generacijama razvoja raunala postavlja nove zahtjeve prema sistemskom softveru odreujui razvoj operacijskih sustava. Prema generacijama razvoja raunala definiramo operacijske sustave na sljedei nain. 1. GENERACIJA (1945-55) ELEKTRONSKE CIJEVI I PREKIDAI

Osobitost ove generacije je izostanak potrebe za sistemskim softverom zbog neuinkovitosti raunala . 2. GENERACIJA (1955-65) TRANZISTORI I SERIJSKA OBRADA

Dolazi do pojave snanijih raunala sa mogunou specijalizirane obrade u znanstvene svrhe sa dobro podranim matematikim operacijama (IBM 7094) i komercijalne obrade sa podranim radom sa ulazno-izlaznim ureajima (IBM 1401). Obrada se izvodila serijski, program za programom (batch obrada). Raunalo IBM 1401 koriteno je za prijenos programa sa itaa buenih kartica na magnetnu traku. Magnetna traka je zatim prenesena na raunalo IBM 7094 gdje se izvodila konkretna obrada i zapis

Operacijski sustavi 1 rezultata na izlaznu traku. Zadatak OS-a, odnosno sistemskog softvera je uitavanje programa sa ulazne trake, zatim uitavanje programa za izvoenje uitanog programa korisnika sa sistemske trake, izvoenje programa korisnika i na kraju zapis rezultata na izlaznu traku. Postupak se ponavljao sve dok nisu izvedeni svi programi sa ulazne trake. Na kraju se izlazna traka prenijela na raunalo IBM 1401 kako bi se ispisali izlazni rezultati na pisa. Opisan postupak prikazan je na slici 2.

Slika 2. Upotreba OS u izvoenu serijske (batch) obrade programa.

3. GENERACIJA (1965-1980) INTEGRIRANI KRUGOVI I MULTIPROGRAMIRANJE

Dolazi do smanjenje razlika izmeu raunala i razvoja OS za iru upotrebu raunala OS/360. Takoer se uvode novi koncepti: multiprogramiranje, spooling i timesharing. Multiprogramiranjem se ostvaruje izvoenje vie programa na jednom raunalu to se ostvaruje dijeljenjem memorije na dijelove (particije) i uitavanjem programa u jednu particiju (slika 3.).

Program3 Program2 Program1 Operativni sustav Memorijske particije

Slika 3. Implementacija multiprogramiranja Spooling je tehnika koja se zasniva na uitavanju programa u osloboenu particiju odmah nakon zavretka izvoenja ranije uitanog programa.. 3

Operacijski sustavi 1 Timesharing je tehnika zasnovana na dodjeli vremena izvoenje procesora proporcionalno aktivnosti korisnika sa raunalnim sustavom. Aktivniji korisnici dobivaju vie procesorskog vremena i obratno. Daljnje poboljanje nastojalo se postii razvojem operativnog sustava namijenjenog irokom spektru korisnika. Projekt MULTICS (MULTiplexed Information and Computin System) razvijan je u suradnji sa vodeim informatikim tvrtkama toga vremena, ali nije u potpunosti ispunio oekivanja jer je zadovoljenje zahtjeva jedne grupe korisnika uzrokovalo degradaciju kvaliteta usluga za druge korisnike. Istraivaa tvrtke Bell Labs, Ken Thompson je razvio verziju MULTICS-a za osobno (preteu dananjih PC-a) raunalo tipa PDP-1, to je oznailo poetak razvoja operativnog sustava UNIX.. UNIX je napisan u programskom jeziku C i prenosiv je na razliite hardverske konfiguracije. Programski kod UNIX-a u poecima je bio dostupan omoguujui nadogradnju sustava prema vlastitim potrebama. To je rezultiralo velikim brojem nekompatibilnih verzija UNIX-a pa je definiran standard POSIX sa skupom osnovnih funkcija koje moraju biti podrane. Kasnije verzije UNIX-a su komercijalizirane to je programski kod uinilo nedostupnim. Za potrebe edukacije studenata stvoren je po uzoru na UNIX, operativni sustav MINIX sa jednostavnijom strukturom i mogunou nadogradnje i testiranja sustava. Namjena MINIX-a je edukacija studenata pa njegovi tvorci nisu pokazali interes za nadogradnjom MINIX-a. Student Linus Torvards izradio je napredniju verziju MINIX-a i nastavio njen razvoj to je rezultiralo operativnim sustavom Linux. Linux je OS razvijen od velikog broja programera irom svijeta, uvjetujui malu komercijalnu cijenu sustava i relativno skromne hardverske zahtjeve u odnosu na OS-e slinih osobina. 4. GENERACIJA (1980-sadanjost) OSOBNA RAUNALA

Razvoj osobnih raunala uvjetovao je i razvoj OS-a za osobna raunala te prilagodbu postojeih OS-a. Pojavljuju se prvi OS-i za osobna raunala CP/M (Control Program for Microcomputers), DOS (Disk Operating System), zatim MS-DOS, WINDOWS 3.1, WINDOWS 3.11, WINDOWS 95, WINDOWS 98, WINDOWS Millenium. Osobitost WINDOWS sustava je povezanost sa operativnim sustavom MS-DOS. Paralelno sa razvojem navedenih WINDOWS OS-a razvijaju se i WINDOWS NT (New Technology) operativni sustavi namijenjeni profesionalnoj upotrebi. WINDOWS NT su 32-bitni OS neovisan o OS MS-DOS-u. Znaajnije verzije WINDOWS NT OS-a su WINDOWS NT 4.0, WINDOWS

Operacijski sustavi 1 2000, te WINDOWS XP. Za Apple raunala razvijen je poseban operacijski sustav Macintosh operativni sustav. Povezivanjem raunala javila se potreba za nadogradnjom OS osobnih raunala za mrenu komponentu. Pouzdani mrenim OS-i su UNIX, LINUX i WINDOWS NT. Najnoviji trend je razvoj OS-a za distribuiranu obradu. Mreni operativni sustavi su proirenje OS-a osobnih raunala za mogunost kontrole pristupa podacima drugog raunala i prijenos podataka izmeu raunala, dok distribuirani operativni sustavi omoguuju izvoenje obrade na vie raunala to znatno poveava kompleksnost OS-a. Razvoj OS-a i dalje e biti uvjetovan razvojem raunalne tehnologije (hardvera i tehnolokih inovacija u prijenosu podataka) i prilagoavat e se zahtjevima krajnjih korisnika.

1.2. VRSTE OPERACIJSKIH SUSTAVA


Razvoj operacijskih sustava uvjetovao je razliitosti u strukturi i namjeni OS-a. Prema namjeni operacijske sustave dijelimo na: Mainframe operacijske sustave operacijski sustavi za centralizirana raunala koje opsluuje veliki broj terminalima spojenih korisnika. Mainframe OS-i bili su dominantni prije pojave osobnih raunala PC-a. Primjeri su OS/360 i OS/390. Server operacijski sustavi operacijski sustavi koji velikom broju klijent raunala pruaju usluge koritenje hardverskih i softverskih resursa server raunala. Primjeri su WINDOWS NT, UNIX i LINUX. Multiprocesorski operacijski sustavi podravaju rad dva ili vie centralno procesorskih jedinica CPU-a. U pravilu su to modificirani server operacijski sustavi sa posebnim osobinama za komunikaciju i spajanje. Operativni sustavi za osobna raunala omoguuju prikladno radno okruenje za jednog korisnika. Primjeri su WINDOWS 98, WINDOWS Millenium, WINDOWS 2000, LINUX, Macintosh OS itd. Real-time operacijski sustavi sustavi koji moraju generirati rezultat obrade (odgovor, response) na ulazne podatke u realnom vremenu (u pravilu za manje od 1s). Ukoliko je kanjenje reakcije pogubno za sigurnost sustava govorimo o hardtime sustavu, a ako se kanjenje moe tolerirati govorimo o soft-time sustavu.

Operacijski sustavi 1 Embeded operacijski sustavi operacijski sustavi za male konzole (elektroniki adresari, memorijske ploice itd.) sa smanjenim opsegom funkcija. Smart card operacijski sustavi operacijski sustavi namijenjeni koritenju razliitih elektronikih kartica (bankovne kartice, telefonske kartice, parkirne kartice itd.)

1.3. OSNOVNI KONCEPTI OPERACIJSKIH SUSTAVA


Osnovni koncepti operacijskih sustava podrazumijevaju hardverske komponente raunalnog sustava, njihovu komunikaciju, te osnovne elemente sistemskog softvera kojima se izvodi upravljanje radom hardverskih komponenti i generira suelje prema aplikativnom softveru. Hardverske komponente ukljuuju procesor, memoriju, ulazno-izlazne jedinice i sabirnice. Posebno izuavanje strukture i naina rada ovih komponenti nije predmet izuavanja kolegija Operacijski sustavi. Osnovni elementi sistemskog softvera ine procesi, zastoji, upravljanje memorijom, rad sa ulazno-izlaznim ureajima, datoteni sustav, sigurnost, shell i sistemski poziv. Svaki pojam detaljno je razraen, a u nastavku su opisane osnovne znaajke za svaki pojam. Proces je osnovni element operacijskog sustava. Procesi su aktivnosti koje nastaju pri izvoenju programa korisnika. Svaki proces je program za sebe sa programskim kodom, podacima za obradu i stack-om. Procesi meusobno komuniciraju i sinhroniziraju svoje aktivnosti. To je omogueno zaustavljanjem izvoenja procesa i nastavljanjem izvoenja nakon odreenog vremenskog intervala. Da bi se proces mogao nastaviti izvoditi nuno je pamtiti njegovo prijanje stanje to je ostvareno pohranom podataka o procesu u tabelu procesa. Zastoji su nepoeljne situacije koje dovode do blokiranja izvoenja dva ili vie procesa, a uzrokovane su slijedom rezerviranja resursa potrebnih za izvoenje. Zastoji se u pravilu detektiraju i otklanjaju, sprjeavaju ili izbjegavaju. Upravljanje memorijom je od velike vanosti za rad operacijskog sustava jer proces kao osnovni element izvoenja OS-a mora biti pohranjen u memoriji. Kako radna memorija ima ogranienja u pogledu trajnog pamenja podataka, nuna je upotreba vanjske memorije to

Operacijski sustavi 1 upuuje na povezanost jezgre OS-a (kernel) sa upravljaem memorije i datotenim sustavom. Datoteni sustav je nuan za auriranje i pristup podacima na vanjskoj memoriji omoguujui procesima i izvoenim programima trajnu pohranu podataka. Sigurnost su aktivnosti poduzimane u cilju sprjeavanja nedozvoljenog pristupa podacima korisnika i kontroli koritenja resursa za vrijeme izvoenja procesa. Shell ili tuma naredbi (command interpreter) omoguuje prihvat naredbi korisnika i njihov prijenos na nie razine operativnog sustava. Pomou shell-a korisnici komuniciraju sa ostatkom raunalnog sustava. Nakon primitka naredbe korisnika shell prepoznaje naredbu i pokree aktivnosti za izvrenje naredbe. Skup aktivnosti pokrenutih ka izvoenju naredbe korisnika objedinjen je u sistemski poziv putem kojeg shell prosljeuje zahtjev ostatku operacijskog sustava za izvoenjem traene aktivnosti korisnika.

Operacijski sustavi 1

2. STRUKTURE OPERACIJSKIH SUSTAVA


Struktura operacijskog sustava prua uvid u unutarnju grau OS-a omoguujui lake razumijevanje izvoenja OS-a. Najee koritene strukture OS-a su: monolitna struktura struktura slojeva struktura virtualne maine (stroja) struktura exokernela klijent-server struktura.

Monolitna struktura Operacijski sustav sastoji se od skupa procedura koje se mogu meusobno pozivati bez ogranienja. Nakon izrade procedura, slijedi kompajliranje i povezivanje u exe verziju koja ini kernel. Pri svakoj promjeni nuno je kompajlirati mijenjanu proceduru i izraditi novu exe verziju. Sve procedure su meusobno ravnopravne, ali izmeu procedura postoji odreena organizacija koja sadri tri vrste procedura: glavne procedure servisne procedure korisnike procedure.

Zadatak glavne procedure je prihvat sistemskih poziva iz aplikacijskih programa i prosljeivanje zadataka servisnim procedurama. Servisne procedure imaju zadatak izvoenja odreene vrste usluge, a aktiviraju se na zahtjev glavne procedure. Korisnike procedure omoguuju izvoenje uestalih radnji, a pozivaju se iz servisnih procedura. Slika 4. prikazuje organizacije procedura monolitne strukture OS-a. Struktura slojeva

Operacijski sustav izraen je od zasebnih cjelina koje se nadograuju jedna na drugu tvorei slojeve. Nii slojevi orijentirani su hardveru, a vii slojevi ka aplikativnim programima. Svaki sloj stvara osnovu za primjenu vieg sloja. Primjer operacijskog sustava THE prezentiran je slikom 5. 8

Operacijski sustavi 1

Slika 4. Organizacija procedura monolitne strukture OS-a

Sloj 5 4 3 2 1 0

Funkcija Operater Korisniki programi Upravljanje ulazno-izlaznim ureajima Komunikacija operater-proces Upravljanje memorijom Alokacija procesa i multiprogramiranje

Slika 5. Struktura THE operacijskog sustava

Struktura virtualne maine Operacijski sustav omoguuje svakom korisniku zaseban pogled na raunalo, odnosno virtualnu sliku raunala. Svaki korisnik ima mogunost koritenja dijela resursa raunala istovjetnu samostalnom radu na raunalu. Korisnik moe proizvoljno instalirati aplikativne programe ili operacijski sustav. Stvarni operacijski sustav izvodi prevoenje naredbi korisnika iz njemu predoene virtualne slike raunala na konkretni hardver raunala. Struktura virtualne maine koritene su za mainframe raunala sa velikim brojem korisnika kako bi im se omoguila autonomnost u radu sa operacijskim sustavom. Slika 6. prikazuje strukturu operacijskog sustava VM/370.

Operacijski sustavi 1

Slika 6. Struktura operacijskog sustava VM/370 Struktura exokernela Operacijski sustav zasniva se na slinom konceptu kao kod strukture virtualne maine uz jednu bitnu razliku: struktura virtualne maine korisnicima daje identinu sliku hardvera na kojem rade, dok struktura exokernela korisnicima prezentira virtualnu sliku stroja koja se razlikuje od hardvera raunala koje korisnici koriste. To je omogueno povezivanjem virtualnih resursa koje koriste korisnici sa raspoloivim hardverskim resursima raunala. Klijent-server procedura Klijent-server struktura zasniva se na minimaliziranom kernelu koji izvodi sistemske pozive prema ostalim dijelovima operacijskog sustava lociranim na viim nivoima. Kernel je u tom sluaju posrednik izmeu korisnikih (aplikativnih) programa i dijelova operacijskog sustava. Time se smanjuje veliina kernela i pojednostavljuje njegovu izradu, dok je izmjena i dorada pojedinih dijelova OS-a izvediva promjenom modula karakteristinog za odreene funkcije operacijskog sustava (upravljanje memorijom, datoteni sustav, mrea itd.). Slika 7. prikazuje klijent-server strukturu operacijskog sustava.

Slika 7. Klijent server struktura operacijskog sustava

10

Operacijski sustavi 1

3. PROCESI

Proces je osnovni koncept operacijskog sustava. Svi aplikativni programi i sistemski programi izvode se organiziranim slijedom sekvencijalnih procesa. Pri izvoenju programa generira se niz organiziranih zasebnih aktivnosti koje zovemo procesi. Procese definiramo aktivnostima koje nastaju pri izvoenju programa ili jednostavno programom u izvoenju. Svaki proces smjeten je u memoriju i sadri programski kod, podatke za obradu i stack. Bolje iskoritenje raunalnog sustava ostvaruje se paralelnim izvoenjem vie programa ili multiprogramiranjem. Paralelno izvoenje vie programa znai i paralelno izvoenje procesa koji nastaju pri izvoenju programa. CPU u jednom trenutku moe izvoditi samo jednu programsku instrukciju jednog procesa, pa nije mogue izvoditi dva ili vie procesa u jednom trenutku, odnosno istovremeno. Multiprogramiranje se ostvaruje kratkotrajnim izvoenjem procesa svakog programa i ciklikim ponavljanjem slijeda izvoenja procesa sve dok se program ne zavri. Promatrano u duem vremenskom intervalu stjee se dojam paralelne obrade vie programa, ali u jednom trenutku uvijek se izvodi smo jedan proces. Dakle, ne postoji doslovno paralelno izvoenje programa ve pseudoparalelno izvoenje programa ili pseudoparalelizam. Stvarna paralelna obrada programa izvediva je na raunalnim sustavima sa vie CPU-a. Slika 8. prikazuje multiprogramiranje 4 programa. Svaki program ima svoj zaseban programski broja, a u nekom trenutku t izvodi se samo jedan program. Izvoenje procesa moe se ilustrirati sa primjerom kuhara koji priprema kolae. Paralelu sa raunalnim sustavom prikazuje tabela 1. Tabela 1. Paralela izmeu kuhinje i raunalnog sustava Kuhinja kuhar kuhinja (penica, mikser, posude itd.) recept brano, jaja, eer aktivnosti kuhara na pripravljanju kolaa Raunalni sustav CPU glavni procesor hardver program podaci za obradu procesi

11

Operacijski sustavi 1

Slika 8. Multiprogramiranje sa 4 programa.

Kuhar priprema kola izvoenjem razliitih aktivnosti sa sastojcima za izradu kolaa prema uputama iz recepta primjenjujui ureaje za obradu sastojaka (mikser, posude, penica). Izvoenje tih aktivnosti analogno je procesima u raunalnom sustavu. Pretpostavimo da zazvoni telefon tijekom jedne od aktivnosti izrade kolaa. Kuhar se javlja na telefon, ali prethodno registrira stanje aktivnosti koja se izvodila u trenutku telefonskog poziva. Nakon obavljenog telefonskog poziva kuhar e nastaviti pripravak kolaa nastavljajui prekinutu aktivnost od mjesta prekida uzrokovanog telefonskim pozivom. Ovisno o prirodi telefonskog razgovora mogue je da kuhar prekine izradu kolaa i uradi neke aktivnosti povezane sa nekim drugim poslom. Sline situacije dogaaju se u raunalnom sustavu. Pri izvoenju nekog procesa mogua je pojava stanja u raunalnom sustavu koja nisu uzrokovana izvoenjem tekueg procesa, ali moraju biti brzo razrijeene (na primjer komunikacija putem mrene veze). Nuno je prekinuti izvoenje trenutnog procesa i pokrenuti novi proces za rjeavanje nastale situacije. Prije pokretanja novog procesa mora se memorirati stanje izvoenje tekueg procesa kako bi se kasnije moglo nastaviti njegovo izvoenje. Za pohranu podataka o stanju procesa koji omoguuju prekid izvoenja procesa i nastavak izvoenja procesa od trenutka prekida koristi se tabela procesa. Tabela procesa ima 3 glavna dijela koji se odnose na izvoenje procesa,

12

Operacijski sustavi 1 upravljanje adresnim prostorom u radnoj memoriji i upravljanje adresnim prostorom vanjske memorije. Tabela 2. prikazuje osnovne podatke pohranjene u tabeli procesa. Tabela 2. Prikaz podataka tabele procesa

Procesi mogu nastati u slijedeim sluajevima: 1. pri inicijalizaciji sustava 2. pozivom sistemskog poziva iz aplikativnog programa 3. korisnikim zahtjevom za stvaranje novog procesa 4. pokretanjem serijske (batch) obrade. Pri generiranju novog procesa provjerava se tabela procesa i radna memorija kako bi se utvrdilo ima li prazno mjesto u tabeli stranica za upis novog procesa i ima li u radnoj memoriji dovoljno slobodnog adresnog prostora za smjetaj procesa. Nakon toga aktivira se procedura za generiranje novog procesa. Operacijski sustav bazirani na UNIX platformama koriste sistemski poziv fork za stvaranje novog procesa, dok WINDOWS operacijski sustavi koriste WIN32 funkcijski poziv CreateProcess. Pri stvaranju procesa moe se definirati hijerarhijski odnos izmeu procesa roditelj-dijete (parent-child). Za UNIX operacijske sustave proces dijete je kopija procesa roditelja, a razlikuju se po vrijednosti identifikatora procesa. Za WINDOWS sustave proces roditelj i proces dijete su potpuno razliiti, odnosno proces dijete nije kopija procesa roditelja.

13

Operacijski sustavi 1 . Proces nestaje u sljedeim situacijama: 1. normalni zavretak izvoenja 2. zavretak izvoenja uzrokovan grekom (ovisno od procesa) 3. zavretak uzrokovan fatalnom grekom (neovisno od procesa) 4. uniten nekim drugim procesom (npr. kill sistemskim pozivom; neovisno od procesa).

Stanja procesa

Implementacija multiprogramiranja uvjetuje kratkotrajno izvoenje procesa i dodjelu procesora drugim procesima. Za tako kratko vrijeme izvoenja procesora procesi u pravilu ne mogu zavriti svoju obradu pa se pohranjuje njihovo stanje u trenutku gubitka procesora i nastavlja izvoenje od trenutka posljednjeg prekida pri novoj dodjeli procesora. Procesi pri tom mijenjaju stanja u kojima se nalaze. Slika 9. prikazuje stanja procesa: 1. ready ili stanje spremnosti izvoenja procesa na procesoru 2. run ili stanje izvoenja procesa na procesoru 3. blocked ili stanje blokiranosti procesa i ekanja na ispunjenje uvjeta za daljnje izvoenje (unos podataka sa tipkovnice, zavretak uitavanja podataka sa hard diska i slino).

Run 1 3 2 Ready Blocked

Slika 9. Stanja procesa

14

Operacijski sustavi 1 Zavretkom postupka stvaranja novog procesa proces se nalazi u stanju ready i eka dodjelu procesora. Kada dobije procesor prelazi u run stanje (strelica 1). Nakon gubitka procesora proces prelazi u ready stanje (strelica 2). Ako tijekom izvoenja nastanu uvjeti koji onemoguuju daljnje izvoenje procesa proces prelazi u stanje blocked (strelica 3). Nakon ispunjenja uvjeta za daljnje izvoenje procesi prelaze u ready stanje (strelica 4).

Procesne niti threads

Pri izvoenu procesa unutar procesa izvodi se najmanje jedna procesna nit. Procesna nit se definira dijelom procesa ili procesom unutar procesa. Procesi mogu imati i vie od jedne procesne niti koje dijele adresni prostor procesa, otvorene datoteke procesa i dodijeljene resurse. Izvoenje procesnih niti ekvivalentno je multiprogramiranju koje se izvodi unutar jednog procesa. Prednosti koritenja niti oituju se u jednostavnijem zaustavljanju i pokretanju procesnih niti u odnosu na procese jer se podaci o procesnim nitima auriraju unutar adresnog prostora procesa pa nije potrebno pohranjivati podatke u tabelu procesa to je obvezno u sluaju pokretanja novog procesa. Takoer je jednostavnije ostvariti komunikaciju izmeu procesnih niti nego izmeu procesa. Slika 10. prikazuje procese sa jednom niti i jedan proces sa vie niti.

Slika 10. Prikaz procesa sa procesnim nitima

15

Operacijski sustavi 1 Procesne niti najee se upotrebljavaju u slijedeim situacijama: 1. izbjegavanje komunikacije izmeu vie razliitih procesa pri izvoenju aktivnosti koje ine jednu cjelinu 2. generiranje i terminiranje treads-a je znatno bre od stvaranja i unitavanja procesa 3. primjena treads-a daje bolje performanse izvoenja procesa 4. vea prednost pri sustavima sa vie CPU-a. Implementacija procesnih niti uvjetuje veu sloenost operacijskog sustava te je potrebno odvagnuti prednosti i nedostatke upotrebe procesnih niti pri pokretanju odreenih obrada.

2.1. UVJETI NATJECANJA PROCESA (RACE CONDITIONS)


Primjena multiprogramiranja uvjetuje kratkotrajno izvoenje procesa to u odreenim situacijama moe uzrokovati greke u radu procesa. Greke su mogue kod resursa kojima moe pristupati vie procesa tijekom izvoenja. Resurse dijelimo na nedjeljive i djeljive. Nedjeljive resurse moe koristiti samo jedan proces (primjer je pisa), a djeljivim resursima moe pristupati vie procesa za vrijeme trajanja izvoenja jednog procesa (primjer je hard disk). Nastanak greke pri izvoenju ilustrirat emo primjerom ispisa dokumenata na pisau. Dokumenti za ispis pohranjuju se u zaseban direktorij (spooler directory) u kome ekaju da ih proces printer deamon preusmjeri na ispis na pisau. Proces printer deamon je stalno aktivan, odnosno eka na slanje dokumenta za ispis na pisau, te preusmjerava proces na ispis na pisau. Za rad spooler direktorija bitne su dvije vrijednosti: varijabla in koja odreuje slobodno mjesto za upis dokumenta u direktorij i varijabla out koja odreuje dokument za ispis na pisau. Slika 11. prikazuje moguu situaciju sa dva procesa A i B, te vrijednostima varijabli in = 7 i out = 4. Dva sluaja su mogua sa dva razliita rezultata obrade. Prvi sluaj rezultira korektnom obradom: proces A pristupa spooler direktoriju kako bi utvrdio slobodno mjesto za upis novog dokumenta (in = 7), proces A izvodi upis dokumenta i poveava vrijednost varijable in za jedan vie (in = 8), proces B dobije procesor utvruje mjesto 8 u spooler direktoriju slobodno. proces B upisuje svoj dokument te postavlja varijablu in na 8

16

Operacijski sustavi 1

Slika 11. Upis dokumenata u spooler direktorij Sada analizirajmo situacija koja dovodi do greke u izvoenju procesa: proces A pristupa spooler direktoriju i registrira mjesto 7 u spooler direktoriju slobodno za upis dokumenta, u tom trenutku proces A gubi procesor koji se dodjeljuje procesu B koji takoer utvruje mjesto 7 kao slobodno (proces A nije se izvodio dovoljno dugo da promijeni vrijednost varijable in na 8), proces B upisuje svoj dokument na mjesto 7 i poveava vrijednost varijable in na 8 proces A dobiva procesor i nastavlja izvoenje od mjesta prekida, odnosno jo uvijek je za proces A mjesto 7 slobodno (provjera slobodnog mjesta izvedena je u prethodnoj dodjeli procesora) pa nastavlja upis dokumenta u spooler direktorij na mjesto 7, proces A postavlja vrijednost varijable in na 8.

Krajnji rezultat izvoenja procesu A omoguuje ispis dokumenta na pisau, dok dokument procesa B nee biti ispisan. Oba procesa su korektno izvela svoje obrade ali je nastala greka. Uzrok tome je dodjela procesora izmeu procesa uvjetovana multiprogramiranjem, odnosno pseudoparalelizmom. Vrijeme dodjele procesora svakom procesu i trenutak gubitka procesora ne moe se unaprijed sa sigurnou odrediti to znai da je gubitak procesora mogu u bilo kom trenutku izvoenja procesora (trenutak gubitka procesora uvjetovan je brojem procesa, stanjima procesa i radom algoritma za dodjelu procesora

17

Operacijski sustavi 1 procesima te stanjem raunalnog sustava odnosno generiranjem prekida). Kako je gubitak procesora mogu je u bilo kom trenutku izvoenja procesora mogue su gore opisane situacije koje uzrokuju greke i treba osigurati njihovo sprjeavanje. Situacije koje dovode do natjecanja dva ili vie procesa za rad sa jednim djeljivim resursom zovu se race condition, a faza izvoenja procesa u kojoj se pristupa djeljivom resursu zove se kritina sekcija (critical region). Rjeenje ranije opisanog problema sa pogrenim ispisom dokumenta na pisau je u sprjeavanju pristupa spooler direktoriju za vrijeme izvoenja kritine sekcije jednog procesa. To znai da za vrijeme provjere varijable in, upisa dokumenta u spooler direktorij i mijenjanja varijable in niti jedan drugi proces koji eli upisati dokument u spooler direktorij ne smije pristupiti spooler direktoriju. Na taj nain proces A e sigurno upisati dokument u slobodno mjesto i nee doi do pogreke u tumaenju trenutno slobodnog mjesta u spooler direktoriju. Tehnike koje to omoguuju zovu se mutual exclusion. Slika 12 prikazuje nain rada mutual exclusion-a. Vidljivo je da proces B prelazi u blokirano stanje sve dok proces A ne zavri svoju kritinu sekciju.

Slika 12. Mutual exclusion na primjeru spooler direktorija Mutual exclusion je dobro rjeeno ako zadovoljava sljedee uvjete: 1. dva ili vie procesa ne smiju biti u kritinoj sekciji 2. brzina CPU nema nikakvog utjecaja na nunost sprjeavanja pojave dva ili vie procesa u kritinim sekcijama na istom resursu 3. proces koji izvodi nekritinu sekciju ne smije blokirati ulazak procesa u kritinu sekciju

18

Operacijski sustavi 1 4. niti jedan proces ne smije ekati beskonano (dugi interval vremena) dugo na ulazak u kritinu sekciju. Tehnike mutual exclusiona mogu biti: 1. Mutual exclusion sa zaposlenim ekanjem (busy wait) 2. Mutual exclusion sa sleep and wake up tehnikom

2.2. MUTUAL EXCLUSION ZA ZAPOSLENIM EKANJEM (BUSY WAIT)


Zadatak mutual exclusiona je onemoguavanje ulaska dva ili vie procesa u kritinu sekciju. Tehnika zaposlenog ekanja onemoguuje ulazak dva ili vie procesa u kritinu sekciju na sljedei nain: proces A alje upit za ulazak u kritinu sekciju i dobiva potvrdan odgovor na poslani upit, proces A je u kritinoj sekciji i prije zavretka kritine sekcije izgubi procesor, proces B dobiva procesor i pokuava ui u kritinu sekciju i alje upit za ulazak u kritinu sekciju, proces B dobiva negativan odgovor na poslani upit, nakon ega proces B ponovo alje upit za ulazak u kritinu sekciju, proces B ponovo dobiva negativan odgovor, nakon ega ponovo alje upit, postupak se ponavlja sve dok proces B ne izgubi procesor, proces A e nakon odreenog vremena dobiti procesor i zavriti kritinu sekciju, proces B e kada dobije procesor poslati upit za ulazak u kritinu sekciju koji e biti prihvaen i proces B e ui u kritinu sekciju. Proces B je cijelo vrijeme koritenje procesora dobivao negativan odgovor na upit za ulazak u kritinu sekciju zato jer proces A nije zavrio svoju kritinu sekciju, a to moe ostvariti pri sljedeoj dodjeli procesora, emu mora prethoditi istek dodijeljenog procesorskog vremena procesa B. Dakle, samo kada proces B izgubi procesor mogu je zavretak kritine sekcije procesa A, a time i kasniji ulazak procesa B u kritinu sekciju. Kako je cijelo vrijeme rada procesa B potroeno na postavljanje upita za ulazak u kritinu

19

Operacijski sustavi 1 sekciju i dobivanje negativnog odgovora pri emu proces nije napredovao kaemo da proces izvodi zaposleno ekanje (busy wait).

Naini implementacije tehnike zaposlenog ekanja su: 1. onemoguavanje prekida 2. upotreba varijabli 3. striktna alternacija 4. Petersonovo rjeenje 5. TSL instrukcija.

Onemoguavanje prekida

CPU u svom radu moe biti zaustavljen samo pojavom elektrinog signala (prekid, interrupt) generiranim radom ulazno-izlaznog ureaja, grekom u izvoenju programa ili satnim prekidom. Ukoliko nema tih signala CPU kontinuirano izvodi instrukcije programa sve do kraja programa. Primjena onemoguavanja prekida zasniva se na sprjeavanju pojave prekida za vrijeme izvoenja kritine sekcije procesa ime se onemoguuje zaustavljanje procesa pri izvoenju kritine sekcije. Proces koji zapone kritinu sekciju ne moe izgubiti procesor sve dok ne zavri kritinu sekciju. Nedostatak onemoguavanja prekida je gubitak bitnih signala kojima se operacijskom sustavu dojavljuju bitne informacije o stanju raunalnog sustava za vrijeme izvoenja kritine sekcije.

Upotreba varijabli

Za kontrolu ulaska u kritine sekcije koristi se varijabla. Kada je ulazak dozvoljen vrijednost varijable je 0, a kada je neki proces u kritinoj sekciji varijabla ima vrijednost 1. Poetna vrijednost varijable je 0. Ako proces eli ui u kritinu sekciju provjeriti e varijablu, ui u kritinu sekciju i promijeniti varijablu na 1. Kada zavri kritinu sekciju vratiti e varijablu na 0. Ukoliko proces izgubi proces prije nego zavri kritinu sekciju, a drugi proces po dobitku procesora eli ui u kritinu sekciju dobiti e negativan odgovor jer je vrijednost varijable 1, pa proces izvodi zaposleno ekanje (ponavljanje upita i dobivanje

20

Operacijski sustavi 1 negativnog odgovora). Proces e moi ui u kritinu sekciju kada se procesor dodijeli procesu koji je u kritinoj sekciji, nakon ega taj proces zavrava kritinu sekciju i vraa varijablu na 0 omoguujui drugim procesima ulazak u kritinu sekciju. Ovo rjeenje ipak moe dovesti do pojave dva procesa u kritinoj sekciji: ako prvi proces provjeri varijablu i prije nego promijeni varijablu sa 0 na 1 izgubi procesor, a drugi proces po dobitku procesora provjeri varijablu i ue u kritinu sekciju te izgubi procesor prije zavretka kritine sekcije, otvorena je mogunost ulaska dva procesa u kritinu sekciju. Oba procesa e biti u kritinoj sekciji ako prvi proces dobije procesor i nastavi izvoenje od trenutka provjere varijable (prvi proces jo uvijek pamti vrijednost varijable 0) i ue u kritinu sekciju. Vjerojatnost pojave ovog sluaja je mnogo manja nego ranije objanjenog sluaja ulaska dva procesa u kritinu sekciju pri upotrebi spooler direktorija.

Striktna alternacija

Koristi se za sluaj kada se dva procesa trebaju izmjenjivati u kritinim sekcijama na nekom resursu. Programski kod za striktnu alternaciju prikazan je na slici 13.

Slika 13. Programski kod za striktnu alternaciju Varijabla turn omoguuje alternaciju procesa pri ulasku u kritinu sekciju. Pretpostavimo da je turn = 0, proces A izvodi kod pod a), a proces B kod pod b). Pretpostavimo da se proces A dobije procesor. Kako uvjet u while petlji nije zadovoljen proces ulazi u kritinu sekciju. Ako izgubi procesor i proces B dobije procesor slijedi zaposleno ekanje procesa B jer je uvjet u while petlji zadovoljen pa se cijelo vrijeme dodjele procesora izvodi while petlja. Kada proces A dobije procesor zavri kritinu sekciju i promijeni varijablu turn na 1 ime omoguuje ulazak procesa B u kritinu sekciju pri novoj dodjeli procesora. Ako

21

Operacijski sustavi 1 proces A eli ui u kritinu sekciju dok se u njoj nalazi proces B vrijedi ista logika kao za sluaj kada je proces B pokuavao ui u kritinu sekciju dok se proces A nalazio u njoj. Nedostatak striktne alternacije je onemoguavanje ulaska procesa u kritinu sekciju zbog izvoenje nekritine sekcije nekog drugog procesa. Ako jedan proces ima znatno veu nekritinu sekciju u odnosu na drugi proces mogue je da proces promijeni varijablu turn i zapone nekritinu sekciju, no zbog duine nekritine sekcije vjerojatan je gubitak procesora prije zavretka nekritine sekcije, pa drugi proces moe ui i zavriti kritinu sekciju, zatim izvesti nekritinu sekciju i pokuati ui ponovo u kritinu sekciju. Zbog trenutne vrijednost varijable turn to e biti onemogueno, ali ne zato to je prvi proces u kritinoj sekciji, ve zato to nije zavrio nekritinu sekciju.

Petersonovo rjeenje

Petersonovo rjeenje otklanja nedostatak striktne alternacije, odnosno izbjegava blokiranje ulaska procesa u kritinu sekciju zbog izvoenja nekritine sekcije nekog drugog procesa. Na slici 14. prikazan je programski kod za Petersonovo rjeenje.

Slika 14. Programski kod za Petersonovo rjeenje

22

Operacijski sustavi 1 TSL isntrukcija

TSL (test and set lock) instrukcija je hardversko rjeenje. Zasniva se na rjeenju koje je slino upotrebi varijabli, ali se hardverskom implementacijom izbjegava mogunost pojave dva ili vie procesa u kritinim sekcijama. TSL instrukcija kopira sadraj varijable u registar i postavlja vrijednost varijable lock na 1. Slika 15. prikazuje primjenu TSL instrukcije pri kontroli ulaska procesa u kritinu sekciju.

Slika 15. Primjena TSL instrukcije Vrijednost varijable lock inicijalno je postavljena na 0. Proces pri ulasku u kritinu sekciju izvodi proceduru enter_region, a po zavretku kritine sekcije leave_region. Proces A koji ulazi u kritinu sekciju kopira vrijednost varijable lock u registar i postavlja vrijednost varijable lock na 1 (TSL instrukcija). Kako je registar 0 dozvoljen je ulazak u kritinu sekciju. Ako proces A izgubi proces prije izlaska iz kritine sekcije i neki drugi proces B pokua ui u kritinu sekciju izvoditi e zaposleno ekanje. Uzrok izvoenje zaposlenog ekanja je vrijednost registra 1 kopirane iz varijable lock (TSL instrukcija) i ponovno izvoenje provjere varijable lock. Po isteku dodjele procesora procesu B, proces A moe dobiti procesor i zavriti kritinu sekciju te izvoenjem procedure leave_region postaviti lock na 0 dozvoljavajui procesu B ulazak u kritinu sekciju pri sljedeoj dodjeli procesora. TSL instrukcija je dobro rjeenje ali mora imati hardversku podrku za izvoenje TSL instrukcije to ga ini ovisnim o hardveru raunala.

Tehnika zaposlenog ekanje je jednostavniji nain implementacije mutual exclusiona, ali uzrokuje nekorisno troenje vremena rada procesora pa ga treba izbjegavati.

23

Operacijski sustavi 1

2.3. MUTUAL EXCLUSION SA SLEEP AND WAKE UP TEHNIKOM


Mutual exclusion sa sleep and wake up tehnikom razlikuje se od tehnike zaposlenog ekanja upravo po onemoguavanju pojave zaposlenog ekanja. Kada proces nema uvjete za ulazak u kritinu sekciju zbog nedovrene kritine sekcije nekog drugog procesa, proces se prevodi u sleep stanje, to odgovara blokiranom stanju, a kada se steknu uvjeti za ulazak u kritinu sekciju izvodi se wake up, odnosno prevoenje procesa iz blokiranog stanja u ready stanje. Na taj nain proces koji ne moe ui u kritinu sekciju nije ni kandidat za dodjelu procesora pa ne moe ni izvoditi zaposleno ekanje. Tehnika sleep and wake up je bolje, ali i implementacijski sloenije rjeenje u odnosu na tehnike zaposlenog ekanja. Tehnike sleep and wake up mogu se implementirati primjenom: 1. semafora 2. monitora 3. poruka. Primjenu tehnike sleep and wake up prikazat emo na problemu proizvoa-potroa. Problem proizvoa-potroa (P-P u nastavku) koristi meumemoriju za rad dva procesa, pri emu proces proizvoa upisuje vrijednosti u meumemoriju, a proces proizvoa ita vrijednosti iz meumemorije. Meumemorija je ogranienog kapaciteta pa vrijede slijedea ogranienja: 1. proces proizvoa moe upisati samo onoliko vrijednosti koliko je slobodnih mjesta u meumemoriji, odnosno ne smije upisivati u 'punu' meumemoriju (u tom sluaju bi se prepisala neproitana vrijednost) 2. proces potroa moe itati samo onoliko vrijednosti koliko je trenutno upisano u meumemoriju, odnosno ne smije itati iz 'prazne' meumemorije (u tom sluaju bi se jedna vrijednost dva puta proitala) 3. za vrijeme upisa vrijednosti u meumemoriju ne smije se izvoditi itanje vrijednosti iz meumemorije i obratno.

Prikaz rjeenja problema P-P dat je na slici 16.

24

Operacijski sustavi 1

toka prekida, proizvoa uspavan

4 3

Signal za buenje potroaa Toka prekida potroa uspavan

Signal za buenje proizvoaa

Slika 16.Rjeenje problema proizvoa-potroa Varijabla count koristi se za brojanje upisanih vrijednosti u meumemoriju i na poetku ima vrijednost 0. Ako bi se samo izvodio proces proizvoa za svaki prolaz while petljom upisala bi se jedna vrijednost u meumoriju, i poveala vrijednost varijable count za 1. Nakon upisnih 100 vrijednosti zbog vrijednosti varijable count = 100 proces proizvoa bi se preveo u sleep stanje (blokiranje procesa), to je oznaeno brojem 1 na slici 16. Proces potroa prolaskom while petljom ita jednu vrijednost i umanjuje varijablu count za 1. Nakon itanja 1 vrijednosti count e poprimiti vrijednost 99 to e ispuniti uvjet za pokretanjem wake up procedure koja e prevesti blokirani proces proizvoa iz blokiranog u ready stanje (na slici 16. to je oznaeno brojem 2) to e omoguiti upis vrijednosti u meumemoriju pri sljedeoj dodjeli procesora.. Pretpostavimo da je meumemoriju upisano 100 vrijednosti. Ukoliko bi se konstantno izvodio proces potroa nakon itanja 100-te vrijednosti varijabla count bi imala vrijednost 0 i uzrokovala bi blokiranje procesa potroaa pri pokuaju novog itanja iz meumorije (slika 16. broj 3). Pokretanjem procesa

25

Operacijski sustavi 1 proizvoaa upisati e se nova vrijednost u meumoriju, poveati count na 1 i poslati poziv wake up blokiranom procesu potroau koji e se prevesti u ready stanje (slika 16. broj 4.) Na taj nain osiguravaju se ogranienja pri izvoenju rada sa meumorijom. Rjeenje problema P-P je korektno i osigurava ispunjenje postavljenih ogranienja, ali primjena pseudopararelizma moe dovesti do pojave blokiranja oba procesa iako u meumemoriji ima upisanih vrijednosti za itanje ili slobodnih mjesta za upisivanje. Na slici 17. prikazan je slijed dodjele procesora koji dovodi do blokiranja oba procesa.

toka prekida, proizvoa nije uspavan

3 4

Proizvoa se blokira Blokiranje potroaa

Signal za buenje proizvoaa nije primljen

Konano stanje: blokirana oba procesa Slika 17. Prikaz blokiranje procesa pri radu sa meumemorijom Pretpostavimo da je meumemorija puna, odnosno vrijednost varijable count je 100. Pri pokuaju upisa nove vrijednosti proizvoa ima ispunjen uvjet za prelazak u sleep stanje, ali prije nego pree u sleep stanje izgubi procesor (slika 17. broj 1). Nakon toga potroa dobije procesor, proita jednu vrijednost, smanji varijablu count i alje signal za buenje proizvoaa (slika 17. broj 2). Kako je proizvoa izgubio procesor prije nego li je preao u

26

Operacijski sustavi 1 sleep stanje, signal potroaa za buenje proizvoaa ne moe se iskoristiti. Potroa sada moe nastaviti sa itanjem novih vrijednosti i smanjivanjem vrijednosti varijable count. Kada se procesor ponovo dodijeli proizvoau on e nastaviti sa izvoenjem od toke prekida i otii u sleep (blokirano) stanje (slika 17. broj 3). Potroa e dobiti procesor i nastaviti itanje vrijednosti iz meumemorije, ali kako signal za buenje alje proizvoau samo nakon itanje prve vrijednosti iz pune meumemorije (count = N 1), potroa vie nee slati signal za buenje proizvoaa. Na kraju e se potroa blokirati nakon to proita sve vrijednosti iz meumemorije. Krajnji rezultat je prazna memorija i blokirana oba procesa. Istom analogijom nastaje blokiranja oba procesa za sluaj kada iz prazne memorije potroa pokuava itati vrijednost. Pojava blokiranja oba procesa ovisna je o dodjeli procesora izmeu procesa, a kako se dodjela procesora ne moe unaprijed odrediti mora se osigurati sprjeavanje pojave blokiranja oba procesa.

Semafori

Semafori su nenegativne cjelobrojne vrijednosti koritene za kontrolu dozvole pristupa resursima. Pri radu sa semaforima koriste se dvije atomine operacije DOWN i UP. Atominost operacija znai neprekidnost izvoenja aktivnosti tih operacija. Neprekidnost izvoenja ostvaruje se onemoguavanjem prekida za vrijeme izvoenja operacija DOWN i UP. Onemoguavanje prekida moe dovesti do gubitka bitnih informacija o stanju sustava, ali kako izvoenje operacija DOWN i UP kratko traje ta mogunost gubitka informacija je malo vjerojatna. Proces koji ulazi u kritinu sekciju izvodi operaciju DOWN, a kada zavri kritinu sekciju izvodi operaciju UP. DOWN operacija provjerava stanje semafora i u sluaju pozitivne vrijednosti semafora, smanjuje semafor za 1, dozvoljava nastavak izvoenja procesa i njegov ulazak u kritinu sekciju. Ako je semafor 0, DOWN operacija proces prevodi u sleep stanje i nije zavrena. Opisani skup aktivnosti izvodi se bez prekida. Slika 18. prikazuje rad operacije DOWN. UP operacija izvodi se po zavretku kritine sekcije. Izvodi se provjera ekanja procesa na dodjelu odreenog resursa, odnosno provjeru prevedenosti nekog procesa u sleep stanje zbog vrijednosti semafora 0 pri izvoenju DOWN operacije. Ako postoji takav proces izvodi se wake up aktivnost na tom procesu (prevoenje u ready stanje) i vrijednost

27

Operacijski sustavi 1 semafora se ne mijenja. Ukoliko je vie takvih procesa primjenom algoritma selektira se proces za izvoenje wake up aktivnosti. Ako nema procesa koji ekaju na dodjelu slijedi poveanje semafora za 1. Skup opisanih aktivnosti izvodi se kao jedna cjelina i ne moe se prekidati u izvoenju. Slika 19. prezentira rad UP operacije. POETAK

S>0 DA S = S -1

NE

Prevoenje procesa u sleep stanje

PREKID KRAJ

Slika 18. rad DOWN operacije POETAK

Proces u sleep stanju

DA

Prevoenje procesa iz sleep stanja (wake up), zavretak DOWN operacije

NE S = S +1

KRAJ

Slika 19. Rad operacije UP

28

Operacijski sustavi 1 Za rjeavanje problema P-P koriste se tri semafora: empty broja praznih mjesta u meumemoriji full broja upisnih vrijednosti u memoriji

mutex kontrola rada sa meumemorijom.

Rjeenje problema P-P uz upotrebu semafora prikazano je slikom 20.

Slika 20. Problem P-P uz upotrebu semafora Objanjenje primjene semafora na problemu P-P opisat emo na sluaju dodjele procesora koji dovodi do blokiranja oba procesa. Meumemorija je puna (empty = 0, full = 100 i mutex = 1) i pokree se proizvoa. On izvodi operaciju DOWN na semaforu empty. Kako je semafor empty 0 proizvoa se prevodi u sleep stanje, odnosno izvodi se blokiranje proizvoaa. Kada procesor dobije potroa on izvodi DOWN operaciju na semaforu full, postavlja semafor full na 99, izvodi DOWN operaciju na semaforu mutex, zatim ita jednu vrijednost iz meumemorije, izvodi operaciju UP na semaforu mutex i izvodi operaciju UP na semaforu empty. Kako je proizvoa u sleep stanju izvodi se wake up na proizvoau, 29

Operacijski sustavi 1 odnosno prevoenje proizvoaa iz blokiranog stajna u ready stanje, a vrijednost semafora empty ostaje ista (empty = 0). U sluaju da se procesor odmah nakon toga dodijeli proizvoau slijedilo bi izvoenje DOWN operacije na semaforu mutex, upis vrijednosti u meumemoriju, izvoenje operacije UP na semaforu mutex i izvoenje operacije UP na semaforu full. Kako nema procesa u sleep stanju na semaforu full, UP operacija bi poveala vrijednost semafora full na 100. Dakle nakon itanja jedne vrijednosti i upisa nove vrijednosti semafori bi imali vrijednosti: empty = 0, full = 100, mutex = 1. Kod klasinog problema P-P dolazilo je do gubitka procesora u trenutku kada je proizvoa trebao prei u sleep stanje. Primjenom semafora to je izbjegnuto jer se prevoenje u sleep stanje izvodi kao dio DOWN operacije koja je atomina i ne dozvoljava prekid u izvoenju. Dakle, atominost operacija DOWN i UP osigurava izbjegavanje pojave oba procesa u blokiranom stanju. Ista analogija izvediva je za sluaj itanja potroaa iz prazne memorije

(empty = 100, full = 0, mutex = 1). Semafor mutex ima zadatak sprjeavanje istovremenog pristupa meumemoriji za proces proizvoa i potroa, a njegova programska izvedba prikazana je na slici 21. uz primjenu TSL instrukcije.

Slika 21. Programski kod semafora mutex

Monitor Monitori u posebne procedure koje dozvoljavaju pozivanje samo iz jednog procesa, odnosno sprjeavaju pristup ostalim procesima sve dok proces koji trenutno koristi monitor ne zavri rad sa njim. Monitori su softversko rjeenje problema P-P prikazano slikom 22. Rjeenje je vrlo slino klasinom rjeenju problema P-P koje dovodi do blokiranja oba procesa, ali primjena monitora onemoguuje tu pojavu. Pretpostavimo da je meumemorija

30

Operacijski sustavi 1 puna i da proizvoa pokuava upisati novu vrijednost pri emu poziva monitor (ProducerConsumer.inset(item)) te prije prevoenja u sleep stanje izgubi procesor. Procesor se dodijeli potroau koji kod klasinog problema P-P alje signal za buenje proizvoaa, no kako se koriste semafori potroau nije dozvoljen pristup monitoru (ProducerConsumer.remove()). To znai da potroa nee moi poslati signal za buenje sve dok proizvoa ne zavri rad sa monitorom, a to e se realizirati pri sljedeoj dodjeli procesora. Primjenom monitora izbjegnut je gubitak signala za buenje proizvoaa pa time i mogunost blokiranja oba procesa. Nedostatak monitora je ogranienost primjene na relativno mali broj programskih jezika.

Slika 22. Primjena monitora u rjeavanju problema P-P

31

Operacijski sustavi 1 Poruke

Komunikacija porukama moe se iskoristiti u rjeavanju problema P-P. Pri slanju poruka izmeu dva procesa koriste se sljedee poruke: - send(destination,&message) slanje poruke procesu sa identifikatorom destination - receive(source,&message) primanje poruke od procesa sa identifikatorom source Nakon slanja poruke nekom procesu, proces nakon primitka poruke alje poruku potvrde primitka poruke acknowledgement. Proces koji je poslao prvu poruku po primitku poruke acknowledgement saznaje da je poruka ispravno poslana. Ako prvi proces ne primi poruku acknowledgement poslati e ponovo poetnu poruku. Prvi proces poruku acknowledgement nee primiti ako proces primalac nije primio poruku procesa poiljaoca ili je poiljalac poslao poruku ali ona nije stigla do primaoca. U prvom sluaju proces primalac primiti e poruku i poslati poruku acknowledgement, a u drugom sluaju primalac e primiti istu poruku dva puta, ali e prepoznati da je poslala ista poruka, te e je ignorirati i poslati poiljaocu poruku acknowledgement. Pri slanju poruka moe se koristiti sinkroni ili asinkroni nain slanja poruka. Pri sinkronom nainu oba procesa moraju biti pripravna istovremeno na komunikaciju, dok asinkroni nain ne uvjetuje spremnost oba procesa za komunikaciju. Za asinkroni nain obino se koriste mailbox-ovi ili randezvouz nain slanja i primanja poruka gdje je slanje nove poruke uvjetovano primitkom prijanje poruke. Na slici 23. prikazan je problem P-P uz primjenu poruka. Najprije potroa alje N poruka o slobodnim mjestima ('prazne' poruke) proizvoau. Proizvoa pri upisu svake nove vrijednosti uzme jednu 'praznu' poruku i poalje potroau jednu poruku o upisanim vrijednostima ('puna' poruka). Za punu memoriju proizvoa je potroio sve 'prazne' poruke, a za praznu memoriju potroa je iskoristio sve 'pune' poruke pa ne mogu nastaviti rad sa meumemerijom. Rad je mogu ako se proita vrijednost iz pune meumemorije i poale 'prazna' poruka ili upie vrijednost u praznu meumemoriju i poalje 'prazna' poruka.

32

Operacijski sustavi 1

Slika 22. Problem P-P uz primjenu poruka

2.4. UPRAVLJANJE PROCESOROM

Upravlja procesorom (scheduler) je dio operacijskog sustava sa zadaom odreivanje slijeda dodjele procesora procesima u ready stanju. Scheduler redoslijed dodjele procesora ostvaruje primjenom algoritma za dodjelu prioriteta. Frekvencija 50 ili 60 herca (interval od 20 ms) koristi se za aktiviranje vremenskog prekida nakon ega slijedi zaustavljanje izvoenje trenutnog procesa i aktiviranje shedulera kako bi odredio da li je potrebno nastaviti sa izvoenjem trenutno izvoenog procesa ili je potrebno pokrenuti neki novi proces. Dodjela procesora nekom drugom procesu moe biti i ranije u sluaju pojave prekida i pokretanja servisne rutine za obradu prekida. Pri radu shedulera bitni su sljedei kriteriji:

33

Operacijski sustavi 1

Kriteriji uspjenosti algoritama: Openito: Fairness pravednost u dodjeli procesora Policy enforcment pridravanje dogovorenih naela dodjele procesora Batch Throughput maksimalno poveanje poslova po satu Turnaround time smanjivanje vremena izmeu izvoenja i termimiranja CPU utilization teiti to veoj aktivnosti CPU-a. Balance uravnoteenost aktivnosti svih dijelova sustava.

Inteaktivni sustavi Response time vrijeme odziva sustava Proportionality postizanje oekivanje krajnjih korisnika.

Real time sustavi Meeting deadlines izbjegavanje gubitka podataka Predictability izbjegavanje degradacije kvalitete u multimedijalnim sustavima.

Algoritme za upravljanje procesorom dijelimo na: 1. Algoritme za batch sustave 2. Algoritme za interaktivne sustave 3. Algoritme za sustave u realnom vremenu 4. Algoritmi za procesne niti

34

Operacijski sustavi 1 Algoritmi za batch sustave

Algoritmi za batch sustave odreuju redoslijed izvoenja procesa za obrade sa malo komunikacije sa korisnicima tijekom izvoenja, pa se karakteriziraju duim vremenima dodjele procesora procesima radi izbjegavanja gubitka vremena auriranja stanja procesa pri estim dodjelama procesora. Algoritmi su: FIFO Shortest Job First Shortest remaining time next Three-Level scheduling

FIFO algoritam dodjeljuje procesor procesima po slijedu pojave procesa u sustavu. Proces koji je stigao prvi u sustav, prvi i dobiva procesor. Algoritam je jednostavan za implementaciju ali nije optimalan.

Shortest Job First je algoritam koji vei prioritet daje procesima ije je trajanje izvoenja krae. Algoritam dodjeljuje procesor procesima poredanim po trajanju obrade od najkrae do najdue. Slika 23. prikazuje primjer za 4 procesa razliitog trajanja na koje je primijenjen algoritam.

Slika 23. Primjer primjene algoritma Shortest Job First Formula u nastavku odreuje prosjeno vrijeme za izvoenje obrade:
Tsr = 4 a + 3 b + c + d 4 4 + 3 4 + 2 4 + 8 = 4 4

Vidljivo je da vrijeme trajanja izvoenja prvog procesa oznaeno slovom a 4 puta vie utjee na rezultat u odnosu na vrijeme posljednje izvoenog procesa oznaenog slovom d, pa je logino da se izvode najprije procesi sa najkraim trajanjem izvoenja. 35

Operacijski sustavi 1

Shortest remaining time next je modifikacija Shortest Job First algoritma jer se najprije izvodi proces ije je preostalo vrijeme izvoenja najkrae.

Three-Level Scheduling algoritam se zasniva na odreivanju prioriteta na 3 nivoa: za procese u ready stanju, za procese koji se spremaju na disk i uitavaju sa diska i za procese koji se uvode u sustav. Slika 24. prikazuje 3 nivoa odreivanja prioriteta. Pri uvoenju procesa u sustav odreuje se prioritet meu procesima, a time i redoslijed uvoenja procesa u ready stanje. Vei broj procesa moe se izvoditi ako se procesi iz radne memorije kratko vrijeme pohranjuju na disku, a zatim izmjenjuju sa procesima u radnoj memoriji. Algoritam odreuje redoslijed izmjene procesa izmeu radne memorije i diska. Pri tome se ima u vidu koliko je dugo proces u radnoj memoriji, koliko je proces izvoen na procesoru, koliko je proces velik i kakva je vanost procesa. Na kraju se odreuje prioritet procesa u ready stanju kako bi se odredio redoslijed dodjele procesora.

Slika 24. tri nivoa odreivanja prioriteta

36

Operacijski sustavi 1 Algoritmi za interaktivne sustave

Algoritmi upravljanja procesorom za interaktivne sustave prilagoeni su za rada sa procesima koji imaju visok stupanj interakcija sa korisnicima. Upravljanje u Interaktivnim sustavima izvodi se sljedeim algoritmima: Round-Robin Priority Algorithm Multiple Queues Shortest process next Guaranted Scheduling Lottery Schedulig Fair-Share Scheduling

Round Robin algoritam

Algoritam dodjeljuje svakom procesu jednak interval vremena rada procesora koji se zove kvantum (quantum). Nakon dobivanja kvantuma za sve procese pokree se novi ciklus dodjele kvantuma. Trajanje kvantuma ne smije biti kratko (vrijeme izvoenja pohrane stanja procesa iznosi 1 ms) niti predugo (na primjer kvantum od 500 ms odreuje poetak izvoenja 10-tog procesa za 4,5 s) pa se uzima kompromisna vrijednost od 100 ms. Proces koji dobije kvantum postavlja se na kraj liste za dodjelu procesora, proces se dodjeljuje sljedeem procesu u listi. Slika 25. prikazuje dodjelu kvantuma.

37

Operacijski sustavi 1

Slika 25. Round-Robin algoritam

Priority algoritam (algoritam vanjske dodjele prioriteta)

Algoritam se zasniva na podjeli korisnika u grupe i odreivanju razliitog prioriteta izvoenja za pojedine grupe. To znai da e procesi korisnika grupe vieg prioriteta uvijek imati prednost u dodjeli procesora u odnosu na procese korisnika grupe nieg prioriteta (npr. najvei prioritet profesora, zatim studentske slube, studenata, dekanata fakulteta itd.). Priority algoritam moe se kombinirati sa drugim algoritmima. Primjer na slici 26. prezentira rad priority algoritma i Round-Robin algoritma.

Slika 26. Priority algoritam u kombinaciji sa Round-Robin algoritmom

38

Operacijski sustavi 1 Multiple Queues algoritam

Algoritam za svoj rad koristi dodjelu kvantuma vremena procesima, ali za razliku od Round-Robin algoritma kvantum vremena se udvostruuje za svaku novu dodjelu procesora (prvi put se dodjeli 1 kvantum, pa 2, 4, 8, 16 itd.). Na taj nain se poveava prioritet ovisno o vremenu boravka procesa u sustavu.

Shortest process next

Algoritam prioritete odreuje prema trajanju izvoenja procesa u interaktivnom nainu rada. Interaktivan nain rada uvjetovan je dinamikom zadavanja naredbi korisnika. Zato se procjenjuje vrijeme potrebno za izvoenje nekog procesa mjerenjem prethodnih vremena izmeu naredbi korisnika. Na taj nain odreuje se vrijeme potrebno za izvoenje procesa i dodjela prioriteta. Postupak procjenjivanja trajanja izvoenja procesa prema nainu izvoenja procesa u prolosti zove se agging.

Guaranted Scheduling algoritam

Algoritam svakom procesu dodjeljuje jednak dio vremena rada procesora. To se postie praenjem broja procesa u sustavu i komparacijom proteklog vremena izvoenja procesora za svaki proces. Kako se broj procesa u sustavu dinamiki mijenja uvijek je potrebno odreivati prosjeno vrijeme rada procesora po procesu definirano omjerom ukupnog vremena izvoenja procesora (To) i broja procesa (N): To/N. Ako je proces koji se trenutno izvodi dobio vei dio prosjenog vremena izvoenja procesora od izraunatog omjera To/N izvodi se krae vremena, a ako je dobio manji interval vremena izvoenja procesora izvodi se due vremena. Na taj nain postie se ujednaenost koritenja procesora za sve procese.

39

Operacijski sustavi 1 Nedostatak algoritma ogleda se u potrebi za stalnim izraunavanjem prosjenog vremena izvoenja procesora i praenja vremena izvoenja procesora za svaki proces.

Lottery Schedulig algoritam

Algoritam se bazira na dodjeli brojeva procesima. Svaki proces dobiva odreeni broj brojeva, a zatim se sluajnim metodom odabire broj iz skupa dodijeljenih brojeva. Proces koji ima taj broj dobiva procesor. Broj dodijeljenih brojeva proporcionalan je prioritetu procesora. Postoji mogunost posudbe brojeva drugim procesima, ako proces prelazi u blokirano stanje.

Fair-Share Scheduling algoritam

Razliiti broj korisnika na raunalnom sustavu pokree razliit broj procesa iji prioritet nije ovisan o vlasniku pokrenutog programa koji je generirao proces. Fire-share sheduling algoritam provjerava broj pokrenutih procesa i osigurava jednaku zastupljenost procesa svih korisnika. Svaki korisnik neovisno o broju pokrenutih procesa dobiva priblino isto vrijeme rada procesora.

Algoritmi za real-time sustave

Real-time sustavi ili sustavi u realnom vremenu generiraju odgovor na postavljeni zahtjev u realnom vremenu, obino manjem od 1 s. Razlikujemo hard real-time sustave gdje je kanjenje odgovora fatalno za sustav i soft real-time sustave gdje kanjenje uzrokuje degradaciju parametara rada sustava ali ne i blokiranje rada cijelog sustava. Algoritmi za real-time sustava osiguravaju raspodjelu procesora izmeu procesa koja omoguuje generiranje odziva sustava u realnom vremenu. Odziv u real-time sustavima moe biti

40

Operacijski sustavi 1 periodian (u tonim vremenskim razmacima) i neperiodian. Za sustav koji zadovoljava sljedei uvjet kae se da je upravljiv, odnosno osigurava rad u realnom vremenu: Ci vrijeme rada CPU-a pri izvoenja dogaaja i
m

Pi period izmeu pojave dogaaja i m - broj dogaaja

P
i =1

Ci
i

Algoritmi za procesne niti

Procesi tijekom izvoenja pokreu jednu ili vie procesnih niti. Za procesne niti mogu biti odreeni prioriteti pri izvoenju primjenom odreenih algoritama (obino su to RoundRobin i priority algoritam). Procesnim nitima se moe upravljati na nivou korisnikih procesa ili nivou kernela. Osnovna razlika je mogunost izvoenja procesnih niti samo jednog procesa za korisniki nivo, dok na kernel nivou mogu biti izvoene procesne niti vie procesa za vrijeme dodjele procesora jednom procesu. Izvoenje procesnih niti vie procesa na kernel nivou uvjetuje pohranu stanja procesnih niti pri pokretanju procesne niti drugog procesa, dok kod korisnikog nivoa to nije potrebno. Upravljanje izvoenjem procesnih niti, odnosno odreivanje prioriteta izvoenja procesnih niti optimizira izvoenje procesa u cjelini.

41

Operacijski sustavi 1

2.5. ZASTOJI
Zastoji su nepoeljne pojave uzrokovane raspodjelom resursa izmeu procesa uvjetovane primjenom pseudoparalelizma. Za nastanak zastoja bitni su djeljivi resursi (preemptable) kojima moe pristupati vie resursa, za razliku od nedjeljivih (nonpreemtable) resursa koje moe koristiti samo jedan proces. Procesi se prekidaju u izvoenju, pohranjuju im se stanja i kasnije nastavljaju izvoditi od trenutka prekida. Najee procesi ne uspiju rezervirati sve resurse potrebne za izvoenje u kratkom vremenu dodjele procesora pa zadravaju resurse do sljedee dodjele procesora. Time je omogueno nastajanje situacija u kojima procesi potrauju resurse drugih procesa, a istovremeno zadravaju resurse koje ti drugi procesi trebaju za obradu. Procesi jednom rezervirane resurse ne otputaju pa nastaju stanja koja blokiraju daljnje izvoenje procesa, a zovemo ih zastojima. Skup procesa je u zastoju ako svaki proces iz skupa eka na dogaaj koji moe uzrokovati samo proces iz tog skupa procesa. Zastoj nastaje ako su ispunjeni sljedei uvjeti: mutual exclusion sprjeavanje izvoenja kritinih sekcija za dva ili vie procesa istovremeno hold and wait pravo procesa da zadri rezerviran resurs no preemption onemoguavanje oduzimanja resursa procesu Circular wait postojanje krune veze izmeu dva ili vie procesa, odnosno meusobno povezivanje resursa. Potraivanje resursa izmeu procesa prikazuje se grafom alokacije resursa. Slika 27. prikazuje zastoj primjenu grafa alokacije resursa i zastoj dva procesa.

Slika 27. Nastanak zastoja 42

Operacijski sustavi 1 Krug oznaava proces, a kvadrat resurs. Strelica usmjerena iz kvadrata u krug oznaava dodjelu resursa za proces, dok u obrnutom sluaju proces potrauje resurs. Zastoj nastaje zato jer proces D zadrava resurs T, a istovremeno potrauje resurs U dodijeljen procesu C koji istovremeno potrauje resurs T. Slika 28. prikazuje nastanak zastoja i otklanjanje zastoja oduzimanjem resursa procesu B. Nastanak zastoja uvjetovan je slijedom dodjele resursa (slika 28) procesima i u sluaju drugaije dodjele resursa zastoj ne bi nastao.

Slika 28. Nastanak i otklanjanje zastoja

43

Operacijski sustavi 1 Naini rjeavanja zastojnih situacija su: Ostrich algoritam Detekcija i oporavak Izbjegavanje zastoja Sprjeavanje zastoja.

Ostrich algoritam

Koristi se za operacijske sustave sa vrlo malim brojem zastoja u radu. Obrada zastoja u takvim sustavima ne postoji jer je ekonomski neopravdano implementirati obradu zastoja u operacijski sustav za mali broj zastoja. Operacijski sustavi sa malim brojem zastoja mogu doi u zastoj u odreenim sluajevima, ali je pojava takvih situacija vrlo malo vjerojatna. Nastanak zastoja otklanja se ponovnim pokretanjem svih procesa i oekivanjem nastanka drugaije dodjele resursa izmeu procesa.

Detekcija zastoja i oporavak

Detekcija zastoja ostvaruje se praenjem stanja u grafu alokacije resursa. Pojava krunih veza u grafu odreuje nastanak zastoja. Zastoji se otklanjaju oduzimanjem resursa jednom procesu iz krune veze i ponovnim restartanjem ostalih procesa. Ako su procesi i dalje u zastoju, resursi se oduzimaju sljedeem procesu sve dok se ostali procesi iz krune veze ne pokrenu. Detekciju zastoja mogue je izvoditi za: jedan resurse odreenog tipa vie resursa odreenog tipa.

Detekciju zastoja za jedan resurs odreenog tipa realizira se primjenom algoritma za otkrivanje krune veze. Algoritam je objanjen na primjeru alokacije resursa prikazanom na slici 29. Procesi D, E i G su u krunoj vezi pa su u zastoju. Otkrivanje krune veze je vizualno vrlo jednostavno, no na operativnog sustava potrebno je koristiti formalni algoritam. Formalni algoritam koristi listu L za vorove alokacijskog grafa resursa. Za svaki vor N izvodi se sljedeih 5 koraka:

44

Operacijski sustavi 1 1. postavljenje prazne liste L za vor 2. dodavanje trenutnog vora na kraj liste L i provjera ponavljanje vora u listi to odreuje postojanje krune veze i prekid izvoenje algoritma 3. za trenutno provjereni vor odrediti postojanje neispitanih izlaznih strelica; ako ih ima slijedi korak 4, a ako nema slijedi korak 5 4. odabir izlazne strelice sluajnim nainom, zatim prijelaz na sljedei vor i ponavljanje koraka 3 5. dostignut je krajnji vor, pa se brie posljednji vor i vraamo na prethodni vor, ako je to poetni vor u listi nema krunih veza i algoritam zavrava izvoenje.

Slika 29. Alokacijski graf resursa sa krunom vezom

Objasnimo rad algoritma na primjeru. Redoslijed analize vorova je nebitan, pa ponimo od lijevo na desno i odozgo nadolje. Prvo analiziramo vor R, dodavanjem prazne liste L za taj vor i upisom oznake vora L = [R]. Iz R postoji izlazna strelica ka A pa A dodajemo u listu L = [R,A]. Iz A strelica odlazi u S pa slijedi L = [R,A,S]. Kako iz S nema izlaznih strelica S briemo iz liste i vraamo se u A kako bismo provjerili postojanje neke druge izlazne strelice. Jedina izlazna strelica iz A je ve provjerena pa se i A brie iz liste pa u listi ostaje samo R, a kako smo krenuli iz R algoritam za vor R se zavrava. Ispitivanje
vora A bilo bi jo krae jer bi se u listu dodao vor S, L = [A,S], no kako iz S nema

izlaznih strelica, S se brie i vraamo se u A pa algoritam terminira izvoenje. Ispitajmo sada vor B. Nakon ispitivanja i upisa podataka o vorovima dolazimo do vora D koji ima dvije izlazne strelice. Vrijednost liste za vor B je L = [B,T,E,V,G,U,D] i sluajno se odabir

45

Operacijski sustavi 1 jedna izlazna strelica. Neka je to strelica prema S pa se S dodaje u listu, ali zatim odmah i brie jer S nema izlaznih strelica pa se vraamo u vor D. Strelica prema T upisuje T u listu i provjerom liste L = [B,T,E,V,G,U,D,T] uoava se ponavljanje vora to odreuje nastanak krune veze. Detekcija zastoja za vie resursa istog tipa koristi se matrica za provjeru pojave krune veze u grafu. Potrebno je koristiti dva vektora i dvije matrice. Vektor E se koriste za pohranu podataka o broju postojeih resursa odreenog tipa, a vektor A za podatke o broju raspoloivih resursa odreenog tipa. Matrica C sadri podatke o dodijeljenom broju resursa procesima za svaki tip resursa, dok matrica R evidentira broj resursa svakog tipa koji potrauje proces. Slika 30. prikazuje vektore E i A, te matrice C i R.

Slika 30. Prikaz vektora E i A i matrica C i R


n

Vrijedi formula

C
i =1

ij

+ A j = E j , odnosno broj dodijeljenih i potraivanih resursa jednak je

ukupnom broju resursa. Algoritam postojanje zastoja bazira na usporedbi vektora A i vektora izvedenih iz matrice R (jedan red matrice R). Izvoenje procesa je mogue ako je vektor A vei ili jednak izvedenom vektoru iz R (svaki element iz A je jednak ili vei od pripadajueg elementa iz R). Algoritam primjenjuje slijedee korake: 1. provjera postojanja procesa Pi, za koji je i-ti redak iz R manji od vektora A 2. za takav proces dodaje se i-ti redak iz vektora C u vektor A, oznaava se proces i ponavlja korak 1. 3. ako takav proces ne postoji algoritam se terminira.

46

Operacijski sustavi 1

Slika 31 prikazuje mogui sluaj alokacije resursa za 3 procesa. Prvi proces se ne moe izvoditi jer je 1 red matrice R vei od vektora A (CD Rom nije dostupan), drugi proces se takoer ne moe izvoditi jer je skener nedostupan, ali trei proces moe bit pokrenut jer je 3 redak iz matrice R jednak vektoru A. Matrica A e se uveati za vrijednost 3 retka matrice C pa e imati vrijednost A = (2220) to e omoguiti izvoenje 2 procesa koji e nakon zavretka izvoenja matrici A promijeniti vrijednost na A = (4221). Ukoliko bi proces 3 na poetku potraivao CD Rom (3 red u matrici R bi imao vrijednost 2101) proces se ne bi mogao izvoditi i nastao bi zastoj. Pokretanje algoritma je vremenski zahtjevno i izvodi se ili nakon odreenog vremenskog intervala ili kada se uoi smanjenje iskoristivosti CPU (zastoj uzrokuje blokiranje procesa i smanjenje broja procesa u ready stanju to uvjetuje smanjenje iskoristivosti CPU-a).

Slika 31. Primjer izvoenja algoritma za otkrivanje zastoja

Oporavak se izvodi:

otputanjem resursa resurs se oduzima procesu i dodjeljuje nekom drugom procesu vraanjem procesa u raniju fazu izvoenja (rollback) proces u izvoenju ima pohranjene kontrolne toke (checkpoint), te se proces vraa na kontrolnu toku u kojoj nije rezervirao problematian resurs ukljuen u krunu vezu

47

Operacijski sustavi 1

unitavanjem procesa terminiranjem procesa iz krune veze oslobaaju se rezervirani resursi i omoguuje nastavak izvoenja ostalih procesa; dozvoljeno je i terminiranje procesa koji nisu u krunoj vezi ako time utjeemo na rjeavanje zastoja.

Izbjegavanje zastoja

Izbjegavanje zastoja zasniva se na provjeri uvjeta koji bi mogli dovesti do pojave zastoja i nedozvoljavanju nastavka izvoenja procesa u takvim situacijama. Slika 32. prikazuje trajektorije resursa procesa. Osjenani dijelovi u grafikonu odreuju vremenski interval u kojem proces potrauje resurs. Ne smije se dozvoliti da trajektorija resursa procesa (isprekidana linija) ne ue u dvostruko osjenani dio grafa.

Slika 32. Trajektorija rezerviranja resursa

Mogunost nastanka zastoja provjerava se postojanjem sigurnih stanja sustava. Sigurna stanja dozvoljavaju izvoenje procesa i dodjelu svih resursa koje procesi mogu koristiti u izvoenju. Nesigurna stanja mogu dovesti do zastoja ako procesi zatrae maksimalno dozvoljeni broj resursa, no to ne znai da je pojava zastoja sigurna jer procesi mogu zatraiti i manji broj resursa od maksimalno dozvoljenog. Odreivanjem nesigurnog stanja

48

Operacijski sustavi 1

izbjegava se i teoretska mogunost nastanka zastoja. Slika 33 prikazuje sigurno stanje jer je broj slobodnih resursa dovoljan za zadovoljenje maksimalnih potreba procesa za resursima.

Slika 33. Sigurno stanje Slika 34 prikazuje nastanak nesigurnog stanja jer nije mogue zadovoljiti maksimalne zahtjeve procesa za resurse.

Slika 34. Nesigurno stanje Kontrola sigurnih i nesigurnih stanja izvodi se primjenom Bankerovog algoritma za iste resurs svakog tipa (single resource) i Bankerovog algoritma za vie resursa svakog tipa (multiple resource). Bankerov algoritam za single resurse dodjeljuje resurse istog tipa procesima provjeravajui da li je stanje nakon dodjele sigurno. Ako je stanje nesigurno ne dozvoljava se daljnje izvoenje procesa. Slika 35 prikazuje rad Bankerovog algoritma za sigurna stanja. Algoritma provjerava mogu li slobodno resursi zadovoljiti maksimalni broj zahtijevanih resursa za barem jedan proces. Ukoliko je to mogue stanje je sigurno i ne moe se dozvoliti nastavak izvoenja procesa.

49

Operacijski sustavi 1

Slika 35. Bankerov algoritam za single resurse Bankerov algoritam za multiple resurse provjerava postojanje sigurnih stanja za vei broj resursa istog tipa koji se dodjeljuju procesima. Algoritam za rad koristi dvije matrice: matrica C za prikaz podataka o trenutno dodijeljenim resursima i matrica R za podatke o potrebnim resursima za izvoenje procesa. Algoritam koristi i tri vektora: vektor E odreuje ukupni broj resursa za svaki tip resursa, vektor P trenutno pridruene resurse i vektor A trenutno raspoloive resurse. Rad algoritma izvodi se primjenom slijedeih koraka: 1. trai se proces Pi koji u matrici R ima vrijednosti koje su jednake ili manje od vektora A 2. proces se oznaava kao zavren i dodaju se vektoru A vrijednosti iz reda matrice C koji pripada oznaenom procesu. 3. postupak se ponavlja sve dok nisu ispitani svi procesi; ako se ispitaju svi procesi stanje je sigurno, a ako za neki proces korak 1 ne moe biti izveden stanje je nesigurno. Slika 36 prikazuje rad Bankerovog algoritma za multiple resurse. Na slici je prezentirano sigurno stanje.

50

Operacijski sustavi 1

Slike 36. Bankerov algoritam za multiple resurse

Sprjeavanje zastoja

Sprjeavanje zastoja postie se onemoguavanjem nastanka jednog od uvjeta za pojavu zastoja. Najbolje rjeenje se postie onemoguavanjem krune veze. Mutual exclusion moe biti onemoguen ali samo uz primjenu posebnog procesa deamon koji kontrolira pristup i rad sa resursom, odnosno potrebno je koristiti spooling u svim sluajevima gdje postoji potreba za mutual exclusion. Mogunost zadravanje resursa takoer nije jednostavno iskljuiti jer bi procesi morali odjednom rezervirati sve resurse potrebne za izvoenje, a ponekad procesi unaprijed ne mogu znati koji resursi su potrebni za izvoenje. Oduzimanje resursa nije praktino jer oduzimanje odreenih resursa uzrokuje nemogunost nastavka izvoenja zapoetih obrada (oduzimanje printera u trenutku ispisa nekog dokumenta). Preostaje sprjeavanje nastanka krune veze. Oznaavanjem resursa sa brojevima i primjenom pravila za dodjelu resursa moe se sprijeiti kruna veza. Pravilo ne dozvoljava dodjelu resursa ako je broj traenog resursa manji od broja resursa koji je procesu dodijeljen. U tom sluaju proces mora otpustiti dodijeljene resurse i pokuati ponovo rezervirati resurse. Time se izbjegava zastoj (slika 37).

51

Operacijski sustavi 1

Slika 37. Primjena numeracije resursa

52

Operacijski sustavi 1

4. UPRAVLJANJE MEMORIJOM

Upravljanje memorijom je kljuna funkcija operativnog sustava nuna za izvoenje procesa. Integriranost upravljanja procesima, upravljanja memorijom i upravljanja datotenim sustavom omoguuje uitavanje procesa sa vanjske memorije u radnu memoriju, pokretanje procesa, pohrana rezultata obrade i spremanje podataka na vanjsku memoriju. Zadatak upravljaa memorije je smjetaj procesa u memoriju, pristup adresnom prostoru procesa, auriranje slobodnog prostora vanjske memorije i usklaivanje razliitosti brzine rada memorija (cache memorija, registri, RAM memorija). Upravljanje memorijom razvija se usporedno sa tehnolokim karakteristikama memorije i zahtjevima prema koritenju memorije. Razlikujemo sljedee tehnike upravljanja memorijom: 1. upravljanje memorijom u monoprogramiranju 2. upravljanje memorijom u multiprogramiranu 3. swapping 4. virtualna memorija.

Upravljanje memorijom za monoprogamiranje

Za batch obradu upravlja memorijom uitava program u memoriju, a nakon izvoenja programa oslobaa se rezervirana memorija te uitava novi proces. Operativni sustav moe biti uitan u radnu memoriju, djelomino smjeten u radnu memoriju i ROM memoriju ili samo u ROM memoriju (slika 38. pod a, b i c). Danas prevladava uitavanje operativnog sustava djelomino u ROM memoriju (BIOS) i djelomino u radnu memoriju.

53

Operacijski sustavi 1

Slika 38. Uitavanje operativnog sustava u batch obradi

Upravljanje memorijom za multiprogramiranje

Izvoenje vie programa omogueno je podjelom radne memorije na particije i uitavanjem procesa u jednu od particija. Particije su razliite veliine i procesi se uitavaju ovisno o njihovoj veliini (proces se uitava u prvu veu particiju). Slika 39. a) prikazuje podjelu memorije na particiju i nastanak redova ekanja na uitavanje na pojedinim particijama i istovremeno nepopunjenost jedne particije. Generiranjem jednog reda za uitavanje svih procesa izbjegava se ekanje na uitavanje procesa na nekim particijama dok su druge particije prazne jer se proces iz reda uitava u prvu slobodnu particiju neovisno o veliini particije (slika 39. b)). Primjena modifikacije izbjegava ekanje na dodjelu particija ali ne osigurava racionalno uitavanje procesa. Uitavanje procesa u particije uvjetuje rjeavanje problema realokacije procesa i zatite adresnog prostora procesa. Realokacija procesa izvodi se uveavanjem adrese procesa za poetnu adresu particije u kojoj je proces uitan (100 K procesa uitan u particiju na 400 K znai 100 + 400 = 500K). Zatita adresnog procesa ostvaruje se primjenom dvaju registara base i limit. Pri izvoenju procesa u registar
base uitava se poetna adresa particije procesa, a u limit veliina particije. Svaka adresa

izvan vrijednosti base i base+limit nije korektna i sustav je ne prihvaa.

54

Operacijski sustavi 1

Slika 39. Upravljanje memorijom u multiprogramiranju


Swapping

Swapping se zasniva na izmjeni procesa izmeu radne i vanjske memorije. Procesi se uitavaju jedan do drugoga ostavljajui odreeni prostor za irenje procesa (poveanje podataka raste prema viim, a stack-a prema niim adresama i ne smije se dozvoliti njihovo preklapanje pa se proces proiruje na vie adrese kako bi se izbjeglo njihovo preklapanje). Nakon oslobaanja adresnog prostora procesa u nastalu prazninu uitava se novi u pravilu manji proces. Nastaje manja praznina u koju se uitava neki manji proces, no u jednom trenutku vie nema dovoljno malih procesa koji se mogu uitati u nastalu prazninu. Praznina se vie ne moe koristiti i zovemo je fragmentom, a cijelu pojavu eksternom fragmentacijom. Realokacijom memorije izvodi se pomicanjem adresa procesa jedan prema drugom te je mogue spojiti sve zasebne fragmente u jednu prazninu koja se moe iskoristiti za smjetaj novog procesa, no postupak realokacije memorije uvjetuje aktivnost raunalnog sustava pa nije racionalno esto izvoenje postupka. Slika 40. prikazuje nastanak eksterne fragmentacije i realokaciju memoriju.

55

Operacijski sustavi 1

Slika 40. Nastanak eksterne fragmentacije

Auriranje slobodnog prostora memorije

Auriranje se izvodi primjenom bit mapa ili povezanih listi. Memorija se dijeli na dijelove iste veliine i aurira se stanje svakog dijela memorije. Bit mape imaju onoliko bitova koliko je dijelova memorije. Vrijednost bita 1 oznaava zauzetost, a vrijednost 0 nezauzetost. Za smjetaj procesa u memoriju potrebno je pronai slijed 0 (nula) dovoljan za smjetaj procesa. Implementacija bit mapa je jednostavna ali je njihovo pretraivanje dugotrajno, pa se ee koriste povezane liste. Povezane liste sadre zapise sa podatkom o praznini ili procesu, poetnom dijelu memorije u koji je proces ili praznina smjeten i broju dijelova memorije. Kako je za smjetaj praznina potrebna samo lista praznina esto se povezane liste podijele na liste procesa i listu praznina. Primjena bit mapa i povezanih lista prezentirana je na slici 41.

56

Operacijski sustavi 1

Slika 41. Primjena bit mapa i povezanih lista.

Na slici 42. prikazan je postupak povezivanja praznina nakon zavretka izvoenja procesa. Svaka od prikazanih situacija uvjetuje razliit nain auriranja lista procesa i praznina.

Slika 42. Povezivanje procesa i praznina nakon zavretka izvoenja procesa

Pri uitavanju procesa mogu se koristiti sljedee strategije: 1. prvo popunjavnje (first fit) analiziraju se memorijske praznine poevi od nulte adrese i proces se smjeta u prvu veu prazninu; jednostavna implementacija ali smjetaj procesa nije optimalan 2. sljedee popunjavanje (next fit) isto kao first fit, ali se pri smjetaju novog procesa ne polazi od nulte adrese ve od posljednje koritenje praznine za smjetaj procesa; rezultati su bolji od first fit-a.

57

Operacijski sustavi 1

3. najbolje popunjavanje (best fit) unaprijed se analiziraju sve praznine i proces se smjeta u prazninu sa najmanje neiskoritenog prostora nakon uitavanja procesa; primjenjuje se kada se oekuje poveanje procesa u buduem vremenu. 4. najloije popunjavanje (worst fit) analiziraju se sve praznine i proces se smjeta u prazninu sa najvie neiskoritenog prostora nakon smjetaja procesa; primjenjuje se kada se oekuje smanjenje veliine procesa u buduem vremenu. 5. brzo popunjavanje (best fit) praznine se auriraju u liste praznina ovisno o veliini praznina i proces se smjeta u slobodnu prazninu odgovarajue veliine; smjetanje je brzo ali je auriranje listi praznina vremenski zahtjevno.

Virtualna memorija

Virtualna memorija omoguuje izvoenje procesa iji adresni prostor prelazi veliinu radne memorije. To se postie djelominim uitavanjem procesa u virtualnu memoriju (rezervirani memorijski prostor na vanjskoj memoriji, odnosno hard disku) i djelominim uitavanjem u radnu memoriju. Kada je potrebni pristupiti adresnom prostoru procesa koji nije uitan u radnu memoriju, proces se prevodi u blokirano stanje te se u radnu memoriju uitava traeni adresni prostor procesa iz virtualne memorije kako bi se moglo nastaviti izvoenje procesa. Rad sa virtualnom memorijom mogu je primjenom memorijske upravljake jedinice (MMU) integrirane u CPU (slika 43.)

Slika 43. Prikaz MMU-a u radu sa virtualnom memorijom

58

Operacijski sustavi 1

Tehnike rada sa virtualnom memorijom su:


stranienje segmentcija.

Stranienje

Stranienje se zasniva na podjeli virtualne i radne memorije na dijelove iste veliine. Dijelovi u virtualnoj memoriji su stranice virtualne memorije (pages), a dijelovi u radnoj memoriji su stranice radne memorije (page frames). Slika 44. prikazuje primjer uitavanja stranica iz virtualne u radnu memoriju za veliine virtualne memorije 64 KB i radne memorije 32 KB te veliinu stranice od 4 KB. Virtualna memorija ima 16 stranica, dok radna memorija ima 8 stranica.

Slika 44. Prikaz uitavanja stranica

59

Operacijski sustavi 1

Podaci o povezivanje stranica virtualne i radne memorije pohranjuju se u tabelu stranica. Tabela stranica ima broj zapisa jednak broju stranica u virtualnoj memoriji. Svaki zapis ima podatak o uitanosti stranice u radnu memoriju (present/apsent bit), adresu stranice u radnoj memoriji i odreene bitove (bit modifikacije, referenciranja itd). Ako je stranica uitana u radnu memoriju, vrijednost bita prisutnosti je 1 i zapis u tabeli stranica sadri adresu stranice radne memorije u koju je uitana stranica iz radne memorije. Ukoliko stranica nije uitana generira se zahtjev za uitavanjem stranice (page fault), nakon ega se pokuava pronai slobodna stranica u radnoj memoriji u koju se uitava traena stranica i aurira tabela stranica. Ako nema slobodnih stranica nuno je primjenom odgovarajueg algoritma odabrati jednu stranicu za brisanje i na njeno mjesto uitati traenu stranicu. Ukoliko odabrana stranica za brisanje nije mijenjala sadraj nakon uitavanja u radnu memoriju nova stranica se moe odmah uitati u radnu memoriju na mjesto stranice za brisanje, no ako je odabrana stranica mijenjana nuno je prije njene zamjene pohraniti stranicu na vanjsku memoriju. Nakon zamjene nuno je auriranje tabele stranica. Pri odreivanju adrese u radnoj memoriji nuno je koritenje tabele stranica, pa se memoriji pristupa dva puta: prvi put u tabelu stranica, a zatim na konkretnu memorijsku adresu procesa. Veliina procesa u pravilu nije viekratnik veliine stranica pa je posljednja stranica djelomino nepopunjena. Kako se stranica ne moe dijeliti, nepopunjeni prostor posljednje stranice procesa ne moe se iskoristiti pa nastaje fragment. Pojavu fragmenata tijekom stranienja zovemo internom fragmentacijom i zanemariva je u odnosu na eksternu fragmentaciju. Slika 45. prikazuje postupak odreivanja adrese u radnoj memoriji. Adresa u virtualnoj memoriji za primjer na slici 44. sadri 16 bita, pri emu prva 4 bita odreuju zapis u tabeli stranica, a ostalih 12 bitova odreuje adresu unutar stranice offset (4 KB se adresira sa 14 bitova). Kako virtualna memorija ima 16 stranica potrebna su 4 bita za njeno adresiranje. Na slici prvi dio adrese odreuje zapis sa oznakom 2 koji ima bit prisutnosti 1 pa je stranica uitana u radnu stranicu sa oznakom 6 (110 potrebna su tri bita jer radna memorija ima 8 stranica). Oznaka 110 dodaje se na poetak adrese u radnoj memoriji nakon ega slijedi offset.

60

Operacijski sustavi 1

Slika 45. Odreivanje adrese u radnoj memoriji Tehnika stranienja ima sljedee modifikacije:

stranienje sa vie nivoa koritenje registara inverzno stranienje.

Stranienje sa vie nivoa primjenjuje se u sluaju velikog broja zapisa u tabeli stranica jer

je pretraivanje stranica sporo. Modifikacijom se tabela stranica dijeli na manje dijelove i uvodi se glavna stranica koja postupak odreivanja adrese preusmjerava na neku od tabela stranica. Slika 46. prikazuje primjenu stranienja sa vie nivoa. Primjenom modifikacije pretraivanje traje krae ali je potrebno jednom vie pristupiti memoriji.

Koritenjem registara izbjegava se pristup memoriji radi itanja tabele stranica. Koriste se

registri sa strukturom podataka identinoj zapisima iz tabele stranica. Pri pokretanju nekog procesa uitavaju se zapisi tog procesa iz tabele stranica u registre. Pri odreivanju adrese

61

Operacijski sustavi 1

koriste se zapisi u registru pa nije potrebno pristupiti tabeli stranica u memoriji. Nedostatak registara je relativno mali kapacitet (obino do 64 zapisa) pa je za procese koji imaju vie zapisa u tabeli stranica nuno pristupiti tabeli stranica ako traeni zapis nije upisan u registre. Slika 47. prikazuje zapise registara.

Slika 46. Primjena stranienja sa vie nivoa

Slika 47. Sadraj registra 62

Operacijski sustavi 1

Inverzno stranienje podrazumijeva invertiranu sliku tabela stranica. Tabela stranica

sadri podatke o stranicama u radnoj memoriji (8 zapisa za sluaj na slici 44.) pa je stranica sa manje zapisa. Problem nastaje pri pretraivanju stranice jer se moraju pretraiti svi zapisi u tabeli stranica da se utvrdi da stranica virtualne memorije nije u radnoj memoriji. U ovom sluaju bit prisutnosti oznaava da li je stranica u radnoj memoriji zauzeta ili slobodna. Slika 48. prikazuje primjenu inverznog stranienja.

Slika 48. Primjena inverznog stranienja


Algoritmi za zamjenu stranica

Pri odabiru stranica za brisanje koriste se sljedei algoritmi:


Optimalni Not Recently Used NRU FIFO Second Chance Satni Last Recently Used LRU Not Frequently used NFU Agging Radni skup stranica algoritam WSClock.

63

Operacijski sustavi 1

Optimalni algoritam odreuje stranicu koja se vie nee koristiti, no kako se ne moe

sigurno odrediti kada stranica vie nee biti koritena jer je nemogue odrediti budue ponaanje procesa, algoritam ima samo teoretski znaaj.

Not Recently Used NRU algoritam brie stranicu koja nije koritena u kratkom

vremenskom intervalu. Za rad algoritma koristi se bit referenciranja iz tabele stranica (slika 49).

Slika 49. Zapis tabele stranica

Nakon 20 ms svim zapisima u tabeli stranica se bit referenciranja postavlja na 0, nakon


ega svaka koritena stranica ima promijenjen bit referenciranja. Pri odabiru stranice

odabire se stranica ovisno o vrijednostima bitova iz tabele stranica, odnosno stranica se svrstava u sljedee klase: Klasa 0: nije referencirana, nije modificirana Klasa 1: nije referencirana, modificirana Klasa 2: referencirana, nije modificirana Klasa 3: referencirana, modificirana. Najprije se bira stranica klase 0, ako nema takvih stranica bira se stranica klase 1 itd. Postavljanjem bit referenciranja na 0 svakih 20 ms osigurava se odabir stranice koja nije koritena u kratkom intervalu vremena.

FIFO algoritam odabire stranice za brisanje prema redoslijedu uitavanja u memoriju.

Slika 50. prikazuje rad FIFO algoritma.

64

Operacijski sustavi 1

Slika 50. FIFO algoritam

Second chance algoritam je modifikacija FIFO algoritma. Stranici koja po redoslijedu

uitavanja treba biti obrisana provjerava se bit referenciranja. Ako je bit referenciranja 1 stranica se ne brie nego se postavlja na kraj liste uz promjenu bita referenciranja na 0. Ako bi sve stranice imale bit referenciranja 1 obrisala bi se prva provjeravana stranica jer bi nakon promijene bit referenciranja na 0 prva stranica sa bitom referenciranja 0 bila prva provjeravana stranica.

Satni mehanizam radi na isti nain kao i second chance ali ne koristi listu ve pokaziva

na proces koji se pomie po principu kazaljke na satu (slika 51.)

Slika 51. Satni mehanizam

65

Operacijski sustavi 1

Last Recently Used LRU Algoritam selektira stranicu koja se nije koristila najdue

vremena. Kontrola koritenja vremena upotrebe stranice moe biti ostvarena posebnim poljem u tabeli stranica koje pamti vrijednost brojaa instrukcija u trenutku koritenja stranice. Kako se broja poveava za svaku izvedenu instrukciju stranica koja ima najmanju vrijednost brojaa u tabeli stranica odabire se za brisanje. Problem pri pohrani brojaa u tabeli zapisa je dovoljno veliko polje za pohranu zapisa i kontrola pri ponitavanu vrijednosti brojaa (u jednom trenutku broja poinje od 0). Zato se ee koristi primjena matrica veliine n x n (n je broj stranica). Na poetku sve vrijednosti u matrici imaju vrijednost 0 a pri koritenju neke strance u redak matrice koritene stranice upisuju se 1, a za stupac stranice upisuju se 0. Kada se selektira stranica redak sa najmanjim brojem odgovara stranici koja nije koritena najdulje vremena. Slika 52. prikazuje rad algoritma za 4 stranice i redoslijed koritenja stranica: 0 1 2 3 2 1 0 3 2 3. Na kraju se brie stranica sa oznakom 1.

Slika 52. Rad LRU algoritma

Not Frequently used NFU algoritam. Implementacija LRU algoritma ovisna je o

hardverskoj podranosti implementacije rada matrica za praenje koritenja stranica. Rjeenje moe biti koritenje softverske metode za odreivanje najdue nekoritene

66

Operacijski sustavi 1

stranice, odnosno upotrebe NFU algoritma. U tabeli stranica dodaje se posebno polje za pohranu vrijednosti koja se dobiva na sljedei nain: nakon svakog satnog prekida dodaje se polju vrijednost bit referenciranja 0 ili 1, pa se pri brisanju odabire stranica sa najmanjom vrijednosti jer je ona u prosjeku najmanji broj puta referencirana. Ipak za sluaj intezivnog koritenja stranice u nekom ranijem vremenu biti e obrisana stranica koja se
ee koristi u zadnjem intervalu vremena ali je manje referencirana od ranije koritene

stranice. Zato se pribjegava koritenju algoritma agging.

Agging algoritam. Svaka stranica ima polje koje se koristi za pohranu podatka o

referenciranosti stranice. Nakon svakog satnog prekida provjerava se bit referenciranja ali se on ne zbraja sa vrijednou polja, ve se dodaje na poetak niza bitova u polju, a postojei bitovi se prije toga pomiu za jedno mjesto u desno. Pri brisanju selektira se stranica koja ima najmanju vrijednost polja. Slika 53. prezentira postupak agging-a.

Slika 53. Postupak agging-a

Radni skup stranica. Algoritam radi po principu zamjene stranice koja nije u radnom

skupu stranica. Primjenom postupka odreivanja radnog skupa stranica odreuje se za svaki proces optimalan broj stranica, a zatim se odabire stranica za proces koji ima vie stranica od radnog skupa stranica. Nedostatak algoritma je kontinuirano izraunavanje radnog skupa stranica to je vremenski zahtjevno.

67

Operacijski sustavi 1

WSClock algoritam radi na istovjetan nain kao i satni algoritam ali prije brisanja stranice

koja ima bit referenciranja 0 provjerava da nije stranica procesa u radnom skupu stranica, ako je stranica se zadrava u memoriji i selektira se stranica koja nije u radnom skupu stranica. Slika 54. prezentira rad WSClock algoritma.

Slika 54. Rad WSClock algoritma

Tablica 3. prikazuje usporedbu algoritama.

Tablica 3. Usporedba algoritama za zamjenu stranica


Algoritam Svojstvo

Optimalni Not Recently Used NRU FIFO Second Chance

Ne moe se implementirati Vrlo krut Mogunost gubitka vanih stranica Poboljanje FIFO algoritma

68

Operacijski sustavi 1

Algoritam

Svojstvo

Satni Last Recently Used LRU Not Frequently used NFU Agging Radni skup stranica algoritam WSClock

Realistian Odlian, ali teak za implementaciju Korektna aproksimacija LRU algoritma Odlian algoritam koji izvrsno aproksimira LRU algoritam Skup za implementaciju Dobar i uinkovit algoritam

Lokalna i globalna zamjena stranica

Lokalnoj zamjena stranica pri odabiru stranice za zamjenu odabire jednu od stranica procesa koji je generirao zahtjev za uitavanjem nove stranice (page fault). Globalna zamjena stranica odabire stranicu bilo kojeg procesa, odnosno ne iskljuivo stranice procesa koji je generirao page fault. Slika 55. prikazuje lokalnu i globalnu zamjenu stranica.

Slika 55. Lokalna i globalna zamjena stranica: a) poetno stanje b) lokalna zamjena stranica c) globalna zamjena stranica

69

Operacijski sustavi 1

Veliina stranica

Odreivanje veliine stranica ovisno je o veliini tabele stranica i iskoristivosti memorijskog prostora. Ako je stranica malena broj zapisa u tabeli stranica je velik i pretraivanje je sporo, za velike stranice broj zapisa je malen ali je interna fragmentacija velika pa se odabir kompromisno rjeenje za veliinu stranica od 1, 4 ili 8 KB.

Zaguenje (thrashing)

Poveanje iskoristivosti procesora moe se postii poveanjem broja procesa u ready stanju to se postie poveanjem ukupnog broja procesa u sustavu. Poveanje ukupnog broja procesa moe biti ostvareno smanjenjem broja uitanih stranica procesa ili smanjenjem veliine stranice. Uglavnom se pribjegava smanjenju broja uitanih stranica u memoriju za svaki proces. Smanjenjem broja uitani stranica poveava se ukupni broj procesa u sustavu pa tako i broj procesa u ready stanju to poveava iskoristivost procesora. Nastavljanjem smanjenja uitanih stranica procesa u jednom trenutku dolazi do naglog opadanja iskoristivosti procesora. Razlog opadanja iskoristivosti procesora je smanjen broj uitanih stranica procesa u memoriji i povean broj generiranih zahtjeva za uitavanjem novih stranica (page fault). Za vrijeme izvoenja page faulta proces je u blokiranom stanju, a zbog poveanog broja zahtjeva komunikacija izmeu radne memorije i virtualne memorije (hard disk) je poveana. Broj stranica po procesu u trenutku maksimalne iskoristivosti procesora zove se radni skup stranica. Kontrola nastanka 'zasienja' ostvaruje se praenjem broja generiranih zahtjeva za uitavanjem novih stranica (slika 56). Ako je broj zahtjeva premalen procesu se oduzima nekoliko uitanih stranica, a ako je broj zahtjeva prevelik proces dobiva nekoliko stranica.

70

Operacijski sustavi 1

Slika 56. Kontrola broja zahtjeva za uitavanjem nove stranice

Segmentacija

Tehnika segmentacije zasniva se na logikoj podjeli procesa na dijelove koji ine funkcionalne cjeline (zaglavlje programa, glavni modul, funkcije, procedure itd), uitavanju dijelova procesa koje zovemo segmenti u virtualnu memoriju i unosu odreenog broja modula u radnu memoriju. Ukoliko segment potreban za daljnje izvoenje nije u radnoj memoriji potrebno ga je uitati u prazninu u radnoj memoriji, a ako praznina nije slobodna nuno je osloboditi dio radne memorije brisanjem jednog ili vie segmenata. Slika 57. prikazuje podjelu procesa na segmente. Za razliku od stranienja koje koristi jedan linearni adresni prostor segmentacija koristi linearni adresni prostor za svaki segment, odnosno svaki segment polazi od adrese 0. Svaki proces dobiva zasebnu tabelu segmenata sa zapisima o svim modulima procesa. Zapis tabele segmenata zvan deskriptor sadri podatke o uitanosti segmenta u radnu memoriju, poetnu adresu segmenta, veliinu segmenta, podatke o sigurnosti itd. Pri brisanju segmenata nastaje praznina koja se popunjava sa segmentom jednakim ili manjim od praznine. Najee je segment manji od praznine pa nastaju manje praznine koje se popunjavaju novim segmentima, a ako takvih segmenata nema nastaju fragmenti. Segmentacija stara eksternu fragmentaciju (slika 58.). Eksterna fragmentacija se moe izbjei memorijskim pomicanjem segmenata jedan do drugog, ali takav postupak okupira u potpunosti raunalne resurse pa se uglavnom izbjegava.

71

Operacijski sustavi 1

Slika 57. Podjela procesa na segmente

Slika 58. Pojava eksterne fragmentacije kod segmentacije

72

Operacijski sustavi 1

Smjetaj segmenata u radnu memoriju omoguuje izvoenje relativno malog broja procesa. Za pokretanje veeg broja procesa nuno je koritenje segmentacije sa stranienjem. Svaki segment se dijeli na stranice, a isto se uradi i sa dijelom radne memorije rezerviranim za smjetaj segmenta (sada je rezervirani dio u radnoj memoriji manji od segmenta). Svaki segment dobiva tabelu stranica te se u radnu memoriju uitava samo odreeni broj stranica. Zapis u deskriptoru sada sadri podatak o adresi tabele stranica, zapisu u tabeli stranica i offset-u unutar stranice. Primjenom segmentacije sa stranienjem omoguen je smjetaj veeg broja procesa u radnu memoriju uz sloeniju implementaciju. Slika 59. prezentira postupak izraunavanja adrese u radnoj memoriji.

Slika 59. Primjena segmentacije sa stranienjem

73

Operacijski sustavi 1

Iz deskriptora se saznaje poetna adresa memorijskog prostora u radnoj memoriji koritenog za smjetaj segmenta, adresa tabele stranica i oznaka zapisa u tabeli stranica. Nakon toga se pristupa u tabelu stranica kako bi se odredila stranica u radnoj memoriji u koju je uitana traena stranica segment, a zatim se na poetnu adresu segmenta u memoriji izraunava adresa poetka stranice u radnoj memoriji te se na nju dodaje offset (slika 60.) .

Slika 60. Izraunavanje adrese pri stranienju

Dijeljenjem segmenata procesa mogue je dodijeliti posebna svojstva logikim cjelinama procesa to stranienje nije omoguavalo. Segmentacija omoguuje zatitu segmenata,

74

Operacijski sustavi 1

odnosno kontrolu pristupa segmentu pa je implementirana sigurnost. Segmentacija omoguuje i dijeljenje segmenata izmeu vie procesa pa jedan segment moe biti koriten za vie procesa (npr. kod kompajlera se uita jedanput i koristi za vie procesa kompajliranja dokumenata). Generalno mogu se napraviti usporedbe izmeu stranienja i segmentacije (tabela 4). Tabela 4. Usporedba stranienja i segmentacije Svojstvo Potreba upoznavanja programera o koritenoj tehnici Broj lineranih adresnih prostora Moe li adresni prostor procesa premaiti veliinu radne memorije Koritenje zatite Jednostavnost poveanja tabela stranica/segmenata Mogunost dijeljenja Namjena tehnike Ne Velik adresni prostor uz relativno malu veliinu radne memorije Da Podjela procesa u logike cjeline uz podranu sigurnost i dijeljenje Ne Ne Da Da 1 Da Vie Da Stranienje Ne Segmentacija Da

75

Operacijski sustavi 1

5. UPRAVLJANJE ULAZNO-IZLAZNIM JEDINICAMA

Upravljanje ulazno-izlaznim jedinicama podrazumijeva usklaivanje razliitosti izmeu ulazno-izlaznih jedinica i omoguavanje izvoenja sistemskih poziva sa ureajima. Rad sa U-I jedinicama realizira se primjenom hardverskih i softverskih komponenti. Hardverske komponente kljune za rad U-I jedinica su komponente za implementaciju obradu prekida. U-I jedinice generiranjem prekida dojavljuju ostatku raunalnog sustava o zavretku odreene aktivnosti. Druga vana komponenta je kontroler koji prenosi naredbe prema U-I jedinici, a takoer sadri buffer za pohranu podataka koji se razmjenjuju sa U-I jedinicama. Koritenje buffer-a motivirano je oslobaanjem CPU-a pri stalnom prijenosu podataka sa U-I jedinice u glavnu memoriju i mogunou brze detekcije u sluaju pogrenog prijenosa podataka. Softverska komponenta bitna za rad U-I jedinica je drajver koji upravlja radom U-I jedinice putem kontrolera.

5.1 HARDVERSKA PODRKA RADU U-I UREAJA


U-I jedinice dijelimo na blok i karakter ureaje. Blok ureaji podatke obrauju u definiranom formatu i imaju mogunost pristupa pohranjenim podacima (primjer ureaja je hard disk). Karakter ureaj obrauje podatke nizom karaktera i ne mogu kasnije pristupati pohranjenim podacima. Slika 61. prikazuje razlike u brzini rada pojedinih U-I ureaja. Komunikacija s U-I jedinicama moe se ostvariti primjenom porta ili memorijskim mapiranjem U-I jedinica (slika 62). Koritenjem U-I mapiranja izbjegavaju se sistemski pozivi

Ubrzanje komunikacije sa U-I ureajima ostvaruje se koritenjem brzih

sabirnica

namijenjenih komunikaciji sa U-I ureajima (slika 63). Slika 64. prikazuje sabirnice koritene za komunikaciju sa U-I jedinicama. Daljnje poboljanje postie se primjenom DMA prijenosa. Klasinim postupkom CPU je kontinuirano aktivan pri prijenosu sadraja buffer-a kontrolera u radnu memoriju. Pri DMA prijenosu CPU kontroleru proslijedi

76

Operacijski sustavi 1

podatke o poetnoj adresi u radnoj memoriji za smjetaj podatka iz buffer-a te broj bajtova za prijenos. Nakon tog CPU moe izvoditi druge poslove dok e kontroler obaviti prijenos podatka iz buffer-a u radnu memoriju. Proslijeeni podaci pohranjuju se u registrima kontrolera, te se za prijenos svakog bajta podataka poveava adresa u memoriji i smanjuje broj bajtova za prijenos za 1. Postupak se ponavlja sve dok se broja bajtova za prijenos ne smanji na 0 (slika 65.).

Slika 61. Usporedba brzina rada pojedinih ureaja

Slika 62. Primjena memorijskog mapiranja u radu U-I jedinica

77

Operacijski sustavi 1

Slika 63. Prikaz sustava sa jednom sabirnicom a) i vie sabirnica b)

Slika 64. Prikaz sabirnica raunalnog sustava

78

Operacijski sustavi 1

Slika 64. DMA prijenos podataka

Slika 65. prikazuje implementaciju obrade prekida. ip za obradu prekida prihvaa prekid od U-I jedinice, prepoznaje ureaj koji je poslao prekid i alje signal CPU-u o pojavi prekida. CPU prekida izvoenje tekueg procesa, pohranjuje podatke o stanju izvoenja procesa u tabelu stranica te prosljeuje ipu za obradu prekida signal o spremnosti za pokretanje rutine za obradu prekida. Adrese rutina za obradu prekida na U-I jedinicama mogu biti pohranjene u ipu za obradu prekida, no ei je sluaj upotrebe poetnih adresa u memoriji koje zovemo vektorima prekida. ip na osnovi podataka iz vektora prekida pokree rutinu za obradu prekida na CPU, nakon ega se nastavlja izvoenje nekog drugog procesa koji ne mora biti prekinuti proces u trenutku pojave prekida.

Slika 65. Obrada prekida Bitno je napomenuti koritenje interleaving-a pri upotrebi blok ureaja. Ukoliko su logiki blokovi razmjeteni jedan do drugog pri itanju dva susjedna bloka nuno je izvoditi rotaciju diska za jedan krug. Razlog tome je inercija ploe diska koji se ne moe zaustaviti

79

Operacijski sustavi 1

u trenutku kada magnetna glava proita blok ve se magnetna glava pomakne preko poetka susjednog bloka pa je nuna rotacija za cijeli krug kako bi se magnetna glava postavila na poetak susjednog bloka. Postupkom interleaving-a susjedni logiki blokovi nisu fiziki spojeni jedan do drugog nego je izmeu njih umetnut drugi blok pa se izbjegava potreba rotacije diska za puni krug pri itanju dva susjedna bloka (inercija diska uzrokovat
e pomak glave za itanje iznad susjednog fizikog bloka koji nije susjedni logiki blok, pa

je dovoljan mali pomak diska za postavljanje glave za itanje iznad sljedeeg logikog bloka). Ukoliko se izmeu dva logika bloka umeu dva fizika bloka govorimo o dvostrukom interleaving-u. Slika 66. prikazuje primjenu interleaving-a.

Slika 66. Primjena interleaving-a; a) bez interleaving-a b) jednostruki interleaving c) dvostruki interleaving

5.2. SOFVERSKA PODRKA RADU U-I UREAJA


Softverska podrka radu U-I ureaja ukljuuje:

Obrada prekida Drajver U-I ureaja Sloj neovisan o vrsti U-I ureaja Korisniki sloj.

Slika 67. prikazuje slojeve softvera za podrku U-I ureaja.

80

Operacijski sustavi 1

Slika 67. Slojevi softverske podrke radu U-I ureaja


Obrada prekida je vana jer putem prekida U-I ureaj dojavljuje o zavretku operacije

koju izvodi. Zato se obrada prekida ugrauje u kernel kao sastavni dio sloja kernela najblieg hardveru raunala.

Drajveri U-I ureaja koriste se za upravljanje radom U-I ureaja. Svaki U-I ureaj ima

softverski program koji upravlja njegovim radom. Drajver poznaje strukturu U-I ureaja i putem kontrolera upravlja ureajem. Slika 68. prikazuje ulogu drajvera u upravljanju U-I ureaja.

Sloj neovisan o vrsti U-I ureaja ne razlikuje U-I ureaje ve prema njima koristi jednako

suelje, a upravljanje njima izvodi primjenom drajvera. Njegove funkcije su:


odreivanje imena U-I ureaja


buffering smanjenje potrebe za prijenosom koritenih podataka sa U-I ureaja

dojava greaka u sluaju da kontroler ne uspije nakon nekoliko ponovljenih zahtijeva otkloniti greku u prijenosu potrebno je korisnika informirati o nastalom problemu

alokacija i otputanje U-I ureaja usklaivanje veliine bloka neovisno o U-I ureaju U-I ureaji mogu imati razliitu veliinu bloka pa je potrebno uskladiti razlike izmeu ureaja.

Korisniki sloj podrazumjeva formatiranje poruka korisnika poslanih od sloja neovisnog o

vrsti U-I ureaja te uzvoenje procesa koji prate rad pojedinih U-I ureaja (deamon procesi).

81

Operacijski sustavi 1

Slika 68. Primjena drajvera

Slika 69. prikazuje razliku izmeu razliitog i jedinstvenog suelja prema U-I ureajima.

Slika 69. Primjena razliitih suelja: a) razliito suelje b) jedinstveno suelje

82

Operacijski sustavi 1

Slika 70. prikazuje primjenu buffering-a. Pod a) prikazan je sluaj bez upotrebe buffer-a, pod b) koristi se buffer u korisnikom prostoru to uzrokuju problem ukoliko u trenutku brisanja buffer-a stigne mrenom skup podataka za pohranu u buffer-u, pod c) se koristi buffer u korisnikom i kernel prostoru to rjeava problem u sluaju b), ali ostaje problem prihvata podataka mrenom komunikacijom ako iz buffer-a u kernelu nisu podaci preneeni u buffer u korisnikom prostoru, a pod d) se koristi buffer u korisnikom prostoru i dva buffer-a u kernel prostoru to razrjeava sve prethodno objanjane situacije.

Slika 70 Primjena buffering-a Slika 71. prikazuje slijed aktivnosti na izvoenju zahtijeva korisnikog procesa prema U-I ureaju. Generira se sistemski poziv prema sloju softvera neovisnom o vrsti ureaja. Sloj odreuje vrstu U-I ureaja za izvoenje zahtijeva te prosljeuje zahtjev drajveru. Drajver putem kontrolera alje naredbu U-I ureaju. U-I ureaj po zavretku obrade generira prekid koji se obradi te se o tome informira drajver. Drajver informira sloj neovisan o vrsti U-I ureaja i na kraju korisniki proces dobiva rezultat na poslani zahtjev.

Slika 71. Izvoenje sistemskog poziva za rad sa U-I ureajima 83

Operacijski sustavi 1

6. UPRAVLJANJE DATOTENIM SUSTAVOM

Malen kapacitet radne memorije i nemogunost trajnog pamenja podataka uvjetuje koritenje medija za trajno pamenje podataka odnosno vanjske memorije. Dio operativnog sustava namijenjen izvoenju operacija manipulacije podacima na vanjskoj memoriji zove se upravlja datotenog sustava. Njegove osnovne funkcije su: alokacija slobodnog i zauzetog prostora vanjske memorije, smjetaj datoteka na vanjsku memoriju, sigurnost i opravak u sluaju nastanka greaka, pohrana velike koliine podataka, ouvanje podataka u sluaju terminiranja procesa i pristup podacima za vie procesa istovremeno. Kljuni pojmovi datotenog sustava su:

datoteka direktorij alokacija vanjske memorije

6.1. DATOTEKA
Za rad sa datotekama bitno je odrediti: Pravila dodjele imena datoteka Atribute Strukturu Vrste Pristup Operacije.

Imena datoteka razlikuju se u maksimalno dozvoljenom broju znakova, dozvoljenom

skupu znakova za imena datoteka, razlikovanju malih i velikih slova itd. Imena datoteka se sastoje od dva dijela: naziva koji odreuje korisnik i ekstenzije dodane aplikativnim programom za obradu datoteke. Slika 72. prikazuje primjere nekih ekstenzija.
Atributi odreuju svojstva datoteka. Po stvaranju datoteke odreeni su atributi prema

poetno definiranim (default) vrijednostima, koje se mogu pregledavati i mijenjati. Slika 73. prikazuje neke od atributa datoteka.

84

Operacijski sustavi 1

Slika 72. Imena datoteka

Slika 73. Atributi datoteka


Struktura: datoteka moe imati strukturu bajta, odnosno niza nula i jedinica, zatim

strukturu zapisa (record) i strukturu stabla. Struktura zapisa bila je dominantna u vrijeme

85

Operacijski sustavi 1

koritenja tekstualnog moda u radu sa pisaima pa je zapis sadravao broj znakova adekvatan broju znakova u ispisu jednog retka teksta na pisau (80 ili 132 znaka). Struktura stabla omoguuje brzo pretraivanje ali ima kompleksnu strukturu pa se ne koristi esto. Danas je struktura bajta dominantna. Slika 74. prikazuje strukture datoteka.

Slika 74. Struktura datoteka: a) bajt b) rekord c) stablo

Struktura bajta znai niz nula i jedinica, ali u organizacijskom pogledu datoteka ima zaglavlje koje sadri podatke o adresiranju ostatka datoteke. Slika 75. prikazuje strukturu izvrne datoteke i arhive.
Vrsta: datoteke mogu biti:

regularne ili standardne za obradu podatka korisnika direktorij za pohranu podataka o logikoj organizaciji datotenog sustava blok specijalne za rad blok U-I ureaja karakter specijalne za rad karakter U-I ureaja.

Pristup datotekama moe biti:

sekvencijalan za pristup podacima nuno je pristupiti svim podacima prije traenog

random za pristup podacima nije potrebno pristupiti svim podacima prije traenog jer je kretanje datotekom mogue u oba smjera (prema kraju i prema poetku).

86

Operacijski sustavi 1

Slika 75. Struktura izvrne datoteke i arhive

Operacije na datotekama su: Stvaranje: uvoenje datoteke u sustav, dodjela memorijskog prostora i default vrijednosti atributa Brisanje: uklanjanje datoteke iz sustava i oslobaanje dodijeljenog adresnog prostora Otvaranje: priprema datoteke za rad, itanje njenih atributa i prikupljanje podataka o blokovima datoteke na vanjskoj memoriji Zatvaranje: brisanje datoteke iz liste otvorenih datoteka
itanje: postavljanje pointera na odreeno mjesto u datoteci i itanje niza bajtova

Pisanje: upis niza bajtova podataka od odreenog mjesta u datoteci, ako je preostali dio datoteke premalen za upis podataka, datoteka se uveava kako bi se pohranili svi podaci

87

Operacijski sustavi 1

Dodavanje: podaci se dodaju na kraj datoteke poveavajui datoteku Pretraivanje: postavljanje pokazivaa (pointera) na skup znakova definiran prije pokretanja pretraivanja

itanje atributa: dobivanje podataka o trenutnim vrijednostima atributa

Postavljanje atributa: izmjena postojeih vrijednosti atributa Preimenovanje: promjena imena datoteka.

6.2. DIREKTORIJ
Direktorij (mapa, folder, kazalo) je posebna datoteka namijenjena pohrani podataka o strukturi datotenog sustava. Od drugih datoteka razlikuje se po vrijednostima . i .. koje upuuju na tekui direktoriji i prvi vii direktorij u odnosu na tekui. Svaki datoteni sustav ima glavni (root) direktorij. Na poetku je koriten jedan direktorij (slika 76.) u kome nije bilo mogue ponavljati imena datoteka, zatim je koriten jedan direktorij za svakog korisnika (slika 77.) sa ogranienjem nemogunosti ponavljanja imena datoteka za jednog korisnika. Danas je dominantna struktura stabla (slika 78.) sa ogranienjem nemogunosti ponavljanja imena datoteke u jednom direktoriju.

Slika 76. Sustav sa jednim direktorijem

Slika 77. Sustav sa jednim direktorijem za svakog korisnika 88

Operacijski sustavi 1

Slika 78. Sustav sa stablom direktorijem Svaki direktorij moe sadravati proizvoljan broj podmapa. Premjetanje ili kopiranje datoteka izmeu direktorija znai upis imena datoteka u odredini direktorij, te brisanje imena datoteka iz polaznog direktorija (ako se izvodi premjetanje). Pri brisanju datoteke koristi se sigurno brisanje premjetanjem imena datoteka u specijalnu datoteku (Recycle bin) kako bi se mogla ponovo koristiti. Slika 79. prikazuje raspored direktorija za UNIX operativni sustav.

Slika 79. Raspored direktorija za UNIX operativni sustav 89

Operacijski sustavi 1

Na direktoriju mogu se izvoditi sljedee operacije: Stvaranje Brisanje Otvaranje Zatvaranje


itanje

Promjena imena Povezivanje datoteka: postupak kojim dva ili vie korisnika dijele adresni prostor jedne datoteke to se postie usmjeravanjem zapisa istih ili razliitih imena datoteka u direktorijima korisnika na blokove jedne datoteke

Prekid povezivanja datoteke: postupak prekida dijeljenja jedne datoteke za vie korisnika brisanjem zapisa o djeljivoj datoteci iz direktorija jednog od korisnika.

6.3. ALOKACIJA VANJSKE MEMORIJE


Alokacijom vanjske memorije povezuje se blokovi datoteke sa datotekom. Razlikujmo:

Kontinuiranu alokaciju Alokaciju upotrebom povezanih listi Alokacija upotrebom povezanih listi uz koritenje indeksa Alokaciju upotrebom i-noda.

Slika 80. prikazuje moguu strukturu sustava vanjske memorije. Prezentiran je glavni zapis disks (master boot record - MBT) sa informacijama o particijama vanjske memorije, particije, startni zapisi particije (boot record), super blok sa podacima o strukturi datotenog sustava particije, rezerviran prostor za auriranje slobodnog prostora particije, prostor za alokaciju vanjske memorije (u ovom sluaju i-node), root direktorij te dio za pohranu podataka.

90

Operacijski sustavi 1

Slika 80. Mogua struktura vanjske memorije

Kontinuirana alokacija znai pohranu datoteke rezerviranjem kontinuiranog niza blokova

za pohranu datoteke. Takav nain pohrane datoteke omoguuje brzo pretraivanje i uitavanje datoteka (smanjen broj pomaka magnetnih glava za itanje), ali pri brisanju datoteke dolazi do pojave eksterne fragmentacije na vanjskoj memoriji (slika 81.).

Slika 81. Kontinuirana alokacija

Povezane liste rasporeuju blokove datoteke ovisno o rasporedu slobodnih blokova na

vanjskoj memoriji pri emu svaki blok sadri podataka o sljedeem bloku. Eksterna fragmentacija je izbjegnuta, ali je za pristup n-tom bloku potrebno pristupiti svim blokovima prije n-tog to uvjetuje veliku aktivnost magnetne glave za itanje i sporost u radu (slika 82).

91

Operacijski sustavi 1

Slika 82. Povezane liste


Povezane liste uz upotrebu indeksa koriste isti princip kao i povezane liste, ali se podaci

o sljedeim blokovima nalaze u posebnoj datoteci (file alocation table - FAT) koja ima onoliko zapisa koliko je blokova na vanjskoj memoriji. Za pristup n-tom bloku potrebno je u tabeli pristupiti zapisima svih blokova prije n-tog. Povezane liste uz upotrebu indeksa isto kao i kontinuirana alokacija i povezane liste blokovima pristupaju sekvencijalno. Za pristup n-tom bloku potrebno je imati podatak o poetnom bloku. Slika 83. prikazuje FAT tabelu. I-node je rjeenje koje za pohranu podataka o blokovima datoteka koriste posebne tablice (i-node) koje pohranjuju podatke o odreenom broju blokova datoteke (obino 64). Ako to nije dovoljno (datoteka ima vie od 64 bloka) posljednji zapis upuuje na zaseban blok koji se koristi za pohranu podataka o ostalim blokovima datoteke. Pristup podacima je direktan pa nije potrebno pristupati podacima svih prethodnih blokova ve se odmah moe pristupiti traenom bloku. Slika 84. prikazuje upotrebu i-noda.

Implementacija direktorija ovisi o vrsti alokacije vanjske memorije. Zapis u direktoriju sadri podatke o datoteci (naziv, atribute, veliina vremena nastanka i posljednje modifikacije itd.) te podatke za pristup blokovima datoteke. Atributi datoteke mogu biti smjeteni u zapisu direktorija ili izvan njega. Ako su atributi pohranjeni u direktoriju olakana je manipulacija atributima, ali je broj atributa ogranien (slika 85.).

92

Operacijski sustavi 1

Slika 83. FAT tabela

Slika 84. I-node

Slika 85. Pohrana atributa: a) u direktoriju b) izvan direktorija

93

Operacijski sustavi 1

Pohrana dugih imena datoteka postie se upisom podataka o datoteci na poetak zapisa u direktoriju, a kraj zapisa se rezervira za ime datoteke koje moe biti proizvoljne duine. Slika 86. prikazuje nain upisa dugih imena datoteka. Za princip zapisa in-line imena se dodaju na kraj zapisa, a kod heap principa sva imena datoteka su dodana na kraj direktorija te se pointerima usmjeruje na njih iz zapisa datoteke u direktoriju.

Slika 86. Pohrana dugih imena: a) in-line b) heap

Za grupe korisnika mogue je definirati ogranienja (quota) u pogledu koritenja vanjske memorije. Koristi se posebna tabela sa popisom svih grupa korisnika sustava i njihovim ogranienjima (slika 87.). Pri koritenju prostora vanjske memorije kontroliraju se doputene vrijednosti zauzetosti vanjske memorije i korisnik upozorava o pokuaju prekoraenja dozvoljenih vrijednosti.

94

Operacijski sustavi 1

Slika 87. Primjena kvote za korisnike

Dijeljenje datoteka izmeu dva korisnika prikazano je slikom 88. Vidljivo je da zapisi iz dva direktorija upuuju na jednu datoteku. Slika 89. prezentira situacije pri brisanju datoteke: kada vlasnik datoteka obrie datoteku provjerom brojaa count registrirat e se korisnik koji dijeli datoteku i datoteka e biti brisana samo iz direktorija vlasnika datoteke (takvu vezu zovemo hard link), blokovi datoteke obrisati e se tek kada korisnik koji dijeli datoteku prekine vezu sa datotekom nakon ega se datoteka brie iz direktorija korisnika, a blokovi datoteke oznaavaju slobodnima. Ukoliko se koristi soft link u sluaju da vlasnik obrie datoteku korisnik koji je dijelio datoteku njoj vie ne moe pristupiti jer se zapis o dijeljenoj datoteci referencirao na zapis datoteke u direktoriju vlaniska datoteke.

Slika 88. Dijeljenje datoteka 95

Operacijski sustavi 1

Slika 89. Postupak brisanja datoteke (za hard link)

Veliina bloka je bitan element koji odreuje rad sa vanjskom memorijom. Za male veliine blokova pojava interne fragmentacije (nepopunjenosti posljednjeg bloka datoteke) je zanemariva, ali je brzina prijenosa malena jer je potreban velik broj pristupa blokovima diska za uitavanje podataka zbog njihove male veliine. Vrijeme pomaka magnetne ruke diska i vrijeme rotacije diska je mnogo vee u odnosu na vrijeme itanja diska pa je prijenos podataka spor. Za velike veliine blokova situacija je obrnuta: brzina itanja je velika jer se pristupa malom broju blokova, ali se adresni prostor vanjske memorije slabo koristi jer je izraena interna fragmentacija. Slika 90. prikazuje krivulje brzine prijenosa podataka i iskoritenja adresnog prostora vanjske memorije. Zakljuak je da je kompromisno rjeenje za veliinu bloka 512 B, 1 ili 2 KB.

Slika 90. Krivulje brzine prijenosa podataka i iskoritenja vanjske memorije

96

Operacijski sustavi 1

Alokacija slobodnog i zauzetog prostora vanjske memorije ostvaruje se primjenom bit mapa ili posebnih blokova koji pohranjuju podatke o slobodnim blokovima (slika 91.). Ako je vanjska memorija veinom nepopunjena racionalnije rjeenje su bit mape, a ako je memorija veinom popunjena prikladnija je upotreba posebnih blokova za pohranu podataka o slobodnim blokovima.

Konzistentnost vanjske memorije znai usklaenost podataka o zauzetim i slobodnim blokovima datoteke sa stvarnim stanjem vanjske memorije. Pri auriranju datotenog sustava moe doi do nekorektnog izvoenja procesa i greaka u konzistentnosti sustava. Zato se provodi postupak provjere konzistentnosti datotenog sustava u sluaju

nekorektnog izvoenja pojedinih procesa. Pri provjeri konzistentnosti koriste se dvije liste: liste slobodnih i liste zauzetih blokova. Za svaki blok u jednoj listi mora biti vrijednost 1, a u drugoj 0 (blok slobodan: lista praznina ima vrijednost 1, a lista blokova 0). Svako odstupanje od navedenog mora se korigirati. Slika 92. prikazuje mogue situacije u listama slobodnih i zauzetih blokova. Pod a) je korektno stanje, sluaj b) prezentira pojavu dvaju 0 (blok sa oznakom 2) koja se rjeava promjenom vrijednosti u listi slobodnih vrijednosti sa 0

Slika 91. Auriranje slobodnog prostora na vanjskoj memoriji a) posebni blokovi b) bit mape

97

Operacijski sustavi 1

na 1. Pod c) imamo vrijednost u listi slobodnih blokova veu od 1 (blok sa oznakom 4), a rjeava se postavljanjem vrijednosti u listi slobodnih blokova na 1, te u sluaju d) imamo vrijednost veu od 1 u listi zauzetih blokova (za blok sa oznakom 5) koja se rjeava kopiranjem bloka u slobodni blok i postavljanjem vrijednosti u listi zauzetih blokova za blok 5 i dodijeljeni slobodni blok na 1.

Slika 92. Provjera konzistentnosti datotenog sustava Sigurnost datotenog sustava ostvaruje se izradom sigurnosnih kopija (backup) koji ovisno o vanosti podataka mogu biti godinji, mjeseni, tjedni ili dnevni. Prema opsegu podataka mogu biti potpuni ili inkrementirani za pohranu promijenjenih podataka od posljednjeg backup-a (kontrolira se vrijeme modifikacije datoteka). Za sustave sa jako izraenim stupnjem sigurnosti (sustav upravljanja letjelicom) koriste se dodatni rezervni ureaj za pohranu podataka na koji se pohranjuju podaci identino kao na originalni ureaj pa u sluaju kvara glavnog ureaja rezervni preuzima njegovu funkciju.

Slika 93. prikazuje strukturu direktorija za MS-DOS operativni sustav.

Slika 93. Direktorij u MS-DOS-u

98

Operacijski sustavi 1

Slika 94. prezentira strukturu direktorija Windows 98 operativnog sustava.

Slika 94. Direktorij u Windows 98 operativnom sustavu Slika 95. prezentira strukturu i-noda (UNIX operativni sustav). Slika 96. prezentira pohranu podataka blokova za velike datoteke uz upotrebu jednostrukog, dvostrukog i viestrukog bloka za pohranu podataka, a slika 97. prikazuje postupak pretraivanja direktorija za UNIX operativni sustav.

Slika 95. Direktorij u UNIX-u

Slika 96. UNIX i-node

99

Operacijski sustavi 1

Slika 97. Pristup datoteci /usr/ast/mbox

100

Operacijski sustavi 1

7. SIGURNOST I ZATITA

Sigurnost operativnog sustava podrazumjeva mjere kontrole i sprjeavanja nedozvoljenog pristupa podacima korinika. Zatita u operativnom sustavu usmjerene je ka kontroli koritenja resursa pri izvoenju procesa.

7.1. SIGURNOST
Prijetnje usmjerene ka podacima korisnika usmjerene su ka:

Tajnost podataka spjeavanje pristupa podacima korisnika Integritet podataka sprjeavanje izmjene podataka korisnika Dostupnost usluga sustava sprjeavanje uskraivanja usluga sustava krajnjim korisnicima

Potencijalni neovlateni korisnici podataka mogu biti:


Tehniki nedovoljno educirani korisnici korisnici koji iz radoznalosti otvaraju datoteke i mailove drugih korisnika Studenti, sistem programeri, operateri dokazuju se probijanjem zatita raunalnih sustava Programeri u bankama i ostali korisnici sa namjerom koritenja bankovnih i drugih rauna motivirani su osobnom dobiti Vojna i industrijska pijunaa otkrivanje podataka konkurencije ima kljunu vanost za uspjenost razvoja civilnih i vojnih projekata.

Mogua mjesta upada u sustav:


Koritenje podataka datoteka koje se vie ne koriste podaci ostaju u memoriji neko vrijeme i itanjem memorijskih adresa mogue je doi do podataka Koritenje nedozvoljenih sistemskih poziva ili dozvoljenih sistemskih poziva sa nedozvoljenim parametrima Lani proces logiranja proces simulira postupak logiranja te upisuje podatke korisnika koji se logira u posebnu datoteku

101

Operacijski sustavi 1

Prekidanje postupka logiranja pokuava se 'zbuniti' sustav kako bi se proces logiranja prihvatio kao uspjean Suradnja sa administratorom sustava prijateljski dobivena dozvola pristupa sustavu uz izbjegavanje standardne procedure dobivanja pristupa sustavu Neovlateni pristup podacima o korisnicima sustava u uredu firme.

Sigurnost ne moe sprijeiti gubitak podataka u sljedeim sluajevima Atmosferski utjecaji (vatra, grom, zemljotresi itd.) Hardverske i softverske greke Ljudske greke.

Za sigurnost nuno je koritenje kriptografije. Kriptografijom prevodimo tekst iz plaintext oblika (originalni dokument) u ciphertext oblik (kodirani dokument) na nain koji autoriziranim osobama omoguuje povratak teksta u plaintext oblik. P plaintext; KE klju za kodiranje (encription) C ciphertext; E algoritam za enkripciju C = E (P,KE) funckija kodiranja Slika 98. prikazuje postupak kodiranja i dekodiranja dokumenta.

Slika 98. Kodiranje i dekodiranje dokumenta Kodiranje se koristi za:


Kriptiranje upotrebom tajnog kjua Kodiranje javnim kljuem Digitalni potpisi.

102

Operacijski sustavi 1

Kriptiranje upotrebom tajnog kljua podrazumijeva poznavanje kljua za kriptiranje za

osobu koja alje podatke i osobu koja prima podatke. Primjer kljua poiljaoca je: plaintekst ciphertekst to znai da se rije ATTACK prevodi u QZZQEA. Klju primaoca je: chipertekst plaintekst

Kodiranje javnim kljuem omoguuje slanje dokumenata primaocu bez poznavanja

privatnog kljua primaoca. Javni kljuevi korisnika su javno dostupni i koriste se za slanje podataka korisnicima, ali samo korisnik koji ima privatni klju moe otvoriti dokument.

Digitalni potpisi koriste se za provjeru autentinosti podataka poslanih u digitalnom

obliku. Pri slanju dokumenata koristi se algoritam za kodiranje (MD5 ili SHA) kako bi se dobila hash verzija dokumenta, zatim se koritenjem privatnog kljua dobiva signiture blok D(hash). Primatelj koritenjem MD5 ili SHA algoritma otvara dokument i ako je sa njim suglasan koritenjem javnog kljua poiljaoca provjerava ispravnost kljua poiljaoca (slika 99.).

Slika 99. Slanje digitalnih dokumenata

103

Operacijski sustavi 1

Provjera autentinosti korisnika izvodi se primjenom:


passworda biometrije mjera kontrole.

Primjena passworda oznaava koritenje para login-password za svakog korisnika. Podaci o paru login-password pohranjeni su u posebnu datoteku i pri provjeri korisnika pristupa se pretraivanju datoteke sa podacima o loginu i passwordu kako bi se pronaao zapis koji odgovara upisnim podacima korisnika. Login je u datoteku upisan jednako njegovoj stvarnoj vrijednosti, a password je kodiran i ne odgovara stvarnom passwordu korisnika
ime se sprjeava doznavanje passworda za korisnike sustava. Pri pokuaju otkrivanja

lozinke koristi se ping za detektiranje aktivnih raunala, a zatim telnet za provjeru pristupa sustavu. Kombiniranjem razliitih kombinacija znakova za login i password nastoji se otkriti login i password koji dozvoljava pristup raunalu. Nakon toga pokuavaju se dobiti administratorske ovlasti i podesiti sustav prema osobnim potrebama. Mjere za poboljanje passworda mogu biti:

Minimalno koritenje 7 znakova Razlikovanje malih i velikih slova Koritenje najmanje jedne znamenke ili specijalnog znaka Izbjegavati imena osoba ili rijei iz rijenika.

Vrste paswworda Password za jednokratnu upotrebu za svaku novu upotrebu koristi se novi password Kombinacije sistemskog i korisnikog passworda Vremensko ogranienje valjanosti passworda Koritenje dodatnih pitanja Koritenje fizikih objekata
o Magnetne kartice sa pohranjenim vrijednostima (1 KB) o Pametne magnetne kartice (4 MHz 8-bit CPU, 16 KB ROM-a, 4 KB

EPROM-a 512 B RAM-a, 9600 bps komunikacijski kanal). Slika 100. prikazuje upotrebu magnetnih kartica u postupku prijave korisnika sustava.

104

Operacijski sustavi 1

Slika 100. Upotreba magnetnih kartica

Biometrijom se provjeravaju svojstva korisnika sustava koja se specifina za svaku osobu

(zjenica oka, boja glasa, otisak dlana i slino). U pravilu se biometrija provodi u kombinaciji sa passwordom.

Mjere sigurnosti mogu se odnositi na valjanost passworda u odreenom vremenu dana ili

odreenom danu u tjednu, zatim pri uspostavi veze korisnika moe se veza prekinuti i pozvati korisnika kako bi se otkrila lokacija korisnika koji pristupa sustavu itd.

7.2. ZATITA
Zatitom se ograniavaju dostupni resursi procesima tijekom njihovog izvoenja. Pri izvoenju procesa odreuju se domene koje sadre listu resursa i nain njihove upotrebe. Tijekom izvoenja proces je u jednoj domeni, ali moe i prelaziti iz domene u domenu. Slika 101. prikazuje primjer domena.

Slika 101. Prikaz domena.

105

Operacijski sustavi 1

Implementacija domena ostvarena je matricama koje za retke imaju oznake domena, a za stupce oznake resursa (slika 102.). U presjeku retka i stupca upisani su podaci koji definiraju nain upotrebe resursa u domeni (R itanje, W upisivanje, X izvoenje).

Slika 102. Matrica za implementaciju domena

Prijelaz izmeu domena ostvaruje se dodavanjem naziva domena u posljednje stupce matrice i unosom oznake u presjek reda domene iz koje se prelazi u stupac domene u koju se prelazi (slika 203.).

Slika 103. Prijelaz izmeu domena

Matrice su nepraktine zbog potrebe za rezerviranjem velikog adresnog prostora u memoriji, pri emu su uglavnom nepopunjene. Zato se koriste sljedee modifikacije:

Pristupne kontrolne liste (Access contol list) Liste sposobnosti (Capabilities list)

Pristupne kontrolne liste sadre popis grupa korisnika sa pravima koritenja za svaki

resurs posebno. Dakle svaki resurs ima podatke o korisnicima koji ga smiju koristiti i nainu upotrebe resursa (slika 104.). Pristupne kontrolne liste prikazuje reducirane stupce matrice. 106

Operacijski sustavi 1

Slika 104. Pristupne kontrolne liste

Liste sposobnosti sadre podatke o resursima koji se koriste u domeni i nainu njihove

upotreba i prikazuju reducirane retke matrice (slika 105.).

Slika 105. Liste sposobnosti

107

Operacijski sustavi 1

8. LITERATURA:
1. Andrew S. Tanenbaum: Modern Operating Systems, Prentice Hall, 2001. 2. Andrew S. Tanenbaum: Operating Systems, Design and Implementation, Prentice Hall, 1997. 3. Silberschatz, Galwin: Operating system concepts, Addison Wesley, 1994

108

You might also like