uos skripta foi

26
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

Upload: sophys

Post on 11-Jul-2016

382 views

Category:

Documents


39 download

DESCRIPTION

Uvod u operacijske sustave - FOI

TRANSCRIPT

Page 1: UOS Skripta FOI

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

Page 2: UOS Skripta FOI

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.

Page 3: UOS Skripta FOI

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.).

Page 4: UOS Skripta FOI

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.

Page 5: UOS Skripta FOI

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

Page 6: UOS Skripta FOI

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.

Page 7: UOS Skripta FOI

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

Page 8: UOS Skripta FOI

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

Page 9: UOS Skripta FOI

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

Page 10: UOS Skripta FOI

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.

Page 11: UOS Skripta FOI

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

Page 12: UOS Skripta FOI

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.

Page 13: UOS Skripta FOI

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.

Page 14: UOS Skripta FOI

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.

Page 15: UOS Skripta FOI

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.

Page 16: UOS Skripta FOI

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.

Page 17: UOS Skripta FOI

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).

Page 18: UOS Skripta FOI

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

Page 19: UOS Skripta FOI

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

Page 20: UOS Skripta FOI

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.

Page 21: UOS Skripta FOI

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

Page 22: UOS Skripta FOI

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

Page 23: UOS Skripta FOI

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).

Page 24: UOS Skripta FOI

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)

Page 25: UOS Skripta FOI

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.

Page 26: UOS Skripta FOI

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.