uos skripta foi
DESCRIPTION
Uvod u operacijske sustave - FOITRANSCRIPT
1
Uvod u operacijske sustave
Ivan Magdalenić
Napomena: Ova skripta je namijenjena studentima na kolegiju Uvod u operacijske sustave i služi
kao pomoćni materijal kod savladavanja gradiva. Osnovna literatura na kolegiju je udžbenik: ak.L.
Budin, M. Golub, D. Jakobović, L. Jelenković, Operacijski sustavi, izdavač Element, Zagreb, 2010. Pri
izradi skripte su uz dopuštenje autora korištene slike i dijelovi teksta iz navedenog udžbenika.
Sadržaj
Sadržaj ..................................................................................................................................................... 1
Uvod ........................................................................................................................................................ 2
Model jednostavnog računala ................................................................................................................ 2
Ulazno-izlazni podsustav ......................................................................................................................... 6
Prenošenje pojedinačnih znakova radnim čekanjem ......................................................................... 6
Prekidni način rada procesora ............................................................................................................ 7
Prenošenje blokova znakova, sklopovi s neposrednim pristupom spremniku ................................... 9
Jezgra operacijskog sustava .................................................................................................................. 10
Upravljanje datotečnim sustavom ........................................................................................................ 13
Gospodarenje spremničkim prostorom ................................................................................................ 18
Računalna sigurnost .............................................................................................................................. 22
2
Uvod Računalni sustav čine sklopovlje računala, operacijski sustav i primjenski programi.
Operacijski sustav je skup osnovnih programa koji olakšavaju rad na računalu.
Zadaci operacijskog sustava su:
olakšavanje uporabe računala;
djelotvorno iskorištavanje svih dijelova računala;
višeprogramski rad.
Funkcije operacijskog sustava dostupne su kroz korisničko grafičko sučelje, korisničko tekstualno
korisničko sučelje i kroz sučelje prema primjenski programima. Sučelje je dogovoreni način
komuniciranja između dviju strana. Sučelje prema primjenskim programima se na operacijskim
sustavima Microsoft Windows naziva Windows API (application programming interface), a na
operacijskim sustavima UNIX/Linux naziva se POSIX (Portable Operating System Interface).
Operacijski sustav se sastoji od dijelova ili podsustava kao što je prikazano na slici 1.
Slika 1. Dijelovi operacijskog sustava
Model jednostavnog računala
Većina današnjih računala se temelji von Neumannovom modelu računala. Von Neumannov model
računala definira da računalo mora imati 5 funkcijskih dijelova: ulazni dio, izlazni dio, radni ili glavni
spremnik, aritmetičko - logičku jedinku (ALU) i upravljačku jedinku. Shema von Neumannovog
modela računala prikazana je na slici 2.
3
Slika 2. Shema Von Neumannovog modela računala
Prema von Neumannovom modelu računala instrukcije i podaci koji se obrađuju moraju biti spremljeni
u radnom spremniku. Instrukcije iz radnog spremnika putem sabirnica putuju u upravljačku jedinicu
gdje se dekodiraju. Upravljačka jedinica, temeljem dekodiranog koda, upravlja izvođenjem instrukcije.
Podaci se obrađuju u aritmetičko-logičkoj jedinici. Iz spremnika putuju do ALU i nakon obrade se
vraćaju natrag u spremnik. Danas je uobičajeno da se aritmetičko-logička jedinica i upravljačka jedinica
implementiraju na istom komadu silicija koji nazivamo centralna procesorska jedinica (CPU) ili glavni
procesor (MPU) ili samo procesor. Procesor je stroj stanja i mijenja stanja s obzirom na takt
vremenskog vođenja. Tipične vrijednosti taktova vremenskog vođenja za današnja stolna i serverska
računala se kreću od 2-4 GHz.
Radni spremnik je organiziran kao uzastopni niz memorijskih lokacija gdje je svakoj lokaciji pridružena
jedinstvena adresa. Adrese kreću od 0 do 2m-1 pri čemu je m broj bitova adrese npr. ako je adresa 32
bitna tada je maksimalna adresa 232-1= 4294967291. Program se u radni spremnik pohranjuje na
uzastopne memorijske lokacije. Kapacitet jedne memorijske lokacije je danas uobičajeno 8 bitova ili 1
B.
Podaci se između spremnika, ulaznih jedinica, izlaznih jedinica i procesora prenose sabirnicama.
Sabirnica je skup fizičkih vodiča. Sabirnice se funkcijski dijele na adresne, podatkovne i upravljačke
sabirnice. Vrijeme na sabirnici se dijeli na sabirnička cikluse i u svakom sabirničkom ciklusu se ostvaruje
prijenos jednog podatka.
Procesor s radnim spremnikom komunicira tako da u registar pod nazivom adresni međuregistar stavi
adresu koja putem adresnog dijela sabirnice dolazi u registar adrese u radnom spremniku. Procesor
na upravljačku sabirnicu stavi tip operacija (piši ili dohvati). Ovisno o tipu operacije, podatak putuje od
podatkovnog međuregistra do registra sadržaja preko podatkovnog dijela sabirnice ili obrnuto (vidi
sliku 3.).
4
Slika 3. Detalj povezivanja procesora s radnim spremnikom.
U von Neumannovu modelu računala procesor sačinjava aritmetičko-logička jedinka i upravljačka
jedinka, te skup registara.
Osnovna svojstva i ponašanje procesora određeni su:
skupom registara i
skupom instrukcija.
Registri služe za pohranjivanje svih sadržaja koje ulaze i izlaze iz procesora i u njemu se transformiraju.
Skup instrukcija određen je izvedbom aritmetičko-logičke i upravljačke jedinke procesora.
Na slici 4. prikazana je model procesora. Osim već spomenutih međuadresnog registra i podatkovnog
međuregistra procesor ima i druge registre. Registar Programsko brojilo sadržava adresu sljedeće
instrukcije koja se treba izvesti. Instrukcijski registar sadržava instrukciju čije izvođenje je u tijeku.
Instrukcijski registar je povezan s upravljačkom jedinicom gdje se instrukcija dekodira i zatim
upravljačka jedinica šalje upravljačke signale u ostale dijelove procesora i računala. Registar Kazaljka
stoga sadržava adresu vrha stoga tj. adresu memorijske lokacije na koju je stavljen zadnji podatak na
stog. Registar stanja sadržava niz bitova pri čemu svaki bit odražava neko stanje procesora ili operacije
koju procesor izvodi. Registri označeni oznakama R0-Rk se nazivaju registri opće namjene i služe kao
privremeno spremište podataka i adresa koje se obrađuju. Model procesora na slici 4. ima tri interne
sabirnice označen oznakama S1, S2 i S3. Sabirnice S1 i S2 služe da se podaci dovedu od registara opće
namjene do aritmetičko-logičke jedinice, a sabirnica S3 služi da se rezultat operacije u aritmetičko-
logičkoj jedinici spremi natrag u jedan od registara opće namjene.
Procesor se može promatrati kao automat koji, nakon uključivanja, trajno izvodi instrukciju za
instrukcijom strojnog programa.
5
ponavljati {
dohvatiti iz spremnika instrukciju na koju pokazuje programsko brojilo;
dekodirati instrukciju, odrediti operaciju koju treba izvesti;
povećati sadržaj programskog brojila tako da pokazuje na sljedeću
instrukciju;
odrediti odakle dolaze operandi i kamo se pohranjuje rezultat;
operande dovesti na aritmetičko-logičku jedinku, izvesti zadanu
operaciju;
pohraniti rezultat u odredište;
dok je (procesor uključen);
Slika 4. Model procesora
Izvedba aritmetičko-logičke jedinke i upravljačke jedinke određuje instrukcijski skup nekog procesora.
Instrukcije procesora mogu se podijeliti u nekoliko podskupina i to:
instrukcije za premještanje sadržaja;
instrukcije za obavljanje operacija;
instrukcije za programska skokove ili grananja;
instrukcije za posebna upravljačka djelovanja.
Program je niz instrukcija napisan u nekom obliku npr. na papiru ili na čvrstom disku.
Računalni proces ili samo proces je radno okruženje u kojem se program izvodi. Kad se program
pokrene, operacijski sustav mu dodijeli potrebne resurse npr. spremi ga u radni spremnik, dobije
procesorsko vrijeme, početak izvođenja, kraj izvođenja itd. Jedan program pokreće jedan ili više
procesa.
Niz instrukcija u izvođenju čini procesorsku dretvu ili samo dretvu (eng. thread). Jedan proces ima
minimalno jednu dretvu, a može ih imati i više. Dretva je osnovna jedinica izvođenja kod operacijskog
6
sustava. Operacijski sustav za svaku dretvu osigura u spremničkom prostoru prostor koji se dijeli na
dio u kojem su pohranjene instrukcije dretve, dio u kojem su pohranjeni podaci dretve i dio koji služi
kao stog dretve kao što je prikazano na slici 5.
Slika 5. Adresni prostor dretve
Adresni prostor procesa čine više dretvenih adresnih prostora i jedan zajednički prostor kojem mogu
pristupiti sve dretve procesa.
Kad se dretva izvodi, ona koristi registre procesora za smještaj podataka koji se obrađuju. Sadržaj svih
registra procesora naziva se kontekst dretve. Kad se dretva prekida, potrebno je kontekst dretve
pohraniti izvan procesora i u procesor staviti kontekst neke druge dretve koja će se izvoditi.
U jednoprocesorskom računalnom sustavu dretve se izmjenjuju u procesoru. To se naziva
višedretvenost (eng. multithreading). Ako računalni sustav ima više procesora tada se dretve mogu
izvoditi paralelno svaka u svom procesoru i to se naziva hiperdretvenost (eng. hyperthreading).
Ulazno-izlazni podsustav Sve ulazne i izlazne naprave nazivamo zbirnim imenom ulazno-izlazne naprave (UI naprave) ili
periferijske naprave. Ulazno-izlazne naprave su po svojim fizikalnim načelima konstrukcije i djelovanja
vrlo šarolike, pa su i njihove brzine vrlo različite. Svaka ulazno-izlazna naprava ima svoj vlastiti
upravljački elektronički sklop koji brine o svim detaljima ponašanja naprave.
Po načinu rada naprave i njihove pristupne sklopove možemo podijeliti u dvije skupine:
naprave kod kojih se prenose pojedinačni znakovi (bajtovi) i
naprave kod kojih se prenose blokovi znakova (niz uzastopnih bajtova).
U nastavku slijede nekoliko načina uspostavljanja sinkronizacije kod prenošenja podataka između
vanjskih naprava i procesora i radnog spremnika.
Prenošenje pojedinačnih znakova radnim čekanjem Na slici 6. je prikazan pristupni sklop ulazno-izlazne naprave.
7
Slika. 6. Detaljni prikaz pristupnog sklopa –prenošenje znakova radnim čekanjem
Pri obavljanju izlazne operacije, tj. pri prenošenju sadržaja nekog bajta spremnika prema izlaznoj
napravi, procesor mora jednom instrukcijom dobaviti taj sadržaj iz spremnika u svoj registar i drugom
instrukcijom prenijeti taj znak u podatkovni registar pristupnog sklopa. Pri obavljanju ulazne operacije
procesor mora jednom instrukcijom dobaviti sadržaj iz podatkovnog registra pristupnog sklopa u svoj
registar i drugom instrukcijom prenijeti taj sadržaj iz svog registra u adresirani bajt spremnika. Pri
prenošenju uzastopnih izlaznih znakova procesor ne smije staviti sljedeći znak u podatkovni registar
pristupnog sklopa ako prethodni znak još nije "potrošen". U registru stanja pristupnog sklopa postoji
posebni bit — izlazna zastavica — koja ostaje postavljena tako dugo dok znak ne bude prihvaćen od
strane izlazne naprave. Procesor postavlja zastavicu pri stavljanju novog sadržaja u PR. Jednako, pri
prenošenju uzastopnih ulaznih znakova procesor ne bi smio preuzimati sljedeći znak ako ulazna
naprava nije u njega stavila sljedeći znak. U registru stanja pristupnog sklopa postoji stoga drugi
posebni bit — ulazna zastavica — koja ostaje postavljena dok procesor ne “pročita” znak. On se
postavlja kada ulazna naprava u podatkovni registar stavi novi znak. Npr. čitanje uzastopnih znakova
može se opisati sljedećim pseudokodom:
ponavljati{
čitati registar RS;
dok je (ZASTAVICA == 0){
čitati registstar RS;
čitati znak iz podatkovnog registra PR;
pohraniti pročitani znak u spremnik;
dok je (procesor uključen);
Prenošenje znakova radnim čekanjem je neefikasano jer procesor većinu vremena provodu u petlji
čekalici u kojoj ispituje sadržaj registra RS.
Prekidni način rada procesora
Podizanje bita ZASTAVICA u registru stanja popraćeno je generiranjem električkog signala koji se preko
posebnog vodiča dovodi do procesora. Na kraju izvođenja svake instrukcije procesor ispituje je li se
8
pojavio prekidni signal. Detalji prihvata tog prekidnog signala u različitim arhitekturama izvode se na
različite načine. Prekidni signal prebacuje procesor u sustavski način rada, pozivaju se odgovarajući
podprogrami koji sačinjavaju jezgru operacijskog sustava taj se način rada procesora naziva još i
jezgrinim načinom rada (engl. system mode, kernel mode). Izvođenje radne dretve obavlja u
korisničkom načinu rada (engl. user mode ). Procesor pri prelasku u jezgreni način djeluje tako da:
ponavljati {
dohvatiti iz spremnika instrukciju na koju pokazuje PC;
dekodirati instrukciju, odrediti operaciju koju treba izvesti;
povećati sadržaj programskog brojila tako da pokazuje na sljedeću
instrukciju;
odrediti odakle dolaze operandi i kuda se pohranjuje razultat;
izvesti operaciju i pohraniti rezultat u odredište;
ako je (prekidni signal postavljen i omogućeno je prekidanje){
onemogućiti daljnje prekidanje;
aktivirati sustavski način rada i sustavsku kazaljku stoga;
pohraniti programsko brojilo i registar stanja na sustavski stog;
staviti u programsko brojilo adresu podprograma za obradu prekida;
dok je (procesor uključen);
Adresa koja se stavlja u programsko brojilo kad se dogodi prekid je trajno pohranjena u jedan od
"skrivenih registara" procesora pri njegovoj proizvodnji. Na tu adresu treba smjestiti prvu instrukciju
programskog odsječka za posluživanje prekida. Prekidni signal djeluje kao sklopovski izazvani poziv
podprograma. Za razliku od uobičajenog podprograma ovaj je poziv došao u neodređenom trenutku.
Prije obrade prekida, podprogram za obradu prekida najprije mora pohraniti sadržaja registara
(kontekst) na sustavski stog. Operacija pohraniti kontekst stavlja na stog sadržaje svih registara
procesora (osim programskog brojila i registra stanja). Nakon što je podprogram za posluživanje
prekida obavio svoj posao, treba pokrenuti prekinutu korisničku dretvu. Najprije sa sustavskog stoga
posebnim instrukcijama (pop, pull) treba vratiti sadržaje registara (obrnutim redoslijedom!) =
operacija obnoviti kontekst. Nakon izvođenja te operacije na stogu ostaje samo programsko brojilo
(PC) i registar stanja (RS). Instrukcija vratiti se u prekinutu dretvu obnavlja RS i PC čime procesor
automatski prelazi u način rada prekinute dretve, aktivira se odgovarajući (korisnički ili sustavski)
registar kazaljke stoga i spremnički prostor, dozvoljavaju se prekidi ako su bili dozvoljeni u prekinutoj
dretvi te se na kraju se obnavlja sadržaj programskog brojila i RS.
U računalu najčešće imamo više ulazno-izlaznih naprava, koje su povezane na isti prekidni signal. Pri
pojavi prekidnog signala procesor će reagirati na isti način kao i u prethodnom opisu tj. zabranit će se
daljnje prekidanje, programsko brojilo stavlja se na stog i u programsko brojilo upisuje se adresa prve
instrukcije odsječka programa za posluživanje prekida. U tom odsječku programa treba ustanoviti koji
je od pristupnih sklopova izazvao prekid. To se može postići uzastopnim čitanjem registara stanja
pristupnih sklopova. Kada se ustanovi koji je pristupni sklop izazvao prekid taj se prekid može obraditi.
Ovakvo rješenje podsustava za prihvaćanje prekida ima niz nedostataka. Tijekom cijele obrade prekida
zabranjeno svako drugo prekidanje. 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
pritom može biti i dugotrajan.
Navedeni problem bi se mogao riješiti na način da se prekidni vodiči od pojedinih pristupnih sklopova
ne dovode 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
9
izvodi. Do procesora dolazi, prema tome, samo jedan prekidni signal i to samo onda kada je to uistinu
potrebno.
Sklop za prihvat prekida može biti sastavni dio procesora. Prilikom izvođenja dretvi mogu se pojaviti
neka nenormalna stanja (pokušaj dijeljenja s nulom, adresiranje nepostojeće lokacije u adresnom
prostoru, dekodiranje nepostojećeg operacijskog koda i sl.) i tada treba prekinuti izvođenje dretvi te
po mogućnosti dojaviti uzrok njezina prekidanja. Dodatno je potrebno proširiti instrukcijski skup
procesora s barem jednom instrukcijom koja omogućuje izazivanje prekida iz programa tj. programski
prekid (engl. software interrupt). Mehanizam programskog prekida može se iskoristiti za svojevrsno
pozivanje neke vrste podprograma koje se izvode u sustavskom ili jezgrenom načinu rada procesora.
Svaka arhitektura procesora rješava mehanizam prekidanja na svoj način. Svi prekidi (vanjski i
unutarnji) objedinjeni su u jedan podsustav i jasno razvrstani u prioritetne razine.
Prenošenje blokova znakova, sklopovi s neposrednim pristupom spremniku
Model pristupnog sklopa za prenošenje blokova znakova prikazan je na slici 7.
Slika 7. Model pristupnog sklopa za prenošenje blokova znakova
Pristupni sklop je proširen s dva dodatna registra: adresnim registrom i brojilom. Prijenos znakova
odvija se u tri faze. U fazi inicijalizacije procesor postavlja u adresni registra adresu memorijske lokacije
u radnom spremniku s koje (na koju) će se obaviti prijenos znakova, u brojilo stavlja broj prenesenih
znakova i u registra stanja stavlja smjer u kojem se prenose znakovi. Nakon toga procesor prepušta
pristupnom sklopu da samostalno prenese znakove. U fazi prijenosa podataka, pristupni sklop
posebnim linijama zahtijeva od procesora pristup sistemskim sabirnicama i čeka da mu procesor
dodijeli sabirnicu. Nakon što dobije sabirnički ciklus, pristupni sklop na adresni dio sabirnice postavlja
adresu iz adresnog registra, i prenosi podatak između podatkovnog registra i spremnika ovisno o
smjeru definiranom u registru stanja. Slijed događaja kod prenošenja se može opisati sljedećim
pseudokodom:
dok je (BR > 0){
zatražiti sabirnicu;
čekati na dodjelu sabirnice;
postaviti na adresni dio sabirnice sadržaj registra AR;
prenijeti na tu adresu sadržaj podatkovnog registra PR
10
(ili obrnuto);
AR = AR + 1;
BR = BR - 1;
postaviti signal PREKID;
Nakon što je prenesen cijeli blok, pristupni sklop prekidom obavještava procesor da je prijenos gotov.
Cijeli blok je prenesen bez sudjelovanja procesora i takav način prijenosa podataka se naziva direktan
pristup memoriji ili DMA (eng. Direct Memory Access).
Jezgra operacijskog sustava
U ovom poglavlju su prikazani osnovi koncepti razvoja operacijskog sustava koji podržava više dretvi.
Pritom se koristi model jednoprocesorskog računala koji ima sljedeća svojstva: u adresnom prostoru
procesa smješteni su svi dretveni prostori; čitav adresni prostor procesa dohvatljiv je svim dretvama;
izvođenje dretvi obavlja se u jednoprocesorskom sustavu; dretve odgovarajućim programskim
prekidom mogu pozivati j-funkcije; u sustavu postoje i U/I naprave (razmatra se i obrada sklopovskih
prekida); u sustavu djeluje sklopovski sat koji izaziva periodne prekide s periodom Tq (služi za
zaustavljanje izvođenja dretvi koje predugo traju i za generiranje zadanih vremenskih intervala). Jezgra
operacijskog sustava se sastoji od jezgrinih funkcija i odgovarajućih struktura podataka. Jezgrine
funkcije se pozivaju bilo sklopovskim bilo programskim prekidima. Kada neka dretva želi obaviti ulaznu
ili izlaznu operaciju ona to obavlja preko jezgre. Unutar jezgre se donose odluke koje utječu na daljnje
odvijanje dretvi. U našem modelu postoje tri vrste prekida: sklopovski prekidi od ulazno-izlaznih
naprava; periodni sklopovski prekidi od sata; programski prekidi koje izazivaju dretve. Odnos dretvi,
jezgre i procesora prikazan je na slici 7.
Slika 7. Odnos dretvi jezgre i procesora
Ulazak u jezgru se zbiva kada se dogodi prekid i tada se poziva jezgrena funkcija. Izlazak iz jezgre svodi
se na pokretanje jedne od dretvi, pri čemu procesor mora biti vraćen u korisnički način rada.
U strukturi podataka jezgre moraju se pohraniti sve informacije o dretvama potrebne za donošenje
odluka o njihovom izvođenju. Za svaku se dretvu moraju u jezgri pohraniti svi važni podaci koji čine
opisnik dretve kao što je prikazano na slici 8.
11
Slika 8. Opisnik dretve
Opisnici dretvi nalaze se u listama, a struktura podataka jezgre sadrži zaglavlja listi. Jezgrene funkcije
premještaju dretve iz jedne liste u drugu. U jezgri postoji više lista i svaka lista ima svoje zaglavlje.
Zaglavlje Postojeće_D pokazuje na listu svih dretvi smještenih u procesni adresni prostor. U
jednoprocesorskom sustavu samo jedna od dretvi može biti aktivna (ona dretva čije instrukcije
procesor upravo izvodi) i opisnik te dretve bit će u listi Aktivna_D. U toj se listi (možemo ju nazvati i
redom) smije nalaziti najviše jedan opisnik dretve. Dretve koje čekaju na dodjelu procesora nalaze se
u redu pripravnih dretvi.
Dretve tijekom svog izvođenja mogu biti blokirane čekajući na ispunjenje nekog uvjeta za njihovo
daljnje napredovanje. Mi ćemo u našem modelu jezgre pretpostaviti da dretve mogu biti blokirane na
četiri načina: čekanjem na binarnom semaforu; čekanjem na općem semaforu; čekanjem na istek
zadanog intervala kašnjenja; čekanjem na završetak ulazno-izlazne operacije.
Binarni semafor je jezgrin mehanizam za međusobno isključivanje. Binarni semafor se sastoji se od
varijable Bsem[I].v, koja igra ulogu zastavice i kazaljke koja pokazuje na red opisnika dretvi koje nisu
uspjele proći semafor. Varijabla Bsem[I].v 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 bit će propuštena i jezgra će staviti vrijednost 0 u Bsem[I].v. Ako
jedna ili više dretvi pokušaju proći uz neprolazni semafor, one će biti zaustavljene i njihovi će opisnici
biti prebačeni u red pridružen tom semaforu
Opći semafor je jezgrin mehanizam za međusobno isključivanje. Razlikuje se od binarnog semafora po
tome što njegova vrijednost Os[J].v može poprimiti vrijednost cijelog broja, a ne samo vrijednosti 0 ili
1. Kada dretva pokušava proći opći semafor, jezgra smanji njegovu vrijednost za jedan i
ako je nakon toga Os[J].v 0 dozvoljava dretvi prolaz
12
ako je nakon smanjenja Os[J].v < 0, onda se dretva blokira u redu pridruženom tom
općem semaforu
Neka druga dretva koja zahtijeva postavljanje općeg semafora, uzrokovat će povećanje vrijednosti
OS[J].v te se time eventualno može ispuniti uvjet za pokretanje dretve koja je bila blokirana.
Treći razlog blokiranja neke dretve može biti željeno odgađanje izvođenja za zadani interval vremena.
Interval može biti cjelobrojni višekratnik periode otkucaja sata Tq , tj. T = M Tq . Opisnik dretve
stavlja se u red Odgođene_D i u njegovu lokaciju Zadano_kašnjenje zapisuje broj M. Pri svakom
prekidu od sata vrijednost M se smanjuje za jedan i kada dosegne nulu dretva se iz reda odgođenih
dretvi prebacuje među pripravne dretve.
Četvrti razlog blokiranja u našem modelu je čekanje na završetak ulazno-izlazne operacije. dretva
može obavljati U/I operaciju samo preko jezgre. Pozivat će jezgrinu funkciju s pomoću koje će obavljati
ulazno-izlazne operacije. Dretva koja je zatražila obavljanje operacija mora pričekati završetak
operacije pa će se njezin opisnik smjestiti u RED_UI[K]. Opisnik će bit premješten u red Pripravne_D
onda kada se dogodi sklopovski prekid od naprave K.
Poziv jezgrene funkcije tj. ulazak u jezgru zbiva se pod utjecajem sklopovskog ili programskog prekida.
Izlazak iz jezgre svodi se na aktiviranje jedne od dretvi. To će, osim u nekim iznimnim slučajevima, biti
dretva koja se nalazi na prvom mjestu u redu Pripravne_D.
Osnovni mehanizmi za međusobno isključivanje (binarni i opći semafori) te njihove funkcije obavljaju
samo pojedinačna ispitivanja jednostavnih uvjeta i zbog toga se moraju, već i u sasvim jednostavnim
primjenama, pretjerano pozivati. Svako pozivanje jezgrene funkcije unosi mnogo kućanskog posla.
Nedostaju mehanizmi za ispitivanje složenijih uvjeta. Štoviše, nepažljivom uporabom funkcija može se
izazvati potpuni zastoj. Za nastajanje potpunog zastoja postoje tri sljedeća nužna uvjeta:
neko sredstvo u istom času može upotrebljavati samo jedna od dretvi (međusobno
isključivo);
dretvi se sredstvo ne može oduzeti — ona ga otpušta sama kada ga više ne treba;
dretva drži dodijeljeno joj sredstvo dok čeka na dodjelu dodatnog sredstva.
Za izbjegavanje nastanka potpunog zastoja koriste se monitori. Monitor je jezgrin mehanizam za
međusobno isključivanje. Sastoji se od svoje strukture podataka I funkcija koje djeluju nad tom
strukturom. Izvođenje monitorskih funkcija mora biti pojedinačno, tj. pozivanje funkcija je ulazak u
K.O. Sve funkcije jednog monitora trebale bi na svom početku ispitivati binarni semafor a po svom
završetku ga postavljati. Za međusobno isključivanje monitorskih funkcija potrebna je posebna vrsta
semafora: monitorski semafor Monitor[M]. Kada neka dretva pozove monitorsku funkciju ona će: ili
proći monitorski semafor, i mi tada kažemo da je ušla u monitor, 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 kada ga prethodna dretva napusti. Unutar monitora dretve ispituju neke uvjete za daljnje
napredovanje. Ako je uvjet ispunjen, ona napušta monitor pozivajući jezgrenu funkciju za postavljanje
monitorskog semafora i time ujedno omogućuje drugoj dretvi ulazak u monitor. Ako uvjet nije
ispunjen, dretva se unutar monitora blokira u red u kojem čeka na ispunjenje tog uvjeta. Blokiranje
jedne dretve unutar monitora mora biti popraćeno s propuštanjem sljedeće dretve u monitor (iako
blokirana dretva prividno ostaje unutar monitora). Dretva koja je ušla u monitor može djelovati na
ispunjenje nekog uvjeta tako da time deblokira dretvu koja je unutar monitora čekala na ispunjenje
tog uvjeta.
13
Upravljanje datotečnim sustavom
Danas su u upotrebi više tehnologija za ostvarivanje pomoćnih spremnika. Dominantna tehnologija
su magnetski diskovi, a slijedi ih Solid State Drive (SSD). Najprije će biti nešto riječi o magnetskim
diskovima, a zatim o SSD-ovima.
Magnetski diskovi se na računalo priključuju s pomoću prikladnog upravljačkog sklopovlja. Magnetski
disk sastoji se od dvije elektromehaničkog dijela i upravljačkog sklopa. Elektromehanički dio
sačinjavaju jedna ili više okruglih ploča presvučenih magnetskim materijalom koje se vrte
konstantnom brzinom s mehanizmom magnetskih glava koje se mogu pomicati približno radijalno
iznad tih ploča. Upravljački sklop se sastoji od mikroprocesora (mikroupravljača), spremnika, sučelja
prema elektromehaničkom dijelu i sučelja prema sabirnici računala koje se ponaša kao pristupni sklop
s neposrednim pristupom radnom spremniku.
Organizacija zapisivanja sadržaja na magnetskom disku je prikazana na slici 9.
Slika 9. Organizacija zapisivanja na magnetskom disku.
Podaci na magnetskim diskovima spremaju se u obliku magnetskog zapisa na površinama ploča koje
se rotiraju. Pojedinim dijelovima ploča pristupa se pomoću glava za čitanje i pisanje. Kod magnetskih
diskova se ne adresiraju se pojedinačni bajtovi kao kod radne memorije nego blokovi bajtova. Blokovi
bajtova sastoje se iz jednog ili više sektora. Sektor je najčešće veličine 512 bajta, u novije vrijeme to je
i 4096 bajtova. Adresa sektora se izračunava iz rednog broja ploče, rednog broja staze na ploči i rednog
broja sektora na stazi. Svaka ploča ima svoju glavu za pisanje, odnosno čitanje i u jednom času se može
pristupiti samo do jedne od ploča, tj. može se čitati ili pisati samo u jednu stazu cilindra.
Upravljački program za upravljanje diskom prenosi iz spremnika na disk, ili obrnuto, blokove bajtova
koji su jednaki veličini sektora ili im je veličina cjelobrojni višekratnik veličine sektora. Disk sačinjava
linearni adresni prostor sektora tj. operacijski sustav vidi diskovni prostor kao niz sektora pri čemu
svaki sektor ima svoju jedinstvenu adresu. Jedinstvena adresa se može preračunati u položaj sektora
na disku koji je određen rednim brojem ploče, staze i sektora.
14
Svojstva diskova se s godinama poboljšavaju. Spomenimo neka od važnijih svojstava današnjih
diskova:
tipični promjeri ploča su: 1.0, 1.8, 2.0, 2.5, 3.5 i 5.25 inča
gustoća staza iznosi oko 250000 staza po inču radiusa
(2.5 TB disk)
gustoća bitova na stazi iznosi 10 - 500 gigabita po inču2
broj okretaja u minuti: 5400, 7200, 10000, 15000
diskovna jedinka može imati od 1 do 20 ploča
broj staza na disku kreće se od 2000 do 400000;
staza ima od 100 do 30000 sektora;
sektor je veličine 512 B ili 4 KB
kapaciteti diskova danas se mjere u terabajtima
Vremenska svojstva diskova određena su pretežito brzinama pokretanja njegovih mehaničkih dijelova.
Vrijeme potrebno za prijenos nekog sektora s diska ili na disk može se podijeliti na dva dijela: trajanje
postavljanja glave i trajanje prijenosa podataka. Trajanje postavljanja glave može se nadalje podijeliti
na: trajanje traženja staze, ili kraće: trajanje traženja i na rotacijsko kašnjenje. Trajanje traženja ovisi
o razmaku između početnog položaja glave i staze na koju se glava mora postaviti i sastoji se od:
trajanje ubrzavanja ručice glave, kretanje konstantnom brzinom, trajanje usporavanja i trajanje finog
pozicioniranja. Ako se glava pomiče samo za nekoliko staza, trajanje se uglavnom svodi na fino
pozicioniranje. Uobičajeno 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
odabranu stazu mora prije početka prijenosa pričekati da se ispod glave za čitanje pojavi traženi sektor.
Uzima se prosječno rotacijsko kašnjenje koje iznosi pola trajanja jednog okretaja diska: TR/2. Trajanje
prijenosa podataka određeno je brzinom prijenosa (data transfer rate) i količinom prenešenih
podataka. Brzina prijenosa određena je brzinom kojom ispod glave za čitanje ili pisanje promiču bajtovi
sektora. Napredak u tehnologiji proizvodnje diskova omogućava znatno povećanje kapaciteta diskova,
ali su poboljšanja vremenskih svojstava mnogo skromnija: prosječno trajanje postavljanja glava opalo
je s vrijednosti od približno 20 ms na ispod 10 ms, tipična brzina okretaja povećana je s 3600 okretaja
u minuti na 7200, 10000, odnosno 15000 okretaja u minuti i brzine prijenosa su se povećale do 150
MB/s.
SSD su čvrsti diskovi temeljeni na flash memoriji (elektronička memorija koja se može brisati i ponovno
pisati u nju). Nemaju mehaničkih dijelova. Sastoje se od upravljača i memorijskih banaka podataka
(SLC i MLC flash memorija). Prednosti korištenja SSD-ova su: podjednako vrijeme pristupa svim
memorijskim lokacijama (vrijeme pristupa usporedivo s DRAM-om), velike brzine prijenosa podataka,
manja potrošnja električne energije (oko 1/3 potrošnje mehaničkih diskova). Nedostaci SSD-ova su:
ograničeni broj ciklusa brisanja i zapisivanja podataka na iste memorijske lokacije, cijena po bitu je
puno veća nego kod mehaničkih diskova, otkazuju bez najave (kod mehaničkih je moguće predvidjeti
kad će se disk pokvariti).
Operacijski sustavi tretiraju mehanički disk i SSD na isti način tj. vide ih kao spremište podijeljeno na
sektore ili nakupine sektora (eng. cluster) pri čemu svaki sektor odnosno nakupina sektora ima svoje
redni broj koji počinje s 0 i ide do maksimalnog broja sektora / nakupine sektora.
Podaci se na čvrstim diskovima spremaju u datoteke. Atributi datoteke spremaju se u jedan zapis koji
se naziva opisnik datoteke. Tipični sadržaj opisnika datoteka jesu: naziv datoteke, tip datoteke, lozinka,
ime vlasnika datoteke, prava pristupa, vrijeme stvaranja datoteke, vrijeme zadnje uporabe datoteke,
ime posljednjeg korisnika i opis smještaja.
15
Organizacija smještaja sadržaja na diskovima se naziva datotečni sustav. Operacijski sustavi koriste
različite datotečne sustave: NTFS, FAT16, FAT32, ext2, ext3, ext4, itd. Operacijski sustav Microsoft
Windows koristi u pravilu datotečni sustav NTFS. Operacijski sustavi Linux u pravilu koriste datotečni
sustav ext4.
Na disku se ne mogu adresirati pojedinačni bajtovi nego sektori. Datoteke je potrebno smisleno
smještati na disk tako da ih se podijeli na blokove bajtova koji su po veličini jednaki veličini sektora
odnosno cjelobrojnom višekratniku te veličine (pri čemu je višekratnik najčešće potencija broja dva)
kada se za smještanje blokova odabere nakupina (eng. cluster) od više susjednih sektora. Primjerice,
uz veličinu sektora od 512 bajtova blokovi mogu imati duljinu od 1KB, 2KB, 4KB, 8KB itd., a nakupine
sektora čine 2, 4, 8 odnosno 16 uzastopnih sektora.
Disk se može podijeliti na logički razdvojene adresne podprostore, tzv. particije. Svaka particija ima
svoj direktorij, odnosno datotečnu tablicu u kojoj su sadržani opisnici svih datoteka smještenih u toj
particiji. Sastavni dio svake datotečne tablice je: kapacitet diska, veličina slobodnog prostora, opis
slobodnog prostora sveska i tablica opisnika datoteka.
U tradicionalnim datotečnim sustavima operacijskog sustava UNIX opisnik datoteke naziva se I-node
(indeksni čvor) jer sadrži indeksno dohvatljive kazaljke na nakupine sektora. Uz pretpostavku da je
sektor velik 1024 B te da kazaljke imaju 32 bita u jedan sektor se može smjestiti 256 kazaljki.
U opisniku se nalazi 13 kazaljki i to:
10 neposrednih kazaljki - prvih deset sektora se dohvaća neposrednim kazaljkama (npr.
datoteke do 10 KB)
1 jednostruko indirektna kazaljka - pokazuje na sektor u kojem se nalazi sljedećih 256 kazaljki
(npr. dovoljno za datoteku veličine do 266 KB )
1 dvostruko indirektna kazaljka- pokazuje na sektor u kojem su kazaljke na 256 sektora svaki
s 256 kazaljki (npr. za datoteke manje od 266 + 256 x 256 KB, što je približno 64 MB )
1 trostruko indirektna kazaljka - pokazuje na trorazinsko stablo kazaljki
(10+256+256x256+256x256x256 224 sektora = 16 M sektora, odnosno datoteke veličine 16
GB )
Datotečni sustav NTFS upotrebljava se kod operacijskog sustava Windows NT na dalje. Diskovni
prostor dodjeljuje se po skupinama sektora (engl. cluster). Skupine uobičajeno imaju 1, 2, 4 ili 8
sektora. Veličine skupina određuju se u skladu s veličinom diska. Uobičajeno za veće diskove koji su
danas pretežito u uporabi da veličina skupine bude 4096 B (uz veličinu sektora od 512 B skupina se
sastoji od 8 sektora). NTFS se referira na disk uporabom logičkog broja skupine (engl. Logical Cluster
Number - LCN ). LCN je naprosto redni broj skupine od početka do kraja diskovnog prostora
predviđenog za smještaj datoteka. NTFS sadrži datoteku koja se naziva glavna tablica datoteka (engl.
Master File Table - MFT ). Svaka datoteka (uključujući i MFT datoteku) ima u toj datoteci jedan zapis
koji je opisnik datoteke. Jedan MFT zapis ima veličinu jedne skupine sektora (primjerice 4 KB ). Male
datoteke mogu se smjestiti unutar MFT zapisa, dok za veće datoteke zapis sadrži indekse skupina
sektora i ako je potrebno i dodatno proširenje zapisa. Datoteka se dijeli na dijelove koji su jednako
veliki kao nakupine sektora i nazivaju se virtualnim skupinama. Datoteka je dakle podijeljena na
“stranice” koje su jednake veličini “okvira”. Redni broj “stranice” naziva se Virtual Cluster Number -
VCN. Za smještaj datoteka pronalazi se što više uzastopnih skupina sektora i dodjeljuje datoteci. U
najgorem slučaju, ako uzastopnih sektora nema, dodjeljuju se i pojedinačne skupine. Na slici 10 je
prikazan opisnik datoteke kod datotečnog sustava NTFS.
16
Slika 10. Organizacija smještaja datoteke kod NTFS-a.
Maksimalna brzina prijenosa podataka s diska određena je elektromehaničkim svojstvima diskova.
To se ograničenje može zaobići smještanjem podataka na više diskova kojima se može istodobno
pristupati kao što je prikazano na slici 11.
Višediskovni sustav sastoji se od polja diskova (engl. disk array) kojima se pristupa paralelno. Polje
diskova promatra se kao jedan logički adresni prostor. Osnovna jedinica adresiranja podatkovni
pojas (engl. data stripe). Postoje dvije vrste pojasne organizacije: sitno zrnata i krupno zrnata. U
sitno zrnatoj organizaciji podaci se podjednako raspoređuju na sve diskove. U krupno zrnatoj
organizaciji jedan pojas sastoji se od nakupine sektora. Uporaba većeg broja diskova povećava
vjerojatnost pojave kvarova, a taj problem se rješava uvođenjem zalihosti i oporavkom od kvarova.
17
Slika 11. Ubrzanje rada diskovnog podsustava
Polje diskova s ugrađenom zalihošću (redundancijom) naziva se RAID - Redundant Array of
Independent (Inexpensive) Disks. U literaturi se spominje 7 osnovnih načina organizacije višediskovnih
sustava: od RAID 0 - RAID 6.
RAID 0 — nezalihosna organizacija. Nema zalihosti i svi diskovi su podatkovni diskovi. Prednost ove
organizacije je veliki spremišni prostor i ubrzanje rada. Nedostatak je smanjena pouzdanost.
RAID 1 — zrcaljena organizacija. U organizaciji RAID 1 svaki disk ima svoju kopiju – zrcaljeni disk (engl.
mirrored disk). Nema ubrzanja rada, ali je veća pouzdanost sustava.
RAID 2 —organizacija zasnovana na Hammingovim kodovima. U organizaciji RAID 2 se za korekciju
jednostrukih pogrešaka koristi Hammingov kôd. Za korekciju nakupine od N bitova potrebno je dodati
log2N+1 korekcijskih bitova. Potrebno je manje dodatnih diskova za ostvarivanje pouzdanosti nego
kod RAID 1.
RAID 3 — paritetna organizacija sitne zrnatosti. U organizaciji RAID 3 se za korekciju jednostrukih
pogrešaka koristi se jedan paritetni disk (jer polažaj pokvarenog diska znamo!). Pojasevi se svode na
veličinu sektora tako da se praktički može govoriti o bitovnoj zrnatosti.
RAID 4 — paritetna organizacija krupne zrnatosti. U organizaciji RAID 4 se za korekciju jednostrukih
pogrešaka također koristi jedan paritetni disk ali su pojasevi veći.
RAID 5 — paritetna organizacija krupne zrnatosti s raspodijeljenim paritetnim pojasevima. U
organizaciji RAID 5 paritetni pojasevi se raspoređuju po svim diskovima.
RAID 6 —organizacija sa zaštitom od dvostrukog kvara (P+Q zalihost). Podloga za RAID 6 organizaciju
su Reed-Solomonovi kodovi. Postoje dva zaštitna diska (odnosno dva zaštitna pojasa za svaku zaštićenu
skupinu diskova koji se ravnomjerno raspoređuju po svim diskovima).
18
Postoje i višerazinski RAID sustavi koji kombiniraju najbolje karakteristike od pojedinih organizacija.
Npr. RAID 0+1 (slika 12.) I RAID 1+0 (Slika 13.) kombiniraju veliki spremišni prostor i brzinu dohvata
podataka koju nudi RAID 0 organizacija s pouzdanošću koju nudi RAID 1 organizacija.
Slika 12. RAID 0+1
Slika 13. RAID 1+0
Gospodarenje spremničkim prostorom
U von Neumannovu modelu računala sve adrese generiraju se unutar procesora (iznimno se adrese
generiraju u sklopovima s neposrednim pristupom spremniku): adrese instrukcija koje dolaze iz
programskog brojila, stogovne adrese koje dolaze iz registra kazaljke stoga i adrese operanada i
rezultata operacija. Svaki proces djeluje u svom vlastitom spremničkom prostoru. Svaki cjeloviti
program izvodi se kao računalni proces, koji mora imati barem jednu dretvu. Ako se proces sastoji od
više dretvi, onda se spremnički prostor procesa dijeli na dretvene prostore i jedan zajednički prostor
19
u koji mogu pristupiti sve dretve. Svi programi, bez obzira na programski jezik u kojem su izvorno
pripremljeni, moraju prije izvođenja biti prevedeni u strojni oblik i mora ih se pohraniti u radni
spremnik u obliku niza strojnih instrukcija koje prepoznaje procesor.
Spremnički adresni prostor dijeli se na dva dijela: dio rezerviran za potrebe operacijskog sustava i dijela
za spremanje korisničkih programa (Slika 14).
Slika 14. Podjela spremničkog adresnog prostora
Veličina korisničkog adresnog prostora određuje maksimalni mogući procesni adresni prostor. Svi
programi koji će se izvoditi u takvom računalu moraju biti pripremljeni tako da se mogu smjestiti u
korisnički adresni prostor (uz početnu adresu PA i najveću adresu NA). Ako postoji više programa koji
čekaju na izvođenje i moraju se, u obliku pripravnom za izvođenje, pohraniti u neki pomoćni spremnik
ili dopunski vanjski spremnik (engl. backing store). Danas su pomoćni spremnici prvenstveno čvrsti
diskovi (magnetski disk ili SSD). Čvrsti diskovi imaju dvojaku ulogu: kao pomoćni ili dopunski spremnici
koji pri izvođenju programa nadopunjuju radni spremnik računala i kao skladište za trajno čuvanje svih
vrsta datoteka. Kod operacijskog sustava Microsoft Windows dopunski spremnik je datoteka naziva
pagefle.sys i obično se nalazi u korijenskom direktoriju sistemskog diska (datoteka je skrivena). Kod
operacijskog sustava Linux dopunski spremnik je posebna particija na čvrstom disku pod nazivom
swap.
Pretpostavimo da su svi programi pripravni za izvođenje smješteni na vanjski pomoćni spremnik. Svaki
od njih prije početka izvođenja mora biti prebačen u radni spremnik. Program će time postati proces.
Sve dretve koje pripadaju tom procesu koriste adresni prostor procesa i mogu se u njemu nesmetano
odvijati. Procesni adresni prostor ne može biti veći od dijela spremnika predviđenog za korisnički
načinu rada. Ako sve dretve procesa koji zauzima radni spremnik postanu blokirane u radnom
spremniku se mora obaviti zamjena programa (engl. swap). Taj mehanizam podsjeća na promjenu
konteksta kod prebacivanja procesora s izvođenja jedne dretve na drugu. Ovdje moramo zamijeniti
sadržaje svih spremničkih lokacija. Najprije je potrebno pohraniti u pomoćni spremnik sadržaje lokacija
procesa koji se prekida i zatim napuniti lokacije sadržajima koji pripadaju procesu koji će započeti ili
nastaviti s izvođenjem. U tablicama operacijskog sustava se za svaki proces mora nalaziti popis sektora
diska u kojima se nalazi smješten program na disku. Tablicu možemo zamisliti kao poredak u kojem su
redom pohranjeni brojevi sektora dopunskog spremnika. Na disku sektori programa ne moraju biti
smješteni jedan uz drugog, ali s diska se sektori moraju čitati onim redom kako je to zapisano u
tablicama procesa i tim redom moraju biti smješteni i u radnom spremniku. Način na koji su sektori
smješteni na disku može jako utjecati na trajanje prebacivanja programa.
U radnom spremniku istovremeno treba biti više programa. Također je poželjno da u svakom trenutku
barem jedna od dretvi bilo kojeg procesa čiji je adresni prostor smješten u radni spremnik bude
20
pripravna za izvođenje. U računalu se moraju moći izvoditi i programi čiji su procesni adresni prostori
veći od fizičkog adresnog prostora računala te se stoga u današnjim se računalnim sustavima stoga
koriste mehanizmi tzv. virtualnog spremnika (englski: virtual memory). Za svaki se proces oblikuje
procesni informacijski blok ili procesni kontrolni blok (process information block, process control block)
unutar kojeg bloka se nalaze sve informacije povezane s gospodarenjem spremničkim prostorom
procesa: tablice sektora u kojima je slika procesa pohranjena na disku, podaci o smještanju programa
u radnom spremniku te sve ostale informacije važne za odvijanje procesa.
Kroz povijest se dodjeljivanje spremničkog prostora mijenjalo od statičkog raspoređivanja do danas
sveprisutnog dinamičkog raspoređivanja na zahtjev.
Kod dinamičkog raspoređivanja na zahtjev razlikujemo logički i fizički adresni prostor. Logički adresni
prostor je skup adresa koje generira procesor. Logički adresni prostor zamišljeno se dijeli na jednako
velike dijelove koje nazivamo stranicama. Veličina stranice je potencija broja 2. Ako adresa ima m
adresnih bitova, ti bitovi se dijele na:
p bitova koji će odrediti adresu unutar pojedine stranice i
r = m - p bitova koji određuju redni broj stranice
Veličina stranice je 2p, adrese unutar stranice se kreću od od 0 do 2p-1. Moguće je adresirati ukupno
2r stranica , a redni brojevi stranica se kreću u granicama od 0 do 2r-1.
Fizički adresni prostor je skup adresa kojima se referencira ili naslovljava fizički ili radni spremnik.
Fizički radni spremnik se dijeli na dijelove koji su jednaki veličini stranice logičkog adresnog prostora i
te dijelove nazivamo okvirima (engl. frames). U jedan okvir fizičkog radnog spremnika može se
smjestiti jedna stranica logičkog adresnog prostora. Veličina fizičkog spremnika računala određuje broj
postojećih okvira. Uz pretpostavku da je broj postojećih okvira cjelobrojna potencija broja 2, okvire
možemo adresirati s q bitova i to tako da se redni brojevi kreću u granicama od 0 do 2q-1.
Kad procesor generira logičku adresu potrebno ju je prevesti u fizičku adresu. Postupak prevođenja je
prikazan na slici 15. Redni brojevi stranica izraženi s pomoću r bitova nadopunjeni s desne strane s p
nula čine logičku adresu prvog bajta u stranici. Sadržaji donjih p bitova daju relativnu adresu unutar
te stranice. Donjih p bitova se mogu dovesti neposredno do fizičkog spremnika i oni određuju relativnu
adresu unutar okvira u kojem se nalazi stranica. Početna adresa okvira dobiva se tako da se rednom
broju okvira izraženog s q bitova pridoda s desne strane p nula. Prema tablici, gornjih r bitova logičke
adrese (redni broj stranice) zamijeni se s q bitova fizičke adrese (redni broj okvira). Za svaki proces
operacijski sustav treba voditi tablicu prevođenja koja ima toliko zapisa koliko ima stranica u logičkom
adresnom prostoru. Redni broj stranice određuje i redni broj zapisa u tablici prevođenja i u tom zapisu
piše u kojem se okviru nalazi spremljena stranica u fizičkoj memoriji. Sve stranice programa se NE
nalaze u okvirima radnog spremnika. Samo su neke od stranica smještene u radni spremnik, a sve
ostale su pohranjene u vanjskom spremniku i dohvaćaju se na zahtjev. Procesni informacijski blok
svakog procesa potrebno je proširiti tako da sadržava i opisnik virtualnog adresnog prostora.
Pri pokretanju nekog programa mora se uspostaviti opisnik virtualnog adresnog prostora i rezervirati
odgovarajući prostor na disku. U radni se spremnik mora smjestiti barem jedna stranica i to ona u kojoj
se nalaze početne instrukcije strojnog programa. Sve ostale stranice mogu se dobavljati u trenutku
kada se za njima ukaže potreba, tj. kada se unutar procesora bude generirala adresa kojom se zahtijeva
pristup do neke stranice. Takvo postupanje se naziva straničenje na zahtjev i slijed događaja je
prikazan na slici 16.
21
Slika 15. Prevođenje logičke adrese u fizičku adresu.
Slika 16. Straničenje na zahtjev.
Procesor se pri obradi ovog prekida mora ponašati malo drugačije nego li kod obrada drugih vrsta
prekida. Procesor uobičajeno ispituje postojanje prekida pri kraju svake instrukcije i nakon što tekuću
22
instrukciju izvede do kraja prihvaća prekid. PC sadrži adresu sljedeće instrukcije i ta se vrijednost
pohranjuje u kontekstu dretve te kod ponovnog pokretanja dretve započinje sljedećom instrukcijom.
Međutim, nakon obrade prekida zbog adresiranja nepostojeće stranice mora se ponoviti instrukcija
unutar koje se pojavio prekid.
Računalna sigurnost
Osnovni pojmovi kod računalne sigurnosti su:
identifikacija = predstavljanje
autentifikacija = identifikacija + verifikacija
autorizacija = autentifikacija + provjera ovlasti tj. provjera prava pristupa
Moguće je prepoznati 6 sigurnosnih zahtjeva koji rješavaju sigurnosne prijetnje (Slika 17).
Slika 17. Sigurnosni zahtjevi
Svi sigurnosni zahtjevi osim raspoloživosti mogu se ispuniti upotrebom kriptografskim metoda.
Osnove kriptografije su prikazane na slici 18.
Slika 18. Osnove kriptografije
23
Čitljivi ili jasni tekst se kriptira funkcijom kriptiranja E i ključem kriptiranja e i dobije se kriptirani tekst
c. Kriptirani tekst c može se nesigurnim kanalom prenijeti od korisnika A do korisnika B. Na odredištu
se kriptirani tekst dekriptira funkcijom dekriptiranja D i ključem dekriptiranja d.
Kriptografske algoritme dijelimo u dvije velike grupe ovisno o vrijednostima ključeva za kriptiranje e i
ključeva za dekriptiranje d:
simetrični
Ključevi za kriptiranje i dekriptiranje su isti tj. e = d = K (simetrični, sjednički ili tajni ključ)
(npr. DES, 3-DES, IDEA, AES, Blowfish, RC6, GOST, Mars, Serpent, Loki, CAST...)
asimetrični (algoritmi s javnim ključem)
Ključevi za kriptiranje i dekriptiranje su različiti tj. e d (P - javni i S - privatni ključ). Javni i
privatni ključ dolaze u paru tj. sve što se kriptira javnim ključem moguće je dekriptirati samo
privatnim ključem i obrnuto, sve što se kriptira privatnim ključem, moguće je dekriptirati samo
javnim ključem.
(npr. RSA, Diffie-Hellman, RPK, ECES, ElGamal, LUC, Blum Goldwaser...)
Kod simetričnih kriptografskih algoritama, preporuka je koristiti AES (Advanced Encription Standard).
AES je simetrični blok algoritmi s javnim izvornim tekstom programa. Blok podataka koji se kriptira je
minimalne veličine 128 bita, a veličina ključa od 128, 192 i 256 bita. Široko je podržan programski i
sklopovski.
Također je važno odabrati način kriptiranja. Kod ECB - Electronic Codebook načina kriptiranja isti blok
čistog teksta uz korištenje istog tajnog ključa rezultira uvijek s istim kriptiranim tekstom (slika 19.).
.
Slika 19. ECB način kriptiranja
Kod Cipher Block Chaining (CBC) načina kriptiranja koristi se inicijalizacijski vektor koji ne mora biti
tajni, ali koji bi trebalo mijenjati ako se koristi isti tajni ključ (slika 20).
24
Slika 20. CBC način kriptiranja
Za kriptiranje toka podataka koriste se načini kriptiranja Cipher Feedback (CFB), Output Feedback (OFB)
(Slika 22.) i CTR (Slika 23.) koji omogućavaju generiranje jako dugih ključeva, a samo kriptiranje se
obavlja korištenjem logičke operacije isključivo ILI (XOR).
Slika 21. CFB i OFB način kriptiranja
Slika 22. CTR način kriptiranja
Kod asimetričnih kriptografskih algoritama, preporuka je koristiti RSA. RSA se zasniva na teško
rješivom matematičkom problemu faktoriziranja velikih brojeva. Koraci kod izgradnje RSA
kriptosustava u sljedeći:
1. odabrati p >> i q >> (p >10100 , q >10100 )
2. izračunati n = p q
3. izračunati umnožak (n) = (p - 1) (q - 1)
4. odabrati e < (n) , tako da je nzd [e, (n)] = 1
5. izračunati broj d < (n) tako da vrijedi
e d 1 (mod (n))
ili drugačije zapisano
e d = k (n) + 1
6. P = (e, n ) – javni ključ (public key)
7. S = (d, n ) – privatni ključ (private key)
25
Kriptiranje se svodi na modularno potenciranje tj. tekst koji se kriptira se tumači kao niz brojeva (svi
moraju biti manji od n) i svaki broj se zasebno kriptira:
Kriptiranje: C = RSA (M , S ) = M e mod n, P =(e, n )
Dekriptiranje: P = RSA-1(C , P ) = C d mod n, S =(d, n )
Kada Branko i Ana žele komunicirati obznanjuju svoje javne ključeve PA i PB te čuvaju samo za sebe
svoje privatne ključeve dekriptiranja SA i SB. Ana, koja želi poslati poruku M Branku, nekako doznaje
njegov javni ključ PB , kriptira poruku s tim ključem. Jedino Branko zna svoj privatni ključ dekriptiranja
SB i jedino on može dekriptirati poruku.
Funkcije za izračunavanje sažetka su jednosmjerne funkcije koje od teksta proizvoljne duljine
proizvode sažetak iste duljine. Sažetak ima istu ulogu kao i otisak prstiju kod ljudi tj. Jedinstven je za
svaku poruku. Svojstva funkcija za izračunavanje sažetaka su:
Otpornost na izračunavanje originala
H=h(M) M=h-1(H) ne postoji
Otpornost na izračunavanje poruke koja daje isti sažetak tj. za poznati M i H=h(M) je
nemoguće pronaći M’ koji daje isti H
Otpornost na kolizije tj. nemoguće je pronaći bilo koje dvije poruke M1 i M2 za koje se dobiva
isti sažetak h(M1)=h(M2)
Preporuka je koristiti funkcije za sažimanje SHA-2 i SHA-3.
Digitalna omotnica je kriptografski postupak kojim se ostvaruje tajnost. Pošiljatelj kriptira poruku
proizvoljnim ključem K simetričnim algoritmom kriptiranja. Simetrični (sjednički) ključ K se kriptira
javnim ključem primatelja PB . Kriptirana poruka i kriptirani ključ čine digitalnu omotnicu.
Digitalni potpis je kriptografski postupak kojim se ostvaruje autentifikacija, integritet i neporecivost.
Pošiljatelj iz poruke izračunava sažetak koristeći funkciju sažimanja. Sažetak se potom kriptira
privatnim ključem pošiljatelja SA i dodaje se izvornoj poruci. Sažetak poruke kriptiran privatnim
ključem pošiljatelja je digitalni potpis. Provjerava se tako da primatelj izračuna sažetak od poruke
koristeći istu funkciju sažimanja. Zatim s javnim ključem pošiljatelja dekriptira sažetak i uspoređuje ta
dva sažetka. Ako su sažetci jednaki digitalni potpis je u redu i primatelj je siguran da je pošiljatelj poslao
poruku, da je poruka nepromijenjena i da pošiljatelj ne može poreći da je on poslao poruku jer samo
on je vlasnik privatnog ključa s kojim je mogao napraviti digitalni potpis.
Digitalni pečat je digitalno potpisana digitalna omotnica. Digitalnim potpisom nije osigurana tajnost
poruke (poruku svatko može pročitati), ali su osigurani autentičnost, integritet i neporecivost.
Digitalnom omotnicom je osigurana samo tajnost. Digitalni pečat osigurava sva četiri sigurnosna
zahtijeva: tajnost, autentičnost, integritet i neporecivost.
Jedna od uloga operacijskog sustava je dopuštanje pristupa pojedinim resursima. Mehanizmi
dopuštanja pristupa (access control) sredstvima nazivaju se autorizacijom pristupa (authorization). U
tom procesu razlikujemo:
subjekte: korisnici ili njihovi procesi ili čak neke dretve unutar tih procesa
objekte zaštite: sredstva koja se zaštićuju
zaštitna pravila (protection rules)
Za svaki par subjekt-objekt treba odrediti pravo pristupa (obuhvaća i način na koji se objekt smije
upotrebljavati) npr. r,w,x ili prazno polje nema prava pristupa.
26
Prava pristupa mogu se prikazati u obliku matrice pristupa gdje svaki subjekt dobiva svoj redak i svaki
objekt svoj stupac. Budući da je takva matrica većinom prazna postoje i alternativni način zapisa - liste:
Lista prava pristupa objektu (access control list )- neprazni elementi stupaca matrice
pristupa
Lista dozvola za pristup objektima (capability tickets) - neprazni elementi pojedinih redova
matrice
Autntifikacijski protokol Kerberos je mrežni autentifikacijski protokol koji koriste većina verzija
operacijskog sustava Microsoft Windows i neke verzije ostalih operacijskih sustava. Osnovna
pretpostavka kod korištenja Kerberosa je da su računala pouzdana, ali da mreža nije pouzdana. Koristi
simetrični kriptosustav, treća je strana kojoj svi vjeruju, traži unos lozinke samo jednom (single sign-
on) i to na početku sjednice, lozinka ne putuje mrežom i osjetljivi podaci se prenose u kriptiranom
obliku. Koristi se za ostvarivanje windows domena.
Infrastruktura javnih ključeva (PKI – Public Key Infrastructure) primarno služi za nedvojbeno
povezivanje javnih ključeva sa korisnicima te provjera jesu li ključevi trenutno važeći. Javni ključevi i
informacije o njihovim vlasnicima su zapisane u obliku digitalnih certifikata. Digitalni certifikat je
svjedodžba koja potvrđuje da je određeni korisnik u trenutku izdavanja certifikata posjedovao privatni
ključ koji odgovara javnom ključu u certifikatu. Dijelovi PKI sustava su:
1. Korisnik
2. Certifikator (CA - Certificate Authority) – stvara i izdaje certifikate
3. Registrator (RA - Registration Autrhority) – prima zahtjeve od korisnika, provjerava njihov identitet
i prosljeđuje zahtjev CA, ali ne izdaje certifikate
4. Baza certifikata
– važeći certifikati sa datumom isteka
– opozvani certifikati (CRL – Certificate Revocation List)
5. Sustav za upravljanje certifikatima (objavljivanje, provjera, dohvat certifikata po zadanim
uvjetima)
6. Sustav za rekonstrukciju izgubljenih ključeva
7. Sustav za pouzdano vremensko označavanje dokumenata i potpisa (TSA – Time Stamp Autrhority)
Najraširenija norma koja propisuju sadržaj certifikata je X.509.