Transcript
Page 1: OS Moja Skripta Josip Pozega

Fakultet Organizacije i Informatike,

Varaždin

Skripta iz kolegija

Operacijski sustavi

Temeljena na odgovorima sa prijašnjih

Ispitnih rokova

Josip Požega

Varaždin, Lipanj 2007.

Page 2: OS Moja Skripta Josip Pozega

21.11.2006.

1. Koji su unutarnji a koji komunikacijski zaštitni mehanizmi. Pobliže pojasniti infrastrukturu javnog ključa i način primjene javnog ključa kod osiguranja tajnosti poruka.

-> Kada korisnik prođe postupak autentifikacije on se nalazi „unutar sustava“ i može početi upotrebljavati računalna sredstva

-> Unutarnji zaštitni mehanizmi, međutim, pojedinom korisniku moraju omogućiti pristup do pojedinih sredstava za koje on ima dopuštenje pristupa (za koje mu je pristup autoriziran)

-> Mehanizmi dopuštanja pristupa (access control) pojedinim sredstvima nazivaju se autorizacijom pristupa (authorization)

-> U postupcima autorizacije uobičajilo se sljedeće nazivlje:

-> SUBJEKTI u postupcima autorizacije jesu pojedini korisnici odnosno njihovi procesi ili čak neke dretve unutar tih procesa

-> Sva sredstva koja se zaštićuju jesu OBJEKTI zaštite

-> Zaštitna pravila (protection rules) moraju za svaki par subjekt-objekt odrediti pravo pristupa koje obuhvaća i način na koji se objekt smije upotrebljavati

-> U raspodijeljenim računalnim sustavima informacije se prenose raznoraznim nesigurnim i otvorenim komunikacijskim putevima

-> pristup do tih puteva ne može se fizički zaštititi

-> prema tome svaki neprijateljski nastrojeni napadač, možemo ga nazvati uljezom (attacker), može vrlo lako narušiti sigurnost raspodijeljenih sustava

-> U raspodijeljenim sustavima sve se informacije prenose u obliku poruka

-> Prema tome, osnovni problem komunikacijskih zaštitnih mehanizama je zaštita poruka

-> Pokazuje se da je najdjelotvornija zaštita poruka njihovo KRIPTIRANJE

-> Većina se narušavanja sigurnosti može razmotriti na mehanizmu protoka poruka od oshodišta do odredišta

-> Prema tome najprije se moraju razmotriti modeli zaštite komunikacijskih kanala od izvorišta do odredišta

-> Ovakvi se modeli mogu primijeniti i na ostale oblike zaštite jer se međusobno djelovanje subjekata i objekata može poistovjetiti s razmjenom poruka

Page 3: OS Moja Skripta Josip Pozega

-> Potencijalni sudionici u komunikaciji moraju na neki način doznati javne ključeve svojih partnera

-> Osim toga, oni se moraju uvjeriti da partneri nisu uljezi koji se lažno predstavljaju

-> U jednom zatvorenom sustavu svi se sudionici moraju prijaviti i tada im se dodjeljuje par ključeva

-> Svoj privatni ključ oni čuvaju kod sebe a njihov se javni ključ pohranjuje zajedno sa njihovim identifikatorima u tablicama pouzdanog poslužitelja kojeg smo nazvali centrom za raspodjelu javnih ključeva (public key manager – PKM)

-> Kada sudionik A želi uspostaviti vezu sa sudionikom B sigurnim kanalom on će zatražiti od PKM-a njegov javni ključ

-> Tablica u PKM koja identifikatorima pridružuje pripadne javne ključeve naziva se javnom datotekom (public file)

-> Ovakvo je rješenje prikladno za manje zatvorene sustave

2. Nabrojite tipične elemente opisnika datoteke. Što je karakteristično kod smještanja datoteka na disk. Napiši funkciju za otvaranje i čitanje datoteke.

-> Svaka je datoteka opisana u datotečnom sustavu svojim opisnikom

-> Opisnik datoteke sadrži sve atribute datoteke, tipični sadržaji opisnika su:

-> Naziv datoteke

-> Tip datoteke

-> Lozinka

-> Ime vlasnika datoteke

-> Pravo pristupa datoteci

-> Vrijeme stvaranja datoteke

-> Vrijeme zadnje uporabe datoteke

-> Ime poslijednjeg korisnika koji je pristupio datoteci

-> Naziv svake datoteke mora biti jedinstven kako bi se je moglo nedvosmisleno identificirati

-> Jedan od najvažnijih sadržaja opisika datoteke je opis njezina smještaja na vanjskom spremniku

-> Najprikladniji vanjski spremnik za smještanje datoteka je magnetski disk

-> Na disku se ne mogu adresirati pojedinačni bajtovi nego sektori

Page 4: OS Moja Skripta Josip Pozega

-> prema tome datoteke je smisleno smještati na disk tako da ih se podijeli na BLOKOVE BAJTOVA koji su po veličini jednaki veličini sektora odnosno cjelobrojnim višekratniku te veličine

-> Jedan fizički disk može se upotrebljavati ili kao jedan jedinstven adresni prostor ili se on može podijeliti na logički razdvojene adresne podprostore tzv Sveske (volumes)

-> Osim toga, sastavni dio svakog direktorija je i opis skladišnog prostora sveska

-> Sa stanovišta brzine prijenosa sadržaja datoteka s diska u radni spremnik i obratno bilo bi prikladno cjelovite datoteke smjestiti u kompaktne uzastopne sektore na disku

-> Međutim na temelju razmatranja uporabe radnog spremnika možemo zaključiti da bi takav način smještaja datoteka izazvao fragmentaciju prostora jednog sveska

FUNKCIJA ZA OTVARANJE DATOTEKA

funkcija Otvoriti_datoteku(Ime,Nacin_pristupa,ID) {

pregledati_datotecnu_tablicu;

ako je (Ime nadjeno && Nacin_pristupa == Pravo_pristupa) {

staviti aktivnu kopiju opisnika u adresni prostor OS-a;

rezervirati medjuspremnik u adresnom prostoru OS-a;

uspostaviti vezu izmedju aktivnog opisnika i

identifikatora;

}

inace {

dojaviti pogresku;

}

}

FUKCIJA ZA ČITANJE DATOTEKA

funkcija Citati_datoteku(ID, Logicka_adresa, Broj_bajtova) {

s pomocu ID pristupiti do aktivnog opisnika;

provjeriti da li je datoteka otvorena za citanje i da li

trazeni Broj_bajtova postoji;

ako je (sve u redu) {

na osnovu trenutne vrijednosti datotecne kazaljke i

Broj_bajtova u medjuspremniku prenijeti potrebne sektore;

prepisati u adresni prostor procesa s pocetnom adresom

Logicka_adresa trazeni Broj_bajtova;

procitati sadrzaj datotecne kazaljke za preneseni

Broj_bajtova;

}

inace {

Dojaviti pogresku;

}

}

Page 5: OS Moja Skripta Josip Pozega

3. Objasnite model ponašanja popravljive komponente s konstantnim brzinama kvarenja i popravljanja.

-> Nova komponenta „kreće u život“ u ispravnom stanju,a kada se dogodi kvar ona prelazi u kvarno stanje

-> Ako je komponenta nepopravljiva ona ostaje u kvarnom stanju zauvijek, a popravljiva komponenta prelazi u ispravno stanje u trenutku kada završi popravak

-> Kod popravljivih komponenti vrijede slična razmatranja od trenutka popravka do trenutka pojave prvog kvara

-> Pretpostavka: da je komponenta nakon popravka po svojstvima jednaka novoj komponenti

-> POUZDANOST neke komponente R(t) je vjerojatnost da je ona u ispravnom stanju u trenutku t

-> NEPOUZDANOST neke komponente F(t) je vjerojatnost da je ona u trenutku t u kvarnom stanju

-> R(t) i F(t) mogu se odrediti promatranjem određene populacije komponenti

-> R(t) je proporcija dijela populacije koji će preživjeti do „starosti“ t

-> F(t) je proporcija dijela populacije koja će umrijeti prije „starosti“ t

-> Iz toga proizlazi da je:

-> Veličina MTTF (Mean Time To Fail) prosječno vrijeme do

Pojave kvara

-> Brzina kvarenja R(t) (Failure Rate) definira se kao

Vjerojatnost pojave kvara u jedinici vremena i to za populaciju

Koja je preživjela do trenutka t

-> MTTR (Mean Time To Repair) je srednje vrijeme do popravka

Page 6: OS Moja Skripta Josip Pozega

-> Za popravljive komponente uvode se slijedeća svojstva:

-> RASPOLOŽIVOST A(t) (Availability) definira se kao vjerojatnost da je komponenta u ispravnom stanju u trenutku t, ako je i t=0 bila u ispravnom stanju

-> NERASPOLOŽIVOST Q(t) (Unvailability) je vjerojatnost da će komponenta biti u kvarnom stanju u trenutku t, ako je u t=0 bila u ispravnom stanju

4. Opišite najjednostavniji oblik podsustava za prihvaćanje prekida. Koji su nedostaci takvog rješenja za obradu prekida?

-> Računalo obično ima više U/I naprava te možemo računati sa više mogučih izvora prekidnih signala

-> Pretpostavimo da je svaka U/I naprava priključena preko svog pristupnog sklopa koji može generirati prekidni signal

-> Pretpostavimo da sve prekidne signale svih pristupnih sklopova možemo spojiti zajedno i time postići da se prekid pojavi na ulazu procesora kada bilo koji pristup (barem jedan) generira prekidni signal

-> Pri pojavi prekidnog signala procesor će ragirati na način:

-> Zabraniti će se daljnje prekidanje;

-> Programsko brojilo (PC–Program Counter) stavlja se na stog;

-> U PC zapisuje se adresa prve instrukcije odsječka programa

Za obradu prekida;

-> U tom odsječku programa treba ustanoviti koji je od pristupnih sklopova generirao prekid

-> To se može postići uzastopnim čitanjem registara stanja (RS) pristupnih sklopova

-> Kad se ustanovi koji je pristupni sklop izazvao prekid taj prekid se može obraditi

-> Ovakvo rješenje ima niz nedostataka a najveći od njih je taj da je tijekom cijele obrade prekida onemogućeno svako drugo prekidanje a to znači da pojava nekog prekida čija obrada zahtijeva trenutno reagiranje ne može biti prihvaćena ako traje obrada nekog drugog manje važnog prekida koji se pojavio ranije i još pri tome može biti dugotrajan

Page 7: OS Moja Skripta Josip Pozega

09.09.2005

1. Objasnite povezanost Poissonove i eksponencijalne razdiobe

POISSONOVA RAZDIOBA

-> Poissonova razdioba može biti razmatrana kao aproksimacija binomne razdiobe

-> Jedinični vremenski interval podijelimo na n pretinaca širine δt

tako da je n x δt =1.

-> Ako se u njemu dogodi k dolazaka oni mogu biti razvrstani na

ukupno načina

-> Ako je p vjerojatnost prisutstva događaja i q vjerojatnost odsutstva događaja (gdje je q=1-p) onda je vjerojatnost da u jediničnom intervalu vremena imamo k događaja jednaka:

-> k je slučajna varijabla koja može poprimati samo cjelobrojne vrijednosti, a n i p su parametri razdiobe

-> Vjerojatnost da u jediničnom intervalu nema niti jednog događaja dobiva se uz k=0, a jednaka je:

b(0; n, p) = qn = (1 - p)

n

-> Suprotna vjerojatnost je vjerojatnost da postoji barem jedan

događaj u jediničnom intervalu i može se pisati: b(k-0; n, p) = 1 - qn

Page 8: OS Moja Skripta Josip Pozega

-> Poissonova aproksimacija binomne razdiobe dobiva se tako da broj pretinaca n teži u beskonačnost (s tim da širina pretinaca teži k

nuli) i da vjerojatnost p teži k nuli s tim da njihov umnožak λ = np

ima konačnu vrijednost

-> Postepenim uvrštavanjima dobivamo novi parametar nazvan λ koji tumačimo kao prosječno broj događaja u jedinici vremena

-> Između Poissonove i eksponencijalne razdiobe postoji dualnost:

Poissonova razdioba: Eksponencijalna razdioba:

Vjerojatnost da nema ni jednog

događaja u intervalu t je

e-λt

Vjerojatnost da je vrijeme

između dva događaja veće od t je

e-λt

Vjerojatnost da postoji barem jedan

događaj u intervalu t je

1-e-λt

Vjerojatnost da je vrijeme

između dva događaja manje od t

je

1-e-λt

Prosječni broj događaja u jedinici vremena je

λ

Prosječno vrijeme između dva

događaja je

1

λ

2. Objasnite najjednostavniji oblik podsustava za prihvaćanje više prekida.

-> PONOVLJENO PITANJE 21.11.2006.

Page 9: OS Moja Skripta Josip Pozega

3. Objasnite vremenska svojstva diskova

-> VSD se u pojednostavljenom prikazu izražavaju nekim prosječnim vremenom za dohvat jednog sektora na disku

-> VSD određena su pretežito brzinama pokretanja njegovih mehaničkih dijelova

-> Vrijeme potrebno za prijenos jednog sadržaja nekog sektora s diska ili pohranjivanje sadržaja u taj sektor može se podijeliti na dva dijela:

-> Vrijeme trajanja postavljanja glave

-> Trajanje prijenosa podataka

-> Trajanje postavljanja glave može se nadalje podijeliti:

-> Trajanje traženja staze

-> Rotacijsko kašnjenje

-> Trajanje traženja staze ovisi o razmaku između početnog položaja glave i staze na koju se glava mora postaviti i to trajanje ima 4 komponente:

-> Trajanje ubrzavanja ručice glave

-> Kretanje konstantnom brzinom

-> Trajanje usporavanja

-> Trajanje finog pozicioniranja

-> Ako se glava pomiće samo za nekoliko staza, trajan je se uglavnom svodi na fino pozicioniranje

-> Kod kratkih pomaka ručica se u prvom dijelu ubrzava i mora se početi usporavati prije nego li dosegne maksimalnu brzinu

-> Za veće se pomake nakon početnog ubrzanja dolazi u razdoblje konstantne brzine, nakon kojeg slijedi usporavanje i konačno fino pozicioniranje

-> Uobičajno se za vrijeme traženja uzima vrijeme koje je potrebno za prijelaz preko trećine ukupnog broja staza

-> Rotacijsko kašnjenje nastaje zbog toga što se nakon postavljanja glave na određenu stazu mora prije početka prijenosa pričekati da se ispod glave za čitanje pojavi traženi sektor

-> U najlošijem slučaju može se dogoditi da je adresirani sektor uspravo prolazio ispod glave kad je ona prispjela na stazu i tada se mora čekati puni okretaj

-> Najpogodniji slučaj je onaj kada traženi sektor upravo nailazi ispod glave u trenutku njezina postavljanja na stazu. U tom slučaju je rotacijsko kašnjenje = 0

Page 10: OS Moja Skripta Josip Pozega

-> Razumno je, dakle, za rotacijsko kašnjenje uzeti prosječnu vrijednost tih dvaju krajnjih slučajeva i pretpostaviti da je prosječno rotacijsko kašnjenje jednako polovini trajanja jednog okretaja diska

-> Trajanje prijenosa podataka određeno je brzinom prijenosa i količinom prenešenih podataka (Trajanje_prijenosa=Brzina*Količina)

-> Brzina prijenosa određena je brzinom kojom ispod glave za čitanje ili pisanje prolaze adresirani bajtovi sektora

-> Brzina prijenosa može se, dakle, izračunati tako da se broj sektora na stazi pomnoži s brojem bajtova u sektoru i taj umnožak podijeli s trajanjem jednog okretaja

-> Na trajanje prijenosa djeluje i ponašanje upravljačkog sklopa diska

4. Objasnite monitor. Napišite algoritam za komunikaciju između proizvođača i potrošača s pomoću monitora i ograničenog spremnika.

-> C.A.R Hoare je uočio da bi bilo prikladno mehanizme suradnje dretvi objediniti u prikladne nakupine funkcija ra rješavanje nekih cjelovitih problema

-> cjelu bi takvu nakupinu trebalo nadzirati objedinjenim nadzornim programom koji je on nazvao MONITOR

-> Monitor se, slično kao i jezgra, sastoji od svoje strukture podataka i funkcija koje djeluju nad tom strukturom

-> Izvođenje funkcija monitora, ili MONITORSKIH FUNKCIJA, mora biti pojedinačno, tj pozivanje funkcija je ulazak u kritični odsječak

-> Dakle, sve funkcije jednog monitora trebale bi na svome početku ispitati binarni semafor

-> Međutim, za ostvarivanje međusobnog isključivanja monitorskih funkcija potrebna nam je posebna vrsta semafora koji mi možemo nazvati MONITORSKI SEMAFOR i označiti s Monitor[M]

-> Sve funkcije jednog monitora moraju ispitati taj semafor,a po svom završetku moraju postavljati taj semafor

->Kada neka dretva pozove monitorsku funkciju ona će:

-> Ili proći monitorski semafor, i mi tada kažemo da je ušla u

Semafor

-> Ili će biti svrstana u red na monitorskom semaforu, i za nju

Kažemo da čeka na ulazak u monitor

-> Sljedeća dretva može ući u monitor tek kad ga prethodna napusti

Page 11: OS Moja Skripta Josip Pozega

-> Unutar monitora dretve ispituju neke uvjete za daljnje napredovanje

-> Ako je uvjet koji dretva ispituje unutar monitora ispunjen, dretva napušta monitor pozivajući jezgrinu funkciju za postavljanje monitorskog semafora i time ujedno omogućuje drugoj dretvi ulazak u monitor

-> Ako uvijet za nastavak izvođenja dretve koji dretva ispituje nije ispunjen, dretva se unutar monitora blokira u red u kojem čeka na ispunjavanje toga uvjeta

-> Blokiranje jedne dretve unutar monitora mora biti popraćeno s propuštanjem slijedeće dretve u monitor

MEĐUDRETVENA KOMUNIKACIJA S POMOĆU MONITORA I OGRANIČENOG MEĐUSPREMNIKA

->U tu svrhu se deklarira Monitor[2] s dva pripadajuća reda uvjeta:

-> Red_uvjeta[2,1] ukojem će se naći opisnik dretve proizvođača kada u ograničenom međuspremniku ne bude praznih mjesta

-> Red_uvjeta[2,2] u kojem će se naći opisnik dretve potrošača kada u međuspremniku ne bude niti jedne poruke

-> Deklariraju se i sljedeće varijable:

-> Poredak MS[N] s pretincima MS[0] do MS[N-1];

-> kazaljke UL i IZ

-> Varijabla Broj_mjesta koja pokazuje koliko ima praznih pretinaca u međuspremniku i koja se postavlja na početnu vrijednost Broj_mjesta=N

-> Dvije varijable Potrošač_čeka i Proizvođač_čeka, koje poprimaju vrijednost 0 ako potrošač/proizvođač ne čeka ili vrijednost 1 ako potrošač/proizvođač čeka u svom redu čekanja

Page 12: OS Moja Skripta Josip Pozega

MONITORSKA FUNKCIJA ZA SLANJE PORUKA:

m-funkcija Poslati_poruku(P) {

Ući_u_monitor;

Pročitati Broj_mjesta;

dok je(Broj_mjesta==0) {

Proizvođač_čeka = 1;

Uvrstiti u Red_uvjeta(2,1);

Ući_u_monitor(2);

Pročitati Broj_mjesta;

}

Broj_mjesta--;

MS[UL]=P;

UL=(UL+1) mod N;

ako je(Potrošač_čeka==1) {

Potrošač_čeka=0;

Osloboditi iz Reda_uvjeta(2,2);

}

inače {

izaći_iz_monitora(2);

}

}

MONITORSKA FUNKCIJA ZA PRIHVAĆANJE PORUKA:

m-funkcija Prihvatiti_poruku(R) {

Ući_u_monitor(2);

Pročitati Broj_mjesta;

dok je(Broj_mjesta==N) {

Potrošač_čeka=1;

Uvrsiti u Red_uvjeta(2,2);

Ući u monitor(2);

Pročitati Broj_mjesta;

}

Broj_mjesta++;

R=MS[IZ];

IZ=(IZ+1) mod N;

ako je(Proizvođač_čeka==1) {

Proizvočać_čeka=0;

Osloboditi iz Reda_uvjeta(2,1);

}

inače {

izaći_iz_monitora(2);

}

}

Page 13: OS Moja Skripta Josip Pozega

5. Objasnite utvrđivanje autentičnosti

-> Sučelje prema korisniku mora biti izvedeno tako da se kroz njega omogući uporaba računala samo ovlaštenim osobama

-> Samo povjerljive osobe smiju upotrebljavati računalni sustav

-> One moraju biti unaprijed ovlaštene za pojedini način uporabe računalnog sustava

-> Pravo pristupa utvrđuje se provjerom identiteta tj utvrđivanjem vjerodostojnosti (autentičnosti) njegova identiteta

-> Korisnik se prilikom pristupa računalu predstavlja postupkom identifikacije i taj se postupak naziva autentifikacija

-> Pri tome se mora utvrditi autentičnost samo jedne strane tj korisnika jer korisnik, naime, ne mora provjeravati identitet računala

08.09.2006.

1. Objasnite na koji se način u operacijskim sustavima ostvaruje autorizacija?

-> PONOVLJENO 09.09.2005.

2. Objasnite pojmove pouzdanosti i nepouzdanosti komponenti te model njihova razmatranja.

-> Razmatranje ponašanja pojedine komponente može se provesti promatranjem velikog broja komponenti

-> Pretpostavimo da je u jednom trenutku t=0 stavljen u pogon veći broj, recimo N komponenti

-> Možemo reči da je N početna populacija komponenti

-> Tijekom vremena pojedine komponente će se kvariti i broj ispravnih komponenti n(t) će se smanjivati a broj neispravnih komponenti m(t) će rasti

-> Nakon određenog vremena pokvariti će se i posljednja komponenta

-> U svakom trenutku t zbroj ispravnih i neispravnih komponenti mora biti jednak početnoj populaciji n(t)+m(t)=N

-> Na temelju promatranja cijele populacije može se za pojedinu komponentu odrediti pouzdanost odnosno nepouzdanost

-> POUZDANOST R(t) neke komponente je vjerojatnost da se ona u trenutku t nalazi u ispravnom stanju (vjerojatnost da se do trenutka t nije dogodio događaj kvara)

Page 14: OS Moja Skripta Josip Pozega

-> NEPOUZDANOST F(t) neke komponente je vjerojatnost da se ona u trenutku t nalazi u kvarnom stanju (vjerojatnost da se u trenutku t dogodio događaj kvara).

3. Objasnite i usporedite učinkovitost dinamičkog raspoređivanja radnog spremnika sa preklopnim načinom uporabe radnog spremnika

PREKLOPNI NAČIN UPORABE RADNOG SPREMNIKA

-> Nemogućnost izvođenja programa čiji je logički adresni prostor veći od fizičkog spremnika dovela je do podjele programa na dijelove koji svi ne moraju istovremeno biti u fizičkom spremniku

-> U radnom spremniku mora se u svakom trenutku nalaziti onaj dio programa koji sadrzi instrukcije koje se upravo izvode, kao i dio podatkovnog prostora koji te instrukcije adresiraju

-> Program se dijeli na jedan osnovni dio koji je uvijek u radnom spremniku te na dijelove koji se izmjenjuju u smještaju

-> Ti zamijenjivi dijelovi programa se u preklopu (overlay) smještaju u radni spremnik

-> Kod ovakvog načina rasporešivanja spremnika postoji jedna opasnost, naime programi se moraju veoma pažljivo pripremati tj dijeliti na dogovarajuće dijelove te se treba u osnovni dio programa ugraditi mehanizme za pravodobno donošenje odluke o prebacivanju preklopnih dijelova

DINAMIČKO RASPOREĐIVANJE RADNOG SPREMNIKA

-> Kod skopovske pretvorbe logičke adrese u fizičku početna adresa pribraja se svakoj adresi koja se u procesoru generira kao i adresama koje dolaze iz PC i registara kazaljke stoga

-> Ovakvo proširenje procesora početak je spremničkog međusklopa – MMU

-> Logički adresni prostor se ne mijenja tijekom izvođenja programa, bez obzira na mjesto kuda će program pri višestrukoj zamjeni biti premješten

-> Prije početka njegova izvođenja u bazni registar se pohranjuje njegova aktualna početna adresa u fizičkom adresnom prostoru

-> Kod ovakvog sklopa nisu nam potrebne stalne particije te programi koji su pripremljeni za njih

-> Programi se slažu u spremnik jedan iza drugoga

-> Višeprogramski rad je lako ostvariv u okruženju kod kojeg u informacijskom bloku svakog procesa se zapisuje početna adresa PAI procesnog adresnog prostora

Page 15: OS Moja Skripta Josip Pozega

-> Kod ovakve uporabe radnog spremnika velika je opasnost da procesi jedan drugome zasmetaju jer programi se ne ponašaju uvijek disciplinirano tj ne adresiraju uvijek za njih predviđeni adresni prostor

-> Ovaj način raspoređivanja prevladava neke nedostatke radnog spremnika no fragmentacija je i dalje prisutna

-> Ona se smanjuje na način da se rupe održavaju što većima kako bi se u njih mogli smjestiti novi programi

-> Nedostatak dinamičkog i statičkog načina raspoređivanja radnog spremnika je ta da programi ne mogu biti veći od fizički raspoloživog spremničkog prostora

4. Kakve su to jezgrine funkcije i čemu služe? Napiši funkciju(e) za binarni semafor

-> Prije pokretanja nekog procesa OS osigurava cijelo okruženje za njegovo izvođenje tj procesu dodjeljuje potrebni adresni prostor koji je podijeljen na dretvene podprostore s jednim dijelom zajedničkim za sve dretve

-> Dretva se pokreće tako da se u programskom brojilu (PC) procesora pohrani adresa prve instrukcije dretve

-> Nakon pokretanja dretva će se obaviti do svoga kraja

-> Dretve međusobno surađuju i natječu se za sredstva na organizirani način, a to rade pozivajući odgovarajuće jezgrine

funkcije

-> Za jezgru možemo reći da se ona sastoji od skupine funkcija koje se pozivaju bilo sklopovski bilo programskim prekidima

-> Dretve koje žele komunicirati sa drugim dretvama „pozivaju“ odgovarajuće jezgrine funkcije koje za njih obavljaju zadani posao

-> Poziv jezgrine funkcije – ulazak u jezgru – zubiva se pod utjecajme sklopovskog ili programskog prekida

-> U jednoprocesorskom sustavu je time osigurano međusobno isključeno djelovanje jezgrinih funkcija

-> Pretpostavili smo da se pojavom prekida događa sljedeće:

-> Onemogućava se daljnje prekidanje

-> Programsko brojilo smješta se na sustavski stog

-> Prekidni podsustav premješta kontekst iz registara procesora

na sustavski stog

-> Prekidni podsustav poziva odgovarajuću jezgrinu funkciju

Page 16: OS Moja Skripta Josip Pozega

-> Jezgrina funkcija koja je prekidom pozvana morala bi najprije premjestiti kontekst sa sustavskog stoga u opisnik dretve Aktivna_D

-> To se ukratko opisuje instrukcijom :

Pohraniti kontekst u opisnik Aktivna_D

-> Treba naglasiti da se u praktičnoj izvedbi jezgre pohranjivanje konteksta može skratiti tako da se on smješta neposredno u opisnik aktivne dretve

-> U tu svrhu treba pri prihvatu prekida najprije kazaljku sustavskog stoga usmjeriti na dno opisnika koji se nalazi u listi Aktivna_D i nakon toga premjestiti kontekst iz procesora na taj privremeni stog

-> Izlazak iz dretve svodi se na aktiviranje jedne opd dretvi

-> To će, osim u nekim iznimnim slučajevima , biti dretva koja se nalazi na prvom mjestu u redu Pripravne_D

FUNKCIJA ISPITIVANJA BINARNOG SEMAFORA

j-fukcija Ispitati_Bsem(I) {

pohraniti kontekst u opisnik Aktivna_D;

ako je (Bsem[I].v==1) {

Bsem[I].v=0;

Obnoviti kontekst iz opisnika Aktivna_D;

Onemoguciti prekidanje;

Vratiti se iz prekidnog nacina;

}

inace {

Premjestiti opisnik iz reda Aktivna_D u red

Bsem[I];

Aktivirati prvu dretvu iz reda Pripravne_D;

}

}

Page 17: OS Moja Skripta Josip Pozega

FUNKCIJA POSTAVLJANJA BINARNOG SEMAFORA

-> Tu funkciju dretva koristi kada želi izaći iz kritičnog odsječka

j-funkcija Postaviti_Bsem(I) {

pohraniti kontekst u opisnik Aktivna_D;

premjestiti opisnik iz reda Aktivna_D u red Pripravne_D;

ako je((Bsem[I].v==0) ^ (red Bsem[I] neprazan)) {

premjestiti prvi opisnik iz reda Bsem[I] u red

Pripravne_D;

}

Inače {

Bsem[I].v=1;

}

Aktivirati prvu dretvu iz reda Pripravne_D;

}

21.02.2005.

1. Objasnite adresni prostor dretve. Na koji način dretve mogu komunicirati?

-> Proces koji raspolaže svim sredstvima potrebnim za svoje izvođenje između ostalog raspolaže svojim adresnim prostorom

-> Taj adresni prostor stoji na raspolaganju svim dretvama procesa

-> Svaka dretva zauzima svoj dio adresnog prostora i taj je prostor podijeljen na 3 dijela:

-> Dio u koji su smještene instrukcije dretve

-> Dio u kojem je smješten stog dretve

-> Dio u kojem su smješteni lokalni podaci dretve

-> U procesnom adresnom prostoru postoji i još jedan zajednički dio koji mogu dohvaćati sve dretve

-> U tom dijelu prostora možemo smjestiti zajedničke (globalne) varijable svih dretvi

-> Međusobna komunikacija dretvi ostvarena je kroz:

-> Međusobnu komunikaciju s pomoću neograničenog spremnika

-> Međusobna komunikacija s pomoću ograničenog spremnika

-> Međusobna komunikacija s pomoću reda poruka

-> U nastavku će biti opisani svi načini međusobne komunikacije dretvi

Page 18: OS Moja Skripta Josip Pozega

MEĐUSOBNA KOMUNIKACIJA S POMOĆU NEOGRANIČENOG SPREMNIKA

-> Međuspremnik možemo zamisliti kao poredak pretinaca

-> Pretince ćemo označiti kao MS[I] i pretpostaviti da broj pretinaca nije ograničen

-> Uvodimo i 2 indeksa (ili kazaljke) za dohvaćanje pretinaca i to:

-> Indeks UL koji pokazuje na prazni pretinac u koji proizvođač treba smjestiti sljedeću poruku

-> Indeks IZ koji pokazuje na pretinac iz kojeg potrošač upravo treba preuzeti poruku

-> Kao što vidimo ovdje imamo pojmove „proizvođač“ i „potrošač“ koje u nastavku opsiujemo:

-> proizvođač je ciklička dretva u kojoj se generiraju podaci, ti se podaci uobličuju u obliku poruke i šalju potrošaču

-> Potrošač je također ciklički proces koji čeka na poruke, prihvaća poruku i zatim podatke prispjele u poruci potroši

-> Na početku obje kazaljke (UL i IZ) pokazuju na početni pretinac MS[0], te je UL==0 i IZ==0

-> Proizvođač uvijek pronalazi mjesta u međuspremniku i može se ponašati ovako:

dok je(1) {

proizvesti poruku p;

MS[UL]=p;

UL=UL+1;

}

-> Potrošač može trošiti poruke tek nakon što neka poruka bude stavljena u spremnik

-> On (potrošač) može preuzeti poruku iz međuspremnika u svoj lokalni spremnik R tek kada ustanovi da je ispunjen uvjet UL>IZ

-> Potrošač bi trebao izgledati ovako:

dok je (1) {

pričekati da bude ispunjen uvjet UL>IZ;

R=MS[IZ];

IZ=IZ+1;

Potrošiti poruku R;

}

-> Svako stavljanje nove poruke u međuspremnik pomiče kazaljku UL za jedno mjesto u desno, a svako uzimanje poruke iz međuspremnika pomiče kazaljku IZ za jedno mjesto u desno

Page 19: OS Moja Skripta Josip Pozega

-> Razlika UL-UZ jednaka je broju poruka koje se nalaze u međuspremniku (Broj_poruka = UL – UZ)

-> Pokazuje se da bi za brojanje poruka u spremniku mogao poslužiti brojački semafor

-> Zato uvodimo opći semafor Osem[1] s početnom vrijednošču Osem[1].v==0

-> Proizvođač mora postavljati taj semafor i mijenja se:

dok je (1) {

proizvesti poruku p;

MS[UL]=p;

UL=UL+1;

Postaviti_Osem(1);

}

-> Potrošač ispituje semafor i može se napisati u ovom obliku:

dok je (1) {

Ispitati_Osem(1);

R=MS[IZ];

IZ=IZ+1;

Potrošiti poruku p;

}

MEĐUDRETVENA KOMUNIKACIJA S POMOĆU OGRANIČENOG SPREMNIKA

Ostvarenje međusobne komunikacije dretvi s pomoću ograničenog spremnika bilo bi vrlo nepraktično, jer bi s vremenom kazaljke UL i IZ poprimale sve veće vrijednosti i za međuspremnik bi trebalo rezervirati veliki dio spremničkog adresnog prostora

-> Ako smo sigurni da se u radu nikada neće naći više od N poruka, onda možemo međuspremnik ograničiti na N pretinaca i pomicanje kazaljke izvesti po modulu N tj napraviti ciklički spremnik

-> Pomicanje kazaljki zapisujemo kao:

UL=(UL+1)mod N;

IZ=(IZ+1)mod N;

-> Međutim, ako se ne može sa sigurnošču utvrditi da se međuspremnik neće prepuniti onda moramo osigurati da proizvođač ne stavlja poruke u puni spremnik (dakle, proizvođač mora na neki način znati kada je spremnik pun)

-> Stoga ćemo uvesti noviu semafor Osem[2] koji će brojati prazne pretince i njegova početna vrijednost je Osem[2].v==N

Page 20: OS Moja Skripta Josip Pozega

-> Proizvođač treba izgledati ovako:

dok je (1) {

proizvesti poruku p;

Ispitati_Osem(2);

MS[UL]=p;

UL=(UL+1)mod N;

Postaviti_Osem(1);

}

-> Potrošač:

dok je (1) {

Ispitati_Osem(1);

R=MS[IZ];

IZ=(IZ+1)mod N;

Postaviti_Osem(2);

Potrositi poruku R;

}

-> Ako, primjerice, jednom potrošaču poruke šalje više proizvođača onda svi oni mogu dohvaćati kazaljku UL

-> Za sve proizvođače pristup do kazaljke UL postaje kritični odsječak i treba ga zaštititi dodatnim binarnim semaforom

MEĐUDRETVENA KOMUNIKACIJA S POMOĆU REDA PORUKA

-> Zamislimo da u nekom višedretvenom sustavu imamo više parova proizvođača i potrošača

-> Za svaki taj par trebalo bi rezervirati međuspremnike s dovoljnim brojem pretinaca kako bi smanjili mogućnost blokiranja proizvođača u razdoblju kada on intenzivno proizvodi poruke

-> Međutim, jako je mala vjerojatnost da če u istom vremenskom razdoblju baš svi proizvođači jednako raditi

-> Zbog toga će u svako doba u svim tim redovima biti mnogo praznih pretinaca

-> To nas navodi na pomisao da redove organiziramo dinamički

-> Sve prazne pretince organizirati ćemo u jedno zajedničko skladište pretinaca

-> U tom skladištu može biti mnogo manje pretinaca od zbroja svih pretinaca u statički pridijeljenim međuspremnicima

-> Skladište pretinaca neka bude oragnizirano kao stog sa zaglavljem SKLADIŠTE i jednim općim semaforom Osem[S] u koji početno treba zapisati broj pretinaca u skladištu (recimo N)

Page 21: OS Moja Skripta Josip Pozega

-> za svaki par proizvođač-potrošač treba predvidjeti zaglavlje Red_Poruka[I] u koji bi poruke trebalo smjestiti redom prispjeća

-> Svakom redu je pridružen opći semafor Osem[I] koji će nam služiti za brojanje poruka u redu

-> U početnom stanju red je prazan i stoga je početna vrijednost Osem[I].v==0

-> U ovom rješenju pristup do reda poruka i do skladišta pretinaca, čak i za samo jedan par proizvođač-potrošač moramo obaviti kao kritični odsječak

2. Objanite Poissonovu i eksponencijalnu razdiobu te napišite pripadajuće formule te koje vrste poslova najčešće opisuju.

-> Ponovljeno 09.09.2005.

3. Objasnite indeksnu datoteku i nacrtajte skicu.

-> Indeksna datoteka je jedna od 3 osnovne vrste datoteka, osim takve vrste datoteka postoji još i:

-> Binarna datoteka

-> Sekvencijalna datoteka (nestrukturirana datoteka)

-> U nastavku će biti opisana svaka vrsta datoteka posebno

BINARNA DATOTEKA

-> Je najjednostavniji oblik datoteke, a koristi se za pohranjivanje cjelovitih strojnih programa pripravnih za izvođenje

-> Promatra se kao cjelina i tako se prenosi sa medija na medij

SEKVENCIJALNA DATOTEKA(NESTRUKTURIRANA DATOTEKA)

-> Sastoji se od niza znakova i nije strukturirana

-> Datotečni sustav omogućuje pristup do pojedinog bajta s pomoću datotečne kazaljke (File Pointer),a pri otvaranju datoteke kazaljka se postavlja na njen početak

-> Čitanjem svakog bajta i pisanjem u bajt, kazaljka napreduje za jedno mjesto

-> U nekim sučeljima kazaljku je moguće postaviti na bilo koje mjesto u datoteci

Page 22: OS Moja Skripta Josip Pozega

-> Posebnom se oznakom obilježava kraj datoteke (EOF _ End Of File)

->Velika je prednost nestrukturiranih datoteka što one omogućuju jednostavnu razmjenu sadržaja između različitih programa i to čak i onih koji se izvode u potpuno različitim programskim okruženjima te uz potporu različitih OS-ova

INDEKSNA DATOTEKA

-> Današnji OS-ovi neposredno ne podržavaju indeksne datoteke, već se takve strukture ostvaruju kod baza podataka

-> Programski sustavi za podržavanje baza podataka omogućuju pohranjivanje i dohvaćanje zapisa usklađeno sa vrijednostima pojedinih polja zapisa

-> Indeksna se struktura može organizirati unutar korisničkog programa uporabom tablica za pohranjivanje parametara strukture te izgradnjom funkcija za pristupanje do pojedinih elemenata strukture uporabom postojećih API funkcija za pristupanje nestrukturiranoj datoteci

-> Zapisi mogu u datoteci biti razmješteni proizvoljnim redoslijedom a redoslijed pristupa određen je razmještajem kazaljki u poredak

-> Takva organizacija naziva se indeksno-sekvencijalna

-> Zapisi se mogu dohvaćati po svojstvima ako se za svako svojstvo izgradi poredak kazaljki onih zapisa koje to svojstvo zadovoljavaju

-> Skica indeksne datoteke:

R1

RN-1

R0

R2

R2

Indeksi

0

1

2

N-1

Page 23: OS Moja Skripta Josip Pozega

4. Napišite i objasnite Dekkerov postupak

-> Dekkerov postupak je jedan od načina ostvarivanja međusobnog isključivanja dviju dretvi

-> Neki složeni programski zadatak može se sastojati od više podzadataka

-> Za svaki se par zadataka mora utvrditi njihova zavisnost odnosno njihova nezavisnost

-> Ako su zadaci zavisni, mora se odrediti redoslijed njihova izvođenja

-> Napomenimo to da si u računalnim sustavima mnogi zadaci ciklički

-> Kako omogućiti pravilno izvođenje dretvi?

-> Jedan od načina je Dekkerov postupak

-> Varijabla PRAVO ispituje se samo onda kada obje dretve istovremeno podignu svoje zastavice

-> Ako neka dretva želi ući u kritični odsječak kada je druga izvan njega, onda se varijabla PRAVO uopće ne ispituje

-> Time se izbjegava nedostatak da se dretve mogu izvoditi samo naizmjenice

-> Bez obzira na to da se na izlasku iz kritičnog odsječka varijabla PRAVO svaki puta obnavljatako da se pravo ulaska u kritični odsječak prepušta suprostavljenoj dretvi, ako ona želi ući u svoj kritični odsječak

dok je (1) {

ZASTAVICA[I]=1;

Čitati varijablu ZASTAVICA[J];

dok je (ZASTAVICA[J] != 0) {

ako je (PRAVO != I) {

ZASTAVICA[I]=0;

dok je (PRAVO !=I) {

pročitati varijablu PRAVO;

}

ZASTAVICA[I]=1;

}

Čitati varijablu ZASTAVICA[J];

}

Kritični odsječak;

Pravo=[J];

ZASTAVICA[I]=0;

Nekritični odsječak;

}

Page 24: OS Moja Skripta Josip Pozega

28.04.2006.

1. Opišite dva osnovna načina dodjeljivanja procesora dretvama. Koji problemi nastaju prilikom njihove primjene?

-> Dva osnovna načina dodjeljivanja procesora dretvama su:

-> Dodjeljivanje po redu prispjeća

-> Kružno dodjeljivanje procesora

DODJELJIVANJE PO REDU PRISPJEĆA

-> Sve dretve koje su pripravne za izvođenje smještamo u red pripravnih dretvi

-> Pripravne dretve se stavljaju u redove po redu prispjeća ili po pripadnim im prioritetima

-> Pretpostavimo da se u sustav puštaju dvije skupine poslova:

-> Dulji poslovi sa parametrima αd i βd te

-> Kratki poslovi s parametrima αk i βk

-> Ako pretpostavimo da su dulji poslovi mnogo dulji od kratkih tada je βd mnogo veće od βk

-> Ako te dvije skupine poslova pomiješamo i pustimo u zajednički red dobiti ćemo mješavinu poslova koji se mogu kontrolirati zajedničkim parametrima (α I β)

-> Mješavina poslova imati će dolaske raspodijeljene po Poissonovoj raspodjeli s prosječnim brojem dolazaka u jedinici vremena jednakim α=αk+αd

Page 25: OS Moja Skripta Josip Pozega

-> Isto tako, mješavina poslova imati će eksponencijalnu razdiobu trajanja poslova s parametrom β za koji vrijedi:

dk

dk

d

d

k

k

dk

δδδβ

α

δδαβ

α

β

α

αβ

ααα

+==

+=

+=

+=

)(*1

*11

-> Djelovanje umetanja dugih poslova u skupino kratkih – prosječno vrijeme za njih se povećalo skoro 10 puta

-> Međutim kada promatramo zadržavanje kratkih pojedinačnih poslova u sustavu, taj je učinak mnogo drastičniji

-> Tako će, primjerice, kratki posao koji dođe u sustav neposredno iza nekog dugog posla biti odrađen tek nakon tog dugog posla i njegovo se vrijeme zadržavanja može produljiti i do 1000 puta

KRUŽNO DODJELJIVANJE PROCESORA

-> U stvarnim se uvjetima u računalu može istodobno naći više dretvi različita trajanja za koje mi unaprijed i ne moramo znati koliko će trajati njihovo izvođenje

-> Prethodno razmatranje, dodjeljivanje po redu prispjeća, nam ukazuje da će sve dretve koje postaju pripravne nakon neke dretve duga trajanja biti drastično odgođene u svom izvođenju

-> Međutim, mi znamo da u ovom slučaju, kada su poslovi koje promatramo dretve i poslužitelj je procesor, ne moramo dozvoliti dretvama izvođenje do njihova završetka

-> Svaka promjena stanja dretvi i svaki prekid tako zahtijevaju „oduzimanje“ procesora dretvi koja se izvodi kako bi se obavili kućanski poslovi jezgre

-> Tako imamo priliku organizirati redove pripravnih dretvi i dodjeljivanje procesora i po nekom drugom redu, a ne samo po redu prispjeća

-> Dretve možemo razvrstati po redu prvenstva, ako su dretvama pridruženi odgovarajući prioriteti

-> U razmatranju kratkih i dugih poslova mogli bi kratke poslove smatrati hitnim dretvama, a duge poslove normalnim dretvama

-> Normalne dretve se prekidaju kada neka hitna dretva postane pripravna

Page 26: OS Moja Skripta Josip Pozega

-> Ovakva disciplina posluživanja može postati „nepravedna“ prema dugim poslovima jer sve kratke dretve odmah čim postanu pripravne prekidaju dugi posao

-> Duga dretva će se nastaviti izvoditi tek kada nema više niti jedne kratke pripravne dretve

-> Prema tome sve nove kratke dretve odgađaju dugu dretvu u svome izvođenju

-> Jedan od vrlo prikladnih načina dodjeljivanja procesora dretvama je kružno posluživanje dretvi (Round Robin)

-> Procesor se dodjeljuje dretvi samo za određeni kvant vremena Tq i tada dretva:

-> Napušta sustav ako je unutar tog kvanta vremena obavljena

-> Vraća se na kraj reda pripravnih dretvi

-> U red pripravnih dretvi ulaze nove dretve i dretve vraćene na daljnju obradu

-> Time će se kratke dretve malo usporiti u svom izvođenju, ali stoga duga dretva ima mogućnost dobiti procesor i prije nego li sve kratke dretve budu obavljene

-> U OS-vima se kružno raspoređivanje dretvi upotrebljava za raspoređivanje većine dretvi

-> Iznimku čine dretve koje obavljaju vremenski kritične funkcije, koje moraju biti obavljene u nekom zadanom vremenskom intervalu i takve se dretve obrađuju s najvišim prioritetom i to bez prekidanja

2. Koje funkcije (uloge) ima lokalni a koje globalni logički sat kod međusobnog isključivanja procesa u raspodjeljenim sustavima?

LOKALNI LOGIČKI SAT

-> Lokalni logički satovi Ci se ponašaju kao brojila, jer on povećava svoju vrijednost nakon svakog karakterističpnog događaja unutar procesa Pi

-> Stoga se unutar jednog procesa može jednoznačno utvrditi slijed događaja

Page 27: OS Moja Skripta Josip Pozega

-> Ako događaju a pripada vrijednost logičkog sata Ci(a) a događaju b vrijednost logičkog sata Ci(b), onda ako je Ci(a)<Ci(b), onda se događaj a zbio prije događaja b što možemo pisati kao „a->b“ a relaciju „->“ nazivamo relacijom „dogodilo se prije“

-> Ova relacija se može jednoznačno odrediti za dva događaja unutar jednoga procesa ili za događaj slanja poruke od strane jednog procesa, i događaja primitka poruke od strane drugog procesa

-> Također, relacija „->“ je tranzitivna pa vrijedi:

(a->b) i (b->c) što povlači da je (a->c)

GLOBALNI LOGIČKI SAT

->Globalni logički sat je sat uspostavljen na razini sustava koji se zasniva na određenim pravilima kao što su:

-> Proces Pi povećava vrijednost svoga logičkog sata Ci između svaka svoja dva događaja

-> Kad proces Pi šalje poruku on uz nju pridodaje i vremensku oznaku Tm=Ci

-> Kad proces Pj primi poruku on postavi svoj logički sat na vrijednost veću od svoje prethodne vrijednosti i veću od prikačene vremenske oznake Tm

-> Pri ovakvom ostvarenju nije isključena mogučnost da dva lokalna sata Ci i Cj imaju jednake vrijednosti, i da se njihove poruke koje si međusobno šalju na putu presretnu noseći jednake vrijednosti vremenskih oznaka

-> U tom će se slučaju satovi Ci i Cj postaviti u isto vrijeme a redoslije može odlučiti vrijednost indeksa koji su unaprijed dodijeljeni čvorovima

-> Relacija a->b (a prethodi b) za događaj a iz procesa Pi i događaj b iz procesa Pj je zadovoljen kada je:

(Ci(a)<Cj(b)) ili (Ci(a)=Cj(b)) ^ (i < j)

3. Objasnite podjelu radnog spremnika na stalne particije te nacrtajte shemu takve podjele. Koji su nedostaci takvog gospodarenja spremničkim prosotrom te kako se ono kvalitetnije rješava?

-> U radnom spremniku je poželjno istodobno držati više programa

-> Oni moraju biti smješteni u različite dijelove spremnika s različitim početnim adresama

-> Jedan od zapaženih načina dodjeljivanja spremnika zasniva se na podjeli spremnika na fiksne particije

Page 28: OS Moja Skripta Josip Pozega

-> Particije mogu biti jednake veličine ili različitih veličina, pa su se apsolutni oblici manjih programa mogli pripremiti za manje particije a veći programi su se mogli smjestiti u veće particije

-> Programi pripremljeni za jednu particiju nisu se više jednostavno mogli preseliti u drugu particiju jer to seljenje zahtijeva generiranje apsolutnog oblika programa

Sustavski adresni prostor

Particija 1

Particija 2

Particija 3

Particija 4

Particija 5

-> Uz pojedinu particiju simbolički su prikazani programi koji su pripremljeni za izvođenje u toj particiji

-> Oni se nalaze na disku i mogu se po ukazanoj potrebi napuniti u radni spremnik

-> Ako ih se privremeno izbaci iz radnog spremnika, oni će se moći kasnije vratiti samo u istu particiju

-> Od tuda i dolazi naziv – STATIČKO RASPOREĐIVANJE – programi se tokom svog boravka u sustavu nalaze uvijek u istom dijelu radnog spremnika

-> Uočimo da tijekom rada spremnik neće biti potpuno iskorišten i to zbog 2 razloga:

-> Programi neće biti potpuno jednake veličine kao i particije te će dijelovi particija ostati neiskorišteni i taj je način neiskorištenja dobio naziv UNUTARNJA FRAGMENTACIJA

-> Tijekom rada se može dogoditi da svi procesi čiji su programi smješteni u istu particiju bivaju blokirani pa ta particija radnog spremnika ostaje prazna. Pri tome može postojati više procesa čiji programi čekaju na dodjelu radnog spremnika, ali oni ne mogu biti napunjeni u radni spremnik jer nisu pripremljeni za tu particiju.

1 MB

1 MB

512 kB

256 kB

256 kB

Page 29: OS Moja Skripta Josip Pozega

Taj je način neiskorištenja spremnika dobio naziv VANJSKA FRAGMENTACIJA

-> Naglasimo i dodatno ograničenje da adresni prostor programa ne može biti veći od najveće particije radnog spremnika

4. Objasnite ostvarenje jezgre u čvrsto povezanom višeprocesorskom sustavu. Napišite algoritam za binarni semafor.

-> Struktura podataka jezgre se bez obzira na mogućnosti uporabe procesora i lokalnih spremnika mora nalaziti u dijeljenom spremniku jer mora biti dohvatljiva svim dretvama bez obzira u kojim se procesorima one izvode i jezgrine funkcije do te strukture moraju pristupati međusobno isključeno

-> Uz standardnu strukturu podataka jezgre uvodi se varijabla OGRADA_JEZGRE koja služi kao zastavica koja na svom početku ispituje svaku funkciju, pošto zabrana prekidanja pojedinog procesora nije dovoljna za osiguranje međusobnog isključivanja

-> Kada neka dretva iz procesora N poziva jezgru, zabrana prekidanja se odnosi samo na taj procesor, stoga se svaki daljnji zahtjev mora zaštititi ispitivanjem zastavice OGRADA_JEZGRE

-> Za korištenje binarnog semafora u tom okruženju koriste se funkcije Ispitati_Bsem(I,L) i Postaviti_Bsem(I,M)

j-funkcija Ispitati_Bsem(I,L) {

pohraniti kontekst u opisinik Aktivna_D[L];

TAS OGRADA_JEZGRE;

dok je (OGRADA_JEZGRE != 0) {

TAS OGRADA_JEZGRE;

}

ako je (Bsem[I].v==1) {

Bsem[I].v=0;

}

inače {

premjestiti opisnik iz reda Aktivna_D[L] u red Bsem[I];

premjestiti prvi opisnik iz reda Pripravne_D[L] u red

Aktivna_D[L];

}

OGRADA_JEZGRE=0;

Obnoviti kontekst iz opisnika Aktivna_D[L] u procesoru L;

Omogućiti prekidanje u procesoru L;

Vratiti se iz prekidnog načina rada u procesoru L;

}

Page 30: OS Moja Skripta Josip Pozega

j-funkcija Postaviti_Bsem(I,M) {

pohraniti kontekst u opisnik Aktivna_D[M];

TAS OGRADA_JEZGRE;

dok je (OGRADA_JEZGRE !=0) {

TAS OGRADA_JEZGRE;

}

Premjestiti opisnik iz reda Aktivna_D u red Bsem[I];

ako je ((Bsem[I].v==0) && (red Bsem[I] neprazan)) {

premjestiti prvi opisnik iz reda Bsem[I] u red

Pripravne_D[L];

}

inače {

Bsem[I].v=1;

}

Premjestiti prvi opisnik iz reda Pripravne_D[M] u red

Aktivna_D[M];

OGRADA_JEZGRE=0;

Obnoviti kontekst iz opisnika Aktivna_D[M] u procesoru M;

Omogućiti prekidanje procesoru M;

Vratiti se iz prekidnog načina rada u procesoru M;

}

10.07.2006.

1. Nacrtaj i pojasni na koji se način ostvaruje prijenos podataka neposrednim pristupom spremniku.

-> Mnoge su aktivnosti računala povezane s prenošenjem većeg broja znakova – blokova znakova:

-> Razmjena sadržaja između radnog spremnika i diska

-> Prenošenje sadržaja iz radnog spremnika u video spremnik

pristupnog sklopa monitora

-> Prenošenje sadržaja prema komunikacijskim pristupnim

sklopovima

-> Prenošenje pojedinačnih znakova bloka u prekidnom načinu rada izaziva mnogo kućanskog posla

-> Procesor je prekidan pri prijenosu svakog pojedinačnog znaka, a nakon svakog prekida prenosi se po jedan znak

-> Pri tome, procesor obavlja vrlo jednostavan posao koji se sastoji od izvođenja samo nekoliko instrukcija

-> Taj bi se posao mogao prepustiti pristupnom sklopu

Page 31: OS Moja Skripta Josip Pozega

-> Jednostavni model pristupnog sklopa koji sadrži podatkovni registar PR i registar stanja RS, trebalo bi dopuniti sa još dva registra:

-> Adresnim registrom AR u kojem će se nalaziti adresa u spremniku na koju (ili s koje) će se obaviti prijenos pojedinačnog znaka

-> Brojilom BR u kojem se nalazi broj znakova koje još treba prenijeti

-> Ta 2 dodatna registra trebaju imati svoje adrese tako da ih se može programski dohvatiti

-> Operaciju prenošenja bloka znakova programski se započinje tako da procesor zapiše:

-> u adresni registar AR početnu adresu bloka u spremniku i

-> U registar BR broj znakova koji se želi prenijeti

-> Nakon toga se upisom odgovarajućeg sadržaja u registar stanja RS pokreće prijenos bloka

-> Pristupni sklop mora dobiti stanovita prava nad sabirnicom

-> Pristupni sklop postavlja procesoru signal traženja sabirnice – bus request

-> prcesor na signal traženja sabirnice djeluje tako da odustaje od jednog sabirničkog ciklusa time što izolira svoje vodove od sabirnice i dojavi to pristupnom sklopu signalom dodjele sabirnice – bus grant

-> signal prekida pristupni sklop će generirati tek nakon što se prenese cijeli blok

Page 32: OS Moja Skripta Josip Pozega

-> Obrada tog prekida sastoji se od:

-> Ponovne inicijalizacije registara AR i BR ili

-> Obustavljanja daljenjeg prijenosa

-> Odvijanje prijenosa cijelog bloka između 2 prekida obavlja se bez sudjelovanja procesora i od tuda i dolazi naziv ovakvog prijenosa za koji se koristi akronim DMA (Direct Memory Access)

2. Nabroji i opiši vremenska svojstva diska koja utječu na trajanje postavljanja glave diska.

-> Trajanje postavljanja glave diska može se podijeliti na dvije komponente:

-> Trajanje traženja staze

-> Rotacijsko kašnjenje

Page 33: OS Moja Skripta Josip Pozega

TRAJANJE TRAŽENJA

-> ovisi o razmaku između početnog položaja glave i staze na koju se glava mora postaviti

-> To trajanje ima 4 komponente:

-> Trajanje ubrzavanja ručice glave

-> Kretanje konstantnom brzinom

-> Trajanje usporavanja

-> Trajanje finog pozicioniranja

-> Ako se glava pomiće samo za nekoliko staza, trajanje se uglavnom svodi na fino pozicioniranje

-> Kod kratkih pomaka ručica se u prvom dijelu ubrzava i mora se početi usporavati prije nego li dosegne maksimalnu brzinu

-> Za veće se pomake nakon početnog ubrzanja dolazi u rezdoblje konstantne brzine, nakon kojeg slijedi usporavanje i konačno fino pozicioniranje

ROTACIJSKO KAŠNJENJE

-> Nastaje zbog toga što se nakon postavljanja glave na odabranu stazu mora prije početka prijenosa pričekati da se ispod glave za čitanje pojavi traženi sektor

-> U najlošijem slučaju može se dogoditi da je adresirani sektor upravo prolazio ispod glave kad je ona prispjela na stazu i tada se mora čekati puni okretaj

-> Najpovoljniji slučaj je onaj kada traženi sektor upravo nailazi ispod glave u trenutku njezina postavljanja na stazu i u tom slučaju je rotacijsko kašnjenje jednako nuli

4. Objasni Dekkerov postupak međusobnog isključivanja dretvi, objasni koje probleme rješava te napiši algoritam

-> Pošto je pitanje ponovljeno sa roka 21.02.2005. i odgovoreno je ranije u ovoj skripti, pitanje ću malo preoblikovati

Page 34: OS Moja Skripta Josip Pozega

4. Napišite i objasnite Petersonov algoritam te ga usporedite sa Dekkerovim i Lamportovim.

dok je (1) {

ZASTAVICA[I] = 1;

NE_PRAVO = I;

Pročitati varijablu ZASTAVICA[J];

Pročitati varijablu NE_PRAVO;

dok je ((NE_PRAVO == I) && (ZASTAVICA[J] == 1)) {

pročitati varijablu ZASTAVICA[J];

}

Kritični odsječak

ZASTAVICA[I] = 0;

Nekritični odsječak;

}

-> Petersonov postupak je u principu pojednostavljenje Dekkerova algoritma

-> On se sastoji u tome da svaka dretva koja želi ući u kritični odsječak postavlja svoju zastavicu i nakon toga zapisuje u varijablu NE_PRAVO svoj indeks

-> Varijabla NE_PRAVO ima vrijednost indeksa one dretve čiji je procesor posljednji do nje pristupio

-> Dretva koja želi ući u kritični odsječak postavlja svoju zastavicu i nakon toga zapisuje indeks u varijablu NE_PRAVO te nakon toga, ako u varijabli NE_PRAVO piše njezin indeks, ona čeka u petlji čekalici tako dugo dok je protivnička zastavica podignuta

-> Kod Dekkerovog posatupka varijabla PRAVO se ispituje samo onda kada obje dretve istovremeno podignu svoje zastavice

-> ako neka dretva želi ući u kritični odsječak kada je druga izvan njega tada se varijabla PRAVO uopće ne ispituje

-> Na izlasku iz kritičnog odsječka varijabla PRAVO se svaki puta obnavlja tako da se pravo ulaska u kritični odsječak prepušta suprostavljenoj dretvi, ako ona želi ući u kritični odsječak

-> Lamportov protokol koristi se kod međusobnog isključivanja večeg broja dretvi

-> Naziva se još i Lamportov pekarski algoritam jer se zamisao tog postupka može objasniti na primjeru pekarnice u kojoj polsužuje jedan prodavač

-> Po ulasku u trgovinu kupac dobiva svoj broj

-> Na redu je kupac sa najmanjim brojem koji još nije poslužen

-> Kad se to primjeni na procese, dretve prije ulaska u kritični odsječak zatraže broj

Page 35: OS Moja Skripta Josip Pozega

-> Zbog atomarnosti čitanja i pisanja mogu dobiti jednake brojeve

-> Ako dvije ili više dretvi imaju jednake brojeve prednost ima ona dretva s manjim indeksom

25.09.2006.

1. Opiši instrukcijski skup procesora i dijelove instrukcija

-> Sama izvedba aritmetičko-logičke jedinice (ALU-a) i upravljačke jedinice određuje instrukcijski skup procesora

-> Instrukcije procesora se mogu podijeliti na:

-> Instrukcije za premještanje sadržaja

-> Instrukcije za obavljanje operacija

-> Instrukcije za programske skokove

-> Instrukcije za posebna upravljačka djelovanja

-> Sve instrukcije se sastoje od dijela za smještaj operacijskog koda i adresnog dijela instrukcije

-> Instrukcije skokova se mogu podijeliti na:

-> Instrukcije za bezuvjetne skokove

-> Instrukcije za uvjetovane skokove

-> Izvođenje instrukcije za bezuvjetni skok – izazivaju skok uprogramu koja je određena pomaknućem adresnog dijela instrukcije bez ispitivanja bilo kojeg uvjeta

-> Izvođenje instrukcije za uvjetovani skok – da bi se uopće počela računati adresa instrukcije na koju treba skočiti, mora biti ispunjen neki zadani uvjet

Page 36: OS Moja Skripta Josip Pozega

2. Nacrtajte i objasnite shemu za ostvarivanje sklopovske potpore višestrukog prekidanja sa prioritetima.

->Prekidni vodiči od pojedinih pristupnih sklopova ne dovode se neposredno na procesor već na ulaze posebnog sklopa za prihvat prekida

-> Taj sklop prema procesoru propušta samo onaj prekidni signal koji ima veći prioritet od dretve koju procesor upravo izvodi

-> Do procesora dolazi, prema tome, samo jedan prekidni signal i to onda kada je to uistinu potrebno

-> Sklop kao što vidimo sadrži 2 registra:

-> Registar kopija zastavica K_Z u čije se bitove zapisuje jedinica kada pripadni pristupni sklop zatraži prekid

-> Registar tekućeg prioriteta T_P u koji se zapisuje prioritet dretve koju procesor upravo izvodi i to sa jedinicom u odgovrajućem bitu registra

-> Sadržaji tih dvaju registara dovode se na sklop za prepoznavanje prioriteta

-> Taj će sklop propustiti prekid prema procesoru samo onda kad je prioritet zahtjeva veći od onog zabilježenog u registru T_P

-> Istodobno s propuštanjem prekidnog signala prema procesoru mora se obrisati bit u registru K_Z te generirati pripadnu vrijednost kazaljke usmjerene na tablicu adresa

Page 37: OS Moja Skripta Josip Pozega

-> Tablica sadrži adrese (ili pomaknuća za određivanje adresa) na kojima započinje odsječak programa za obradu prekida koji je propušten prema procesoru

3. Objasni mogućnosti ostvarenja međudretvene komunikacije na primjeru potrošača i proizvođača

-> U višedretvenom sustavu dretve mogu surađivati na zajedničkom poslu tako da razmjenjuju podatke preko zajedničkih lokacija u dijeljenom spremniku

-> PROIZVOĐAČ – je ciklička dretva u kojoj se generiraju podaci, ti se podaci uobličuju u poruke i šalju potrošaču

-> POTROŠAČ – je također ciklički proces koji čeka na poruke, prihvaća poruke i zatim podatke prispjele u poruci potroši

PROIZVOĐAČ POTROŠAČ

dok je (1) { dok je (1) {

proizvesti poruku; čekati na poruku;

poslati poruku; prihvatiti poruku;

} potrošiti poruku;

}

-> U općem slučaju treba pretpostaviti da proizvođač i potrošač obavljaju poslove proizvoljnom brzinom

-> To znači da postoje vremenska razdoblja kada potrošač ne može potrošiti sve poruke koje proizvođač proizvede i onda se zbog toga nagomilavaju

-> Nagomilane poruke treba privremeno pohraniti u međuspremnik kako bi ih potrošač mogao potrošiti

-> Međuspremnik možemo organizirati u odresnom prostoru procesa kojem pripadaju dretve

4. Usporedite učinkovitost osnovnih načina dojeljivanja procesora dretvama.

-> Postoje 2 načina dodjeljivanja procesora dretvama:

-> Dodjeljivanje po redu prispjeća

-> Kružno dodjeljivanje procesora

Page 38: OS Moja Skripta Josip Pozega

DODJELJIVANJE PO REDU PRISPJEĆA

-> Djelovanje umetanja dugih poslova u skupinu kratkih – prosječno vrijeme zadržavanja u sustavu se za njih povećalo skoro 10 puta

-> Međutim, kada promatramo zadržavanje pojedinačnih kratkih poslova u sustavu taj je učinak mnogo drastičniji

-> Tako će, primjerice, kratki posao koji uđe u sustav neposredno iza nekog dugog posla biti obrađen tek nakon tog dugog posla i njegovo se vrijeme zadržavanja može produžiti i do 1000 puta

KRUŽNO DODJELJIVANJE PROCESORA

-> U stvarnim se uvjetima u računalu može istodobno naći više dretvi različita trajanja za koje mi unaprijed i ne moramo znati koliko će trajati njihovo izvođenje

-> Dodjeljivanje po redu prispjeća nam ukazuje da će sve dretve koje postanu pripravne nakon neke dretve duga trajanja biti drastično odgođene u svome izvođenju

-> Međutim kada su poslovi koje promatramo dretve i kada je poslužitelj procesor, ne moramo dozvoliti dretvama izvođenje do njihova završetka

-> U OS-vima se kružno raspoređivanje upotrebljava za raspoređivanje većine dretvi

-> Iznimku čine dretve koje obavljaju vremenski kritične funkcije koje moraju biti obavljene u nekom zadanom vremenskom intervalu i takve se dretve obrađuju sa najvišim prioritetom i to bez prekidanja

5. Što je sigurnosna zaštitna stijena, koju ima ulogu... nabrojite i opišite vrste izvedbi.

-> Sigurnosna zaštitna stijena je računalo ili neka nakupina komunikacijskih naprava koje fizički razdvajaju dvije mreže

-> Uobičajno, sigurnosna zaštitna stijena ograničava pristup nekoj privatnoj lokalnoj mreži iz javne mreže

Page 39: OS Moja Skripta Josip Pozega

-> Sigurnosna zaštitna stijena omogućuje zaštitu programa u lokalnoj mreži, ali i nadzor zaposlenika kompanije ili institucije i ograničavanje njihovog pristupa do nekih mjesta izvan mreže, SZS, dakle, može obavljati svoju funkciju i dvostrano

-> Jedna od mogućnosti korištenja zaštitnih stijena je povezivanje fizički udaljenih mreža sigurnim informacijskim kanalom

-> Sigurnosne stijene lokalnih mreža moraju obavljati kriptiranje i dekriptiranje svih poruka koje se prenose javnom mrežom (koja je nesigurni komunikacijski kanal)

-> Zaštitne stijene koje zahtijevaju strogu autentifikaciju i autorizaciju pristupa vrlo su djelotvorne

-> Prema načinu djelovanja možemo ih podijeliti u 3 skupine:

-> Stijene koje filtriraju komunikacijske pakete (packet filter)

-> Stijene koje djeluju kao prividni poslužitelji (proxy server)

-> Stijene koje djeluju kao stvarni poslužitelji (full server)

-> Filterske sigurnosne stijene djeluju na nižim razinama komunikacijskih protokola i obavljaju svoju funkciju na temelju podataka koje pronalaze u komunikacijskim paketima

-> Na temelju nekih podataka kao što su, primjerice, adresa poslužitelja, adresa primatelja i smjer kretanja paketa, stijena može propuštati neke pakete a neke ne propuštati odnosno blokirati

-> Takve stijene nazivaju se blokirajućim stijenama (blocking firewall)

-> Sigurnosne stijene koje djeluju kao prividni poslužitelji djeluju tako da prihvaćaju zahtjeve za obavljanje nekih usluga, obave sigurnosnu provjeru tih zahtjeva i zatim prosljeđuju zahtjev za obavljanje te usluge stvarnom zaštičenom poslužitelju

Page 40: OS Moja Skripta Josip Pozega

-> Sigurnosne stijene koje djeluju kao stvarni poslužitelj djeluju tako da na kontrolirani način obavljaju usluge vanjskim klijentima i ne dozvoljavaju neposredni kontakt vanjskih klijenata i unutrašnjih poslužitelja

-> Dobro konfigurirana zaštitna stijena može poslužiti kao zaštita od uljeza iz vanjske mreže u lokalnu mrežu

-> SZS-ne se ne mogu smatrati apsolutnom zaštitom jer one stvaraju zaštitu samo na granicama mreža i nemaju nikakvog utjecaja na unutarnju sigurnost.

05.10.2005.

1. Što je to globalni logički sat te koja je njegova uloga?

-> Ponovljeno pitanje na roku 28.04.2006.

2. Napiši razlike između izvedbenih zalihosnih organizacija diskova RAID1, RAID2, RAID3, RAID4 te RAID5.

RAID1

-> je tzv zrcaljena organizacija kod koje svaki podatkovni disk ima svoju kopiju.

-> Prosječno vrijeme do pojave gubitka podataka je MTTFs= 1/(N(N-1) (MTTF2 / MTTR)).

-> Svako se pisanje mora obaviti dva puta a čitanje može biti brže nego li kod RAID0, jer se može obaviti s diska koje ima kraće vrijeme postavljanja glava.

-> Koristi se za pohranjivanje baza podataka, a nedostatak je što se za postizanje zalihosti potroši pola kapaciteta diska

-> Pouzdanost se može ocijeniti kao vjerojatnost dvostrukog kvara

RAID2

-> je ustvari organizacija zasnovana na Hammingovim kodovima jer se za korekciju jednostrukih pogresaka koristi Hammingov kod

-> Za korekciju nakupine od N bitova potrebno je dodati log2N+1 korekcijskih bitova (uz N=4 potrebna su 3 korekcijska bita, a za N=128 potrebno ih je 8)

-> Može se pretpostaviti da je veličina pojaseva jednaka veličini sektora na disku

Page 41: OS Moja Skripta Josip Pozega

-> Moguće je i određivanje diska u kojem je nastala pogreška i ispravljanje pogreške (tj određivanje vrijednosti bitova na ustanovljenom mjestu) no međutim, treba nam samo jedan paritetni disk kako bi odredili vrijednost bita na poznatom mjestu

RAID3

-> je paritetna organizacija sitne zrnatosti

-> Za korekciju jednostrukih pogrešaka koristi se jedan paritetni disk

-> Pojasevi se svode na veličinu sektora tako da se može govoriti o bitnovnoj zrnatosti

RAID4

-> je paritetna organizacija krupne zrnatosti

-> Za korekciju jednostrukih pogrešaka koristi se jedan paritetni disk, ali su pojasevi veći

-> Manji zahtjevi se poslužuju čitanjem s jednog diska, a veći zahtjevi čitanjue sa više diskova

-> Pri kvaru jednog diska mogu se rekonstruirati podaci pokvarenog pojasa

-> Pisanje u jedan od pojaseva zahtijeva četiri pristupa do diskova: čitanje starih podataka, čitanje paritetnog pojasa, pisanje novih podataka i pisanje novog pariteta u paritetni pojas i stoga paritetni disk može postati usko grlo

RAID5

-> je paritetna organizacija krupne zrnatosti s raspodijeljenim paritetnim pojasevima

-> Višepojasna organizacija sa raspodijeljenim paritetom doprinosi tome da se usko grlo paritetnog diska izbjegava

-> Svi diskovi sudjeluju u posluživanju čitanja, a jedino je pisanje malo manje efikasno od zrcaljene organizacije

-> Svojstvo razmještaja pojaseva left – symetric parity distribution: kada se pojasevi čitaju sekvencijalno (ono predstavljaju jedan logički adresni prostor) pristupat će se redom svim diskovima prije nego se jednog dohvati

-> Prema izračunu dobijemo idealizirani MTTDL (mean time to data loss)

-> Najčešče se upotrebljavaju RAID1 i RAID5 dok je iskoristivost diskova mnogo veća u RAID5

Page 42: OS Moja Skripta Josip Pozega

3. Napiši koja je uloga funkcije za binarni semafor tipa „postaviti“ kod ostvarenja jezgre u višeprocesorskom sustavu. Napišite i objasnite algoritam.

-> Binarni semafor omogućuje ostvarenje međusobnog isključivanja dretvi

-> Binarni semafor se sastoji od:

-> varijable Bsem[I].v koja igra ulogu zastavice i

-> Kazaljke koja pokazuje na red opisnika dretvi koje nisu

Uspjele proći semafor

-> Semafor može poprimiti dvije vrijednosti: 0 i 1

-> Bsem[I].v==1 semafor je prolazan

-> Bsem[I].v==0 semafor je neprolazan

-> Dretva koja naiđe na prolazni semafor biti će propuštena i jezgra će staviti vrijednost 0 u Bsem[I].v

-> Ako jedna ili više dretvi pokušaju ući u neprolazni semafor, one će biti zaustavljene i njihovi će opisnici biti prebačeni u red pridružen tom semaforu

-> Funkcija Postaviti_Bsem(I) dretva poziva kada izlazi iz kritičnog odsječka, za razliku od funkcije Ispitati_Bsem(I) koju dretva poziva kada želi ući u kritični odsječak

j-funkcija Postaviti_Bsem(I) {

pohraniti kontekst u opisnik Aktivna_D;

premjestiti opisnik iz reda Aktivna_D u red Pripravne_D;

ako je((Bsem[I].v==0)&&(red Bsem[I] neprazan)) {

premjestiti prvi opisnik iz reda Bsem[I] u red Pripravne_D;

}

inače {

Bsem[I].v=1;

}

Aktivirati prvu dretvu iz reda Pripravne_D;

}

4. Objasnite dodjeljivanje po redu prispjeća. Napišite formulu i put do nje za faktor iskorištenja poslužitelja u slučaju mješavine dugih i kratkih poslova.

-> Dodjeljivanje po redu prispjeća odnosi se na to da procesor poslužuje dretve po redu pristupa

-> Proizvođač ili više njih, stavlja poruke u red, a potrošač iz ih reda uzima po redu prispjeća (u procesor će se propustiti ona dretva koja je prva došla) i zatim ih obrađuje

-> Svaka poruka zahtijeva stanovito vrijeme obrade

Page 43: OS Moja Skripta Josip Pozega

-> Jednostavni sustav prikazan na slici sastoji se od reda čekanja i poslužitelja

-> Uz svaki posao (izvođenje dretve ili obrada poruke) povezana su dva događaja: događaj dolaska i događaj odlaska

-> U nekom trenutku td posao ulazi u sustav tj. zbiva se događaj dolaska

-> Ako je red čekanja prazan i poslužitelj slobodan, posao će odmah biti prihvaćen za posluživanje i nakon trajanja posluživanja napustiti će sustav

-> Ako je poslužitelj zauzet posao se zadržava u redu čekanja i tek kada dođe na red, prihvatiti će ga poslužitelj, te će nakon završetka posluživanja napustiti sustav u trenutku tn

-> Vrijeme zadržavanja u sustavu je T = tn – td

-> Trajanje posluživanja je Tp, pa je trajanje zadržavanja u redu

Tr= T – Tp

-> U sustav se propuštaju dvije skupine poslova: dugi poslovi sa parametrima (αd i βd) i kratki poslovi sa parametrima (αk i βk)

-> Bitna je razlika u trajanju poslova: βd je mnogo veći od βk (prosječno trajanje poslova jednako je recipročnim vrijednostima tih parametara)

-> Ako te dvije skupine poslova pomiješamo i pustimo u zajednički red dobiti ćemo mješavinu poslova

-> Mješavina poslova ima dolaske raspodijeljene prema Poissonovoj razdiobi, a prosječan broj dolazaka je α = αk + αd

-> Mješavina poslova ima i eksponencijalnu razdiobu trajanja poslova, s tim da se njihovo trajanje određuje zbrajanjem prosječnog trajanja skupina pomnožernih s udijelom prosječne skupine u ukupnom broju poslova

Page 44: OS Moja Skripta Josip Pozega

-> Kad uvrstimo α = αk + αd dobivamo:

-> Iz čega slijedi da je faktor iskorištenja poslužitelja omjer α i β:

26.06.2006.

1. Objasnite povezanost Poissonove i eksponencijalne razdiobe.

-> Ponovljeno sa roka 09.09.2005.

2. Na koji način djeluju unutarnji zaštitni mehanizmi računalskog sustava?

-> Sve veća je pažnja posvećena pitanju sigurnosti računalnih sustava, jer u današnjem svijetu je sve veća opasnost od neovlaštene uporabe informacija, podmetanja krivih informacija i slično

-> Sigurnosni zahtijevi ovise o vrsti informacija koje želimo zaštititi

-> Unutarnji zaštitni mehanizmi su jedan od sigurnosnih mehanizama u računalnom sustavu a ostala podjela je sljedeća:

-> Zaštita od vanjskih utjecaja

-> Zaštita ostvarena sučeljem prema korisniku

-> Komunikacijski zaštitni mehanizmi te

-> već ranije spomenuti unutarnji zaštitni mehanizmi

-> Zaštita od vanjskih utjecaja obuhvaća:

-> Zaštite od mehaničkog oštećenja naprava

-> Oštečenja nastalih poplavom ili požarom

-> Krađe uređaja i medija na kojima su informacije pohranjene

Page 45: OS Moja Skripta Josip Pozega

-> Zaštita ostvarena sučeljem prema korisniku:

-> Postupak autentifikacije tj postupak provjere identifikacije, kojim se provjerava tko želi pristupiti računalu i koristiti računalna sredstva

-> Ujedno se tim postupkom onemogučuje pristup neovlaštenim osobama

-> Pravo pristupa određuje se provjerom identiteta tj utvrđivanjem vjerodostojnosti (autentičnosti) njegova identiteta

-> računalni sustav mora provesti postupak provjere identifikacije – autentifikacija i pri tome se mora utvrditi autentičnost samo jedne strane tj korisnika

-> U raspodijeljenim sustavima autentifikacija se mora provesti dvostrano, jer obje strane u komunikaciji moraju dokazati svoj identitet

->Unutarnji zaštitni mehanizmi:

-> Korisnik nakon što prođe autentifikaciju se nalazi unutar sustava

-> Pri tome ovi mehanizmi ne dopuštaju pojedinom korisniku pristup nekim sredstvima za koje on nema ovlaštenja

-> Komunikacijski zaštitni mehanizmi:

-> U raspodijeljenim računalnim sustavima informacije se prenose raznovrsnim otvorenim i nesigurnim putevima

-> Ove puteve nije lako fizički zaštititi te svaki uljez može narušiti sigurnost raspodijeljenog sustava i zbog toga je to najvažniji oblik ostvarenja sigurnosti

-> U raspodijeljenom sustavu sve se informacije prenose u obliku poruka, tako da je osnovni problem sveden na zaštitu poruka

-> Najdjelotvornija zaštita poruka je kriptiranje

3. Kakva se zaštita podataka ostvaruje pojedinim tipovima zalihosne organizacije diska?

-> Slično pitanje ponovljeno sa roka 05.10.2005.

4. Napišite algoritam za rješavanje problema binarnog semafora izgradnjom monitora.

-> Za takvo ostvarenje potreban nam je jedan monitor i jedan red uvjeta pridružen tom monitoru

Page 46: OS Moja Skripta Josip Pozega

-> Trebaju nam još i dvije varijable koje će se koristiti unutar monitora i nazivamo ih „normalnim“ varijablama čiji cilj je opisivanje stanja unutar monitora

-> Temeljem stanja tih varijabli određivati ćemo uvjete za uvrštavanje dretvi u red čekanja ili oslobađanje dretvi iz reda čekanja

-> Deklariramo varijablu Sem koja će poprimiti dvije vrijednosti:

-> Vrijednost 1 označavati će da je semafor prolazan (početno)

-> Vrijednost 0 označavati će da je semafor neprolazan

-> Druga varijabla Broj_cekaca je cjelobrojna varijabla, koja pokazuje koliko dretvi čeka na prolaz kroz semafor (početno Broj_cekaca=0)

-> Trebamo dvije monitorske funkcije: Cekati(Sem) i Osloboditi_prolaz(Sem)

m-funkcija Cekati(Sem) {

Uci_u_monitor(1);

ako je(Sem==1) {

Sem=0;

Izaci_iz_monitora(1);

}

inace {

broj_cekaca++:

Uvrstiti_u_red_uvjeta(1,1);

}

}

m-funkcija Osloboditi_prolaz(Sem) {

Uci_u_monitor(1);

ako je ((Sem==0) && (Broj_cekaca > 0)) {

Broj_cekaca--;

Osloboditi_iz_reda_uvjeta(1,1);

}

inace {

Sem=1;

Izaci_iz_monitora;

}

}

Page 47: OS Moja Skripta Josip Pozega

24.06.2005.

1. Napišite i objasnite algoritam za usklađivanje odnosa proizvođač-potrošač pomoču monitora.

-> Deklariramo Monitor[2] s dva reda uvjeta:

-> red_uvjeta[2,1] – sadrži deskriptor dretve proizvođača kada u međuspremniku (MS) nema praznih mjesta

-> red_uvjeta[2,2] – sadrži deskriptor dretve potrošača kada u međuspremniku nema niti jedne poruke

-> Unutar monitora deklariramo sljedeće varijable:

-> poredak MS[N] s pretincima od MS[0] do MS[N-1]

-> kazaljke UL i IZ

-> varijabla Broj_mjesta koja pokazuje broj praznih mjesta u međuspremniku

-> dvije varijable Potrosac_ceka i Proizvodjac_ceka koje mogu poprimiti vrijednost 0 i 1

-> Monitorska funkcija za slanje poruka:

m-funkcija Poslati_Poruku(P) {

Uci_u_monitor;

dok je (Broj_mjesta == 0) {

Proizvodjac_ceka=1;

Uvrstiti_u_red_uvjeta(2,1);

Uci_u_monitor(2);

Procitati Broj_mjesta;

}

Broj_mjesta--;

MS[UL]=P;

UL=(UL+1)mod N;

Ako je (Potrosac_ceka==1) {

Potrosac_ceka=0;

Osloboditi_iz_reda_uvjeta(2,2);

}

inace {

izaci_iz_monitora;

}

}

Page 48: OS Moja Skripta Josip Pozega

-> Monitorska funkcija za prihvaćanje poruka:

m-funkcija Prihvatiti_poruku(R) {

Uci_u_monitor(2);

Procitati Broj_mjesta;

Dok je (Broj_mjesta=N) {

Potrosac_ceka=1;

Uvrstiti_u_red_uvjeta(2,2);

Uci_u_monitor(2);

Procitati Broj_mjesta;

}

Broj_mjesta++;

R=MS[IZ];

IZ=(IZ+1)mod N;

Ako je (Proizvodjac_ceka==1) {

Proizvodjac_ceka=0;

Osloboditi_iz_reda_uvjeta(2,1);

}

Inace {

Izaci_iz_monitora;

}

}

-> kad je dretva blokirana, njezin se deskriptor svrstava u odvojeni red uvjeta

-> kad se zatim izvođenjem suprotne dretve stvori uvjet za njeno deblokiranje, tada dretva ponovno ulazi u monitor i ponovno ispituje uvjet za nastavak

2. Objasnite digitalnu omotnicu i digitalni potpis.

DIGITALNA OMOTNICA

-> služi za prenošenje dugačkih poruka jer je postupak kriptiranja poruka uporabom asimetričnog sustava dugotrajniji od simetričnog postupka, te je za prenošenje dugačkih poruka jako neprikladan

-> Nakon što korisnici A i B uspostave pouzdan informacijski kanal i međusobno se autentificiraju, oni poznaju osim svog tajnog ključa i javne ključeve svojih partnera

-> Korisnik A odabire simetrični ključ pomoću kojeg kriptira tekst koji želi poslati, nakon toga svojim tajnim ključem kriptira odabrani simetrični ključ i priključuje ga sadržaju omotnice koji čini samu omotnicu

-> Kada korisnik B primi omotnicu, javnim ključem dekriptira simetrični ključ i razaznaje čitki tekst

Page 49: OS Moja Skripta Josip Pozega

DIGITALNI POTPIS

-> Nam služi za utvrđivanje besprijekornosti informacije (koja garantira da se sadržaj nije promijenio tijekom prenošenja)

-> Sama informacija može, ali i ne mora biti kriptirana

-> Digitalno potpisivanje obavlja se tako da se iz izvornog sadržaja poruke koji se želi poslati izračunava tzv sažetak poruke tako da se cijela poruka podijeli na skupine bitova jednake duljine i iz tako dobivenog niza brojeva nekom funkcijom izračuna neki broj određene duljine bitova

-> Funkcija za izračunavanje sažetaka može se smatrati svojevrsnim kriptiranjem poruke, no, dekriptiranje takve poruke više nije moguće

-> Ostvarenje digitalne omotnice i digitalnog potpisivanja nalazimo u programskim sustavima:

-> PEM (Privacy Enhanced Mail) – pripremljen za unapređenje elektroničke pošte na Internetu, a koristi DES simetrični kriptosustav

-> PGP (Pretty Good Privacy) – koji koristi sustav IDEA

3. Objasnite dodjeljivanje po redu prispjeća. Napišite formulu i put do nje za faktor iskorištenja poslužitelja u slučaju mješavine dugih i kratkih poslova

-> ponovljeno na roku 05.10.2005.

4. Objasnite model ponašanja popravljive komponente s konstantnim brzinama kvarenja i popravljanja

-> Ponovljeno na roku 21.11.2006.

Page 50: OS Moja Skripta Josip Pozega

23.09.2005.

1. Objasnite adresni prostor dretve. Na koji način dretve mogu komunicirati.

-> 21.02.2005.

2. Objasnite model ponašanja popravljive komponente s konstantnim brzinama kvarenja i popravljanja.

-> Pitanje koje se ponovilo na više rokova recimo 21.11.2006.

3. Objasnite i usporedite dinamičko raspoređivanje radnog spremnika i preklopni način uporabe radnog spremnika

-> 08.09.2006.

4. Objasnite ostvarenje jezgre u čvrsto povezanom višeprocesorskom sustavu. Napišite algoritam za binarni semafor

-> 28.04.2006.

5. Objasnite ulogu sigurnosne stijene. Nabrojite i opišite vrste

-> 25.09.2006.

Page 51: OS Moja Skripta Josip Pozega

05.02.2007.

1. Nacrtajte i objasnite shemu za ostvarivanje sklopovske potpore višestrukog prekidanja sa prioritetima. Koje prednosti donosi takva izvedba prekidnog rada?

-> 25.09.2006.

2. Koje su negativne osobine podijele radnog spremnika na stalne particije. Na koji su način otklonjeni nedostaci takvog gospodarenja spremničkim prostorom.

-> 28.04.2006.

3. Nabrojite tipične elemente opisnika datoteke. Što je karakteristično kod smještanja datoteka na disk. Napiši funkciju za otvaranje i čitanje datoteke.

-> 21.11.2006.

4. Pojasni na koji način funkcionira globalni sat i koja je njegova uloga u radu sustava?

-> 28.04.2006.

08.09.2006.

1. Nabroji i opiši (prikaži i crtežom) vrste napada na sigurnost.

-> Vrste napada na sigurnost mogu se najbolje prikazati modelom u kojem je izvorište informacija povezano sa odredištem komunikacijskim kanalom

-> U normalnim uvjetima komunikacijski kanal prenosi nesmetano informacije iz izvorišta u odredište

Page 52: OS Moja Skripta Josip Pozega

PRISLUŠKIVANJE

-> Najjednostavniji način napada na sigurnost je prisluškivanje ili presretanje i to je pasivni napad jer uljez ne djeluje aktivno na informacije

-> Prisluškivanjem se djeluje na povjerljivost odnosno tajnost informacija

PREKIDANJE

-> Uljez može djelovati tako da prekine komunikacijski kanal između izvorišta i odredišta. Prekidanje narušava raspoloživost informacija

PROMJENA SADRŽAJA PORUKE

-> Uljez može prekinuti komunikacijski kanal i, lažno se prestavljajući kao izvorište, promijeniti sadržaj poruke. Promjena sadržaja narušava besprijekornost ili integritet informacija

Page 53: OS Moja Skripta Josip Pozega

IZMIŠLJENA PORUKA

-> Uljez može uspostaviti komunikacijski kanal s odredištem i, lažno se predstavljajući kao izvorište, slati mu izmišljene poruke. Izmišljanje poruka narušava, kao i promjena sadržaja, besprijekornost ili integritet informacija

2. Na koji način se ostvaruje prenošenje blokova znakova i kakvi su to sklopovi sa neposrednim pristupom spremniku?

-> 10.07.2006.

3. Radi čega je potrebno omogućiti komunikaciju među procesima te kojim mehanizmima se ona ostvaruje?

-> Najjednostavniji način komuniciranja između procesa je razmjena datoteka:

-> Proces proizvođač proizvede datoteku i pohrani je na disk

-> Proces potrošač otvori tu datoteku i preuzme njezin sadržaj

-> Razmjena sadržaja preko datoteka nije uvijek najprikladnija, jer u komunikaciju uvodi stanovitu statičnost

-> U načelu su moguća dva načina komuniciranja (dinamična komunikacija):

-> Zajednička uporaba izvornih podataka u dijeljenom spremničkom prostoru

-> Uporaba kopija podataka zasnovana na razmjeni poruka

Page 54: OS Moja Skripta Josip Pozega

KOMUNIKACIJA RAZMJENOM PORUKA

-> Kada proces želi komunicirati on mora uspostaviti komunikacijsku priključnicu (socket)

-> Funkcijom

uspostaviti_priključnicu(identifikator, tip, protokol)

proces uspostavlja vezu sa prijenosnom razinom unutar svog računala kroz jednu pristupnu točku

-> Uspostavljena priključnica se mora imenovati tj povezati sa imenom:

povezati(identifikator, adresa)

-> Ako dva računala uspostave kompatibilne priključnice, onda ih se može međusobno povezati i povezivanje se može obaviti asimetričnom funkcijom:

povezati(identifikator, adr_vlastita, adr_partnera)

-> Funkcija je asimetrična jer jedan proces pokušava uspostaviti vezu dok drugi čeka na postavljanje zahtjeva

-> Ovakav je način uspostavljanja veze prikladan za komuniciranje između klijenata i poslužitelja

-> Poslužitelj stvara priključnicu, povezuje sa njom ime i čeka da se neki klijent poveže na nju

-> Kada poslužitelj uspostavi vezu tada može početi slanje poruka na sličan način kako se to obavlja preko dvostranog cjevovoda unutar jednog računala

POZIV UDALJENIH PROCEDURA

-> Remote Procedure Call (RPC) je svojevrsna nadogradnja mehanizama razmjene poruka

-> Ta je nadogradnja razrađena kako bi se programerima olakšala priprema programa u raspodijeljenom okruženju

-> Mehanizam oponaša dobro poznati način uporabe podprograma koji se pripremaju u adresnom prostoru procesa

-> U podprogram se mogu prenositi vrijednosti (call by value) ili adrese (call by reference) ulaznih podataka, a na jednaka dva načina mogu se vraćati i rezultati

-> Mehanizam RPC-a je proširenje tog koncepta s tim da se instrukcije procedure ne nalaze u adresnom prostoru procesa iz kojeg se pozivaju

-> S obzirom da se proces odakle dolazi poziv i proces kuda je poziv procedure upućen ne nalaze u istom adresnom prostoru, razmjena ulaznih podataka i rezultata mora se obaviti razmjenom poruka i to prenošenjem vrijednosti

Page 55: OS Moja Skripta Josip Pozega

-> Mehanizam RPC-a ostvaruje se iznad TCP razine tako da poziv udaljene procedure izgleda kao uobičajni poziv podprograma

-> Taj poziv prihvaća spojni modul koji oblikuje poruku i prepušta poruku komunikacijskom sustavu

-> Na strani koja je pozvala proceduru spojni modul rezultate prispjele povratnom porukom vraća u proces koji je pozvao proceduru

-> Protokol RPC-a bi dakle trebao blokirati izvođenje dretve procesa klijenta koja je pozvala udaljenu proceduru dok se ne vrate rezultati

-> Proces koji poziva proceduru je klijent, a proces koji izvodi proceduru je poslužitelj

RASPODIJELJENI SPREMNIČKI PROSTOR

-> Zamislimo da se u svakom od N računala povezanih u mrežu izvodi po jedan proces koji djeluje u svom adresnom prostoru

-> Mi želimo da jedan dio tog adresnog prostora dijele svi ti procesi

-> Taj dijeljeni dio prostora može biti samo virtualan jer procesi mogu stvarno komunicirati samo razmjenom poruka kroz komunikacijsku mrežu

-> Pretpostavimo da se u svim računalima upotrebljava virtualni spremnik te da je i dijeljeni dio adresnog prostora podijeljen na stranice jednakih veličina

-> Ako se u jednom od računala dogodi promašaj stranice dijeljenog dijela spremnika, onda se može dogoditi:

-> Da se tražena stranica nalazi u računalu (na njegovom disku) u kojem se dogodio promašaj

-> Da se stranica nalazi u nekom drugom računalu

-> U prvom slučaju obaviti će se uobičajna zamjena stranica, a u drugom treba pokrenuti postupak dobavljanja stranice kroz komunikacijsku mrežu i zamjena stranica potrajati će u tom slučaju znatno duže jer se mora pokrenuti čitav mehanizam razmjene poruka

4. Koja je uloga općeg semafora. Napiši i pojasni funkcije za opći semafor.

-> Opći semafor može poslužiti za sinkronizaciju dretvi, te za brojanje događaja i sredstava

-> Moguće su različite izvedbe općeg semafora a mi ćemo najprije opisati način izvedbe općeg semafora u skladu sa izvornim opisom E.W. Dijkstre

Page 56: OS Moja Skripta Josip Pozega

-> Takav semafor može poprimati vrijednost iz skupa cijelih brojeva i takav ćemo semafor označiti za Os

j-funkcija Ispitati_Os (J) { pohraniti kontekst u opisnik Aktivna_D; Os[J].v = Os[J].v - 1; ako je(Os[J].v >= 0){ obnoviti kontekst iz opisnika Aktivna_D; omogućiti prekidanje; vratiti se iz prekidnog načina; } inače { premjestiti opisnik iz reda Aktivna_D u red Os[J]; aktivirati prvu dretvu iz reda Pripravne_D; } }