Operativni sistemi

Seeznadar: OS i RM
Operativni sistem
mi
prikupio i ob
bradio Miroslav Mihaljjišin
materijali
m
preuuzet sa
ms/01/operatin
ngsystems.htm
m
htttp://www.znnanje.org/abc//tutorials/opeeratingsystem
(A
Autori: Eugennija Mihal i Bojan
B
Stojkov
vić)
(Autori:
(
Borisslav Đorđevićć, Dragan Pleeskonjić, Nem
manja Maček))
htttp://perun.pm
mf.uns.ac.rs/oold/budimac/o
os/geller-htm
ml/index.html
htttp://softwaree.sveznadar.innfo
htttp://www.stssmihajlopupinn.edu.rs/doku
umenta/Memoorija.pdf
htttp://www.stssmihajlopupinn.edu.rs/doku
umenta/Sistem
mi_datoteka.p
pdf
htttp://es.elfak..ni.ac.rs/Papeers/DBarac%2
20-%20RTOS
S%20za%20m
male%20emb
bedded%20siisteme.pdf
www.program
w
mmer.co.me/U
USB.../USB%
%20Monitor%
%20Documentt.doc
htttp://etsracunnari.wordpress.com/operativni-sistemi/cciljevi-i-zadaaci-operativnih-sistema/
www.mginform
w
matika.com/
htttp://www.inffoteh.rs.ba/raad/2012/RSS--6/RSS-6-10.ppdf
htttp://www.infformatika.buzzdo.com/s734
4.htm
htttp://www.ricchardgoyette.com/SEMIN
NIXSecureCom
mputingBoottProcess.html
htttp://bs.wikippedia.org/wikki/Operativni_
_sistem
htttp://bs.wikippedia.org/wikki/Windows_7
7
htttp://hr.wikippedia.org/wikki/Microsoft_W
Windows
htttp://en.wikippedia.org/wikki/Unix
htttp://itc.wikiddot.com/istoriija-operativniih-sistema
htttp://itc.wikiddot.com/slojeeviti-operativn
ni-sistemi-layyered-systems
htttp://carstvolookvanja.com//knjige/progrramiranje/proogramski.pdf
htttp://msdn.miicrosoft.com//en-us/library
y/aa450748.asspx
htttp://windows.microsoft.com/en-US/windows/homee
htttp://technet.m
microsoft.com
m/en-us/magaazine/2008.033.kernel.aspx
x?pr=blog
1
Seznadar: OS i RM
Operativni sistemi
prikupio i obradio Miroslav Mihaljišin
Sadržaj
Šta je računar i šta je OS ...........................................................................................................................................4 Funkcije i osobine OS...............................................................................................................................................5 Razvoj OS .................................................................................................................................................................6 Klasifikacija operativnih sistema............................................................................................................................10 Jednokorisnički OS-MS DOS ..............................................................................................................................10 Proces učitavanja DOS operativnog sistema .................................................................................................11 Korišćenje i izvršenje naredbi DOS operativnog sistema ..............................................................................12 Moduli kod OS .......................................................................................................................................................13 Modul za upravljanje procesorom .................................................................................................................13 Modul za upravljanje I/O kontrolerima .........................................................................................................13 Modul za upravljanje radnom memorijom ....................................................................................................13 Modul za upravljanje fajlovima .....................................................................................................................13 Modul za upravljanje procesima ....................................................................................................................13 Moduli i hijerajhija ........................................................................................................................................14 Slojeviti operativni sistemi (layered systems) ......................................................................................................14 Razlika između slojevite i monolitne realizacije OS .........................................................................................15 Tipovi jezgre ......................................................................................................................................................15 Monolitni OS –Monolitno jezgro- -Kernel-...........................................................................................................16 Mikro jezgro (Mikrokernel) ..................................................................................................................................17 Privilegovani režim rada i sistemski pozivi ............................................................................................................18 Sloj apstrakcije hardvera HAL –virtuelni uređaji i particionisanje ........................................................................19 Osnovne karakteristike Windows OS .................................................................................................................20 Windows model programiranja ..........................................................................................................................20 Sistemski pozivi i API kod Windowsa ...............................................................................................................21 Windows ide dalje ..............................................................................................................................................21 Upravljanje procesima .........................................................................................................................................22 Program i proces.................................................................................................................................................22 Procesi i niti........................................................................................................................................................23 Kontrolni blok procesa –PCB- .......................................................................................................................23 “Laki” i “teški” procesi ..................................................................................................................................24 Osnovna stanja procesa ......................................................................................................................................25 Operacije nad procesima ....................................................................................................................................26 Kreiranje procesa ...........................................................................................................................................26 Završetak procesa ..........................................................................................................................................26 Odnosi među procesima .....................................................................................................................................27 Međusobno isključenje procesa .....................................................................................................................27 Sinhronizacija procesa ...................................................................................................................................27 Uzajmno blokiranje procesa – zastoj .............................................................................................................27 Raspodjela poslova .............................................................................................................................................27 Konkurentni procesi ...........................................................................................................................................28 Problem upravljanja konkurentnim procesima ..............................................................................................28 2
Seznadar: OS i RM
Operativni sistemi
prikupio i obradio Miroslav Mihaljišin
Pojam, struktura, upravljanje i zaštita fajlova ..................................................................................................29 Pojam fajla - datoteka (file) ................................................................................................................................29 Format ili tipovi datoteka ...................................................................................................................................30 Identifikovanje i otvaranje fajla kod Unixa ...................................................................................................30 Logički i fizički sistem za upravljanje datotekama ............................................................................................32 Logička struktura i organizacija datoteka (FILE SYSTEM) ..............................................................................32 Direktorijumi .................................................................................................................................................32 Označavanje datoteka ....................................................................................................................................33 Realizacija sistema datoteka ..........................................................................................................................33 Fizička struktura sistema datoteka .....................................................................................................................34 Organizacija sistema datoteka kod diskova (sekundarne memorije)..................................................................34 Organizacija datoteka – logička struktura ..........................................................................................................35 Upravljanje podacima (datotekama) ..................................................................................................................37 Operacije nad datotekama ..............................................................................................................................37 Zaštita fajlova .....................................................................................................................................................38 Upravljanje memorijom.......................................................................................................................................40 Dodjeljivanje memorije ......................................................................................................................................40 Problem upravljanja memorijom ........................................................................................................................40 Memorijski sistem sa više nivoa ....................................................................................................................41 Logičko i fizičko adresiranje memorija..............................................................................................................43 Vezivanje adresa ................................................................................................................................................43 Privremena razmjena - SWAP ...........................................................................................................................45 Virtuelna memorija ............................................................................................................................................45 Raspodjela memorije .............................................................................................................................................46 Multiprogramiranje i statičke particije ...............................................................................................................46 Diskontinualno dodjeljivanje memorije-dinamička alokacija straničenjem ......................................................47 Straničenje .....................................................................................................................................................47 Segmentacija memorije..................................................................................................................................48 Segmentacija sa straničenjem ........................................................................................................................49 Fragmentacija memorije .....................................................................................................................................50 Zaštita memorije .................................................................................................................................................51 Upravljanje uređajima .........................................................................................................................................52 U/I moduli ..........................................................................................................................................................52 Blok dijagram U/I modula..................................................................................................................................53 Tehnike izvršavanja U/I operacija ......................................................................................................................53 Programirani U/I model .................................................................................................................................53 Prekidina tehnika U/I – Interapt U/I model ...................................................................................................54 Razlike između programiranog i prekidnog modela pristupa U/I uređajima .................................................54 Direktan pristup –DMA model pristupa U/I uređajima .................................................................................55 Zaštita operativnih sistema ..................................................................................................................................56 Vrste napada .......................................................................................................................................................57 Virusi .............................................................................................................................................................58 Crvi ................................................................................................................................................................58 Trojanski konj ................................................................................................................................................59 Mehanizmi zaštite i autentikacija .......................................................................................................................59 3
Seznadar: OS i RM
Operativni sistemi
prikupio i obradio Miroslav Mihaljišin
Šta je računar i šta je OS
Računar je uređaj (hardware) koji obrađuje, pamti ili razmjenjuje informacije. Način na koji to radi je određen u
programski. Program je niz komandi koje određuju šta treba uraditi sa podacima.
Dva neodvojiva dijela računara su:
•
hardver – uređaj (hardware ) i
•
softver – program (software).
Pošto hardver ne može da radi bez softvera, a softver nema smisla bez hardvera jasno je da oni čine računar. Na
primjer, ako zamislimo da je ljudsko biće računar, onda bi hardver predstavljale ćelije (tkiva, organi, ...), a misli i ideje
bi predstavljali softver.
U širem smislu računar (computer) se definiše kao matematička mašina.
Češće se koristi nešto uža definicija koja računar definiše kao elektronsku, digitalnu, reprogramibilnu mašinu
koja može da obavlja logičko matematičke operacije, unos, obradu i pamćenje podataka.
•
elektronska znači da osnov građe računara čine elektronske komponente
•
digitalna da obavlja operacije sa brojevima (digit - broj)
•
reprogramibilna znači da se redoslijed operacija može programirati i mijenjati.
Najrašireniji tip računara poznat kao PC (Personal Computer - lični računar), je univerzalan računar namijenjen za
jednog korisnika koji na njemu obavlja različite, ali relativno proste poslove unosa obrade i pamćenja (čuvanja)
podataka.
Računar čini jedinstvo fizičkih i programskih resursa.
Teoretski, svaki korisnik, može sam da bira i odlučuje o načinu i konceptu rada računara. No, to bi od korisnika
zahtijevalo multidisciplinarno znanje: od matematike, elektronike, komunikacija, mehanike do ergonomije i ko zna
čega još. Praktično od takvog računara bi rijetko ko imao stvarne koristi.
Hardverom treba upravljati, tj. na neki način treba
„natjerati“ procesor da sabere dva broja, disk da
zapamti određenu sliku, monitor da prikaže podatke
kako treba, pointer da prati kretanje miša, štampač da
odštampa željene podatek itd. To je posao softvera ili
programa.
Dakle, ispravan hardver ne radi ako nema softvera. Tip
softvera koji upravlja hardverom zove se sistemski
softver (jer upravlja sistemom).
Softver ne služi samo da upravlja hardverom nego i za pružanje usluga korisniku (čovjeku). Tako su za razne poslove
kreirani različiti programi. Ako želite da otkucate neki tekst određeni program vam nudi tu mogućnost. Ako želite da
kreirate neku sliku koristićete neki drugi program. Čak i korisnik može napraviti neki svoj program za neku posebnu
svrhu. Ova vrsta softvera koja pruža razne usluge korisnicima tj. ima konkretnu primjenu (application) u
svakodnevnom poslu se zove aplikativni softver (primijenjeni ili upotrebni program).
Softver dijelimo na:
•
sistemski (operativni sistem za upravljanje hardverom) i
•
aplikativni (primjenjivi).
Softver se kreira pomoću nekog programskog jezika.
Najpoznatiji programski jezici su: Basic, Pascal, Fortran, C, C++, Java, Delphi, VisualBasic itd.
Većina današnjih operativnih sistema je kreirana („napisana“) u C-u.
Generalno, ne postoji kompletna i adekvatna definicija operativnog sistema.
Operativni sistem se može uporediti sa vladom. Komponente računarskog sistema su hardver, softver, i podaci, a
operativni sistem osigurava sredstva za pravilno korištenje navedenih komponenti. Poput vlade operativni sistemi ne
izvršavaju operacije radi sebe samih, nego jednostavno osiguravaju okruženje u kojem drugi programi mogu
obavljati koristan posao.
Operativni sistem se može vidjeti i kao raspoređivač resursa (resource allocator), koji se u računarskom sistemu
ponaša kao upravitelj (manager) kompjuterskih resursa kao što su CPU time ili ciklusi na procesoru, memorija,
ulazno-izlazni uređaji itd., koje operativni sistem dodjeljuje specifičnim programima i korisnicima kako bi oni obavili
"koristan" posao.
4
Seeznadar: OS i RM
Operativni sistem
mi
prikupio i ob
bradio Miroslav Mihaljjišin
Pod pojmom ooperativnog sistema
s
u klassičnom smisllu podrazumjeva se "softver potreban zza izvršavanjee (aplikativniih)
prrograma i za koordinacijuu aktivnosti raačunarskog siistema".
Najčešća
N
definnicija operativnih sistema kaže da je ooperativni sisttem jedan pro
ogram koji see cijelo vrijem
me izvršava na
n
kompjuteru, pooznatiji pod nazivom
n
kern
nel, s tim da sse svi ostali dijelovi
d
softveera posmatrajuu kao aplikattivni program
mi.
Prema međunarodnom stanndardu ISO/IIEC*, Operattivni sistem je softver koji kontrolišše izvršavanjje programaa i
koji
k može pru
užati servise (usluge), kao što su dodjjeljivanje resursa, raspoređivanje, U
U/I kontrola i menadžment
podacima.
*
dizaciju (ISO)) i
ISO/IEC preedstavlja zajeednički tehniččki komitet kkoji čine Interrnacionalna organizacijaa za standard
In
nternacionalnna komisija zaa elektrotehn
niku (IEC).
Međutim
M
po m
modernom shhvatanju operrativni sistem
m je “Sve što
o proizvođač isporuči podd tim nazivom
m”što najbollje
illustruje primjjer Microsoftt Windows-a, gdje pod opeerativnim sisttemom dobija
amo: od “stva
varnog” OS-a
a do standarnnih
ko
orisničkih alaata, kalkulatoora, programa
a za crtanje i sviranje, Intternet mejlera
a i čitača...
Funkcije
F
e i osobin
ne OS
gramu potreb
bno za rad.
Pod pojmom rračunarski resursi podrazzumjevamo ssve što je prog
Hardverski
H
rresursi su proocesori, operrativna memoorija i ulazno
o/izlazni uređ
đaji, a softveerski resursii su programii i
podaci, to jest fajlovi.
OS
O kontrolišee i upravlja računarom
r
uz
u pomoć insstrukcija korisnika. Ako bi grafički pprikazali odn
nos korisnikaa i
raačunara ondaa bi to izgleddalo kao na slici 1. Naim
me, korisnik radi na neko
oj aplikaciji (unosi tekst, sluša muzikku,
prrojektuje, raččuna, ...). Apllikacija koristti operativni ssistem da bi izvršila obrad
du podataka nna hardveru.
Aplikativni
A
sooftver ili proosto aplikacijje se koristee za izvršavaanje određeniih poslova nna računaru: obrada tekstta,
taabelarni prorračuni, crtanje, obrada slike, obrada zvuka, komp
ponovanje, kreiranje
k
anim
macija, učenjje, zabava ittd.
Aplikacije
A
su oonaj dio račuunara koji krajjnji korisnik nnajviše koristti.
Aplikacije
A
korriste operativnni sistem da bi
b pristupile hhardveru. Zbo
og toga se aplikacije kreirraju i prilagođ
đavaju za raznne
op
perativne sistteme. Drugm
m riječima, apllikacija izrađeena za Windo
ows obično neće
n
raditi na PC koji korissti Linux OS..
Poznate aplikaacije koje se svakodnevno
s
o koriste su: zza unos i obraadu teksta, zaa tabelarnu obbradu podatak
ka, za kreirannje
ka, za kreirannje WEB stranica za čitan
nje WEB straanica, za kreiranje i obraddu
prrezentacija, zza kreiuranje baza podatak
sllike, za kreiraanje grafika i crteža, za ob
bradu zvuka, iitd.
Sličn
ne aplikacije ppostoje za svee OS. Ovo su
u aplikacije oppšte namjenee.
Pored
d njih, postooje aplikacije za posebn
ne namjene (bankarsko poslovanje,
evideencija građanna, statistika, finansijko po
oslovanje, itd)).
Koriisnici kroz aaplikacije koriste
k
funkccije računarra: obrada, pamćenje
p
i
preno
os informacijja.
Da bi
b aplikacije pravilno fun
nkcionisale trreba da su prrilagođene operativnom
o
sistem
mu i da korisste njegove prrednosti.
Operativni
O
sisttem ima dvosstruku ulogu.
S jedne stranee, on upravlja dijelovima od kojih se sastoji račun
nar (proceso
or, I/O konttroleri, radna memorija), sa
otrebljeni.
ciiljem da oni bbudu što cjeliishodnije upo
S druge stranee, operativni sistem
s
stvaraa za krajnjeg kkorisnika raččunara pristup
pačno radno ookruženje, taako što pretvaara
uje datotekam
ma i procesima.
raačunar od maašine koja rukkuje bitima, bajtima i blokoovima u mašiinu koja ruku
5
Seznadar: OS i RM
Operativni sistemi
prikupio i obradio Miroslav Mihaljišin
Osobine OS
Iz niza osobina koje mogu posjedovati OS naglašavamo:
•
Istovremenost - paralelizam (Concurrency)
•
Zajedničko korišćenje, odnosno dijeljenje resursa (Sharing)
•
Pouzdanost (Reliability)
•
Sigurnost (Security)
•
Upotrebljivost (Usability) i
•
Djeljivost - modularnost (Modularity)
Funkcije OS
Za razliku od karakteristika, koje su poželjna svojstva, funkcije sistema su zadaci koje sistem mora da realizuje.
Navešćemo samo globalne funkcije koje moraju biti rješene u svakom OS:
•
upravljanje računarskim resursima:
1. upravljanje procesorom (CPU),
2. upravljanje memorijom (RAM),
3. upravljanje I/O uređajima,
4. upravljanje podacima i
5. upravljanje aplikacijama
•
interpretiranje i izvođenje kontrolno upravljačkih komandi i programa,
•
upravljanje poslovima i zaštitu,
•
podršku daljinske obrade i rada u mreži.
Kako bi se omogućila efikasnost svih računarskih resursa, u svakom operativnom sistemu moraju biti na određen
način riješene opšte funkcije, a to su:
• upravljanje zadacima obrade (Job Managment)
• upravljanje podacima (Data Managment)
• upravljanje ulazom i izlazom (Device Menagment)
• upravljanje memorijom (Memory Menagment)
• obrada prekida (Interrupt Handling)
• dodjeljivanje procesora (Processor Scheduling)
• zaštita (Protection)
• podržavanje daljinske obrade (TP Monitoring)
• interpretiranje i izvođenje kontrolno-upravljačkih naredbi (J/CL)...
Moduli koji upravljaju svakim od navedenih resursa računarskog sistema je da treba da obezbjede:
•
vođenje evidencije o resursu
•
donošenje odluke o dodjeli resursa
•
alokaciju resursa i
•
dealokaciju resursa.
Razvoj OS
U prvoj generaciji računarskih sistema operativni sistemi nisu postojali, tako da je operater koji je opsluživao
računarski sistem, bio u obavezi da sve potrebne radnje, prije svega vezane za ulaz i izlaz podataka nekog programa,
obavi sam.
Kompjuteri prve generacije (1945–1955), čiju su osnovu činile
vakuumske cevi (do 20.000 cevi po računaru), bili su ogromnih
dimenzija i veoma skupi. Koristila ih je uglavnom vojska.
6
Seznadar: OS i RM
Operativni sistemi
prikupio i obradio Miroslav Mihaljišin
Ovi računari su bili jako spori, programiralo se na mašinskom jeziku, dok su simbolički jezici (uključujući i
asembler), kao i operativni sistemi, u to vrijeme bili nepoznati. Ljudi koji su radili na tim računarima obavljali su sve
poslove – od programiranja do održavanja računara.
U prvoj generaciji računara, opsluživanje računarskog sistema bilo je potpuno prepušteno operateru, koji je morao
da pripremi sve što je potrebno da se zadatak obrade može obaviti. Čovjek je, dakle, imao punu kontrolu nad
računarskim sistemom. Operater je bio u mogućnosti da sve potrebne radnje obavi na vrijeme, jer je sistem bio spor i
izvršavao se samo jedan program, tj. obavljao se samo jedan zadatak.
Može se reći da je iskorišćenjee računarskog sistema, tj. njegovih najvažnijih resursa – centralnog procesora i
centralne memorije – bilo slabo. Najveći dio vrijemena trošio se na poslove operatera i ulazno-izlazne operacije, a
mnogo manji dio na rad centralnog procesora. Iako je ovakav sistem bio krajnje neefikasan, odnos tih vrijemenskih
perioda bio je u prihvatljivim granicama zbog relativno male brzine samog centralnog procesora.
U drugoj generaciji računarskih sistema dolazi do nastanka prvih kontrolnih programa koji su pomagali operateru da
opslužuje računarski sistem. Tada su, dakle, prvi put funkcije opsluživanja i upravljanja sistemom podijeljene između
operatera i kontrolnih programa. Ali ti kontrolni programi nisu bili toliko sofisticirani da bi ih mogli nazvati operativni
sistem.
Osnovu računara druge generacije (1955–1965) činili su tranzistori, pa
su računari postali manji, pouzdaniji i jeftiniji. Računare druge generacije
su, osim vojske, kupovale i velike korporacije i univerziteti. Računari su
bili smješteni odvojeno, u posebnim sobama, koje su se dijelile u tri
funkcionalne celine: ulazna soba, centralni računar i izlazna soba.
Programeri su pisali programe na papiru, većjina na programskom jeziku FORTRAN, zatim su se ti programi
prenosili na bušene kartice, koje su se ostavljale u sobi sa ulaznim računarom (input room).
Operator sistema je, zatim, uzimao bušene kartice i ubacivao ih u računar, i to prvo kartice sa prevodiocem
FORTRAN-a, a potom bušene kartice s programom koji treba izvršiti. Glavni računar je obavljao posao, a rezultat se
dobijao takodje na bušenim karticama, koje su se prenosile u prostoriju sa rezultatima (output room). Ovde se mnogo
vrijemena trošilo na šetače izmedju raznih prostorija sa bušenim karticama. Operativni sistem kao zaseban pojam još
uvek nije postojao.
Dalje se kao poboljšanje uvodi paketna, tj. grupna obrada (batch processing), zasnovana na upotrebi magnetne trake
– uređaja mnogo bržeg od bušenih kartica. Pri paketnoj obradi, u ulaznoj sobi sa poslovima sakuplja se jedna količina
sličnih programa (na Primjer, svi programi koji zahtevaju prevodilac FORTRAN-a), koji se pomoću jeftinijeg
računara (npr. IBM 1401) s bušenih kartica prenose na magnetnu traku. Posle toga se magnetna traka prenosi u sobu s
glavnim računarom, tj. sa moćnijim i skupljim računarom, predvidjenim za izvršavanje samog programa (npr. IBM
7094). U glavni računar se učitava poseban program koji je zadužen da sa trake sa poslovima programe redom učitava
i izvršava. Taj program se može smatrati pretkom operativnih sistema.
Nakon izvršavanja programa, rezultati se snimaju na drugu magnetnu traku koju operater prenosi do trećeg računara,
zaduženog za prebacivanje rezultata sa magnetne trake na bušene kartice. Manji računari (ulazno-izlazni) nisu
direktno vezani za glavni računar, što znači da rade u off-line režimu (u režimu gdje nisu bili u medjusobnoj
komunikaciji).
U drugoj generaciji računarskih sistema povećava se brzina rada centralnog procesora, kapaciteti centralne memorije i
eksternih (masovnih) memorija, pojavljuju se nove i brže ulazno-izlazne jedinice. Programi se pišu na simboličkom
mašinskom jeziku, asembleru ili na višem programskom jeziku (FORTRAN). Operater više nije u stanju da efikasno
opslužuje računarski sistem, jer su njegove reakcije suviše spore. Jedino rješenje se moglo naći u prebacivanju niza
kontrolnih funkcija sa operatera na sam računarski sistem, to jest na posebne kontrolne programe. Otuda su funkcije
opsluživača i upravljača sistemom bile podjelljene izmedju operatera i kontrolnih programa. Ti programi se uključuju
u odredjenim situacijama, kao što su, na Primjer, priprema programa za izvodjenje, kontrola ulaznih i izlaznih uredjaja
i razni poslovi oko učitavanja programa i pripreme za njegovo izvodjenje. Dakle, u računarima druge generacije
razlikuju se dvije osnovne vrste programa: kontrolni i korisnički.
U trećoj generaciji računarskih sistema, kontrolno upravljačke funkcije se još više prebacuju na sam računar i zbog
toga dolazi do nastanka većeg broja kontolnih i upravljačkih programa velike kompleksnosti. Skup svih tih programa
nazvan je operativni sistem.
7
Seeznadar: OS i RM
Operativni sistem
mi
prikupio i ob
bradio Miroslav Mihaljjišin
Računari trreće generacije (1965––1980) prav
ve se od
integrisanih kola (IC). Početkom
P
šezzdesetih god
dina većina
v
računarra:
proizvođačaaa pravi dvije vrste
•
jedn
nu bržu verziju
u (kao IBM 77094) i
•
jedn
nu slabiju (kao
o IBM 1401),,
što je skup poduhvat.
Novi
N
korisnicii računara naajpre žele slab
bije modele kkoji su jeftiniiji, dok će im
m jači, brži i skuplji modeeli biti potrebbni
teek nakon izveesnog vrijemeena. IBM taj problem pokkušava da razzreši uvodjenjjem klase raččunara IBM System/360.
S
T
To
jee serija komppatibilnih raččunara različčitih snaga. S
Svaki od oviih računara je
j pogodan i za naučnu i za poslovnnu
prrimenu, pa jje time podjeela računara na ove dvij e vrste nestaala. Ovaj koncept su preeuzeli i ostalli proizvoođaači
raačunara.
Računari
R
iz seerije System//360 radili su
u pod operattivnim sistem
mom OS/360, koji je bio veoma glom
mazan i prepuun
grrešaka. S razzvojem discippline poznatee pod imenom
m softversko inženjerstvo (software enngineering ), uvode se novve
fu
unkcije:
multipprogramiranjee, (multiprog
•
gramming)
višesttruke ulazno-iizlazne (U/I) operacije (sppool)
•
podjella računarskoog vrijemena (time-sharingg).
•
Kod
K treće geneeracije računara posebno treba
t
istaći poojavu dva opeerativna sisteema : MULT
TICS i UNIX.
Projekat MUL
LTICS (MU
ULTIplexed In
nformation aand Computin
ng Service) neuspela je iideja kompan
nija MIT, Beell
Labs
L
i Generaal Electric da se napravi moćan
m
računarr i operativni sistem koji će
ć biti u stanj u da radi sa velikim
v
brojeem
teerminala. Osnnovna ideja je preuzeta izz modela distrribucije elekttrične energijje – u tom m
modelu, dovolj
ljno je da svaaki
korisnik koji ppoželi da upottrebi neki eleektrični aparatt, taj isti aparrat samo prilju
uči na elektriičnu mrežu. Sličan
S
model su
ostoji moćan centralni
c
račuunar, a da graadjani kod kuuće
pokušali da naaprave i sa raččunarima: ideeja je da u jeddnom radu po
maju terminaale kojima preko
p
modem
ma pristupajuu glavnom računaru.
r
Ov
vaj model see može smaatrati pretečoom
im
raačunarskih m
mreža i Interneeta.
Drugi
D
operativvni sistem, UNIX,
U
uproššćena je varijjanta MULTICS sistema,, koja je dživvela praktičn
nu realizacijuu i
ek
kspanziju do današnjih daana. Ken Tho
ompson, jedaan od naučnik
ka i programeera kompanijee Bell Labs, koji
k je radio na
n
raazvoju projekkta MULTICS
S, napisao je za računar P
PDP-7 mini veerziju MULT
TICS sistema.. Posle toga je nastao UNIIX
(U
UNI= jedan, X = CS = Coomputing Serv
vice).
Računari
R
trećee generacije zvali
z
su se miini računari:: prvi računarr je DEC-ov (Digital
(
Equip
ipment Corpo
oration) PDP--1,
do tada najmaanji i najjeftinniji računar. Koštao
K
je tadaa “samo” 120
0.000 dolara. U trećoj genneraciji račun
narskih sistem
ma,
bog pojave multiprogram
miranja i porasta brzina,, veličine memorije
m
i brroja ulaznih--izlaznih jediinica, još viiše
zb
kontrolno-upraavljačkih funnkcija prebaccuje se sa ččovjeka na računar.
r
Dakle, čovjek ddefinitivno gu
ubi mogućnoost
m sistemu i uupravljanja njjome i sve štto je mogućee prebacuje see na računarsski
kontrole internne situacije u računarskom
grama nazivaa se jednim iimenom: opeerativni sistem
m.
siistem, tj. na pojedine sisttemske progrrame. Skup ssvih tih prog
Programer se oslobadja nizza složenih rutinskih
r
posllova i pruža mu se mogućnost većeg aangažovanja na kreativnoom
No, pored konntrolno-uprav
vljačkih progrrama u, račun
narima treće generacije
g
razzvijen je i čitav niz uslužnnih
dijelu posla. N
d dalje olakšaju i pojednnostave upotrrebu računarsskih sistema. Zbog toga, prema
p
namenni,
prrograma, čijii je zadatak da
so
oftver možem
mo podijeliti na
n sistemski i korisnički (aaplikativni).
U četvrtoj gen
neraciji raču
unara (1980–
–pa nadalje),, prvi put se pojavljuju
p
perrsonalni računnari.
Razvoj
R
personnalnih računaara započinje pojavom LS
SI čipova (larrge scale inteegration), to jjest čipova visokog
v
stepenna
in
ntegracije. Raačunari su billi dovoljno jeeftini, tako daa su ih moglii priuštiti i više odseka istte firme ili un
niverziteta, dook
su
u personalni rračunari posttali dovoljno jeftini
j
da ih m
mogu imati i pojedinci. Po
oznatiji persoonalni računarri su Spectrum
m,
Commodore,
C
Atari, zatim IBM PC, Apple
A
Macinttosh itd. U prve
p
operativne sistemee za persona
alne računaare
sp
padaju MS-D
DOS i UNIX
X.
Paralelno s razzvijanjem korrisničkog soft
ftvera, razvijaa se i korisnički interfejs prrograma, to jeest korisnčko
o okruženje. Na
N
r
sisstem i same pprograme ne poznaju
p
detalljno, omogućaava da te pro
ograme uspešnno
taaj način se osobama koje računarski
koriste.
8
Seznadar: OS i RM
Operativni sistemi
prikupio i obradio Miroslav Mihaljišin
Sada se razmatra što će biti peta tehnološka generacija.
Smatra se da će računari u petoj generaciji biti izgrađeni
pomoću organskih sastavnih dijelova.
Karakteristike savremenih OS
Raniji OS (MS DOS, UNIX, VMS, ...) su radili u tzv. tekstualnom modu. To znači da je korisnik kucao tekstualne
naredbe koje su uglavnom bile komplikovane. Korišćenje računara je bilo dosta nepraktično i teško za učenje. To je
bio jedan od razloga zašto je malo ljudi tada koristilo računare.
Poznato je da obrada jedne slike traži mnogostruko više računarskih resursa od obrade bilo kog teksta. Razvojem
hardvera računari su imali sve bolje performanse i rad sa grafikom je postajao sve lakši. To je bio preduslov za pojavu
tzv. grafički orjentisanih operativnih sistema (Windows, Linux, Mac OS).
Prije dvadesetak godina (krajem osamdesetih) se isprofilisalo, a i do danas se zadržalo da rad u tekstualnom modu
označava računare stare generacije. Novi OS su uveli pojam pokazivača (pointer) koji se koristi kao kažiprst.
Pomjeranje ovog pointera se obavlja pomoću miša. Ovim pointerom se biraju komande ili sličice koje se zatim
startuju nekim od tastera miša. Ova grafička veza između korisnika i računara se naziva GUI (Graphical User
Interface).
Prva (ali svakako ne najvažnija) osobina modernih računara je korisnički grafički interfejs.
Prednosti pri korišćenju GUI-a su jednostavnost pri radu, intuitivno i brzo učenje. Korišćenje
GUI-a liči na sporazumijevanje „rukama“. Dakle, umjesto da se kucaju komplikovane naredbe prosto se prstom
pokazuje na njih. To je doporinijelo ogromnom povećanju broja korisnika PC računara. Danas ne postoji OS koji
nema, ili ne podržava GUI.
Naglasimo još jednom šta OS treba da radi - omogući:
Izvršavanje programa
OS puni glavnu memoriju programom i počnje njegovo izvršavanje. Korisnički programi ne mogu da sami sebi
dodijele procesor.
U\I operacije
Sistem mora da komunicira sa diskovima, USB uredjajima, magnetnim trakama i drugim uredjajima niskog nivoa.
Korisnik zadaje uredjaj i operaciju koju treba izvrsiti a sistem konvertuje taj zahtjev u specificne komande uredjaja i
ili kontrolera. Korisnicki programi ne mogu da pristupe nedjeljivim uredjajima svaki put kada im je to potrebno vec
samo kada se ti uredjaji ne koriste od strane nekog drugog uredjaja.
Komunikacija
Slanje poruka izmedju sistema zahtijeva da se poruke dijele u pakete podataka, salju do mreznog kontrolera, prenose
preko komunikacionih medijuma i na mjestu odredista isporuce kao cjelina.Korisnicki programi nisu u mogucnosti da
koordiniraju pristupom mrezi vec je to zadatak OS.
Upravljanje sistemom datoteka
Postoji puno detalja o kojima korisnici ne moraju da vode računa pri kreiranju datoteke, brisanju, dodjeli memorije...
Npr. potrebno je voditi evidenciju o blokovima na disku koji se koriste za datoteke. Brisanje datoteke zahtijeva
brisanje informacija o imenu datoteke i oslobadjanje dodijeljenih blokova. Da bi se obezbijedio autorizovan pristup
datoteci potrebno je provjeriti zastitu. Korisnicki programi ne mogu da obezbijede zastitu niti dodijele ili oslobode
memoriju.
Popularnost PC računara dovode do masovnosti što opet omogućuje nova tehnioloških poboljšanja zasnovana je na
konstrukciji paralelne arhitekture koji omogućavaju istovremeni rad više kompjutera (procesora) na rešavanju
određenog zadatka. Oco opet dovodi do masovne upotrebe Interneta.
9
Seeznadar: OS i RM
Operativni sistem
mi
prikupio i ob
bradio Miroslav Mihaljjišin
Ovo
O znači daa savremeni računari
r
treb
ba da imaju m
mogućnost višekorisničko
v
og i višeproggramskog rad
da u mrežnoom
ok
kruženju, da su pouzdani, zaštićeni, po
održavaju GU
UI, jednostavn
ni za rad (userr frendly).
Klasifika
K
acija opeerativnih
h sistemaa
p
prem
ma
Postoje brojnee podjele operrativnih sistema na osnovuu različitih kriterijuma: prrema broju koorisnika i/ili procesa,
p
distrib
buciji procesoorske snage i ostalih reesursa, premaa nameni i funkcionalniim
načinu obradee poslova, prema
osobinama.
Ovdje
O
ćemo daati samo tri osnovne
o
klasiffikacije, a prooširenu klasiffikaciju sa obj
bjašnjenjima, pogledaj u Dodatku.
D
Klasifikacija
K
prema broju
u korisnika i procesa
Prema broju kkorisnika, opeerativni sistem
mi se dijele naa:
•
jednokorissničke (singlee user) i
višekorisnničke (multiusser).
•
Klasifikacija
K
prema broju
u simultanih aktivnosti
Prema broju simultanih aktivnosti,
a
tj. prema brojuu procesa ko
oji se mogu izvršavati paaralelno ili kvaziparaleln
k
no,
perativni sistemi se dijele na:
op
• jednopprocesne (sinngle tasking, singleprocess
s
s) i
• višeprrocesne (multtitasking, mu
ultiprocess).
Klasifikacija
K
po strukturii
Podjela OS preema strukturii:
•
Slojeviti OS
O
OS sa monnolitnim jezg
grom (Kernel OS)
•
•
OS sa mikkro jezgrom (M
Mikrokernel OS)
Jednokor
J
risnički OS-MS DOS
MS
M DOS (Microsoft Diskk Operating System) je nastao 1981 godine i ozznačio je poočetak ere PC računara. U
sllobodnom preevodu DOS znači
z
operativni sistem zaa diskove (flo
opi disk i harrd disk). Novvi operativni sistemi više ne
n
ko
oriste D u svoom nazivu, jeer rade mnog
go više poslovva od samog upravljanja
u
diskovima.
d
Kao
K uvod, da se ne kaže zagrijavanje
z
za
z moderne O
OS, upoznaćeemo se sa najjslavnijim prredstavnikom OS XX vijekka,
veeć zaboravljeenim DOS-om
m. Neki tvrdee da nije baš zaboravljen, već ukopan u temelje Win
indows-a, i to
o toliko dubokko
da
d je njegov keernel.
Operativni
O
sistem DOS se koristi, kao i ostali OS, zza pokretanjee sistema, up
pravljanje harrdverskim ressursima kojim
ma
mašina
m
raspolaaže, rad sa njegovim vlastitim program
mima i podacim
ma, manipulaaciju datotekaama i podršku
u u izvršavannju
ap
plikacijskim pprogramima koje korisnik
k instalira na ssvoju mašinu
u.
vne sisteme mada je pseeudovišeslojn
ni (pseudolayyer
Po svojoj struukturi DOS spada u monolitne slojeevite operativ
kama ispod. P
Pošto slojevii nisu dobro odvojeni, pprogrami mog
gu da direktnno
sttructure). štoo se može viidjeti na slik
prristupaju I/O uređajima.
10
Seeznadar: OS i RM
Operativni sistem
mi
prikupio i ob
bradio Miroslav Mihaljjišin
DOS
D
se može podijeliti na četiri dijela:
•
Moduul eksternih koorisničkih (usser) naredbi
•
Procesor naredbi (ccommand pro
ocessor)
•
DOS jjezgra (kerneel)
•
DOS B
BIOS.
Na
N ilustracijam
ma je prikazaan način kako
o korisnik prisstupa OS i kaako pojedini dijelovi međuusobno komu
uniciraju, što je
dodatno objaššnjeno u pogllavljima Procces učitavanjja DOS operrativnog sistema Korišćenj
nje i izvršenjee naredbi DO
OS
perativnog siistema i Dodaatku.
op
Proces
P
učitaavanja DOS
S operativn
nog sistemaa
Nakon
N
uključeenja računaraa, dolazi do pokretanja
p
B
BIOS-a i testaa hardvera sa
s kontrolom svih komponenti sistemaa i
uttvrdio da su ssve komponente sistema priključene.
p
BOOT
B
program
m, po zadatim
m instrukcijam
ma, nastavljaa proces podizzanja sistema.
Prvo BOOT pprogram pretrražuje disketn
nu jedinicu u nadi da će tamo pronaćći jednu form
matiranu disketu na kojoj bi
našao dalje insstrukcije.
Ukoliko
U
je nađđe BOOT proogram je očitaava i nastavlj a dalje.
Ukoliko
U
je ne nađe BOOT program nasttavlja sa pretrraživanjem tee pretražuje tv
vrdi disk kao sljdeću jedin
nicu.
Ako
A BOOT pprogram ni taamo ne nađe sledeće instrrukcije, odno
osno sistemsk
ke fajlove pootrebne za naastavak proceesa
podizanja sisteema, proces podizanja
p
sisttema se prekiida i korisnik obaviještenje o grešci naa sistemu.
nstrukcije kojje BOOT proogram traži nalaze
n
se na ddva sistemskaa fila koja su
u inače smjesstena na sekto
oru 0 i tragu 0.
In
Radi
R se o filovvima io.sys i msdos.sys. Oni
O su ustvarii sakriveni tak
ko da korisnik
k nikad ne m
može doći u ko
ontakt sa njim
ma
kako ih ne bi greškom izrisao. Oni se ne
n vide ni u D
DOS-fajl kataalogu. pod ov
vim imenima ovi fajlovi su
s samo ako je
S operativnom
m sistemu dook se kod drug
gih proizvođaača drugačijee zovu.
riiječ o Microsooftovom DOS
Kad je BOOT
B
prograam pronašao ta dva fajla na hard diskku
pročitao je
j program podatke koji sse nalaze na prvom sektooru
tvrdog disska kopirao ih
h na određenuu adresu u rad
dnu memorijuu.
Na svim formatiranim
m diskovima jje prvi sektor rezervisan za
me
DOS. To se zove BOOT record kkoji ima inforrmacije o tom
B
program postupiti ssa ta dva sakrrivena fila. Kad
kako ce BOOT
je BOOT
T program prenio inform
macije iz BO
OOT recorda u
radnu meemoriju na hexadecimallnu adresu 7C00
7
prepussta
BOOT prrogram kontrrolu BOOT re
recordu i ukaazuje procesooru
Procees učitavanja sistemskih faj
ajlova
da je sadaa BOOT record taj sto voddi igru te da se
s njemu obraati
za instruk
kcije.
r
memorriji i radi dalje po instrukcijama.
Procesor se saada okreće adrresi 7C00 u radnoj
11
Seznadar: OS i RM
Operativni sistemi
prikupio i obradio Miroslav Mihaljišin
Tako BOOT record preuzima kontrolu nad računarom i očitava ona dva sakrivena fila. Prije se očitava fil IO.SYS i
prenosi u radnu memoriju.
IO.SYS sadrzava podatke koji kompletiraju BIOS. Jedan dio fila se naziva SYSINIT koji preuzima na sebe brigu o
nastavku BOOT procesa.
Sada kontrolu na racunaru preuzima SYSINIT i prvo sto radi je da ocita fil msdos.sys te isti pohrani u radnu
memoriju. Fil msdos.sys u nastavku zajedno sa BIOS preuzima rukovanje fajlovima te rukovanje signalima između
pojedinih jedinica sistema.
SYSINIT traži u korijenskom direktoriju na tvrdom disku fajl config.sys. To je fajl koji pravi korisnik.
On sadrži informacije o podešavanjima u računaru kao što smo opisali ranije. On ima takođe instrukcije o tome koje
zadatke SYSINIT dozvoljava msdos.sys da izvrši. To mogu biti instrukcije o tome kako povecati moc BIOS-a da
rukuje memorijom racunara ili nekim od prikljucaka racunara npr. misom.
SYSINIT daje nalog msdos.sys da očita fajl command.com te istog pohrani u radnu memoriju.
Fajl command.com se sastoji iz tri dijela. Prvi dio je ustvari uvecanje mogućnosti BIOS za unošenje i iznošenje
podataka. Ovaj dio se polaže u memoriju kao permanentni dio operativnog sistema.
Drugi dio fajla command.com sadrzi interne DOS komande kao DIR, COPI, i TYPE. One se memorisu u gornjem
dijelu radne memorije i mogu biti upisani preko drugih programa.
Treći dio fajla command.com upotrebljava se samo jedanput i kasnije se izbacuje iz memorije. Taj dio traži u
korijenskom direktoriju fajl autoexec.bat. Očitanjem fajla autoexec.bat i config.sys sistem je konfigurirsan i spreman
je za podizanje operativnog sistema /Windows naprimjer/ a nakon toga i za upotrebu.
Program COMMAND.COM se mora nalaziti na svakoj sistemskoj disketi.
I pored toga, on ne spada u operativni sistemi (vidi POZICIJU U PREDHODNOM POGLAVLJU). Radi se o
izvršnom (.COM) programu koji je sličan svakom drugom izvršnom programu, ali je on zadužen za vrlo bitne
operacije.
Kod DOS-a je COMMAND.COM je procesor naredbi ili tzv. korisnička ljuska (shell).
Predstavlja vezu između korisnika i operativnog sistema. On interpretira naredbe i omogućava izvršavanje
sistemskih datoteka
Nakon što je sistem izvršio zadane naredbe i nakon što je COMMAND.COM izvršio odgovarajuće pripreme i
postavio odzivni znak (prompt) računar i operativni sistem su spremni za rad.
Korišćenje i izvršenje naredbi DOS operativnog sistema
DOS se koristi na dva načina:
• kroz linijske naredbe, ili
• kroz druge programe, u kojima preko menija koristimo mogućnosti DOS-a, a da pritom ne poznajemo način
rada DOS naredbi niti sintaksu pisanja istih.
Komandna linija je linija u kojoj kucate komande (naredbe).
Komandni prompt (odzivnik) pokazuje da ste u komandnoj liniji.
Prompt može biti slovo za logičku oznaku disk jedinice praćeno obrnutom kosom crtom
(backslash; "beksleš") (c:\ ili a:\, na Primjer) i nazivom direktorijuma (na Primjer, c:\dos).
Slovo pokazuje koja je disk jedinica aktivna jedinica.
MS-DOS pretražuje aktivnu disk jedinicu kako bi pronašao informaciju koja je potrebna da bi procesirao komande
koje ste otkucali. Da biste naveli MS-DOS da izvrši zadatak, vi kucate komandu (na monitoru desno od komandnog
prompta pojavljuju se znaci koje kucate), a zatim pritiskate taster sa natpisom "Enter".
Sve naredbe DOS-a prolaze kroz proces navođenja:
• Svaki put kad se zada naredba (preko tastature ili programski), DOS najprije provjerava da li naredba postoji
u listi internih naredbi.
• Ako je naredba prisutna u memoriji, odmah se izvršava.
• Ako naredbe nema u popisu internih naredbi (znači da je eksterna), DOS pretražuje tekući direktoriji traži
datoteke koje imaju ekstenziju .EXE, .COM ili .BAT.
• Ako se pronađe tražena datoteka, ona se učitava u memoriju, te se izvršava.
• U slučaju da DOS ne nađe traženu eksternu naredbu, šalje i ispisuje na monitoru: Bad command or file name.
• Kada je završen proces koji je pokrenula eksterna naredba, oslobađa se dio u memoriji u kojem je učitana
eksterna naredba.
Poziv batch datoteke (tip BAT) uzrokuje čitanje svake linije u datoteci i izvršenje navedenih naredbi, redoslijedom
navođenja.
Više detalja o DOS-u, kao i nekoliko primjera i način izrade bach fajlova vidi u Dodatku.
12
Seeznadar: OS i RM
Operativni sistem
mi
prikupio i ob
bradio Miroslav Mihaljjišin
Moduli
M
k
kod OS
Kao
K što je nagglašeno savrem
meni OS se može
m
dekompponovati (pod
dijeliti) u mod
dule koji obezzbijeđuju sljeedeće funkcijee:
•
upravljanje procesima
•
upravljanje memorrijom
•
upravljanje U/I ureeđajima
•
upravljanje datotekkama
m.
•
upravljanje mrežom
Zadatak
Z
OPER
RATIVNOG
G SISTEMA je da upravllja fizičkim (procesor, ko
ontroleri i raadna memoriija) i logičkiim
(ffajlovi i proccesi) djelovim
ma kompjuteera, pa se ooperativni sistem može podijeliti na m
module, kojii izvršavaju te
fu
unkcije.
oji nekoliko prednosti
p
moddularnih OS:
Posto
•
lakše je modifikovatii sistem i isp
pravljati greškke
u samo na nekke dijelove siistema,
jer prromjene utiču
•
informacije se čuvaju samo gdje jee to potrebno,
•
informacijamma se pristupa samo unuttar
nisane i ogran
ničene oblastii.
defin
Modul
M
za up
pravljanje procesorom
m
Priključenje pprocesora sa jedne na dru
ugu nit je zaadatak ovog modula.Uvod
di operacijuu preključiva
anja čiji pozziv
dovodi do prekključivanja prrocesora sa jedne niti na drugu, koje mogu pripadati istom ili rraznim processima.
U toku preključivanja proocesora izmeđ
đu niti istog procesa ne dolazi do izzmene adresnnog prostora procesa, pa je
ov
vakvo prekljuučivanje bržee (kraće) nego
o preključivannje procesoraa između niti raznih processa.
Modul
M
za up
pravljanje I/O kontro
olerima
Ovaj
O modul pooziva operaccija preključiivanja.
Pošto upravljaanje I/O ureeđajima zavissi od vrste uuređaja, mod
dul za uprav
vljanje kontroolerima se sastoji
s
od niiza
ma ostvaruje svoj zadatak tako što uvo
odi (drajverskke)
komponenti, nnazvanih drajveri. Modul za upravljanjje kontrolerim
peracije ulazza i izlaza. Uppravlja raznim
m ulazno/izlaaznim uređajima koji su priključeni
p
naa kontrolere (tastatura, miš,
op
ek
kran, štampačč, odnosno urređaji masovn
ne memorije kao što su diskovi, disketee, CD/DVD R
ROM-ovi, itd
d.).
Modul
M
za up
pravljanje radnom memorijom
m
Modul
M
za upraavljanje radnoom memorijo
om ostvaruje ssvoj zadatak tako što uvod
di operacije zzauzimanja i oslobađanja.
Vodi
V
evidencciju o sloboddnoj radnoj memoriji raadi zauziman
nja zona slo
obodne radnee memorije, odnosno raadi
oslobađanja prrethodno zauzzetih zona rad
dne memorijee.
orijom pozivaj
aju se operacijje ulaza i izlaaza.
Izz modula za uupravljanje raadnom memo
Modul
M
za up
pravljanje fajlovima
Modul
M
za upraavljanje fajlovvima ima opeeracije čitanjja i pisanja.
Omogućava
O
ottvaranje i zattvaranje fajlo
ova, odnosno čitanje i pisaanje njihovog
g sadržaja i vvodi evidencijju o blokovim
ma
(m
masovne mem
morije) u kojiima se nalazee sadržaji fajloova.
Brine
B
se i o prrebacivanju djelova
d
sadržaja fajlova izzmeđu radne i masovne memorije
m
(druuge dvije funk
kcije), a za ovvo
prrebacivanje ssu potrebni baaferi, pa se po
oziva i operaccija zauziman
nja dovoljno velikog
v
baferrskog prostora.
Izz modula za uupravljanje faajlovima poziivaju operacijje oslobađanja, ulaza i izlaaza.
Modul
M
za up
pravljanje procesima
Modul
M
za upraavljanje proceesima ima op
peracije stvarranja i uništa
avanja.
Omogućava
O
sstvaranje i uništavanje
u
procesa,
p
kaoo i stvaranje i uništavan
nje njihovih niti, odnosn
no omogućavva
isstovremeno ppostojanje višee procesa (viššeprocesni reežim rada), tj. više niti.
13
Seeznadar: OS i RM
Operativni sistem
mi
prikupio i ob
bradio Miroslav Mihaljjišin
Poziva operaciju čitanja, raadi preuziman
nja sadržaja izzvršnih fajlov
va, koji su po
otrebni za stvaaranje slike procesa,
p
a poššto
z
oodnosno oslo
obađanja.
jee za stvaranjee slike procesaa potrebna raadna memorij a, pozivaju see i operacije zauzimanja,
Izz modula za uupravljanje prrocesima pozzivaju se operracije čitanja, pisanja, zauzzimanja i osloobađanja.
Moduli
M
i hijjerajhija
Korišćenje
K
moodularnog priistupa kod OS
O čiji kodovvi imaju više miliona instrrukcija nije bbilo dovoljno
o, pa su moduuli
grrupisani u hijjerarhijske nivvoe.
Generalno,
G
m
možemo reći da
d jednostav
vni operativnii sistemi mo
ogu imati mo
onolitnu strukkturu, a složženiji (oni kooji
up
pravljaju račuunarima koji obavljaju kom
mpleksnije zaadatke) slojev
vitu hijerarhijjsku realizaciiju.
Slojeviti
S
operativvni sistem
mi (layerred systeems)
Prvi
P operativnni sistem koji je napravljen na ovaj na čin je operattivni sistem sa
a imenom TH
HE (Technische Hogeschoool
Eindhoven)
E
odd strane E.W.Dijkstre.
Sistem je imaoo 6 slojeva kaao što je prikaazano na sleddećim slikamaa:
Nulti
N
sloj (proocessor scheduling–raspo
ored rada prrocesora-)nam
mijenjen je poslovima alookacije proceesora, promjeeni
prrocesa kada se desi prekkid ili istek taajmera. Uz oovo sloj 0 ob
bjezbjeđuje osnovne
o
funkkcije za multtiprogramirannje
(m
mogućnost daa se pokrene više
v program
ma od jednom)).
Sloj 1 obavlja upravljanje memorijom.
m
On
O alocira (ddodjeljuje) pro
ostor procesim
ma u glavnoj memoriji.
Sloj 2 upravljaa komunikaciijom izmedju svakog proc esa i operatorrske konzole..
u
i pprivremeno memoriše
m
(BU
UFFERING) iinformacioni tok ka i od I//O
Sloj 3 upravljaa ulaznim izlaaznim(I/O) uredjajima
urređaja.
Sloj 4 je sloj nna kome se naalaze korisniččki programi a na sloju 5 obavlja
o
se pro
oces sistemskkog operatora.
Moduli
M
ovakvih operativnihh sistema formiraju hijeraarhiju.
Svaki od slojeeva je predoddređen da saadrži jedan odd modula op
perativnog sisstema. Raspoodjelu modulaa po slojevim
ma
o operacije uvedene
u
u niižim slojevim
ma hijerarhijje.
diktira praviloo koje nalaže da se iz svakog sloja poozivaju samo
menutog pravila dovodi do smještanja m
modula za upravljanje procesima u slojj na vrhu hijeerarhije. U prrvi
Primjena pom
vljanje radnoom
niži sloj dospeeva modul zaa upravljanje fajlovima, ddok je sledeći niži sloj naamjenjen moddulu za uprav
memorijom.
m
P
Predposlednji sloj hijerarh
hije sadrži moodul za uprav
vljanje I/O ko
ontrolerima, a u poslednjeem sloju nalaazi
see modul za uppravljanje proocesorom.
va je motivissana željom da se zadataak operativnoog
Svrha predstaavljanja operaativnog sistema kao hijerrarhije slojev
m
neezavisnih zad
dataka i zatim
m svaki od njih
ih objasni zassebno.
siistema raščlanni na više jeddnostavnijih međusobno
14
Seeznadar: OS i RM
Operativni sistem
mi
prikupio i ob
bradio Miroslav Mihaljjišin
Primjeri
P
OS ssa slojevitom
m organizacijjom : THE ((6 layers), MS-DOS
M
(4 laayers).
Razlika
R
izzmeđu slojjevite i monolitne
m
realizacijje OS
Osnovna
O
razlika je u tomee, što se OS kod
k monolitnne strukture sastoji od sku
upa proceduraa bez ikakvog
g grupisanja ili
hijerarhije, a kkod slojevite realizacije OS
O se dijeli nna više slojev
va od kojih se
s svaki oslannja na slojev
ve ispod, i gddje
vaki sloj ima tačno određeenu funkciju (upravlja
(
tačnno određenim
m resursima).
sv
Monolitni
M
opeerativni sisteemi se sasto
oje od moduula čija sarad
dnja nije og
graničena praavilima kao kod slojevittih
op
perativnih sisstema.
To
T znači da se iz svakog od modula monolitnih
m
opperativnih sisstema mogu slobodno
s
pozzivati operacije svih ostallih
modula.
m
Kod
K slojevitih
h modularnih
h sistema rasspodjelu moddula po slojev
vima diktira pravilo
p
koje nnalaže da se iz svakog slooja
pozivaju samoo operacije uvedene
u
u nižim slojevim
ma hijerarhijee. Primena po
omenutog pra
ravila dovodi do smještannja
modula
m
za rukkovanje proceesima u sloj na vrhu hijerrarhije. U prv
vi niži sloj do
ospeva moduul za rukovan
nje datotekam
ma,
dok je sledeći niži sloj nam
menjen modulu za rukovanj
nje radnom memorijom. Prredposlednji ssloj hijerarhijje sadrži moddul
z rukovanje procesorom..
zaa rukovanje kkontrolerima, a u poslednjem sloju nalaazi se modul za
Većina
V
modernnih sistema jee neka vrsta hibrida
h
i najččešće koristi neke elemenaata slojevite i monolitne sttrukture.
Tipovi
T
jezzgre
mplementacijee jezgre tiče, postoji
p
nekoliko tipova.
Što se samog ddizajna i naraavno same im
Dva
D najinteressantnija i ujeedno najviše suprotstavljeena tipa su monolitna
m
jezzgra ( monollithic kernel)) i mikrojezggra
(m
microkernel)..
15
Seeznadar: OS i RM
Operativni sistem
mi
prikupio i ob
bradio Miroslav Mihaljjišin
Monolitn
M
ni OS –M
Monolitn
no jezgroo- -KerneelOperativni
O
sisttemi koji koriste monolitn
nu kernel struk
ukturu (npr. UNIX)
U
realizo
ovani su kao sskup procedu
ura (tj. modulaa),
od kojih svakaa može pozvaati svaku ako je to potrebnno. vidi Jezgro
o operativnog
g sistema: KE
ERNEL, u Do
odatku.
OS
O je realizovvan kao skup procedura,
p
od
d kojih svakaa može pozvaati svaku ako je
j to potrebnoo.
Kod
K monolitnne jezgre se cijela jezgraa izvršava u jjezgrinom prrostoru i to
upravo
u
u sisteemskom (zašttićenom) načinu rada.
Za
Z takvu jezggru je karakteeristična vrlo
o snažna apstr
trakcija nad sklopovima
s
(i
( hardverskiim i softverrskim) i inteerfejs premaa aplikacijam
ma sa vrlo
bogatim
b
skuppom sistemsk
kih poziva.
Uprkos
U
činjeenici da su raazne funkcionalnosti najččešće implem
mentirane u
različitim
r
dijeelovima jezg
gre, stvarno odvajanje
o
takvvih dijelova je
j u praksi
nemoguće
n
zbbog isprepleteenosti izvorno
og koda i struuktura podatak
ka.
Visok
V
nivo m
međusobne inntegracije sviih dijelova uutiče na dob
bre performan
nse zbog miinimalnih niv
voa apstrakciije
izzmeđu samih dijelova kao i visoke efik
kasnosti koja jje posljedica takvog dizajn
na.
Glavna
G
mana oovakvog prisstupa je prven
nstveno probllem da greškaa u bilo kojem
m dijelu ovakkve jezgre naajčešće utiče na
n
pad cijelog sisstema, budućii da sve komp
ponente nužnno vjeruju jedna drugoj.
mjeri monolittnih jezgri su
u: Linux (po stojanje mod
dula ne mijen
nja činjenicuu da je riječ o monolitnoom
Poznatiji prim
Unix jezgri kaao i Window
ws jezgra (hibbridnog dizajn
na budući da je
dizajnu jezgree), BSD jezgrre, Solaris, DOS, većina U
modula impleementiran u vidu korisničkkih aplikacija, no smatra see u osnovi moonolitnom jezzgrom).
dio jezgrinih m
Korisnički
K
proogrami servisse OS-a koriiste na sledeeći način: parrametri sistem
mskog pozivva se smještaaju u određenna
mesta,
m
kao štoo su registri procesora ilii stek, pa sleedi specijalnaa operacija – poziv jezgrra OS-a (kerrnel call). Ovva
op
peracija prebbacuje proceesor iz korissničkog režim
ma rada u sistemski reežim rada i kontrolu preedaje OS-u. U
korisničkom rrežimu rada nisu
n
dozvoljeene neke kom
mande proceesora, a u sisstemskom režžimu mogu se
s koristiti svve
peracije poznnate od stranee procesora.
op
Poslije pozivaa jezgru, OS preuzima
p
kon
ntrolu, na osnnovu parametara poziva određuje
o
kojuu sistemsku proceduru
p
trebba
mu.
pozvati i pozivva tu proceduuru i na kraju se kontrola vvraća korisniččkom program
modula monoolitnih operatiivnih sistemaa mogu slobod
dno pozivati operacije svihh ostalih mod
dula.
Izz svakog od m
d najviše korrišćena organ
nizacija i može
Ovo je dosad
se sa punim pravo
p
nazvatii “Velika zbrrka” (“The Big
B
Mess” or spa
aghetti code)..
Struktura je takva
t
da uopššte nema struk
kture.
OS je napisa
an kao kolekkcija proced
dure takvih da
d
svaka možee pozvati bbilo koju drugu.
d
Svakka
procedura
p
ima definissan interfejjs u smisslu
parametara
p
i rezultata. M
Međutim i u ovim
o
sistemim
ma
mala strukturra.
ipak se možee uočiti neka m
Servisi (sistemski pozivvi) objezbjeđ
đeni od OS
S-a
zahtijevaju parametre
p
o utvrdjenim pravilima
p
(nppr.
Da se preno
ose putem ssteka). Ovak
kve instrukciije
prebacuju
p
mašinu
m
iz kkorisničkog načina
n
rada i
prebacuju
p
up
pravljanje nna OS. OS tada pribavllja
parametre
p
i utvrđuje kooji sistemskii poziv da se
realizuje.
Ovakva
O
organizacija odgovvara označeno
oj strukturi zaa OS:
1. Postoji glavvni program koji
k poziva seervisnu procedduru
2. Postoji skupp servisnih prrocedura koji izvršavaju siistemske poziive
p
koje pomažu sevvisne procedu
ure
3. Postoji skupp pomoćnih procedura
U ovom modeelu za svaki siistemski poziiv postoji jednna servisna procedura kojaa realizuje tajj poziv.
16
Seeznadar: OS i RM
Operativni sistem
mi
prikupio i ob
bradio Miroslav Mihaljjišin
Pomodne (utillity) proceduure se bave problemima
p
kkoji su važn
ni za nekolik
ko servisnih pprocedura (n
npr. Prikupljeeni
FETCHING) podatak iz korisničkog
k
programa).
p
P
Podjela proceedura se možže izvršiti u ttri sloja (layers) kao što je
(F
prrikazana na sslededoj slici::
Što se tiče sak
krivanja infoormacija, to ovdje
o
uopšte ne postoji, tj.
t svaka proccedura je viddljiva u odnossu na bilo kooju
p
u kojo
oj je većina innformacija saakrivena unuttar
drrugu proceduuru, za razlikuu od strukture koja sadržii module ili pakete,
modula,
m
tako dda se samo u određenim taačkama moguu pozvati van
n modula.
Da
D bi se konnstruisao stvaaran objektni program opperativnog sistema pomoćću ovog prisstupa, prvo se
s prevode svve
pojedinačne pprocedure, ili datoteke ko
oje sadrže te procedure, a zatim se sv
ve zajedno ppovezuju u jednu
j
objektnnu
mogućnost skrrivanja inform
macija ne posstoji jer je sv
vaka proceduura
datoteku korissteći sistemskki povezivač. Pri tome, m
vidljiva za svaaku proceduruu.
Mikro
M
jeezgro (mikrokern
nel)
Alternativa
A
strrukturi monollitnog operatiivnog sistemaa je arhitekturra sa mikro jeezgrom (micrrokernel)
Osnovna
O
zamiisao je napravviti minimaln
no i pouzdanoo jezgro visok
kih performan
nsi, a sve ostaale funkcije jezgra
j
potisnuuti
u takozvani koorisnički prosstor (user spacce).
a
Mikrojezgrra je primjerr kernela miinimalističkogg dizajna: aplikacijama
se
pružaju tekk najosnovnijje nužne uslu
uge (odnosnoo sistemski pozivi),
p
a to su
već spomennuto upravljaanje adresnim
m prostorom
m, vremenskiim prekidim
ma,
nitima (thrreads) pojedin
nog procesa te
t komunikaacijom među procesima.
uge poput graafičkih interffejsa, mrežno
og steka i sl. su
Sve ostale dodatne uslu
ničkom prostooru u vidu po
osebnih serviisa
ugrađene ((implementiraane) u korisn
(servers, paa se ovaj tip jezgra ponekad naziva i klijent server kernel).
Zbog
Z
pojave takvih serviisa van prosstora kernelaa, kod mikro
ojezgri dolazzi do izražaj
aja potreba za
z
efikasnoom
komunikacijom
m među proccesima (inter--process comm
munication) kako je preno
ošenje porukaa jedan od gllavnih aspekaata
raada.
Zbog
Z
toga što se daleko višše poruka preenosi iz kerneela u korisniččki prostor i obrnuto,
o
mikrrojezgre običčno imaju neššto
lo
ošije performanse od monoolitnih jezgri.
Dodatni
D
servissi su u praksii obične korissničke aplikaccije koje se mogu
m
pokretaati i gasiti bezz loših posljeedica za ostatak
siistema: jedinna njihova prrivilegija je da mogu pissati i čitati neke
n
dijelovee memorije kkoji su nedo
ostupni ostaliim
prrocesima.
Glavni
G
problem takvog pristupa
p
gdje se neki sisttemski servisi mogu gasitti i paliti po potrebi je nestanak
n
stroggo
definisanog staanja kao kodd monolitnih jezgri.
j
Zato jee moguće da će u nekom trenutku nekki servisi jedn
nostavno doćii u
da sistema uvoodi se moguććnost pauze i čekanja do poovratka uslug
ge.
nedefinisano sstanje. Za spreečavanje pad
Primjeri
P
prim
mjene arhitek
kture mikrojezgri su prisuutni u moderrnim operativnim sistemim
ma: Minix, Am
migaOS, Mach
(G
GNU Hurd, X
XNU odnosnoo Mac OS X)), QNX, L4 faamilija OS, Symbian
S
OS, Singularity.
17
Seeznadar: OS i RM
Operativni sistem
mi
prikupio i ob
bradio Miroslav Mihaljjišin
Korisnički
K
mooduli međusobbno komuniciraju slanjem
m poruka (messsage passing
g).
Kod
K arhitekturre sa mikro jeezgrom samo
o najvažnije ffunkcije OS-a se nalaze u jezgru.
Manje
M
važni seervisi i aplikaacije su van jezgra i izvršaavaju se u korrisničkom režžimu rada.
Komponente
K
O
OS izvan mikkro jezgra se implementiraaju kao server procesi. Ov
ve komponentte komuniciraaju međusobnno
taako što šalju pporuke prekoo mikro jezgraa.
Mikro
M
jezgro vvrši validacijuu poruka, preenosi poruke iizmeđu komp
ponenata i dajje komponenntama pristup hardveru.
Komponente
K
mogu biti drajveri
d
uređ
đaja, server datoteka, seerver procesaa, programi za upravljan
nje virtuelnoom
memorijom...
m
Npr.
N
ako apliikacija treba da otvori daatoteku tada ona šalje porruku serveru datoteka preeko mikro jeezgra. Svaki od
o
seervera može dda pošalje pooruku drugim serverima i m
može da poziva primitivnee funkcije unuutar mikro jezzgra.
Tako
T
je ostvarrena klijent-seerver arhitekttura unutar jeednog računarra.
Osnovne
O
prednnosti OS sa mikro
m
jezgrom
m su sljedeće::
•
Dodavvanje novog servisa ne zah
htijeva modiffikovanje jezgra OS,
•
Sistem
m je bezbjednniji jer se višee operacija izvvršava u koriisničkom režimu rada,
•
Predstavlja podrškku distribuiran
nim sistemim
ma,
•
Predstavlja podrškku objektno-orijentisanim O
OS,
•
Omoggućava jednostavnije projeektovanje jez gra i pouzdan
niji OS.
Privilego
P
ovani režžim rada
a i sistem
mski pozzivi
OS
O radi u sisttemskom - privilegovano
p
om režimu raada (sve nareedbe izvršive), a korisniččki procesi se
s izvršavajuu u
korisničkom (nneprivilegovaanom) režimu
u rada. Tu se neke naredbe ne izvršavaaju (npr. za prromjenu režim
ma rada, za rad
ma, za I/O...) jer
j bi inače O
OS mogao osttati bez "kontrole".
saa privilegovannim registrim
Cilj
C uvođenja dva režima rada računarra je obezbeđđivanje zastite racunarskog sistema odd namjernih ili
i nenamjernnih
up
pada u sistem
m. Ovaj režim
m rada mora biti hardversski podržan, mora
m
spostojati indikatorsski registar, koji
k će sadržaati
fllag u kome see nalazi inform
macija o režim
mu rada (trennutnom, u kom
me se nalazi računar).
P=0, korisničkki režim rada;; P=1, privilegovani režim
m rada.
Način realiizacije prelasska iz korisniččkog u privileegovani mod rada kod moonolitnih OS
Ako
A korisničkkom programuu treba uslug
ga programa kkoji radi u prrovilegovanom režimu radda onda korisnički prograam
mora
m
da koristti takozvane sistemske
s
pozzive.
Sistemski pozziv je specijaalna instrukcijja kojom se pokreće nekaa rutina iz prrivilegovanogg režima radaa, to je u stvaari
oftverski prekkid.
so
Samo prekidoom se može preći
p
iz korissničkog u priivilegovani režim
r
rada. Kad
K se desi pprekid, proceesor automatsski
va operacije koje
k je zahtjeevao korisničk
ki program.
prrelazi u privillegovani režiim rada i ondaa operativni ssistem izvršav
18
Seeznadar: OS i RM
Operativni sistem
mi
prikupio i ob
bradio Miroslav Mihaljjišin
Sloj
S apstrakcije hardver
h
a HAL ––virtueln
ni uređajji i partiicionisan
nje
Razvojem
R
harddvera i softveera, a u velikoj mjeri i anaalizom na kojji način se on
ni koriste, doššlo je do izdv
vajanja posebnne
komponente ooperativnog sistema,
s
koja je dobila naaziv sloj apstrakcije hardvera (Harrdware Abstraction Layerr –
HAL).
H
Uloga
U
HAL-a jeste da obezbjedi interfeejs između keernela i samo
og hardvera. HAL se bavii eventualnim
m konverzijam
ma
fo
ormata podattaka (mada je potreba zaa tim zanemaarljiva), a naj
ajbitniji zadattak jeste obeezbjeđivanje tzv. virtuelnoog
urređaja.
Virtuelni
V
uređ
đaj predstavllja standardizzaciju načina na koji se priistupa hardverskim uređajiima.
Zahvaljujući
Z
oovoj komponnenti operativ
vnom sistemuu se omogućaava da koristti iste mehani
nizme za posm
matranje stannja
hardvera i razm
mjenu podataaka, bez obzirra na hardverr koji se ispod
d njega nalazii.
Na
N ovaj način se adaptacijaa operativnog
g sistema za ddrugu arhitektturu računara svodi na pisaanje novog HAL-a.
H
Podjela
P
resurrsa sistema na
n virtuelna okruženja
o
jee poznat pod nazivom particionisanjee.
Osnovni
O
tipovvi particionisaanja su:
a)) hardverskoo (fizičko) paarticionisanje – predstavlj
lja fizičko razzdvajanje resu
ursa sistema kkorištenjem odvojenih
o
hardverskih urređaja. Aplikaacije koje su projektovanee tako da radee samostalno u okviru oper
erativnog sisteema (ili za kooje
m aplikacijam
ma) imaju najvviše koristi od
o hardverskoog
see ne preporuččuje paralelnno korištenje fizičkih resuursasa drugim
particionisanjaa.
uženja unutar računarskogg sistema, pri čemu se radii o
b) logičko parrticionisanjee – predstavlja razdvajanjee radnih okru
oftverskoj im
mplementaciji particija. Na sličan nnačin kao kod
k
hardversskog particioonisanja, kreeirane particiije
so
prredstavljaju samostalna okruženja
o
u okviru kojihh je mogućee izvršavanje odvojenih ooperativnih sistema,
s
ali se
up
pravljanje paarticijama vrrši putem posebnog
p
sofftverskog meeđusloja kojii se naziva monitor virrtuelne mašinne
(h
hipervizor).
19
Seeznadar: OS i RM
Operativni sistem
mi
prikupio i ob
bradio Miroslav Mihaljjišin
Osnovne
O
karakteeristike Window
W
ws OS
Danas
D
je Winddows najpoppularniji operaativni sistem, uživajući ogromnu nadm
moć na svetskkom tržištu stonih
s
računaara
od preko 90%
%. Takođe je značajno rassprostranjen i u segmentu
u malih i sreednjih serveraa u primjenaama kao što su
mrežni
m
serverii ili serveri baaza podataka..
Nastao
N
je kaoo grafička nadogradnja MS
M DOS operrativnog sisteema. Današnjje verzije se baziraju na prvobitnoj NT
N
verziji i ne prredstavlja višše samo graffičko okružennje već uistin
nu potpuni operativni
o
sisstem. Window
ws OS radi na
n
k
,a
raačunarima zaasnovanim naa procesorimaa firme Intel i njima sličniim. Oznaka za takve proceesore je h86 kompatibilni,
najpoznatiji suu firme AMD
D. Postoje ili su
s postojale vvarijante kojee rade na proccesorima DE
EC Alpha, MIIPS i PowerPC.
z procesore sa 32 i sa 64 bita.
Postoje takođee i varijacije za
Windows
W
jezggra (Window
ws kernel) jee hibridnog ddizajna budućći da je dio jezgrinih
j
moodula implem
mentiran u viddu
korisničkih applikacija, no smatra se u ossnovi monolittnom jezgrom
m.
Govrimo
G
o hibbridu jer se mikrokernel
m
naalazi unutar kkernela.
Blok
B šema koj
oja odgovara Windowsu XP
Ovakav
O
konceept sa neznatnnim izmjenam
ma zadržan jje i u aktueln
nim verzijamaa Windowsa.. Izmjene su se odnosile na
n
poboljšanja vvezana za mrežne ap
plikacije i višenitno upravljanje
u
procesima
p
oomogućeno višejezgreniim
mikroprocesor
m
rima.
Windows
W
model prrogramira
anja
Programi pisaani za tradicioonalne operaativne sistemee koriste proceduralni mo
odel u kojem
m se programii izvršavaju od
o
vrrha prema ddnu. Putanja izvršavanja programa m
može zavisi o ulaznim parametrima,
p
, ali uglavno
om je priličnno
prredvidljiva.
Unix
U
i Window
ws se fundam
mentalno razliikuju što se tiiče modela prrogramiranja.
Dok
D se UNIX
X program sasstoji od kodaa koji nešto iizvršava ili pravi
p
pozive sistema,
s
Winndows prograam je upravljan
događajima.
Glavni
G
program
m čeka da see desi neki do
ogađaj, kao štto je pritisnu
uta taster na taastaturi, pom
mak miša, prittisnuto neko od
o
du
ugmadi na m
mišu, ubačena fleš memo
orija ili sličnoo, i onda zov
ve proceduru
u koja dalje ppreuzima kontrolu nad tiim
događajem. Tii handleri proocesiraju dogaađaj, ažurirajuu ekran, ažurriraju unutrašn
nje stanje proograma.
20
Seeznadar: OS i RM
Operativni sistem
mi
prikupio i ob
bradio Miroslav Mihaljjišin
Windows
W
proggrami koristte model dog
gađaja prikazzan na slici u kojem aplik
kacija odgovaara na događ
đaje obrađujuući
poruke koje šaalje operativnni sistem. Dog
gađaj može biiti pritisak tasstera, pomak miša, ili nekaa druga stvarr.
Ulazna
U
tačka Windows prrograma je fu
unkcija WinM
Main,
alli većina possla se obavljaa u funkcijam
ma koje naziivamo
window
w
proceedure. One obbrađuju poru
uku koja je pooslana
prrozoru.
WinMain
W
kreiira taj prozorr i onda ulazzi u petlju pooruka
(m
message looop) gdje se
s poruke prihvaćaju
p
i šalju
prrikladnim wiindow proceddurama.
d
WM_QUIT
W
pooruke
Petlja porukaa završava dolaskom
kojom aplikacija završava sa radom. Ova se pooruka
bično pojavlljuje jer je korisnik
k
odaabrao Exit izz File
ob
MENIJA
M
ili klliknuo X u goornje desnom
m uglu.
Završetkom
Z
peetlje poruka, WinMain završava i aplikkacija
zaavršava sa raddom.
Sistemski
S
pozivi i API
A kod Windowsa
W
a
Windows
W
koriisti pozive sistema. O uprravljanju proccesima, uopššte biće kasniije nešto višee rečeno, a u dodatku ćem
mo
osvrnuti i na pprocese kod Windowsa.
W
Zasad
Z
treba reći da su kod Windowsa
W
prrocedure iz b
biblioteke i pravi
p
pozivi sistema
s
bitnoo različiti.
Microsoft
M
je ddefinisao skupp nazvan Win
n32 API proccedura (Aplik
kacioni prograamski interfejjs) koje progrrameri treba da
koriste da bi ddobili odgovaarajuće uslug
ge operativnoog sistema. Ovaj
O
interfejs je (djelimičnno) podržan od svih verziija
Windows-a
W
poočev od Winddows-a 95.
Broj
B
Win32 A
API poziva je vrlo velik i mjeri se hhiljadama. Mn
nogi od tih poziva
p
koristte da bi se ažurirali
a
poziivi
siistema, ali daaleko veći brooj poziva se potpuno
p
izvrš ava u korisniičkom prostorru. Kao poslj edica toga je činjenica da je
nemoguće vid
djeti koji pozzivi su pozivii sistema (tj. ono što odra
ađuje kernel), a koji nisuu.
Štaviše, ono ššto je poziv sistema u jednoj verziji Windows-a, može se odrraditi u korissničkom prosstoru drugog, i
brnuto.
ob
Win32
W
API im
ma velik brooj poziva za upravljanje prozorima, geometrijskim
m figurama, tekstom, fontovima, skrrol
barovima i sliččno, što se moože (a najčešće i jeste) poddvesti pod tip
pično korisniččko okruženjee.
Windows
W
ide dalje
U Dodatku sse možete upoznati
u
sa nekim (sam
mo sa nekim
m)
detaljima koriišćenja, realizzacije i konsttrukcije Winddows OS-a, a
zaasad pogledaajte kako je najavljena verzija 8 oovog OS-a; a
Windowsa
W
9 nnema...
.
21
Seeznadar: OS i RM
Operativni sistem
mi
prikupio i ob
bradio Miroslav Mihaljjišin
Upravlja
U
anje proccesima
Program
P
i proces
nijih koncepat
ata operativniih sistema. Program je niiz instrukcijaa koji ostvaruuje
Procesi predsttavljaju jedann od najvažn
m. Proces je program
p
u staatusu izvršavaanja, zajedno sa svim resu
ursima koji suu potrebni zaa rad program
ma.
neki algoritam
Znači:
Z
program
m je fajl na diisku. Kada see taj fajl učitaa u memoriju i počinje da se
s izvršava doobijemo procces.
Od
O ideje do prrocesa
k granični skup logičk
kih memorijskih adresa. Operativni sistem
s
upravllja
Svaki proces gleda svoju memoriju kao
m) logičkih adresa u odgovvarajuće fiziččke adrese ko
oje su rezervissane za procees.
prrevođenjem ((određivanjem
Operativni
O
sisstemi izvršavvaju različitee programe: u sistemimaa sa paketno
om obradom to su poslo
ovi (jobs), a u
siistemima sa rrazdijeljenim vremenom – korisnički prrogrami ili zaadaci (tasks).
Program
P
je fa
fajl koji sadržži nizove naredbi mašinskkog jezika (k
koji se može izvršavati naa posmatranom procesoru)) i
ev
ventualno podataka. Kao takav
t
on je op
pisan samo svvojim sadržajjem i ima stattičku strukturru.
Proces
P
(ili tassk) je dinam
mičke prirode.. To je objekkat multiprog
gramiranja i predstavlja pprogram kom
me je pridodaata
posebna strukt
ktura podataka koje se nazziva kontrolnni blok proceesa PCB (Pro
ocess Controll Block) ili PD
P - deskripttor
prrocesa.
Posao
P
(job) je objekat pakeetne obrade i obuhvata nizz naredbi kontrolno-upravlljačkog jezikaa, programa i podataka za te
prrograme. Njeegova obrada se odvija sekvencijalnoo, tako što se izvršava niz
n naredbi koji pokrećee odgovarajuuće
prrograme.
Ovo
O su samo nneke od moguućih definicija za program
m, proces i possao.
Jeednostavno reečeno, progrram je pasiva
an objekat, tto jest datoteeka na disku..
Kada
K
se proggram učita u memoriju, postaje
p
procces, tj. aktiva
an objekat ko
oji ima svojee resurse popu
ut procesorskkih
reegistara i mem
morije.
22
Seeznadar: OS i RM
Operativni sistem
mi
prikupio i ob
bradio Miroslav Mihaljjišin
Procesi
P
in
niti
Najjednostavn
N
nija definicijaa procesa (task) je da je to program koji se izvršava.
Nit
N (thread)see može shvatiiti kao process unutar proceesa.
Nit
N i proces prredstavljaju moguće
m
metod
de realizacijee paralelnog izzvršavanja prrograma.
Grubo
G
govoreeći nit možem
mo shvatiti kao
k podprogrram, a task kao
k program. Program kooji ima mogućnost rada sa
podprogramim
ma ima veću modularnost, brži je i maanji, ali i nesstabilniji –težži za kontroluu, jer pojedin
ni podprogram
mi
dijele zajedniččke resurse, štto često dovo
odi do kolizijee, pada progrrama i sistemaa.
Ilusttracija za pokkazuje razne m
modele multip
iprocesiranja kod različitih
ih OS
korišććenjem niti i pprocesa (threeads and proccesses)
Kako
K
jedan prroces može da se izvršavaa i u korisničkkom režimu i u režimu jezzgra (kernel),, potrebno je obezbediti isstu
podršku i na kkorisničkom nivou
n
za korissničke niti (usser threads), i na nivou jezzgra za niti jeezgra (kernel threads).
s preko bibllioteke za rad
d sa korisniččkim nitima (user thread
d library). Ovva
Podrška za koorisničke nitti realizuje se
biblioteka obeezbeđuje poddršku za stv
varanje niti, raspored izv
vršavanja nitti i upravljannje nitima, ali
a bez uticaaja
jeezgra(kernel).
Najznačajnije
N
C-threads i So
olaris UI-threeads.
vrste niti su : POSIX Pthrreads, Mach C
Niti
N jezgra (kkernel) direkttno podržavaa operativni ssistem. Konk
kretno, jezgro
o (kernel) izvvršava operracije stvarannja
niti, raspoređivanja niti i uppravljanja nittima u prostorru jezgra.
Primjeri : Winndows 95/98/N
NT/2000, Solaris, Tru64 U
UNIX , BeOS
S, Linux.
Kontrolni
K
b
blok procesa –PCBmentalna mem
morijska dijella (sekcije):
Svaki proces ima tri fundam
blast koda (pprogramska sekcija
s
–read only)u kojoj se čuvaju insstrukcije prog
grama,
ob
ob
blast podataaka (sekcija podataka
p
dataa section) u koojoj se čuvaju
u globalne pro
omjenljive i
ob
blast steka ((stek sectionn) u kojoj se čuvaju privrremeni podacci poput paraametara potpr
programa, adrrese povratkaa i
lo
okalne promjeenljive.
Osim
O
memorijje proces korristi i procesorske registrre poput brojača naredbi, ulazno izlaznne resurse po
oput datotekaa i
raaznih ulazno izlaznih uređđaja. dio proccesa su i podaaci koji ga op
pisuju, to jest podaci koji ssu neophodnii za upravljannje
prrocesom. Ovee podatke genneriše i koristti operativni ssistem.
Kontrolni
K
blokk procesa je dio radne memorije,
m
to j est memorijsska struktura sa osnovnim
m informacijaama o processu,
koje operativnni sistem korissti za upravljanje tim proccesom.
U informacije iz kontrolnogg bloka spadaaju:
- ime ili jedinstveni idenntifikator proccesa (PIO);
- kontekst (ookruženje) prrocesa;
- prioritet prrocesa;
- informacijje o memorijii procesa;
- lista otvoreenih datotekaa;
- status zauzzetih ulazno-iizlaznih resurrsa;
- trenutno sttanje procesaa.
23
Seeznadar: OS i RM
Operativni sistem
mi
prikupio i ob
bradio Miroslav Mihaljjišin
Kontrrolni blok proocesa PCB: struktura
s
i eleementi
“Laki”
“
i “teeški” proceesi
Postoje dva gglavna tipa prrocesa u svijetu multitaskkinga - threaads ili “laki” procesi i “teeški” procesi. Ova dva tippa
u kako upravvljaju memoriijom.
prrocesa razlikuuju se uglavnnom po načinu
Postoje operattivni sistemi, koji podržavaju:
samo tešške procese (U
UNIX)
1.
samo lakke procese (O
Oberon)
2.
Windows)
3. podržavaaju i teške i laake procese (W
l
procese vrši
v se na osnnovu toga, kaako koriste meemoriju (kojee dijelove memorije):
Podjela processa na teške i lake
svaki teški proces (ttask) ima sop
pstveni mem
morijski prosttor za kod, globalne
g
prom
mjenljive, stek i heap kojju
ne dijeli ni sa kim, pristup
p tim djeloviima ima sam
mo dati procees.
hreads) mogu dijeliti meemorijski pro
ostor za kod,, globalne prromjenljive i heap. Stek se
laki prrocesi (niti, th
ne može dijelliti jer ne moožemo unapreed znati koji proces korissti stek: proces A stavi neešto na stek i nastavlja raad,
dolazi proces B i on isto stavi
s
nešto naa stek, A je zzavršio svoj rad i sad su mu potrebni podaci sa stteka, a tamo su
l procesi im
maju sopstveeni stek a mog
gu dijeliti kod
d, globalne prromjenljive i heap.
podaci procesaa B… Znači laki
Ako
A neka aplikacija treba da izvrši više funkcija ssimultano, dijjeli se u višee procesa (nppr. korišćenjeem UNIX foork
siistemskog pooziva). Svaki proces
p
obezb
beđuje resursee potrebne zaa izvršavanje programa
p
- im
ma virtualni adresni
a
prostoor,
izzvršni kôd, poodatke, moduule za rukovan
nje objektimaa - hendlere, environment promjenljivee, bazni prioriitet, minimalnnu
i maksimalnu veličinu radnnog prostora.
Nasuprot
N
tomee, u operativnim sistemim
ma Windows osnovna jed
dinica izvršav
vanja je threaad - nit ili to
ok izvršavanjja.
Task
T
ili process sastoji se od jednog ili više
v thread-ovva (jedan je main).
m
Svaki od njih ima rrazličit stek i status mašinne,
alli svi thread-oovi istog proccesa dijele kô
ôd i podatke u memoriji, pa
p prelazak sa jednog na ddrugi thread oduzima
o
mannje
siistemskog vreemena nego prelazak
p
sa jeednog “teškogg” procesa naa drugi.
Kontekst
K
“lakkog” procesa uključuje sku
up procesorsskih registaraa, kernel stek, thread enviironment blok i user stekk u
ad
dresnom prosstoru matičnoog procesa.
i
Programski jezzici, koji omoogućavaju kreeiranje lakih pprocesa: Javaa, Modula-2, Concurrent PPascal, Ada, itd.
U M2 laki proocesi su zapakkovani u teškee procese, koompajler dijeli vrijem e izm
među više proocesa.
24
Seeznadar: OS i RM
Operativni sistem
mi
prikupio i ob
bradio Miroslav Mihaljjišin
Osnovna
O
sstanja proocesa
Proces se možže nalaziti u jeednom od staanja:
k
se procces nalazi naakon što je sttvoren, kreiraa se PCB i pproces ide u sljedeće stannje
• Novi (new) – stanje u kojem
prripravan.
• Spreman -ppripravan (reaady) – označava proces kkoji se nalazi u redu za izzvršavanje. N
Nakon nekog vremena, kada
dobije pravo kkorištenja proocesora, procees prelazi u sttanje aktivan..
U
OS prekine aktivaan proces tad
da se taj procces
• Aktivan – ((run) označavva proces kojji se trenutnoo izvršava. Ukoliko
u I/O operacijju, tada ide u stanje čeka. (U oba slučaaja
prrebacuje u stanje pripravaan, a ukoliko proces mora obaviti neku
see zapamti trennutno stanje popunjavanje
p
em PCB-a).
U stanju RUN
N se nalazi uuvijek samo jedan procees
OSNOV
VNA
(o
onaj
koji
se
trenutno izvvršava - kom
me je dispečeer
STANJJA
do
odijelio
CPU)
).
RUN
STOP
U stanjima RE
EADY i WA
AIT se možee nalaziti višše
prrocesa.
Izz stanja RUN
N u READY
Y proces prelazi po istekku
kv
vanta vremen
na (tj. po prekkidu od časovnika).
Izz stanja RUN
N u WAIT pproces prelazzi ako zatražži
STA
ART
REA
ADY
WAIT
neeki resurs koji je u tom treenutku zauzett (koji ne možže
daa dobije) ili ako mora daa sačeka da mu
m neki druggi
prroces završi posao.
p
Osnovnaa stanja proceesa
U složenijim OS se pojaavljuju još dv
va stanja. Suuspendovanjee procesa po
odrazumeva prebacivanjee iz operativnne
memorije
m
na eeksternu. U OM
O ostaje sam
mo PCB proccesa.
Na taj način dob
bijamo još dvaa stanja:
OSNOVNA
STANJA
RUN
START
READY
SWREADY
STOP
P
WAIT
• proces je suspendovvan i sprema
an (ako je doššlo
do suspendovanja u stannju spreman)
• proces je suspendovvan i blokiran (ako je doššlo
do suspendovanja u stannju blokiran).
oces koji je suspendovan,
s
, prestaje da se takmiči za
Pro
resu
urse, oslobađ
đaju se resurssi koje je zaou
uzeo, ali ostaaje
i daalje proces.
SW-WAIT
Slika 2 - Sttanja procesa
a
i spreman, aako postaje sp
b
prelaazi u stanje suspendovan
s
preman, tj. akko
Proces koji je u stanju susspendovan i blokiran
može
m
da nastaavi sa radom (npr. proces pošalje zahteev skeneru daa skenira sliku
u, čeka da skkener završi sa
s radom, pa se
blokira, u meeđuvremenu se
s suspendiraa, pa postajee suspendovaan i blokiran, kada skeneer završi sken
niranje, procces
prrelazi iz stanjja suspendovan i blokiran u stanje susppendovan i sp
preman.)
Izz stanja suspeendovan i blookiran u stan
nje blokiran i iz stanja susspendovan i spreman
s
u staanje spreman
n procesi moggu
prreći samo expplicitno, tj. zaahtjevom korrisnika.
25
Seznadar: OS i RM
Operativni sistemi
prikupio i obradio Miroslav Mihaljišin
Operacije nad procesima
Operativni sistem može da izvrši sledeće operacije nad procesima:
o
kreiranje procesa
o
uništavanje procesa
o
izrada veza proces – proces roditelj
o
promjena stanja procesa
o
promjena prioriteta procesa.
Kreiranje procesa
Za svaki program odnosno posao OS kreira bar jedan proces.
U okviru tog procesa može se realizovati niz radnji, npr. editovanje, prevođenje, povezivanje i izvršenje (za vrijem e
kartica se radilo slično tome).
Povoljnije rješenje je da se navedene faze kreiraju kao posebni procesi, odnosno editovanje, prevođenje, eventualno
povezivanje i obavezno izvršenje. Svi prethodno pomenuti procesi su kreirani od strane OS. Korisnik ne mora uopšte
da zna da je za njegov program formiran bilo koji proces.
Međutim, za složenije programe se pokazuje da je izuzetno korisno da se razbiju na dijelove i da se za te dijelove
formiraju procesi.
Programski jezici imaju sredstva za kreiranje procesa koja stoje na raspolaganju programeru (npr. funkcije
CreateProcess, CreateThread u C++)
Proces u toku svog izvršavanja može, odgovaraqjućim sistemskim pozivom (npr. fork u UNIX-u), da kreira nove
procese. Proces koji proizvodi nove procese naziva se roditeljski proces (parent process), dok se tako dobijeni proces
naziva dijete proces (child process) i može i sam da kreira svoje naslednike. Tako nastaje stablo procesa. Odnosi
proces roditelj – proces dijete mogu se opisati na osnovu načina dijeljenja resursa i načina izvršavanja.
Postoje sledeći načini dijeljenja resursa:
•
Roditelji i djeca procesi dijele sve resurse
•
Djeca procesi dijele podskup roditeljskih resursa
•
Roditelji i djeca ne dijele resurse.
Kao što smo ranije rekli, svaki proces za svoj rad koristi različite resurse – procesorske registre, memorijski prostor za
kod, podatke i stek, datoteke i ulazno/izlazne uređaje. Specijalno je osejtljiv memorijski adresni prostor koji se između
procesa roditelja i djece može raspodjeljivati na sljedeće načine:
•
Dijete duplikat roditelja
•
Dijete ima program učitan u sebe
Prema načinu izvršavanja, odnos između procesa roditelja i djece mogu biti sledeći:
•
Roditelji i djeca nezavisno i konkurentno rade
•
Roditelji se blokiraju i čekaju da djeca završe sa radom.
Završetak procesa
Proces završava svoju aktivnost kada izvrši poslednju instrukciju svog koda i traži od OS da ga završi tako što mu
upućuje sistemski poziv exit. Pri tome, proces dete može da vrati izlazne podatke roditeljskom procesu preko
sistmskog poziva wait Operativni sistem zatim dealocira resurse pridružene procesu i tako proces na tzv. normalan
način završava sa radom.
Proces se može završiti i nasilno. Procesi roditelji mogu da prekinu izvršavanje procesa djece koju su kreirali
korišćenjem sistemskog poziva abort iz jednog od sledećih razloga:
•
Djeca prevazilaze dodijeljene resurse
•
Task pridružen dijetetu više nije potreban
•
Roditelji završavaju rad
Operativni sistemi ne dozvoljava dijetetu da nastavi sa radom, ako je roditelj završio i nasilno uništavaju sve procese
potomke što se naziva kaskadno završavanje (cascade termination).
26
Seznadar: OS i RM
Operativni sistemi
prikupio i obradio Miroslav Mihaljišin
Odnosi među procesima
Procesi mogu biti međusobno nezavisni ili zavisni.
Ako se procesi izvršavaju uporedo i nezavisno onda nema interakcije niti razmjene informacija između njih, nasuprot
kooperativnim procesima koji moraju da razmenjuju informacije ili da se međusobno sinhronizuju - dijele stanje
(podatke).
U multiprocesnom OS izolovanih procesa praktično nema – svi oni dijele resurse sistema (memoriju, fajlove, I/O
uređaje)
Kod nezavisnih procesa rezultat izvršavanja procesa ne zavisi od redosljeda izvršavanja i preplitanja sa drugim
nezavisnim procesima – ne zavisi od raspoređivanja.
Kod procesa koji dijele podatke rezultat izvršavanja zavisi od redosleda izvršavanja i preplitanja – dakle, zavisi od
raspoređivanja.
Odnose među procesima koje ćemo analizirati možemo svrstati u tri osnovne grupe:
• međusobno isključenje procesa (mutual exclusion)
• sinhronizacija procesa (synchronization)
• uzajamno blokiranje - zastoj (deadlock)
Međusobno isključenje procesa
Međusobno isključenje procesa je takav odnos među procesima koji ne dopušta istovremeno izvođenje dva procesa u
pojedinim njihovim djelovima (kritičnim sekcijama), dok se u ostalim djelovima procesi mogu bez problema uporedo
izvršavati.
U ovakav odnos dolaze nezavisni procesi koji treba da koriste neki nedjeljiv resurs, npr. datoteku ili područje u
memoriji u koje oba mogu da upisuju podatke.
Na primjer, pretpostavimo da procesi p1 i p2 rade u nekom sistemu za rezervaciju avionskih karata. Pri tome bi
rezervaciji karate odgovarao upis u neko memorijsko područje R. Onaj proces koji prvi dobije resurs R mora izvršiti
rezervaciju, odnosno upisati rezervaciju u području R, ili ako je neki proces već ranije izvršio rezervaciju i upisao
svoje podatke u područje R, proces mora odustati od rezervacije. Zbog toga, svaki proces kada pristupi u područje R
mora pre rezvisanja provjeriti da li je područje slobodno i ako jeste, upisati svoje podatke. Problem može nastati ako
proveru da li je područje R slobodno proces izvrši nakon što je istu proveru izvršio, a pre no što je izvršio rezervaciju
neki drugi proces. Da bi se ovo sprečilo, od trenutka kada neki proces P krene u proveru, mora se zabraniti pristup
području R drugim procesima sve dok proces P ne završi sa rezervacijom.
Ovaj dio koda u kome neki proces koristi nedjeljivi resurs naziva se kritična sekcija. OS mora da posjeduje
mehanizam koji će vremenski uskladiti izvođenje procesa i pri svakom korišćenju nedjeljivog resursa provoditi
međusobno isključivanje procesa. Ukoliko procesi istovremeno ulaze u svje kritične sekcije treba takođe provesti
međusobno isključenje, dakle propustiti samo jedan proces.
Sinhronizacija procesa
Uopšteno gledano, procesi unutar računarskog sistema teku asinhrono. Međutim, u pojedinim slučajevima mogu
postojati djelovi procesa, pa i čitavi procesi čiji rad neophodno uskladiti. To usklađivanje tokova dvaju ili više procesa
međusobno nazivamo sinhronizacijom procesa. Sinhronizacija procesa sastoji se u tome da se djelovi procesa koji
treba da budu sinhronizovani odvijaju prema određenim pravilima, odnosno prema određenom redosledu. Taj redosled
može biti od slučaja do slučaja različit, pa imamo različite vidove sinhronizacije procesa.
Sinhronizacija nije jed noznačan odnos kao međusobno isključenje.
Uzajmno blokiranje procesa – zastoj
Treća vrsta odnosa je tzv. deadlock - zastoj. Ovakav odnos je nepoželjan u sistemu i treba ga, ako je moguće sprečiti
ili, ako se dogodi, intervencijom operativnog sistema razrešiti. Do međusobnog blokiranja dolazi zbog konkurisanja
za resure računarskog sistema ili zbog čekanja na događaj koji ne može nastupiti.
Raspodjela poslova
Mehanizam raspodjele poslova OS omogućava predaju upravljanja između taskova.
Multitasking se izvršava između dva ili više procesa.
27
Seznadar: OS i RM
Operativni sistemi
prikupio i obradio Miroslav Mihaljišin
Konkurentni procesi
Nit (thread) je entitet koji se izvršava koristeći program i druge resurse od pridruženog procesa. Svaka nit je
pridružena nekom procesu. Jednom procesu se može pridružiti više niti. Rad sa više niti (multithreading) se odnosi na
mogućnost operativnog sistema da podrži izvršavanje više niti u okviru jednog procesa. Tradicionalan pristup je
izvršavanje jedne niti po procesu.
Primjeri operativnih sistema sa takvim pristupom su MS-DOS i više verzija UNIX-a. Većina savremenih operativnih
sistema podržava niti.
Na primjer, sve novije verzije operativnog sistema Windows i Solaris podržavaju rad sa nitima. Takođe, savremeni
programski jezici kao što su Ada i Java podržavaju niti.
Paralelno (uporedno, istovremeno, konkurentno) izvršavanje više procesa je moguće samo ako se računarski
sistem sastoji od više centralnih procesora. Za takav računarski sistem se kaže da je višeprocesorski. Na sistemu sa
jednim procesorom moguće je samo kvaziparalelno izvršavanje procesa. U bilo kom trenutku izvršava se samo jedan
proces.
Primjer kvaziparalelnih procesa R1, R2 i R3 je prikazan na slici dole.
Primjer paralelnih procesa R1, R2 i R3 je dat na slici dole desno. Pretpostavljeno je da
sistem ima 3 procesora i da se na svakom od njih izvršava samo po jedan proces.
Slika 1.
Slika 2.
Jedna nit može da zahtjeva servis neke druge niti. Tada ta nit mora da sačeka da se pozvani servis završi. Potreban je
mehanizam sinhronizacije jedne niti sa drugom niti ili sa hardverom. To se može uraditi pomoću signala koji ima
značenje da je pozvani dio posla završen.
Konkurentne niti su niti koje se izvršavaju u isto vrijeme. Konkurentne niti mogu da se takmiče za ekskluzivno
korišćenje resursa. Niti mogu da postavljaju istovremene zahtjeve za istim resursom ili istim servisom. Operativni
sistem mora da obezbijedi interakciju između konkurentnih niti. Kritična sekcija je segment koda čije instrukcije
mogu da utiču na druge niti. Kada jedna nit izvršava kritičnu sekciju ni jedna druga nit ne smije da izvršava tu istu
kritičnu sekciju.
Slika 3.
Teškoće koje nastaju u softverskoj realizaciji algoritama za upravljanje
kritičnim sekcijama su:
•
stalno testiranje promjenljivih ili stanja čekanja, što troši procesorsko
vrijeme,
•
svi detalji implementacije direktno zavise od programera i mogućnost
greške je uvijek prisutna,
•
ne postoji način da se nametne protokol koji zavisi od kooperacije,
programer može da izostavi neki dio,
•
ovi protokoli su suviše komplikovani.
Problem upravljanja konkurentnim procesima
Za upravljanje konkurentnim procesima potrebno je da:
• Metod za dijeljenje vremena mora da bude implementiran tako da omogući svakom od kreiranih procesa da
dobije pristup sistemu. Ovaj metod uključuje mogućnost prekidanja onih procesa koji ne ustupaju procesor
dovoljno.
• Proces i sistemski resursi moraju da imaju zaštitu i moraju da budu zaštićeni međusobno. Veličina memorije
koju dati proces može da koristi mora da bude ograničena za bilo koji proces, kao i operacije koje može da
izvršava na uređajima kao što su diskovi.
• Sistem ima ugrađene mehanizme unutar jezgra za prevenciju potpunog zastoja između procesa.
28
Seeznadar: OS i RM
Operativni sistem
mi
prikupio i ob
bradio Miroslav Mihaljjišin
Pojam,
P
sttrukturaa, uprav
vljanje i zzaštita fa
ajlova
Bilo
B koji operaativni sistem treba da omo
ogući jednostaavno organizzovanje i pretrraživanje poddataka na raču
unaru.
Pojam
P
fajlaa - datotek
ka (file)
Datoteka,
D
fajl (file) predstaavlja osnovnu
u organizacionnu cjelinu, u koju
k
smještam
mo podatke.
Fajl
F (file) značči papir, dokuument unutarr Pojam fajll je uveden zb
bog potrebe povezivanja
p
pprograma sa ulaznou
fascikle.
izlaznim uuređajima kojji omogućavaaju memorisaanje podatakaa.
Pod fajlom
m nazivamo imenovani prostor
p
na m
memorijskom medijumu
(disk, cd, usb) koji sad
drži određene informacije.
k
da
d organizujuu podatke u skladu sa
Datoteke omogućuju korisnicima
d
(filee) predstavljaa kolekciju
svojim pootrebama. Zaa korisnika, datoteka
povezanihh informacija, tj logičku cjjelinu sa značčenjem.
Za operattivni sistem, to je objek
kat koji se čuva u sek
kundarnoj
memorijii.
Naglasimo
N
dattoteke se moggu posmatratii na dva načinna:
¾ kao loogička sliku koja prikazujje datoteku ka
kao redove infformacijskih cjelina
¾ koo fi
fizička slika u kojoj se dattoteka sastoji iz reda inform
macionih blokova iste veliičine
Za
Z datoteku se može reći i da je to apstraktni
a
tiip podataka koji OS deffiniše i impllementira ka
ao niz logičk
kih
sllogova.
Tip
T podataka ppodrazumijevva skup vrijednosti koje ppodatak možee da ima, mem
morijski prosstor potreban
n za smiještannje
podatka, kao i operacije koj
oje mogu da se izvrše nad ppodatkom.
Za
Z razliku od podataka kooji se nalaze u operativnooj memoriji, podaci u dattoteci su posstojani, tj. ostaju sačuvanii i
nakon isključeenja napajanjja ili ponovn
nog uključenj a sistema. Po
odaci koji see čuvaju u daatotekama se mogu izgubbiti
m uređaja na kojima se datoteke nalazee.
jeedino otkazom
Bitne
B
karakteersitike sistem
ma datoteka su: strukturra, imenovan
nje, zaštita, fizička orgaanizacija datoteka i načiini
korišćenja. Naa jednom disku se može nalaziti
n
više rrazličitih sistema datotek
ka.
Upisivanje
U
loggičke datotekke na momo
orijski uređajj je jedna od
d osnovnih funkcija
f
operrativnih sisteema, tj. glavnna
fu
unkcija sistem
ma za upravljanje datotekaama.
U opštem sluučaju veličinaa logičkog slloga je različčita od veličiine fizičkog sloga na ureeđaju na kom
me se datotekka
sk
kladišti. Datooteka nije uvvijek memorissana kao cjellina na jedno
om mjestu naa disku, već kkod realnih sistema
s
sadržžaj
datoteke možee da bude razbbacan u više blokova
b
koji nisu susjednii, odnosno može doći do ffragmentacijee podataka.
Za
Z pojam fajlaa su vezani saadržaj i atribu
uti.
Sadržaj fajla oobrazuju korissnički podacii.
Atributi
A
fajlaa se čuvaju u deskriptoru fajla
f
poznatim
m pod imenom kontrolni blok
b datotekee (file contro
ol block, FCB
B).
Kontrolni
K
blokk datoteke naajčešće je dirrektorijumskaa struktura, ali
a se može implementira
i
ati i kao zaseebna tabela (nna
Primjer, indekksni čvor u sisstemu datotek
ka ext2).
Najvažniji
N
atrributi datotekke su: ime, veličina,
v
datuum i vrijemee posljednjeg
g ažuriranja, vlasnik, dozvole, lokaciija
podataka, itd.
Zaštita
Z
datoteeka je važna osobina OS koja omoguććava da različčiti korisnici skladište svojje informacije na djeljenoom
raačunaru i da ttim informaciijama mogu da
d pristupe saamo vlasnici tih
t podataka i autorizovanni korisnici.
Važno
V
je i sprriječiti da ne dođe do gub
bljenja podataaka. Datotekee ili dijelovi datoteka moggu da budu uništeni
u
na viiše
načina: hardvverske greškee, otkazi nap
pajanja, otkaazi glava disska, prašina, velike tempperaturne pro
omjene, velikke
v
drrugih korisnika, prisustvo jakih magnet
etnih polja, itd
d.
prromjene vlažžnosti, softverrske greške, vandalizam
29
Seeznadar: OS i RM
Operativni sistem
mi
prikupio i ob
bradio Miroslav Mihaljjišin
Format
F
ilii tipovi daatoteka
Format ili tip ddatoteke odreeđuje na koji način se vrši memorisanjee računarskih podataka.
o
sistema
s
jednoo-dimenzionalni redovi bajjta
Formati su neoophodni zbogg činjenice daa su datoteke sa stajališta operativnog
Takve
T
ograniččene, linearnee strukture nee mogu jasno opisati različčite vrste pod
dataka što znaači da se kom
mpleksni podaaci
moraju
m
intepreetirati putem konvencija.
k
Sve
S konvencij
ije za jednu vrstu
v
datoteka označavaju sse formatom.
U početnom stadiju računnara, kompleksni i komprrimirani, tako
ozvani binarn
ni formati suu bili standarrdni. Razlog je
jeednostanan - skupocjenostt memorije naa čvrstom dissku. Dodatni razlog predsttavljala je i ččinjenica da su komercijalnne
fiirme strogo ččuvale formatte kao poslov
vne tajne. Raazmjena podaataka sličnih programa izz različitih firrmi je stajalaa u
pozadini. Prvi koraci u praavcu slobodnee razmjene poodataka izmeeđu različitih programa saččinjavali su RIFF
R
formati iz
80-tih godina nnpr. WAV foormat za audio datoteke.
U posljednje vrijeme sve se više korristi metoda koja omogu
ućava memorrisanje podattaka koje je nezavisno od
o
prrograma i prroizvodjača - XML. Preduslov za kkorištenje ovee tehnologijee je upotrebaa internacion
nalno priznattih
sttandarda. U nnekim oblasttima (npr. prrikaz vektorskkih grafika ili
i matematičkih formula)) slični stand
dardi su se veec
ettablirali. U prreostalima je razvoj i prim
mjena ovih i slličnih standarrda u toku.
Izz razloga ušttede memoriije, XML daatoteke su čeesto komprim
mirane (npr. ZIP). Sloboddni OpenOfffice.org korissti
naprimjer Opeen Document XML za svo
oje datoteke.
Datoteke
D
se nnajjednostavnnije mogu podijeliti na izv
zvršne datotek
ke (tj preved
dene i povezaane programe) i datotekee s
podacima, koje mogu biti tekstualne i biinarne.
U većini operrativnih sistem
ma, posle izrrade, datotekka osim imen
na dobija i tip
p. Pomoću tiipa, operativn
ni sistem može
prreliminarno dda odredi vrsttu datoteke i da
d je poveže s nekom apliikacijom.
orišćenjem
Tip datoteke sse može realizovati ko
nasttavka imenna datotekke tj eksstenzijom
(exttension), što je slučaj u operativnim
o
sistemima
s
DO
OS/Windows..
U sledećoj
s
tabelli navedene su
s neke od značajnijih
z
eksttenzija koje se koriste u ovim op
perativnim
sistemima.
xolikih OS tip
t datoteke sse alternativn
no može zaddati
Kod Unix
nekim ka
arakterističnim zapisom.
oda zadavanjja tipa prim
menjuje se naa UNIX/Lin
nux
Ova meto
sistemima
a – magični brojevi
b
koji sse nalaze na samom
s
počettku
datoteke određuju
o
njen
n tip.
Izz komandnogg intepretera UNIX
U
ne prep
poznaje eksteenziju (datoteeka sa ekstenzzijom txt bez problema mo
ože biti arhivva
illi izvršna datooteka). Međuutim, Linux u grafičkom okkruženju prelliminarno odrređuje vrstu ddatoteke na ossnovu
ek
kstenzije i otvvara datotekuu pridruženom
m aplikacijom
m.
30
Seznadar: OS i RM
Operativni sistemi
prikupio i obradio Miroslav Mihaljišin
Prepoznavanje i otvaranje fajla kod Unixa
Na UNIX sistemima postoji nekoliko osnovnih tipova datoteka:
• tekstualne datoteke - ASCII (neformatiran tekst), English text (tekst sa interpunkcijskim karakterima)
• izvršni shell programi. Ovaj tip datoteka se može pro čitati korišćenjem programa za pregled sadržaja
tekstualnih datoteka (cat, less) ilimodifikovati pomo ću editora teksta (kao što su vi i joe);
• izvršne (binarne) datoteke;
• datoteke u koje su smješteni podaci (na primjer, Open Office Writer dokument). Ove datoteke mogu se
pročitati korišćenjem programa iz koga su kreirane i programakoji je kompatibilan sa tim formatom datoteka (na
primjer, Open Office može daotvori dokumente kreirane Microsoft Office paketom).
Kako bi bez otvaranja datoteke u nekom editoru (koji inače služe samo za pregled tekstualnih datoteka) saznali o
kakavoj se datoteci radi, možemo se poslužiti naredbom file: $ file /bin/ps
Prilikom određivanja tipa datoteke komanda file izvršava slede će testove:
• Test specijalnih datoteka se na osnovu sistemskog poziva stat() određuje da li jedatoteka regularna ili
specijalna (odnosno node, simbolički link, imenovani pipe). Ukolikodatoteka prođe ovaj test na ekranu se
prikazuje tip datoteke, a dalje izvršenje komande seobustavlja.
• Test magičnih brojeva određuje se programski paket kojim je datoteka kreirana. Svaki program prilikom
kreiranja datoteka upisuje neke kontrolne informacije (overhead) koje ovaj test posmatra kao identifikator tipa
datoteke, odnosno magični broj. Bilo kojadatoteka sa nepromenjenim identifikatorom, koji se nalazi na fiksnom
ofsetu od početka datoteke, može biti opisana na ovaj na čin. Magični brojevi se smještaju u
datoteke/usr/share/magic.mgc i /usr/share/magic i prilikom izvršavanja ovog testa redom traže nafiksnom
ofsetu u datoteci. Ukoliko se određeni magi čni broj poklopi sa magi čnim brojemdatoteke, program file prekida
dalje izvršenje i na ekranu ispisuje informaciju o programukojim je datoteka kreirana.Ukoliko datoteka ne prođe
ni test magi čnih brojeva, program file će pokušati da odredi dali je datoteka tekstualna i u tom smislu ćenajpre
izvršiti test seta karaktera.
• Test seta karaktera (character settest). U datoteci postoje tri tipa karaktera:
ƒ normalni karakteri (karakteri koji mogu biti prikazani na ekranu),
ƒ kontrolni karakteri, kao što su space i tab (karakteri koji ne mogu biti prikazani naekranu, ali se
pojavljuju u običnim tekstualnim datotekama),
ƒ binarni karakteri (karakteri koji se ne mogu prikazati direktno na ekranu, i ne pojavljuju se u običnim
tekstualnim datotekama
• Karakter set (character set) je jednostavna deklaracija normalnih, kontrolnih i binarnihkaraktera. Na
osnovu karaktera koji se u datoteci pojavljuju komanda file određuje karakter set kome datoteka pripada. Ukoliko
datoteka pro đe ovaj test komanda file naekranu prikazuje ime karakter seta datoteke (ASCII, ISO-8859-x, UTF8, UTF-16,EBCDIC).
• Nakon toga se izvršava jezički test (language test) kojim će komanda file pokušati da odredi programski
jezik u kome je datoteka napisana - u datoteci se traženizovi karaktera koji su karakteristi čni za određene
programske jezike. Na primjer, ukolikose u datoteci pojavi riječ keyword.br, to znači da se ispitivanje vrši nad
troff(1) ulaznom datotekom, dok riječ struct nagoveštava da se radi o C programu.
U slučaju da program file jezičkim testom ne može da odredi programski jezik, datoteka se smatra tekstualnom
31
Seeznadar: OS i RM
Operativni sistem
mi
prikupio i ob
bradio Miroslav Mihaljjišin
Logički
L
i ffizički sisttem za up
pravljanjee datoteka
ama
Najvažnije
N
akttivnosti operaativnog sistem
ma u dijelu zaa upravljanje podacima naa sekundarnojj memoriji su
u:
1))
planirranje dodjele sekundarne memorije,
m
2))
dodjella slobodne sekundarne
s
memorije,
m
3))
upravljanje sloboddnim memorijskim prostorrom na sekund
darnoj memo
oriji.
Sistem za upraavljanje podaacima ima sljeedeće funkcij e:
•
identifikovvanje i lociran
nje izabranihh datoteka,
korišćenjee direktorijum
ma za opisivannje lokacije svih datoteka i njihovih atrributa,
•
opis kontrrole pristupa korisniku
k
u dj
djeljenom sistemu, rad sa blokovima
b
raddi pristupa daatotekama.
•
Sistem za uprravljanje podaacima upravlj
lja radom sekkundarne mem
morije i možže se dekompponovati na logički i fiziččki
siistem za upraavljanje podaccima.
Poostoje dva od
dvojena aspeekta sistema za upravljaanje podacim
ma:
intterfejs ka krajnjem ko
orisniku i implementacija. Interfeejs
obbuhvata dato
oteke i direektorijume, a implemen
ntacija fizičkku
orgganizaciju po
odataka.
kazane kompo
onente sistem
ma za upravljaanje podacimaa.
Naa slici su prik
Zaadatak OS je da preslika podatke sa kkojima radi krajnji
k
korisnnik
preeko datoteka na fizički ureeđaj ili više fi
fizičkih uređajja.
Zaa svaki uređaaj koji se povezuje sa daatim računarsskim sistemoom
pootreban je poseban prograam koji se zoove drajver uređaja
u
(devicce
drriver).
Drrajver uređajaa je ili dio OS ili je raspooloživ operatiivnom sistem
mu.
Naamjenjen je za direktnu komunikaaciju sa dattim uređajem
m,
koontrolerom ilii kanalom. Drajver
D
uređaj
aja je odgovo
oran pokretannje
U//I operacije na
n uređaju i procesiuranje
p
e završetka zahtjeva
z
za U/I
U
opperacijom.
drima, upisnoDrrajver diska pristupa sektorima, staazama, cilind
čittajućim glav
vama diska, nosačima glava i svim drugiim
meehaničkim dijelovima ko
oji obezbjeđuuju da disk ispravno raddi.
Kaada drajver diska zna koju
u komandu trreba proslijed
diti disku, on je
uppisuje u registtre kontroleraa diska.
Komponente
K
ssistema za uppravljanje pod
dacima
Logička
L
sttruktura i organiza
acija datooteka (FIL
LE SYST
TEM)
U najjednostavvnijem slučajju, datoteka nema
n
svoju loogičku struktu
uru i predstav
vljena je kao kkolekcija rečii,
tj bajtova.
U jednostavnij
ije logičke sttrukture spadaju strukturee zapisa, pri čemu
č
jedan zapis
z
u datotteci može bitti fiksne ili
prromjenljive ddužine. Primj
mjer zapisa jee red u tekstuualnoj datoteeci. Složenijee strukture prredstavljaju formatirani
f
dokumenti.
Datoteka
D
sa llogičkom strrukturom možže se simulirrati umetanjjem kontrolnih znakova u datoteke bez
b logičke
sttrukture, nprr umetanjem
m kontrolnih znakova Linne Feed (LF
F) i Carriag
ge Return (C
CR) u tekst, dobijamo
jeednostavan teekstualni dokuument.
Datoteke
D
se ggrupišu u skuupove datotek
ka. Na primj er, prirodno je da datotek
ke sa podaciima o studen
ntima pojedinnih
godina studija istog smjera pripadaju jed
dnom skupu ddatoteka.
ko se prihvatii gledište da skup datotek
ka sadrži imenna
Skupu datotekka pristaje naaziv direktorijjum (directorry, folder), ak
vih datoteka kkoje su obuhvvaćene pomenutim skupom
m.
sv
Radi
R
razlikovvanja direktorrijuma, svak
ki od njih poosjeduje imee koje bira korisnik.
k
Za direktorijum
me su dovoljnna
jeednodjelna im
mena, jer nem
ma potrebe za klasifikacijom
m direktoriju
uma (pogotovo ne po njihoovom sadržaju
u).
Direktorijum
D
mi
32
Seznadar: OS i RM
Operativni sistemi
prikupio i obradio Miroslav Mihaljišin
Direktorijum ili katalog je struktura podataka koja sadrži listu datoteka i poddirektorijuma.
Direktorijum omogućava automatsko vođenje evidencije o datotekama i preslikavanje između imena datoteka i samih
datoteka.
I sam direktorijum je datoteka. Direktorijum je posebna datoteka koja sadrži jednu ili više datoteka. Osnovna razlika u
odnosu na korisničke datoteke je da podaci unutar direktorijuma nisu korisnički podaci, već sistemski podaci o
sistemu datoteka. Direktorijum sadrži informacije o atributima, lokaciji i vlasniku datoteke.
Direktorijumi uspostavljaju logičku organizaciju sistema datoteka koja je nezavisna od organizacije uređaja.
Za pristup datotekama koje se nalaze u direktorijumima koriste se sistemski pozivi koji odgovaraju osnovnim
operacijama za rad sa datotekama. Datotekama se može pristupati pomoću apsolutne staze i pomoću relativne staze.
Datoteke na različitim putanjama mogu imati isto ime.
Diskovi mogu da sadrže na stotine hiljada ili više miliona datoteka. Direktorijum obezbjeđuje sistematičan način za
imenovanje i lociranje tih datoteka. Dio sistema za upravljanje datotekama omogućava administraciju organizacije
datoteka koje se mogu nalaziti na više uređaja uključujući uređaj koji se samo povrijemeno povezuju na dati sistem.
Postoji nekoliko načina za izbor strukture podataka kojom se predstavlja sadržaj direktorijuma.
Prva mogućnost je da direktorijum podržava linearni prostor imena, kao što je prikazano na slici 2.
Slika 3. Hijerarhijski prostor imena
sistemi direktorijuma DOS/Windows
Slika 2. Linearni prostor imena
Druga mogućnost je hijerarhijski prostor imena, kao što je prikazano na slici 3.
Najjednostavniji oblik hijerarhijskog direktorijuma je struktura podataka u obliku stabla. Na svaki direktorijum sem
korijenog direktorijuma i na svaku datoteku pokazuje tačno jedan direktorijum. Direktorijumi koji imaju hijerarhijsku
strukturu u obliku stabla se često primjenjuju u različitim OS. Ovakav način omogućava da datoteke sa istim imenom
mogu da se pojavljuju u različitim direktorijumima.
Treći mogući način za strukturu podataka koja se koristi kao sadržaj direktorijuma je
aciklični graf, kao što je pokazano na slici 4. Grafovi u opštem slučaju mogu biti
ciklični i aciklični.
Kod cikličnih grafova postoji zatvorena putanja. Kod acikličnih grafova to nije slučaj.
Slika 4. Aciklični graf
Označavanje datoteka
Svaka datoteka posjeduje ime koje bira korisnik. Poželjno je da ime datoteke ukazuje na njen konkretan sadržaj, ali i
na vrstu njenog sadržaja (radi klasifikacije datoteka po njihovom sadržaju).
Zato su imena datoteka dvodijelna, tako da prvi dio imena datoteke označava njen sadržaj, a drugi dio označava vrstu
njenog sadržaja, odnosno njen tip. Ova dva dijela imena datoteke obično razdvaja tačka.
Realizacija sistema datoteka
Prilikom realizacije sistema datoteka, definiše se:
• Logička struktura sistema datoteka – logička struktura je način predstavljanja sistema datoteka korisniku;
pod ovim se podrazumjeva definicija datoteka, direktorijuma, njihovih atributa i operacija dozvoljenih nad njima
tj. sve što predstavlja logičku sliku sistema datoteka.
• Fizička struktura sistema datoteka – čine je strukture podataka na disku koje služe za skladištenje
podatakač u ove strukture spadaju, npr blokovi (UNIX, Linux) i klasteri (clusters (sistem datoteka FAT))
• Preslikavanje logičke strukture sistema datoteka u fizičku – pod ovim preslikavanjem podrazumjeva se
33
Seeznadar: OS i RM
Operativni sistem
mi
prikupio i ob
bradio Miroslav Mihaljjišin
uspostavljjanje veze izm
među sadržajja konkretne datoteke ili direktorijuma
d
a i struktura nna disku; nprr, preslikavannje
određuje dda se sadržaj datoteke myd
doc.txt iz direektorijuma c:\1, nalazi u blokovima 15,,16 i 25...
ma datoteka –nna
Po pravilu, sisstem datotekaa se realizujee u više nivooa, tj slojeva (layers). Pri radu sa objekktima sistem
mena datoteke do konkretno
og fizičkog bbloka na disku
u.
Primjer, sa dattotekama – pootrebno je preeći put od im
Organiza
O
acija i fizzička strruktura sistema datoteka
a kod se kundarn
ne
memorije
m
e (diskovva)
ma ili nekom
m drugom med
dijumu sekun
ndarne memorrije.
Sistemi datoteeka se skladištte na diskovim
može podijeliti na jednu illi više particijja, kao na slicci 1, pri čemu
u na particijam
ma mogu da budu nezavissni
Svaki disk se m
siistemi datotekka.
Nulti
N
sektor diiska se nazivaa glavni startn
ni slog (Mastter Boot Reco
ord, MBR) i koristi
k
se za sstartovanje raačunara. Tabeela
particija koja se nalazi na kraju glavno
og startnog slloga sadrži po
očetnu i krajn
nju adresu svvake particijee i jedna od tih
t
particija je oznnačena kao akktivna.
MBR
M
je nezavvisan od operrativnog sisteema, dok je B
BOOT SECT
TOR aktivne particije zaviisan o operattivnom sistem
mu
(D
DOS, Window
ws, Unix...) i vrsti fajl sisttema (FAT, N
NTFS, FreeB
BSD...)
Slikaa 1. Primjer strukture
s
sisteema datoteka
Nakon
N
startovvanja računaara BIOS (Basic Input-O
Output System
m) čita i izv
vršava glavnni startni slo
og. Na osnovvu
in
nformacije u glavnom starrtnom slogu locira
l
se aktiivna particija na disku i uččitava se u nj
njen prvi blok
k koji se nazivva
boot blok u opperativnu memoriju.
Program iz booot bloka punni operativni sistem koji sse nalazi na aktivnoj partticiji. Svaka pparticija imaa boot blok bez
bzira da li se na njoj nalazzi operativni sistem
s
koji see može boot-iirati ili ne.
ob
Osim
O
boot blooka strukturra particije diska
d
zavisi ood sistema do
o sistema.
Bitan
B
dio partticije je i sup
perblok koji sadrži ključnne parametre o sistemu daatoteka kao ššto su: tip sisstema datotekka,
veličina sistem
ma datoteka, broj
b slobodnih
h blokova u ssistemu datotteka i drugi ad
dministrativnni podaci.
ma održava superblok
s
u ooperativnoj memoriji i periodično
p
gaa upisuje na disk.
Jezgro operattivnog sistem
z rad sistem
ma, operativnni sistem rep
plikuje sadržžaj
S obzirom daa superblok sadrži kritične podatke neophodne za
uperbloka na disk za slučaaj da otkaže dio
d diska na kkome je upisaan superblok.
su
34
Seznadar: OS i RM
Operativni sistemi
prikupio i obradio Miroslav Mihaljišin
Pozicija superbloka
Pored superbloka u particiji se nalaze podaci o slobodnim i zauzetim blokovima datog sistema datoteka u obliku
bitmape ili povezane liste pokazivača.
Takođe, u svakoj particiji se nalaze direktorijumi i datoteke koji pripadaju datom sistemu datoteka.
Particije mogu da budu primarne, logičke i dodatne.
Primarne particije su one sa kojih je moguće podizanje operativnog sistema. Svaki disk mora da ima bar jednu
primarnu particiju. Upotrebom više primarnih particija moguće je instalirati i koristiti više operativnih sistema na
istom disku.
Logičke particije su particije čija je namjena skladištenje podataka. Sa logičkih particija se ne može podizati
operativni sistem.
Dodatne particije omogućavaju prevazilaženje ograničenja koje postoji po pitanju maksimalnog broja mogućih
particija na jednom disku. Dodatna particija može da sadrži više logičkih particija.
Logička struktura i organizacija datoteka
Organizacija datoteka označava logičku strukturu slogova datoteke na osnovu načina na koji im se pristupa.
¾ brz pristup podacima,
Kriterijumi koji se koriste kod izbora organizacije datoteke su:
¾ jednostavnost ažuriranja,
¾ jednostavnost održavanja,
¾ pouzdanost.
Operativni sistemi podržavaju datoteke koje na implementacionom nivou mogu biti nizovi bajtova, nizovi slogova ili
nizovi složenijih organizacija podataka.Postoji veliki broj organizacija datoteka koje su implementirane ili predložene
za implementaciju. Od svih do sada poznatih organizacija datoteka, najčešće se koriste sljedeće:
•
Serijska organizacija datoteke omogućava da se podaci upisuju redosljedom kojim nastaju. Mogu se upisivati
slogovi promjenljive dužine i promjenljiv skup polja unutar sloga. Unutar serijske organizacije ne postoji struktura.
•
Sekvencijalna organizacija. Razlika između serijske i sekvencijalne organizacije datoteka je u tome što kod
sekvencijalne organizacije postoji informacija o vezama između slogova logičke strukture datoteke. I kod jedne i kod
druge organizacije slogovi se upisuju u susjedne lokacije unutar memorisjkog prostora dodjeljenog datoteci. Svi slogovi
su iste dužine.
•
Kod spregnute organizacije se koriste pokazivači. Postoje jednostruko, dvostruko i višestruko spregnute datoteke.
•
Rasuta organizacija. Za rasutu organizaciju je karakteristično da se adresa lokacije dobija transformacijom
vrijednosti identifikatora sloga. Neophodno je da svaki slog ima svoj ključ.
•
Indeks-sekvencijalna organizacija datoteke uvodi tri zone: primarnu zonu (ili zonu podataka), zonu indeksa i
zonu prekoračenja. Zbog poboljšanja performansi indeks-sekvencijalne datoteke se periodično reorganizuju.
•
Indeksna sa B stablima otklanja potrebu periodičnog obnavljanja. Ovaj nedostatak je otklonjen kod indeksne
organizacije sa B- stablima koja ima primarnu zonu i zonu indeksa. Osnovna karakteristika indeksne organizacije sa Bstablima je da postoji automatska reorganizacija po potrebi.
•
Organizacija sa više ključeva. Datoteke sa više ključeva su najčešće indeksne datoteke sa B-stablom ili nekom
varijantom B-stabla. Za svaki ključ postoji po jedna zona indeksa.
35
Seeznadar: OS i RM
Operativni sistem
mi
prikupio i ob
bradio Miroslav Mihaljjišin
Metode
M
pristup
upa datotekam
ma i podacim
ma
Da
D bi se podaaci iz datotekke koristili potrebno
p
je dda se podacim
ma pristupi i da se nakonn toga učitaju
u u operativnnu
memoriju
m
račuunara. Inform
macijama u datoteci se može pristu
upiti na više načina. Naččini pristupa uskladišteniim
podacima se zzovu metode pristupa.
p
Najjednostavn
N
niji metod priistupa je sek
kvencijalni p
pristup. Sekv
vencijalni pristup je zasnoovan na mod
delu datoteke u
ob
bliku trake. Kod sekvenncijalnog pristupa postojii pokazivač na trenutnu lokaciju unnutar datotek
ke i podaci se
prrocesuiraju sllog po slog. Ovakav
O
način
n pristupa se kkoristi kod ed
ditora i prograamskih prevoodilaca.
Kod
K sekvencijjalnog pristuppa informacijje se prosljeđđuju
taačnim redoslledom, jednaa iza druge, u odnosu na
vrrijednost tekuućeg pokazivvača (curren
nt pointer, C
CP).
Posle svakogg pristupa datoteci, vrednost tekuućeg
pokazivača se ažurira.
Sekvencijalni pristup zahtteva da posto
oji mogućnosst premotavaanja datoteke na početak,, tako da vreednost tekućeg
=0).
pokazivača buude nula (CP=
Znači,
Z
pri sekvvencijalnom pristupu
p
datoteci, mogu see izvesti sledeeće operacije:
•
čitanje sledećeg bloka
•
upis u sleddeći blok
•
pozicionirranje na počettak
Drugi
D
metod jje direktan pristup
p
ili reelativni pristuup. Pretpostav
vlja se da se u datoteci naalaze logički slogovi fiksnne
du
užine. Direkttan pristup jee zasnovan naa modelu datooteke u oblik
ku diska. Dato
oteka se možee posmatrati kao numerisan
niz blokova illi slogova i zbog
z
toga se slogovima u datoteci mo
ože pristupatti brzo i to ppo proizvoljnom redosljeddu.
Direktan
D
pristuup omogućavva korisniku da prustupi kkrajnjem bloku datoteke bez
b čitanja pprethodnog saadržaja. Pristuup
datotekama naa disku je direektan. U operracije koje se mogu izvestii ukoliko je pristup
p
datotecci direktan sp
padaju:
•
čitanje n-ttog bloka
upis u n-tii blok
•
pozicionirranje na n-ti blok
b
•
čitanje sledećeg bloka
•
ka
čitanje preethodnog blok
•
Postoje i drugge metode pristupa
p
kojee se zasnivajuu na direktno
om pristupu, kao što je inndeksirani pristup
p
koji se
zaasniva na prim
mjeni indeksa. Kod indeksiranog pristuupa za datu datoteku
d
se krreira indeks. IIndeks sadržii pokazivače na
n
blokove datoteeke. Kod takkvih metoda pristupa
p
prvoo se pretražujje indeks, a zatim
z
se na oosnovu pokazzivača direktnno
prristupa željennom slogu.
Metoda
M
pristuupa pomoću indeksnih
i
dattoteka koristii se
zaa pristup oddgovarajućem
m zapisu u bazi podataaka.
Svakoj datoteci pridružeena je indeeksna datoteeka,
omoću koje se
urređena po nekom kritterijumu, po
prrilikom čitanjja brzo možee naći odgovaarajući zapis.
Prilikom upisa novog zappisa u datoteku, ažurira sse i
ndeksna datotteka.
in
Performanse pristupa poddacima direk
ktno zavise od toga gd
dje se podaaci nalaze. K
Keš memorij
ija omogućavva
ma računara, koje
k
imaju raazličite brzinne rada, da effikasnije kum
municiraju pri
rivrijemenim premještanjeem
komponentam
u
Keš m
memorija je skuplja od uređaja
u
sa koojih se podacci privrijemenno
podataka sa sporijeg uređaaja na brži uređaj.
prrebacuju, takko da povećannjem veličine keš memorijje cijena sisteema raste.
Metode
M
dodjelle prostora na disku
kviru sistamaa za upravljan
nje datotekam
ma je kako doodijeliti prostor datotekam
ma
Jeedan od probblema koji se riješava u ok
na disku tako da im se moože brzo pristtupiti i da koorišćenje prosstora na disku
u bude što jee moguće boljje. Postoji viiše
mogućih
m
metooda za dodjeluu prostora.
Tri
T glavne mettode za dodjeelu prostora na
n disku su:
1. Metod
da dodjele susjednih
s
memorijskih
m
lokacija za skladištenje date datotekke koristi sussjedne blokovve
diska. Dodjela susjeddnih blokova je jednostavnna za realizacciju. Susjedno
ost blokova ppoboljšava peerformanse. Na
N
mentaciona metoda
m
omoguućava brzo i jednostavno izračunavannje adrese blo
oka u kome se
taj načinn ova implem
36
Seznadar: OS i RM
Operativni sistemi
prikupio i obradio Miroslav Mihaljišin
nalaze podaci. Za pristup podacima potreban je samo pomjeraj od početka datoteke. Moguć je sekvencijalan i
direktan pristup podacima. Nedostatak strategije dodjele susjednih memorijskih lokacija jeste eksterna
fragmentacija.
2. Metoda dodjele povezanih blokova fiksne veličine omogućava skladištenje svih datoteka tako što se koriste
blokovi fiksne veličine. Susjedni blokovi se povezuju u povezanu listu. Osnovna prednost ove implementacione
metode je da nema eksterne fragmentacije. Upravljanje memorijom je pojednostavljeno jer su svi blokovi iste
veličine. Ne postoji potreba za premještanjem ili kompakcijom neke datoteke. Blokovi mogu da budu razbacani
bilo gdje na disku. Nedostatak može da bude degradacija performansi kod direktnog pristupa podacima, jer je
potrebno slijediti pokazivače od jednog bloka diska do sljedećeg.
3. Metode koje koriste šemu sa indeksima svakoj datoteci pridružuju tabelu indeksa. Svaki indeks u tabeli
indeksa pokazuje na blokove diska koji sadrže stvarne podatke date datoteke. Slog za svaku datoteku unutar
direktorijuma sadrži broj bloka indeksa i ime datoteke. Za male datoteke neiskorišćenost bloka indeksa može da
bude velika, jer i u slučajevima kada se mali broj pokazivača stvarno koristi cio blok indeksa mora da bude
dodijeljen.Ovakav način implementacije sistema datoteka obezbjeđuje brz direktan pristup podacima.
Upravljanje podacima (datotekama)
Upravljanje podacima je jedna od osnovnih funkcija operativnih sistema.
Korisnici savremenih računarskih sistema ne
moraju da vode računa o upravljanju podacima,
koje je neophodno kod aplikacija koje pristupaju
datote-kama memorisanim na sekundarnoj
memoriji.
Dio operativnog sistema koji upravlja podacima
naziva se sistem za upravljanje podacima ili
sistem za upravljanje datotekama (File
Manager). Njegov zadatak je da omogući
organizaciju podataka na takav način da krajnji
korisnik može da im pristupi brzo i lako.
Upravljanje datotekom obuhvata ne samo upravljanje njenim sadržajem, nego i upravljanje njenim imenom. Tako, na
primjer, stvaranje datoteke podrazumijeva i zadavanje njenog sadržaja, ali i zadavanje njenog imena (što se dešava u
toku editiranja, kompilacije, kopiranja i slično). Takođe, izmjena datoteke može da obuhvati ne samo izmjenu njenog
sadržaja, nego i izmjenu njenog imena (što se dešava, na primjer, u editiranju).
Operacije nad datotekama
Operacije nad datotekama su dio operativnog sistema.
Najčešće komande sistema za upravljanje podacima su:
•
kreiranje datoteke,
•
čitanje i pisanje unutar datoteke,
•
pozicioniranje unutar datoteke radi operacije čitanja i pisanja,
•
postavljanje i korišćenje mehanizma zaštite,
•
promjena vlasništva nad datotekom,
•
listanje datoteka u datom direktorijumu,
•
brisanje datoteke.
Mogu se podijeliti na osnovne i izvedene. Zbog lakšeg snalaženja daćemo pregled nekih komandi za upravljanje
podacima sa orginalnimm (engleskim) nazivima
izvedene
osnovne
create
open
delete
close
append
read
get attributes
write
set attributes
seek
rename
37
Seznadar: OS i RM
Operativni sistemi
prikupio i obradio Miroslav Mihaljišin
Zaštita fajlova
Fajlovi su namjenjeni za trajno čuvanje podataka.
Za uspešnu upotrebu podataka neophodna je zaštita fajlova, koja obezbjeđuje da podaci, sadržani u fajlu, neće biti
izmjenjeni bez znanja i saglasnosti njihovog vlasnika, odnosno, koja obezbijeđuje da podatke, sadržane u fajlu jednog
korisnika, bez njegove dozvole drugi korisnici ne mogu da koriste.
Podaci, sadržani u fajlu, ostaju neizmjenjeni, ako se onemogući pristup fajlu i radi pisanja (radi izmjene njegovog
sadržaja). Takođe, podaci, sadržani u datoteci, ne mogu biti korišćeni, ako se onemogući pristup datoteci, radi čitanja
(radi preuzimanja njenog sadržaja).
Na ovaj način uvedeno pravo pisanja i pravo čitanja datoteke omogućuju da se za svakog korisnika jednostavno
ustanovi koja vrsta upravljanja datotekom mu je dozvoljena, a koja ne. Tako, korisniku, koji ne posjeduje pravo
pisanja datoteke, nisu dozvoljena upravljanja datotekom, koja izazivaju izmjenu njenog sadržaja. Ili, korisniku, koji ne
posjeduje pravo čitanja datoteke, nisu dozvoljena upravljanja datotekom, koja zahtijevaju preuzimanje njenog
sadržaja.
Za izvršne datoteke uskraćivanje prava čitanja je prestrogo, jer sprečava ne samo neovlašteno uzimanje tuđeg izvršnog
programa, nego i njegovo izvršavanje. Zato je uputno, radi izvršnih datoteka, uvesti posebno pravo izvršavanja
programa, sadržanih u izvršnim datotekama. Zahvaljujući posjedovanju ovog prava, korisnik može da pokrene
izvršavanje programa, sadržanog u izvršnoj datoteci, i onda kada nema pravo njenog čitanja.
Pravo čitanja, pravo pisanja i pravo izvršavanja datoteke predstavljaju tri prava pristupa datotekama, na osnovu
kojih se za svakog korisnika utvrđuje koje vrste upravljanja datotekom su mu dopuštene. Da se za svaku datoteku ne
bi evidentirala prava pristupa za svakog korisika pojedinačno, uputno je sve korisnike razvrstati u klase i za svaku od
njih vezati pomenua prava pristupa.
Iskustvo pokazuje da su dovoljne tri klase korisnika. Jednoj pripada vlasnik datoteke, drugoj njegovi saradnici,
a trećoj ostali korisnici. Nakon razvrstavanja korisnika u tri klase, evidentiranje prava pristupa datotekama
omogućuje matrica zaštite (protection matrix) koja ima tri kolone (po jedna za svaku klasu korisnika) i onoliko redova
koliko ima datoteka. U presjeku svakog reda i svake kolone matrice zaštite navode se prava pristupa datoteci iz datog
reda za korisnike koji pripadaju klasi iz date kolone. Na slici 2 je prikazan primjer matrice zaštite.
owner
group
other
U primjeru matrice zaštite sa slike 2 vlasnik (owner) datoteke
file1 ima sva prava pristupa, njegovi saradnici (group) nemaju
file1
rwx
r-x
--x
pravo pisanja, a ostali korisnici (other) imaju samo pravo
file2
rwx
--x
--x
izvršavanja (pretpostavka je da je reč o izvršnoj datoteci).
Ima smisla uskratiti i vlasniku neka prava, na primjer, da ne bi
file3
rw-w---nehotice izmjenio sadržaj datoteke file2, ili da ne bi pokušao
da izvrši datoteku koja nije izvršna (file3).
file4
rwx
---r-Primijetite i malu nelogičnost za file4.
Slika 2. Matrica zaštite
Za uspjeh izloženog koncepta zaštite datoteka neophodno je onemogućiti neovlašteno mijenjanje matrice zaštite.
Jedino vlasnik datoteke smije da zadaje i mijenja prava pristupa (sebi, svojim saradnicima i ostalim korisnicima). Zato
je potrebno znati za svaku datoteku ko je njen vlasnik.
Takođe, potrebno je i razlikovanje korisnika, da bi se među njima mogao prepoznati vlasnik datoteke.
To se postiže tako što svoju aktivnost svaki korisnik započinje svojim predstavljanjem. U toku predstavljanja korisnik
predočava svoje ime (username) i navodi dokaz da je on osoba za koju se predstavlja, za šta je, najčešće, dovoljna
lozinka (pasword). Predočeno ime i navedena lozinka se porede sa spiskom imena i (za njih vezanih) lozinki
registrovanih korisnika.
Predstavljanje je uspešno, ako se u spisku imena i lozinki registrovanih korisnika pronađu predočeno ime i navedena
lozinka.
Predstavljanje korisnika se zasniva na pretpostavci da su njihova imena javna, ali da su im lozinke tajne.
Zato je i spisak imena i lozinki registrovanih korisnika tajan, znači, direktno nepristupačan korisnicima.
Jedina dva slučaja, u kojima ima smisla dozvoliti korisnicima posredan pristup ovom spisku, su:
•
radi njihovog predstavljanja i
•
radi izmjene njihove lozinke.
Za predstavljanje korisnika uvodi se posebna operacija, koja omogućuje samo provjeru da li zadani par ime i lozinka
postoji u spisku imena i lozinki registrovanih korisnika. Slično, za izmjenu lozinki uvodi se posebna operacija, koja
omogućuje samo promenu lozinke onome ko zna postojeću lozinku.
Sva druga upravljanja spiskom imena i lozinki registrovanih korisnika (kao što su ubacivanje u ovaj spisak parova
imena i lozinki, ili njihovo izbacivanje iz ovog spiska) nalaze se u nadležnosti poverljive osobe, koja se naziva
administrator (superuser. root, admin, ...).
38
Seeznadar: OS i RM
Operativni sistem
mi
prikupio i ob
bradio Miroslav Mihaljjišin
Zaštita
Z
datoteeka potpunoo zavisi od od
dgovornosti i poverljivossti administratora, odnossno od tačnossti pretpostavkke
da on neće oddavati lozinkke, niti ih ko
oristiti, radi ppristupa koriisničkim dato
otekama. Zboog prirode njjegovog poslla,
dministratoraa ima smisla potpuno
p
izuzeti iz zaštite datoteka, s tim da on tadaa svoje nadležžnosti mora vrlo
v oprezno da
ad
koristi.
Nakon
N
prepozznavanja korrisnika (odno
osno, nakon njegovog uspešnog
u
pred
dstavljanja), uz pomoć matrice
m
zaštiite
moguće
m
je ustaanoviti koja prava
p
pristupaa korisnik poosjeduje za sv
vaku datoteku.
Da
D bi se pojeednostavila provjera
p
korisničkih pravaa pristupa, uputno
u
je, um
mjesto imenaa korisnika, uvesti
u
njegovvu
nu
umeričku oznnaku. Radi kllasifikacije ko
orisnika zgoddno je da ovu numeričku oznaku
o
obrazuuju dva rednaa broja. Prvi od
o
njjih označava grupu kojoj korisnik
k
pripaada, a drugi ood njih označava člana gru
upe. Podrazum
mijeva se da su svi korisniici
izz iste grupe m
međusobno saaradnici.
Prema tome, rredni broj gruupe i redni brroj člana grup
upe zajedno jeednoznačno određuju
o
vlassnika. Saradn
nici vlasnika su
vi korisnici kkoji imaju isti redni broj grrupe kao I vlaasnik.
sv
U ostale korisnnke spadaju svi korisnici čiji redni brooj grupe je raazličit od redn
nog broja gruupe vlasnika. Posebna gruppa
see rezerviše zaa administratoore.
Numerička
N
oznaka korisnikka pojednostaavljuje provjeeru njegovog prava pristup
pa datoteci. Ippak, da se tak
kva provjera ne
n
bi obavljala prrilikom svakoog pristupa daatoteci, umesnno je takvu provjeru
p
obaviti samo pre pprvog pristup
pa.
Zato
Z
se uvodii posebna opeeracija otvaraanja datotekee, koja pretho
odi svim dru
ugim operacijjama (kao što
o su pisanje ili
čiitanje datotekke). Pomoću operacije
o
otvaranja se saoopštava i na koji način koriisnik namjeraava da koristii datoteku. Akko
jee njegova nam
mjera u skladdu sa njegoviim pravima, ootvaranje dattoteke je uspeešno, a pristuup datoteci jee dozvoljen, ali
a
saamo u granicaama iskazaniih namjera.
Pored operacijje otvaranja, potrebna je i operacija zzatvaranja dattoteke, pomo
oću koje koriisnik saopštav
va da završavva
korišćenje datooteke.
Nakon
N
zatvaraanja datoteke,, pristup datoteci nije dozvvoljen do njen
nog narednog
g otvaranja.
Numerička
N
oznnaka vlasnikaa datoteke i prava
p
pristupaa korisnika izz pojedinih klasa predstavljljaju atribute datoteke.
U Unix/Linux sistemima zaaštita se uglav
vnom ostvaruuje pomoću dva
d mehanizm
ma:
•
Deffinisanja vlassničke katego
orije
o
Vlaasnik (korisniik koji je naprravio datotek
ku)
Gruupa (korisničk
ka grupa kojooj je datotekaa formalno priključena)
o
Svii (svi korisnicci sistema)
o
•
Deffinisanje pristupnih prava se formira kaao proizvoljaan kombinacijja osnovnih pprava:
o
Čittaj (Read)
Piši (Write)
o
o
ute)
Izvvršavaj (Execu
U Windows opperativnim siistemima, adm
ministracija kkontrole pristtupa i prava nad
n datotekam
ma je ostvareena kroz sisteem
Korisnika
K
i Grrupa. Korisnikk pripada Gru
upi koja možee pripadati naadgrupi itd. Pri
P određivanjju prava se po
oštuju princippi:
• Nasleđivanja
• Sabiraanja dozvola
• Jače zzabrane
Dozvole
D
za radd sa određeniim datotekam
ma se formirajju kao standaardne dozvolee u koje spadaaju:
• Čitanjje
• Pisanjje
• Čitanjje i izvršavannje
• Modiffikacija
• Puna koontrola
39
Seznadar: OS i RM
Operativni sistemi
prikupio i obradio Miroslav Mihaljišin
Upravljanje memorijom
Upravljanje memorijom je jedna od osnovnih funkcija operativnih sistema.
Memorija se sastoji od niza memorijskih reči, a svaka ima jedinstvenu adresu. Prilikom izvršavanja procesa, procesor
na osnovu programskog brojača (Program counter, PC) čita instrukciju iz memorije (fetch). Pročitane instrukcije u
toku izvršenja dodatno mogu zahtjevati čitanje operanada ili upisivanje podataka na druge memorijske lokacije.
Razni operativni sistemi koriste različite metode upravljanja radnom memorijom. Ove metode mogu biti krajnje
jednostavne, ali i veoma složene, poput straničenja (paging) i segmentacije, a svaka ima svoje prednosti i mane. Izbor
metode za upravljanje memorijom u velikoj mjeri zavisi i od hardverske podrške, tj od procesorske arhitekture.
Savremeni operativni sistemi omogućavaju svakom procesu da dobije više virtuelne memorije, nego što je ukupna
veličina stvarne (fizičke) memorije na datom računarskom sistemu.
Glavni cilj kod upravljanja memorijom je da se kombinovanjem velike spore memorije sa malom brzom
memorijom ostvari efekat velike brze memorije.
Za upravljanje memorijom bitni su programski prevodilac, operativni sistem i hardver.
1. Programski prevodilac struktuira adresni prostor date aplikacije.
2. Operativni sistem preslikava strukture programskog prevodioca u hardver.
3. Na kraju, hardver izvršava stvarne pristupe memorijskim lokacijama.
Dodjeljivanje memorije
U radnu memoriju se, pored korisničkih procesa, smješta i rezidentni dio operativnog sistema (npr jezgro).
Da bi u višeprocesnom okruženju obezbjedio stabilan i pouzdan rad sistema, neophodno je što efikasnije dodjeliti
različite dijelove memorije.
Mamorija se dijeli na najmanje dvije particije od kojih je jedna (najčešće niži deo) namenjena rezidentnom dijelu
operativnog sistema (kernel space) a druga particija (viši dijelovi) – korisničkim procesima (user space).
Obično se u najnižem dielu memorije nalazi tabela prekidnih rutina.
U korisničkom adresnom prostoru nalazi se više procesa koji formiraju red čekanja na procesor. Takođe, postoje i
procesi koji nastoje da uđu red čekanja, obično sa diska. Da bi proces ušao u red čekanja na procesor, neophodno je da
najpre dobije potrebnu memoriju. Glavni problem pri upravljanju memorijom jeste dodjela
slobodne memorije procesima koji se u ulaznom redu (alokacija memorije).
Tehnike za dodjelu memorije procesima grubo se mogu podijeliti na dvije vrste:
¾ Kontinualna alokacija (contiguous allocation) – i logički i fizički adresni prostor procesa sastoje se od
kontinualnih niza memorijskih reči, pri čemu memorijske particije koje se dodjeljuju procesima po veličini
mogu biti jednake ili razčličite
¾ Diskontinualna alokacija (discontiguous allocation) – fizički adresni prostor procesa nije realizovan kao
kontinualan niz memorijskih adresa; diskontinualna alokacija obuhvata metode straničenja, segmentacije i
straničenja sa segmentacijom.
Dodjela memorije može da bude kontinualna i diskontinualna. Ako se za dati proces koriste susjedne memorijske
lokacije u okviru datog dijela memorije, tada je to kontinualna dodjela memorije. Ukoliko se za dati proces koriste
dijelovi memorije kod kojih postoji diskontinuitet u pogledu susjednosti lokacija, tada je to diskontinualna dodjela
memorije.
Vremenski i prostorni problem upravljanja memorijom
Najvažnije aktivnosti operativnog sistema u dijelu za upravljanje memorijom su:
1) vođenje evidencije o tome koji se dijelovi memorije trenutno koriste i ko ih koristi,
2) donošenje odluke o učitavanju procesa u memoriju, odnosno koje procese prebaciti u memoriju kada
memorijski prostor postane raspoloživ,
3) dodjela i oslobađanje memorijskog prostora po potrebi.
40
Seznadar: OS i RM
prikupio i obradio Miroslav Mihaljišin
Operativni sistemi
Da bi se jedan program izvršio neophodno je da se u memoriju unesu i njegove instrukcije i podaci, kako bi bili
dostupni centralnom procesoru. To ne znači da sve instrukcije i svi podaci moraju da budu u memoriji sve vrijeme
tokom izvršavanja programa. Moguće je unijeti u memoriju samo jedan dio instrukcija programa sa podacima
neophodnim za njihovo izvršavanje. Po izvršavanju tog dijela programa u memoriju se može unijeti, u sve lokacije,
sljedeći niz naredbi sa podacima potrebnim za njihovo izvršavanje.
U uslovima višeprogramskog rada ovakva mogućnost je posebno zanimljiva. Držanjem u memoriji dijelova, a ne
cijelih programa, moguće je aktivirati više programa u jednom vremenskom intervalu čime se povećava stepen
višeprogramskog rada, a time i stepen iskorišćenja ostalih resursa računara. Naravno, ovakav način rada zahtijeva
dodatne hardverske komponente i povećava složenost operativnog sistema.
Sa stanovišta operativnog sistema memorija je podijeljena u dva nivoa. Prvi nivo čini primarna (glavna) memorija u
kojoj se nalaze trenutno aktivni dijelovi različitih programa, dok drugi nivo čini sekundarna (pomoćna) memorija sa
relativno brzim pristupom, na kojoj se čuvaju kompletne kopije svih aktivnih programa.
Operativni sistem problem upravljanja memorijom svodi na problem vremenske i prostorne raspodjele programa
ili dijelova programa između dva nivoa memorije.
Drugim riječima, upravljanje memorijom se sastoji od sljedeće tri komponente:
1) upravljanje unošenjem ("fetch policy") – u smislu donošenja odluke o tome kada će se program ili njegovi
dijelovi unijeti u memoriju,
2) upravljanje smještanjem ("placement policy") – u smislu donošenja odluke o tome gdje će se program ili
njegovi dijelovi smjestiti u memoriji,
3) upravljanje zamjenom ("replacement policy") – u smislu donošenja odluke o tome koji će se program ili
dijelovi programa izbaciti iz memorije da bi se oslobodio prostor za unošenje drugog programa ili dijelova
drugog ili istog programa.
Različite metode i tehnike upravljanja memorijom koje se primjenjuju u operativnim sistemima razlikuju se upravo po
tome kako i na osnovu čega donose neku od navedenih odluka.
Samo upravljanje memorijom može da bude statičko i dinamičko. Statičko upravljanje memorijom je kada se cio
program unosi u memoriju prije izvršavanja programa. Dinamičko upravljanje memorijom je kada se veličina
memorije određuje na osnovu veličine programa u trenutku unošenja programa u memoriju ili kada se dijelovi
programa mogu unostiti u memoriju u toku izvršavanja programa.
Prema tome, u opštem slučaju postoje sljedeći načini
upravljanja memorijom:
¾
¾
¾
¾
¾
¾
¾
pomoću statičkih particija,
pomoću dinamičkih particija,
pomoću statičkih stranica,
pomoću statičkih segmenata,
pomoću dinamičkih stranica,
pomoću dinamičkih segmenata,
pomoću dinamičkih stranica i segmenata.
Načini upravljanja memorijom
Memorijski sistem sa više nivoa
Da bi procesor mogao da čita instrukcije ili izvršava operacije nad podacima potrebno je da te instrukcije, odnosno
podaci budu smješteni unutar fizičke (RAM) memorije.
Procesor i RAM memorija su povezani pomoću magistrale podataka veoma velike brzine.
Magistrala podataka najčešće može imati širinu 32, 64 ili 128 bita. Širina magistrale podataka definiše količinu
podataka koja se može prenijeti u toku jednog ciklusa magistrale. Širina magistrale podataka ne definiše maksimalnu
veličinu programa ili maksimalnu veličinu podataka. To je određeno širinom adresne magistrale.
41
Seeznadar: OS i RM
prikupio i ob
bradio Miroslav Mihaljjišin
Operativni sistem
mi
Adresna
A
magisstrala može da
d ima bilo ko
oju širinu u zaavisnosti od procesora.
p
h računarskkih
Memorijsski sistem savremenih
sistema jee više nivoskii sistem, kao na slici .
Memorijsski sistem je ppodijeljen na četiri nivoa:
¾ registri,
¾ keš
k memorija,,
¾ glavna
g
memorrija (RAM) i
¾ magnetni
m
diskkovi.
Za svaki nivo prikazzan je kapaccitet, prosječnno
vrijeme pristupa i naziiv memorije.
Kapacitett i prosječčno vrijem
me se stalnno
poboljšav
vaju.
Takođe, na
n svakom m
memorijskom
m nivou postooji
komprom
mis brzine i cijjene.
Slika 2. Memorijska
M
piramida
p
AM memorijee može da bude veoma vellika, u mnogiim slučajevim
ma
Iaako brzina prrenosa podataaka između prrocesora i RA
izzmeđu processora i RAM memorije
m
se koristi
k
keš m
memorija. Kešš memorija jee mnogo bržaa, ali i skupljaa. Ona ubrzavva
raad aplikacija.. Iz ugla krajnnjeg korisnik
ka keš memorrija je nevidljjiva. U prosjeku oko 10%
% ukupne veliičine program
ma
see nalazi u glaavnoj memorriji, a oko 1%
% programa see nalazi u keš memoriji. U registrima se nalazi jedna instrukcijaa i
nekoliko podaataka.
Na
N datom račuunaru najčešćće postoji višše programa ili procesa koji
k su aktivn
ni u isto vrijeeme i svaki od
o njih pristuppa
RAM
R
memoriiji. Da bi om
mogućio različčitim procesiima da koegzzistiraju na datom
d
računar
aru operativnii sistem svakkoj
ap
plikaciji dodjjeljuje virtuellni adresni pro
ostor.
Takođe, operativnni sistem preslikava virtuellni adresni prrostor
u fiziički memorijsski prostor.
U opštem slučaju svaki put kaada se prograam učita u gllavnu
memo
oriju on ćee da bude na različitim memorijjskim
lokaccijama. Odnoos između brzine
b
pristu
upa i cijene kod
različčitih nivoa meemorije prikaazan je na slicci 3.
morijom (m
memory manaager)
Progrram za upravljanje mem
izvršaava dvije oosnovne opeeracije: dodjelu kontinuaalnog
memo
orijskog proostora i osllobađanje zaauzete mem
morije.
Ponek
kad se koristti i treća operacija pomo
oću koje se m
može
prom
mijeniti veličiina već dodjeljene memo
orije, tako štto se
veličiina dodjeljene memorije smanji ili poveća.
Sllika 3.
Memorijski
M
sistem kod savvremenih raččunarskih sisteema
42
Seeznadar: OS i RM
Operativni sistem
mi
prikupio i ob
bradio Miroslav Mihaljjišin
Logičko
L
i fizičko ad
dresiranjee memorij
ija
Razlikujemo
R
logički i fizičkki memorijsk
ki adresni pro stor.
Adresa
A
koju ggeneriše proccesor naziva se logička aadresa, dok se adresa kojo
om se puni m
memorijski adresni
a
registtar
naziva fizička adresa.
morije.
Fizička adresaa je adresa operativne mem
Preslikavanje logičkih adreesa u fizičke je obavezno.
hods) u vrijem
me
Fizičke i logiččke adrese su identične ako se primjenee metode vezzivanja adresa (address bbinding meth
prrevođenja i ppunjenja progrrama.
Preslikavvanje virtueln
ne adrese u fiz
izičku, pomoćću posebnog hardvera
h
MM
MU jedinice
Upravljanje
U
m
memorijom obbuhvata presliikavanje adreesa kao što je to prikazano na slici.
Virtuelna
V
adreesa je adresa u programu i nju generiše procesor.
Fizička adresaa je adresa na računarskom
m hardveru.
Kod
K savremennih računara preslikavanje
p
e iz virtuelne u fizičku ad
dresu vrši posseban hardverr koji se naziiva jedinica za
z
upravljanje m
memorijom (Memory Management
M
Unit, MMU
U). Za ovo preslikavanje
p
adresa se kaže
k
i da je to
fizičku) adressu. Hardver šalje
š
jedinici za upravljan
nje memorijoom
prreslikavanje ili translacijaa iz logičke u stvarnu (fi
fiizičke adresee i na taj naččin vrši adreesiranje glavnne memorije. Kod većinee savremenihh mikroračun
narskih sistem
ma
jeedinica za uprravljanje mem
morijom je ug
građena u čipp procesora.
U okviru jedinnice za upravvljanje memorijom nalazzi se poseban
n registar za relociranje adresa (TL
LB). Vrijednoost
up
pisana u registar za relocirranje se dodaaje svakoj virttuelnoj adresii.
Vezivanje
V
adresa
e
Program se naalazi na diskuu kao binarna izvršna datotteka (binary executable).
ora novostvoorenog processa. Zavisno od
o
Program sa diiska se moraa mora učitatti u memorijuu, unutar adrresnog prosto
metode
m
upravlljanja memorrijom koja se koristi, procees se u toku izvršavanja
i
može
m
više putta pomjerati na
n relaciji disskmemorija.
m
Kolekcija
K
proccesa na diskuu, koja čeka po
ovratak u meemoriju i nasttavak izvršenjja, naziva se uulazni red (in
nput queue).
U sistemima ssa omogućennim multiprog
gramiranjem, veći broj prrocesa dijeli radnu
r
memorriju računara. Programer ne
n
može
m
unapredd znati koji ćee procesi biti zastupljeni u memoriji prilikom
p
izvrššenja program
ma u takvom okruženju, niti
n
koje će memoorijske lokaccije biti slobo
odne. On ne može unaprred odrediti fiksne memoorijske lokacije za smješttaj
p
jezika i konnkretne upotrrebe). Dužnoost
prrograma i zaato koristi reelativne ili simboličke (zzavisno od programskog
op
perativnog siistema je da prevede
p
relativne u fiksne prilikom učittavanja programa u memooriju.
Vezivanje
V
adrresa se može shvatiti kao transformaccija, tj prevođ
đenje adrese sa „jezika“ jjednog adresnog prostoraa u
drrugi.
Povezivanje innstrukacija i podataka
p
sa memorijskim
m
adresama obavlja se u sledećim fazam
ma:
•
Vrijem
m e prevođen
nja (compile time)
t
Kako
K
nije pozznato gdje ćee proces koji će izvršavaati generisanii kod biti sm
mješten u meemoriji, prevo
odilac generiiše
reelativne, a ne apslolutne addrese. Prograam se kasnije može smestiti bilo gdje u memoriji.
•
Vrijem
m e učitavanjja u memorijju (load time)
e)
U fazi učitavaanja povezivaač (linker) i punilac
p
(loadder) na bazi relokatibilnog
r
g koda generi
rišu apsloutnee adrese i punne
43
Seznadar: OS i RM
Operativni sistemi
prikupio i obradio Miroslav Mihaljišin
memoriju programom. Povezivač može povezati korisnički program sa drugim relokatibilnim modulima (object
modules).
•
Vrijem e izvršavanja (execution time)
Za vrijeme izvršavanja, proces se može pomjerati s
jednog segmenta na drugi (uključujući i disk, ukoliko se
koristi i virtuelna memorija)
Faze koje prethode izvršavanju programa
Adresa koju generiše procesorska instrukcija je logička, a adresa same memorijske jedinice je fizička.
Logičke i fizičke adrese su potpuno iste u fazi prevođenja i u fazi učitavanja programa, ali se razlikuju u fazi
izvršavanja (u fazi izvršavanja nazivaju se i virtuelnim adresama).
Skup svih logičkih adresa koje generiše program naziva se logički ili virtuelni adresni prostor, a skup svih fizičkih
adresa koje njima adgovaraju naziva se fizički adresni prostor.
Relokacioni registar definiše adresu fizičkog početka programa. Svaka logička adresa koju generiše progrma se sabira
s vrednošću relokacionog registra i tako se dobija fizička adresa.
Korisnički program uvijek počinje od nulte adrese i ne treba voditi računa o svom fizičkom prostoru, osim o gornjoj
granici programa (max).
Logički adresni prostor koji se nalazi u opsegu [0,max] mapira se u opseg [R+0, R+max], gdje je R vrijednost
relokacionog registra, tj fizička adresa početka programa.
44
Seznadar: OS i RM
Operativni sistemi
prikupio i obradio Miroslav Mihaljišin
Privremena razmjena - SWAP
Prilikom izvršavanja, proces se mora nalaziti u radnoj memoriji. Postoje situacije kada se proces može privremeno
prebaciti iz memorije na disk, kako bi se oslobodila memorija. Oslobođenja memorija puni se drugim procesom.
Razmena (swap) koristi se u prioritetnim šemama za raspoređivanje procesa gdje se procesi visokog prioriteta čuvaju
u memoriji, dok se svi procesi niskog prioriteta upisuju na disk i čekaju da se oslobodi memorija. Ova varijanta
razmjenjivanja naziva se roll out, roll in. Proces koji se razmenjuje mora biti potpuno oslobođen aktivnosti - ne sme
da radi, niti da čeka kraj neke ulazno-izlazne operacije (stanja WAIT i READY).
Virtuelna memorija
Koncept virtuelne memorije je jedna od najboljih ideja primjenjenih na računarske sisteme. Glavni razlog za uspjeh
ove ideje je da virtuelna memorija radi automatski, tj. bez intervencija programera aplikacija.
Osnovna prednost korišćenja virtuelne memorije je mogućnost izvršavanja programa koji zahtijeva memorijski
prostor veći od fizičke (operativne) memorije, raspoložive na datom računarskom sistemu. Koncept virtuelne
memorije stvara utisak korisniku da je njegov program u potpunosti učitan u memoriju i izvršen. Prije nastanka
koncepta virtuelne memorije programer je morao da vodi računa da njegov program može da stane u fizičku
memoriju. Osim toga, primjenom virtuelne memorije moguće je dijeljenje računara između procesa čija je veličina
ukupnog adresnog prostora veća od veličine fizičke memorije.
Ako se primjeni vezivanje adresa u vrijeme izvršavanja programa fizička i logička adresa su različite i tada se logička
adresa naziva virtuelna adresa.
Program za upravljanje memorijom proširuje RAM memoriju sa rezervisanim dijelom memorijskog prostora na
disku. Prošireni dio RAM memorije se naziva zamjenski ( swap) prostor.
Proširenje RAM memorije zamjenskim prostorom ima isti efekat kao instaliranje dodatne RAM memorije. U mnogim
slučajevima dovoljno je povećati zamjenski prostor kako bi se izvršavali veći programi. Operativni sistem jedino mora
da obezbjedi da program i podaci budu raspoloživi u RAM memoriji u trenutku kada su potrebni. Dijelovi programa
kojim se ne pristupa često i dijelovi programa koji se koriste za upravljanje greškama se prenose na zamjenski prostor.
Kada bilo koji od tih dijelova zatreba, program za upravljanje memorijom taj dio prenosi u RAM memoriju.
Koncept virtuelne memorije posebno dolazi do izražaja kod višekorisničkih operativnih sistema, jer kod prenošenja
dijelova programa ili podataka u/iz operativne memorije procesor ne mora da čeka, vec odmah prelazi na izvršavanje
drugog posla. Svaka aplikacija ima svoj virtuelni adresni prostor koji operativni sistem preslikava u fizičku memoriju.
Veličina virtuelne memorije je ograničena samo veličinom zamjenskog prostora na disku. Jednostavno rješenje
korišćeno kod prvih Unix sistema je posebna particija diska koja se koristi samo kao zamjenski prostor. Kod takvog
rješenja prostor diska se dijeli na dva glavna dijela: jedan koji se koristi za straničenje i drugi koji se koristi za file
sistem. Problem sa ovakvim pristupom je nefleksibilnost.
Postoje sljedeće osnovne vrste organizacije virtuelne memorije:
•
segmentna,
•
stranična,
•
segmentno-stranična.
Tehnika razmjene zahtjeva postojanje 3 komponente:
• Prostor na disku (swap space) na koji će se smještati
uspavani procesi
• Mehanizam swap-out koji prebacuje proces iz
memorije na disk
• Mehanizam swap-in koji vraća uspavani proces sa
diska u memoriju
Najveći dio vremena u ciklusima razmene otpada na prenos podataka između memorije i diska. Trajanje jedne
razmene zavisi od količine podataka za prenos, karakteristike diskova i pratećeg hardvera. Kako je to vrijem e
ogromno u odnosu na vrijem e izvršavanja memorijskih ciklusa, ne preporučuje se često korišćenje tehnike
razmjenjivanja.
Swap postoji na svim modernim operativnim sistemima i to u različitim modifikovanim varijantama. Rijetko se
razmenjuju cjeli procesi - uglavnom se razmenjuju manji dijelovi memorije (npr stranice).
45
Seznadar: OS i RM
Operativni sistemi
prikupio i obradio Miroslav Mihaljišin
Raspodjela memorije
Ukoliko se koristi kontinualno dodjeljivanje memorije, i logički i fizički adresni prostor procesa se sastoje od
kontinualnog niza memorijskih adresa. Prosto rečeno, svaki proces dobija jedan kontinualni dio memorije. Metode
kontinualnog dodjeljivanja memorije su:
• Multiprogramiranje sa fiksnim praticijama
• Multiprogramiranje sa particijama promjenljive veličine
Uvođenje particija je jednostavan metod koji omogućava višeprogramski rad, tj. da više programa koji se izvršavaju
bude u isto vrijeme u operativnoj memoriji.
Multiprogramiranje i statičke particije
statičke particije-unaprijed nepromjenjvo izdjeljene
Upravljanje memorijom pomoću statičkih particija je jedan od najosnovnijih načina upravljanja memorijom. Za
višeprogramski rad neophodna je dodjela više particija. Memorija se dijeli u particije fiksne veličine, kao što je to
pokazano na slici 1.
Particije su fiksirane u vrijeme inicijalizacije sistema i ne mogu se mijenjati u
toku izvršavanja programa.
Svakoj particiji se dodjeljuje po jedan proces.
Programi se raspoređuju tako da budu smješteni u najmanjoj particiji koja je
dovoljno velika da prihvati cio program. Izvršni program koji je pripremljen za
izvršavanje u datoj particiji ne može da se izvršava u nekoj drugoj particiji bez
ponovnog povezivanja (relinking).
Kod ovog načina upravljanja memorijom postoji potreba zaštite koda
operativnog sistema od mogućih promjena od strane korisničkih procesa.
Zaštita se može uraditi pomoću baznog i graničnog registra.
Slika 1. Statičke particije
Jedan od najstarijih i najprostijih metoda dodjeljivanja memorije je ovakva podjela cjele fizičke memorije na više
dijelova fiksne veličine, pri čemu se u jednom dijelu može nači samo jedan proces. U ovakvoj organizaciji, stepen
multiprogramiranja je jednak broju memorijskih particija. Ova metoda je korišćena u sistemu IBM OS/360.
Cijela memorija se izdijeli na više dijelova. Svi procesi se stavljaju u red čekanja (input queue) koji može biti
jedinstven za cjeli operativni sistem ili poseban za svaku particiju.
Višestruki redovi čekanja običmo se formiraju za opsege veličina Q=1 KB, Q=2 KB, Q=4 KB.
Ukoliko za proces koji je došao na red nema dovoljno memorije, uzima se sledeći manji proces iz liste.
Kada postoji više redova čekanja, veći broj malih procesa može čekati u redu za male particije, dok su velike particije
neiskorišćene. U tom slučaju ima dovoljno memorije, ali se ne koristi. Bolji je jedinstveni red čekanja, jer ako nema
mjesta u memoriji u redu čekanja za particiju koja odgovara veličini procesa, procesu se dodjeljuje veća particija.
Dva procesa ne mogu biti smještena u jednoj particiji.
Multiprogramiranje sa fiksnim particijama korišćeno je u sistemima s grupnom obradom (batch).
Ova metoda je nepogodna za interaktivne sisteme zbog postojanja većeg broja procesa promjenljive veličine (obično
malih) koji se pojavljuju po slučajnom rasporedu.
Ova metoda se više ne koristi.
46
Seznadar: OS i RM
Operativni sistemi
prikupio i obradio Miroslav Mihaljišin
Diskontinualno dodjeljivanje memorijedinamička alokacija straničenjem
Umesto fiksnih particija, memorija se dijeli dinamički, a svaka šupljina (hole), tj slobodan kontinualni dio memorije,
može se iskoristiti za smještanje procesa - pod uslovom da je dovoljno velika. Šupljine dinamički nastaju i nestaju,
zajedno sa procesima, mogu biti bilo gdje u memoriji i imati bilo koju veličinu, što odgovara procesima na
interaktivnim sistemima.
Kada proces naiđe u sistem, traži se šupljina dovoljno velika za proces. Sav prostor koji proces ne zauzme od cijele
šupljine, predstavlja novu šupljinu u koju se može smestiti novi proces.
Alokacija memorije je dinamička - memorija se sastoji od procesa i šupljina, a OS dinamički vodi evidenciju o
zauzetosti memorije na jedan od sledećih načina:
• Bit mape (bit maps)
• Povezane liste (linked lists)
• Sistem udruženih parova - drugova (buddy system)
Koriste se dvije metode:
straničenje (paging)
segmentacija (segmentation), kao i njihove kombinacije straničenje sa segmentacijom i segmentacija sa
straničenjem.
Straničenje
Straničenje je metoda sa hardverskom podrškom na nivou procesora koja se koristi u svim operativnim sistemima i na
svim računarskim arhitekturama. Gotovo da ne postoji nijedan savremeni procesor koji hardverski ne podržava
straničenje.
Fizička memorija, tj fizički adresni prostor, podijeli se na blokove fiksne veličine, koji se nazivaju fizičke stranice ili
okviri (page frames).
Logički adresni prostor takođe se podijeli na blokove istih veličina koji se nazivaju logičke stranice (pages).
U daljem tekstu, pod terminom stranice podrazumevaćemo logički stranicu, a pod terminom okvir - fizičku. Veličine
stranica su po pravilu stepen broja 2, najčešće u opsegu od 512 B do 8 KB, mada mogu biti i veće, 16 MB.
Swap prostor na disku takođe se dijeli na stranice koje po veličini odgovaraju memorijskim stranicama.
Metoda straničenja funkcioniše na sledeći način:
svakoj logičkoj stranici odgovara jedna fizička, a
korespodencija između njih se čuva u tabeli
stranica (page table). To omogućava da se
kontinualni logički prostor procesa razbaca svuda
po memoriji.
Svaka logička adresa koju generiše procesor dijeli
se na dva dijela:
• broj stranice (p, page number) - koristi se
kao indeks u tabeli stranica koja sadrži
baznu adresu okvira. Bazna adresa
predstvlja viši dio adrese
• pomjeraj unutar stranice (d, page offset) definiše položaj u odnosu na samu
stranicu i - u kombinaciji sa baznom
adresom (čisto sabiranje) - definiše punu
fizičku adresu koja se šalje memorijskoj
jedinici.
Straničenje
Naglasimo da je osnovna adresabilna jedinica bajt i da je pomjeraj isti i za logičku i za fizičku adresu
Ako je veličina logičkog adresnog prostora 2m, a veličina stranice 2n, tada viši dio adrese dužine m-n definiše broj
stranice, dok najnižih n bitova adrese predstavljaju pomjeraj unutar stranice.
47
Seeznadar: OS i RM
Operativni sistem
mi
prikupio i ob
bradio Miroslav Mihaljjišin
Primjer
P
stran
ničenja:
Zamislimo
Z
da imamo mem
moriju veličinee 32 B. Definnišemo 8 okviira veličine 4 B, što znači dda je m=6, a n=2.
Uzmimo
U
korrisnički procces koji zaauzima 4
lo
ogičke stranicce, sa logičkim
m adresama:
•
stranicca 0 (0-3)
stranicca 1 (4-7)
•
stranicca 2 (8-11)
•
stranicca 3 (12-15)
•
Logička
L
adresa 0 ima broj logičke
l
straniice 0.
Pomoću brojaa logičke straanice ulazimo
o u tabelu
o smješten
na u okvir
sttranica i nalaazimo da je ona
brroj 1, i tako rredom:
lo
ogička stranicca 1 smještenna je u okvir 4,
4
lo
ogička stranicca 2 u okvir 3 i
lo
ogička stranicca 3 u okvir 7.
7
m
da dobijee potrebnu meemoriju, tako
o da se za datti proces preraačunava kolikko
Proces koji ulaazi u stanje izzvršavanja mora
mu
m stranica m
memorije trebaa. Svaka stran
nica mora da se mapira u okvir.
o
Ako prroces zahtevaa n stranica, taada se alociraa n
ok
kvira, koji see pune procesom, pri čemu
u se mapiranjee stranica - ok
kvir upisuje u tabelu strannica.
ku relokaciju,, a tabela strranica predstaavlja relokaciioni registar za svaki okvvir
Svako straničeenje predstavvlja dinamičk
o
jedniim
fiizičke memoorije. Smanjenje stranica dovodi do ppovećanja njjihove tabele, jer je svakka stranica opisana
zaapisom u tabbeli. Kao possljedica, poveećava se kašnnjenje peiliko
om mapiranja ili pretraživvanja. U sluččaju korišćennja
sw
wap tehnike ssa stranicamaa, poželjnije su
s veće straniice zato što jee rad sa diskovima efikasnniji kada su traansferi veći.
Značajan
Z
aspeekt straničenj
nja je jasno razdvajanje
r
kkorisničkog pogleda na memoriju
m
i aaktuelne fiziičke memorijje.
Korisnik
K
svoj dio memorijee doživljava kao
k kontinuallni prostor iak
ko su stranicee raznih proceesa razbacanee po memorijji.
Mapiranje
M
logičkog i fizičkkog prostora zadatak
z
je OS
S i korisnik gaa ne vidi.
Operativni
O
sisttem mora da prati koji su okviri sloboddni, a koji su dodjeljeni i to
t kom proceesu. Sve se to
o čuva u jezgrru,
u tabeli okviraa (frame tablee) u kojoj je svaki
s
okvir oppisan jednim zapisom.
Operativni
O
sistem mora i da
d za svaki proces
p
generišše tabelu straanica koja se odnosi samoo na njegove stranice i kooja
definiše mapirranje za taj prroces.
Segmentacij
S
ja memorijje
Prethodno razmatrani slučaajevi odnose se na korisniičke procese,, tj programe, koji zahtevvaju kontinuallan memorijsski
prrostor.
n kontinualna, jer prograami se logičk
ki dijele na višše nezavisnihh cjelina.
Sama strukturaa programa nije
Npr,
N
sam kodd se sastoji od
o više cjelin
na kao što ssu tabele, po
olja, stek, pro
omjenljive, ittd. Svaki od
d ovih logičkkih
seegmenata dobbija ime pom
moću koga see referencira i može nezav
visno da se učita
u
u memooriji. Po prav
vilu, program
mer
definiše logičkke segmente u izvornom programu,
p
a pprevodilac na osnovu toga pravi memorrijske segmen
nte.
morijom kojaa podržava lo
ogički korisnički pogled naa memoriju. Logički
L
adressni
Segmentacija jje metoda uppravljanja mem
dinstveno imee i dužinu.
prrostor sastoji se od kolekccije segmenatta, a svaki seggment ima jed
Logička
L
adresa se sastoji odd dva dijela:
• imenaa segmenta (uumesto imenaa segmenta obbično se zadaaje broj koji predstavlja
p
ideentifikator seegmenta)
• pomjeeraja unutar segmenta
s
Kod
K straničenj
nju logička addresa jednodiimenzionalnaa, pri čemu razdvajanje
r
dijelova adrrese i transliiranje obavllja
hardver.
48
Seeznadar: OS i RM
Operativni sistem
mi
prikupio i ob
bradio Miroslav Mihaljjišin
Pri segmentacciji, kao i prii multiprograamiranju s paarticijama prromjenljive dužine,
d
javljaa se eksterna fragmentacijja.
morija se ne može iskoristiti za smjeeštaj segmenaata ukoliko ne
n postoji doovoljno velika šupljina, bez
Slobodna mem
bzira na količčinu slobodnee memorije. Problem
P
ekstterne fragmen
ntacije, koja zavisi
z
od veliičine segmenaata i raspodjeele
ob
nailaska proceesa, može se smanjiti
s
sažim
manjem mem
morije.
Mapiiranje se obavlja preeko tabele
segm
menata a imaa podršku i u hardveru
mikro
oprocesora.
Na
N slici je prikkazan slučaj segmentacije
s
zaa 5 segmenataa, čije su definicije date u
tabelii segmenata.
Segmentacij
S
ja sa straniičenjem
Najpopularnije
N
e serije proceesora Intel (80
0x86 i Pentiuum) i Motorola (68000) im
maju ugrađenuu podršku i za
z segmentaciiju
i za straničenjje, tako da omogućavaju primenu kom
mbinovanih metoda
m
disko
ontinualne alookacije pa see procesi moggu
dijeliti na fiziččki diskontinuualne logičkee celine.
u fragmentacijju segmenataa.
Pri tome, stranničenje poništtava eksternu
ogička adresaa se sastoji od identifikaatora segmennta
Procesor Intell 80386 koriisti segmentaacije sa stranničenjem. Lo
(sselector) i poomjeraja u okviru
o
segmeenta (offest). Iz tabele seegmenata čitaa se adresa llogičke stran
nice u kataloggu
sttranica. Stranničenje je reallizovano u dv
va nivoa:
•
spoljna tabbela se zove katalog
k
straniica (page direectory)
unutrašnjaa - tabela stran
nica
•
49
Seznadar: OS i RM
prikupio i obradio Miroslav Mihaljišin
Operativni sistemi
Fragmentacija memorije
Fragmentacija se odnosi na neiskorišćenu memoriju koju sistem za upravljanje memorijom ne može da dodijeli
procesima.
Uz nju je povezan i sljedeći problem. Neka postoji više (m) slobodnih segmenata u koji se može upisati sljedeći
proces. Postavlja se pitanje koji od njih odabrati. Moguća su sljedeća rješenja:
¾ Prvi koji zadovoljava (first-fit): Procesu se dodjeljuje prvi segment koji zadovoljava postavljene memorijske
zahtjeve. Obično pretraživanje počinje od početka liste slobodnih segmenata ili se nastavlja od mjesta gdje je
prethodno ispitivanje zaustavljeno.
¾ Najbolje poklapanje (best-fit): Procesu se dodjeljuje onaj segment koji nabolje odgovara njegovim
memorijskim zahtjevima. Iako na prvi pogled ovim pristupom se najbolje iskorištava slobodna memorija,
rezultat je stvaranje malih segmenata, šupljina, koji su posljedica razlike veličine segmenta i programa.
¾ Najlošije poklapanje (worst-fit): Procesu se dodjeljuje najveći slobodni segment. Ovaj algoritam ima za cilj
stvaranje što većih šupljina, suprotno prethodnom algoritmu.
Provedene simulacije pokazale su da su prva dva algoritma bolja od posljednjeg u smislu bolje iskoristivosti memorije
kao i prosječnog vremena izvođenja procesa.
Postoje dva tipa fragmentacije: interna i eksterna.
Interna fragmentacija je dio memorije unutar regiona ili stranice koja je dodjeljena datom procesu i ne koristi se od
strane tog procesa. Interna fragmentacija je prouzrokovana različitom veličinom dodjeljene memorije i programa koji
je učitan u taj dio memorije. Taj dio memorije nije raspoloživ za korišćenje drugim procesima sistema sve dok dati
proces ne završi sa radom ili ne oslobodi dodjeljenu memoriju. Interna fragmentacija ne postoji kod upravljanja
memorijom pomoću dinamičkih particija, kod statičkih segmenata i kod dinamičkih segmenata.
Eksterna fragmentacija je neiskorišćena memorija između particija ili segmenata. Ova memorija nije kontinualna,
već se sastoji iz više manjih dijelova. Eksterna fragmentacija ne postoji kod upravljanja memorijom pomoću statičkih
i pomoću dinamičkih stranica.
Za prevazilaženje problema eksterne fragmentacije koristi se
tehnika sažimanja ili kompakcije (compaction).
Kompakcija se izvršava u tri faze.
1. Prvo se određuje nova lokacija za svaki blok koji se
premješta.
2. Zatim se ažuriraju svi pokazivači na taj blok u skladu sa
novom lokacijom.
3. U trećoj fazi se podaci premještaju na novu lokaciju
Primjer spajanja memorije, premještanjem procesa P3 i P4
50
OPERATIVNI
SISTEM
OPERATIVNI
SISTEM
Seeznadar: OS i RM
Operativni sistem
mi
prikupio i ob
bradio Miroslav Mihaljjišin
Zaštita
Z
meemorije
Kada
K
program
m šalje podatkke na pogrešn
ne adrese ili iih smješta naa nedozvoljen
ne lokacije doolazi do zasto
oja ili čak pada
kompletnog siistema. Jedann od osnovnih zadataka sistema za upravljanje
u
memorijom
m
jee zaštita proccesa koji dijeele
memoriju.
m
Ako
A
nekolikoo procesa dijjeli memoriju, procesimaa se ne smij
ije dozvoliti da mjenjajuu lokacije ko
oje nisu njim
ma
dodjeljene. Ovvim se ostvaruuje određeni oblik privatn
nosti procesa
a.
Važna
V
karakteeristika sistem
ma sa straniičenjem je dda svaki procces može daa pristupi sam
mo onim ok
kvirima koji se
pojavljuju u njjegovoj tabeli stranica.
Zaštita
Z
memorrije se može implementira
i
ti hardverski i softverski.
Hardversko
H
rjeešenje je presslikavanje adrresa (addresss translation) i ovo rješenje je opisano u nastavku teeksta.
Hardverska
H
zzaštita memoorije se možee ostvariti korrišćenjem dvaa registra koji se zovu: baazni ( base) i granični (limit)
reegistar.
U baznom reggistru se nalazzi najmanja adresa
a
fizičkee memorije gdje
g
je
dati program smješten, dook se u gran
ničnom registtru nalazi veeličina
psega memorrije unutar koga
k
program
m može pristuupati, kao što
o je to
op
prrikazano na sslici.
• Prvo se provjerava da
d li je geneerisana adresaa veća ili jednaka
m registru.
vrijednossti koja se naalazi u baznom
• Ako je oovaj uslov isppunjen tada see provjerava da li je generisana
adresa m
manja od zbiraa vrijednosti u baznom i grraničnom reg
gistru.
• Ako je i ovaj uslovv ispunjen dozvoljava
d
sse pristup fizzičkoj
memoriji.
ostor
Logičkki adresni pro
Ovakvom
O
harrdverskom zaaštitom elemiinisana je moogućnost da neki korisnički program
m nakon adressiranja pristuupi
dijelu memorij
ije koji je izvvan njegovog dozvoljenog adresnog pro
ostora. Ako je generisana adresa datog
g programa van
d do sistem
mske greške, tj. do takozvane fatalne ggreške.
dozvoljenog adresnog prostora tada će doći
ni bazni i grannični registar korišćenjem specijalne prriviliegovane instrukcije.
Jeedino operativvni sistem može da napun
Operativni
O
sisttem takođe, sprečava
s
prog
grame da mijeenjaju sadržajj ovih registaara.
51
Seeznadar: OS i RM
Operativni sistem
mi
prikupio i ob
bradio Miroslav Mihaljjišin
Upravlja
U
anje uređ
đajima U/I
U proceessing&ccontrol
Ulazni
U
i izlaznni uređaji su veoma važn
ni za efikasnoo korišćenje računarskog
r
sistema. Onii predstavljaju
u vezu ljudi sa
raačunarom. U
Ulazni uređajii prikupljaju podatke iz ookoline i prevode ih u ob
blik pogodann za obradu u računarskoom
siistemu. Izlaznni uređaji preeuzimaju pod
datke dobijenne obradom i prosljeđuju ih
i na dalju obbradu ili prik
kazuju u oblikku
up
potrebljivom
m za ljude.
Raččunari rade saa velikim brojjem različitihh uređaja.
To su: uređaji zaa memorisanjje (npr. diskoovi, trake), uređaji za prennos
(nprr. modemi), uređaji koji omogućuju interfejs saa ljudima (nppr.
tasttatura, monito
or, štampač) i drugi specijeelizovani uređ
đaji.
u
treba da ima moggućnost da po
ošalje ili prim
mi
Svaaki od ovih uređaja
poddatke iz račun
narskog sistem
ma.
uju na računaar preko U/I modula.
m
Spooljašnji uređajji se priključu
ma i njiov odn
nos prema OSS (kernelu)
Različiti modeli realizaccije pristupa U/I uređajim
U/I
U modulli
s još nazivaj u i periferni uređaji
u
ili perriferali.
Spoljašnji uređđaji računarskkog sistema se
U većini računnarskih sistem
ma procesor ne
n kontroliše direktno perriferne uređaje, nego su onni priključenii na uređaj kooji
see naziva U/I modul. U/I modul komu
unicira direkttno sa procesorom i proccesor preko nnjega obavljaa svu potrebnnu
komunikaciju sa U/I uređđajima. Perifferni uređajii su znatno sporiji od procesora
p
takko da bi njihova direktnna
t
svaki peeriferni uređaaj radi u skladdu
komunikacija sa procesoroom i memorijom znatno ussporila cio sistem. Osim toga,
u
u pprocesor logiiku rada velik
kog broja razlličitih periferrnih uređaja. Sa
S
saa određenim ppravilima. Niije isplativo uključivati
jeedne strane bii to znatno ussporilo operaccije procesorra, dok bi sa druge
d
strane onemogućilo
o
dodavanje no
ovih tipova U/I
U
urređaja.
U/I
U modul je ddirektno prikključen na sisttemsku magiistralu
i obezbjeđuje razmjenu innformacija saa U/I uređajiima i
n
utičče na
kontrolu njihoovog rada naa način koji najmanje
performanse raačunarskog sistema.
Glavne
G
funkcij
ije U/I modulla su:
•
Kontrola i usklađivanjee saobraćaja
•
Komunikaacija sa proceesorom
•
Komunikaacija sa uređaj
ajima
•
Prihvatanjje podataka
•
Otkrivanjee grešaka
52
Seeznadar: OS i RM
Operativni sistem
mi
prikupio i ob
bradio Miroslav Mihaljjišin
Blok
B
dijaggram U/I modula
Blok ddiagram U/I modula
m
Tehnike
T
izzvršavanjja U/I opeeracija
Programira
P
ani U/I mod
del
Najjednostavn
N
niji način izvrršavanja U/I operacija je programiranii U/I (Programmed I/O: P
PIO), poznataa i kao metoda
čeekanja ((busyy and wait).
Kada
K
procesorr izvršava proogram i naiđ
đe na zahtjev za U/I operaacijom, on od
dređuje potrebbne adrese i šalje komanddu
odgovarajućem
m U/I moduluu.
Postoje četiri tipa komanddi koje proceesor može daa pošalje U//I
modulu:
m
• Kontrrolna koma
anda koja se
s koristi zza aktiviranjee
perifernogg uređaja i kojom
k
se nazznačava akcij
ija koju trebaa
preduzeti.
• Test komanda kojom se ispiituje stanje U
U/I modula i
odgovarajuućih perifernih uređaja.
• Koma
anda za čitaanje izdaje direktivu U//I modulu daa
pročita poodatak iz perrifernog uređ
đaja i smjestii ga u intern
ni
bafer.
• Koma
anda za pissanje izdaje direktivu U//I modulu daa
pročita podatak sa maggistrale i prenese ga u perifferni uređaj.
53
Seeznadar: OS i RM
Operativni sistem
mi
prikupio i ob
bradio Miroslav Mihaljjišin
Prekidina
P
teehnika U/I – Interapt U/I modell
m računarskim
m sistemima, bez obzira nna njihovu velličinu. Izuzetak
Prekidima uprravljan U/I see primjenjuje na skoro svim
mogu
m
da buduu jedino računnarski sistemii sa vrlo ogranničenom funk
kcijom.
Primjer obavljjanja U/I operacije sa periifernim uređaj
ajema (diskov
vima, štampaččem...) uz koorišćenje prek
kida je prikazan
na slikama dolle.
Razlike
R
izm
među prograamiranog i prekidnogg modela prristupa U/II uređajimaa
pa nema.
Suštinski razlkka između ovva dva pristup
Razlika
R
je u naačinu pokretaanju procedurre pristupa urređaju. Kod programskog
p
modela zahtjtjev je implem
mentiran unuttar
saamog program
ma (procesa),, a kod interap
pt modela zah
ahtjev za kom
munikacijom sa U/I uređajeem dolazi izvana.
Kod
K programiranog U/I preenosa vrši se razmjena po dataka izmeđ
đu CPU-a i U/I
U interfejsa. CPU izvršav
va program kooji
up
pravlja U/I ooperacijom, kao
k što je čitaanje statusa sppoljnjeg uređ
đaja, izdaje komande
k
REA
AD ili WRIT
TE i vrši prennos
podataka. Kadda procesor izzda komandu
u U/I uređajuu on zatim čeeka sve dok se
s U/I operaccija ne završi. Kako je CP
PU
brrži od U/I intterfejsa, evideentno je da prrocesor suvišee mnogo vrem
mena gubi naa testiranje sppremnosti za prenos.
p
Osnovni
O
mehaanizam koji se
s koristi kod
d prekidne U//I je isti kao i kod program
mirane U/I. K
Kod prekidno
og U/I-a prennos
podataka se innicira od straane U/I uređaaja, koji korissti prekidni mehanizam
m
da ukaže CPU
U-u na svoju spremnost. Na
N
vaj način ne ppostoji više potreba
p
za perrmanentnim ttestiranjem sttatusa U/I ureeđaja. U/I uređ
eđaj
ov
može
m
takođe kkoristiti mehaanizam prekid
da kada želi dda CPU obratti njemu pažn
nju iz drugih rrazloga, kao što su: očekuuje
see (javila se) oodređena grešška, ukazuje na/
n završetak lokalne operracije i dr.
Moglo
M
ni se reeći da je razliika istorijska,, i da se odnoosi na vrijemee kad se procces izvršenja programa stv
varno prekidaao.
Kod
K modernihh OS-a i programa za ob
bradu U/I zahhtjeva processi se obavljaju paralelno ppa se programski i interaapt
prristup ne razllikuju bitno.
54
Seeznadar: OS i RM
Operativni sistem
mi
prikupio i ob
bradio Miroslav Mihaljjišin
Direktan
D
prristup –DM
MA model pristupa
p
U/II uređajim
ma
Nedostaci
N
obaa prethodno opisana načinaa izvršavanjaa U/I operacija su što zahijevaju interveenciju procesora pri prenosu
podataka izmeeđu memorijee i U/I modu
ula. Prenos ppodatak se od
dvija preko procesora i brrzina prenosaa je ograničenna
brrzinom kojom
m procesor može
m
da testirra i servisira U/I modul. Pri
P izvršavanjju svake U/I operacije pro
ocesor mora da
izzvrši veliki brroj instrukcijaa zbog čega ostali
o
program
mi moraju da čekaju. Ovi nedostaci possebno dolaze do izražaja pri
p
prrenosu velikiih količina poodataka.
U tom slučajuu je efiksnijee primjeniti tehniku
t
prenoosa nazvanu direktan prisstup memorijji ( Direct memory
m
accesss,
DMA),
D
kod kooje se prenosppodataka obav
vlja u jednom
m koraku.
Direktan
D
pristuup memoriji zahtijeva dod
datni modul priključen naa sistemsku magistralu
m
kooji se DMA kontroler.
k
DM
MA
kontroler
k
preedstavlja specijalizovani procesor kojji može da izzvršava prog
gramirani U//I.
Kod
K PC-a DM
MA prenos obavlja se posredstvom
p
posebnog mikrokontroler
m
ra specijalizoovanog za prenos
p
blokovva
podataka. Svakki od DMA kontrolera
k
ima po četiri kaanala – četiri nezavisne
n
cjeeline koje om
mogućavaju zaasebne direktnne
mirati da u dato
om trenutku obavi
o
prenos bloka podataaka.
prrenose podataaka. Svaki odd kanala možee se programi
Moguća
M
su razzličiti tipovi DMA
D
prenosaa:
¾ memoorija -> I/O port,
¾ I/O poort -> memorrija i
¾ memoorija -> memoorija
Da
D bi se izvršiio prenos potrrebno je defn
nisati tip prennosa, početnu (ili krajnju) adresu
a
u mem
moriji gdje se nalazepodacci i
brroj bajtova kooje treba prennijeti.
Kada
K
procesorr treba da izvvrši U/I operraciju, on upi še DMA kontrolni blok u memoriju. K
Kontrolni blok
k sadrži adresu
urređaja sa kogga se vrši prennos ili na kojii treba upisatii podatke.
Zatim
Z
procesoor predaje adrresu DMA kon
ntrolnog blokka DMA kontroleru i prelazi na druge pposlove.
DMA
D
kontroleer nastavlja izvršavanje operacije
o
i pprenosi jedan
n po jedan bajt radeći dir
irektno sa magistralom bez
pomoći centraalnog procesoora.
DMA
D
dobija kkontrolu nad magistralom samo kada oona nije zauzzeta od stranee centralnog pprocesora. Magistrala
M
može
da bude sloboddna kada je procesor
p
ne ko
oristi ili kadaa DMA kontro
oler zahtijevaa od procesoraa da privremeeno suspenduuje
voje operacije sa magistraalom. Ovakav
v način rada D
DMA kontrollera se nazivaa krađa cikluusa, jer u sušttiniDMA krade
sv
ciikluse na maggistrali od cenntralnog proccesora.
Po završetku operacije, DMA
D
šalje prrekid procesooru kojim gaa obavještava da je operaccija izvršenaa. Na taj načiin,
na količinu prenesenih
p
podataka.
p
procesoru se ššalje samo jeedan prekid,, bez obzira n
55
Seznadar: OS i RM
Operativni sistemi
prikupio i obradio Miroslav Mihaljišin
Zaštita operativnih sistema
Problem zaštite postoji kod svih računarskih sistema, a posebno kod sistema koji su povezani na Internet. Pitanje
zaštite je postalo jedno od najvažnijih pitanja u svakom poslovnom sistemu. Operativni sistem ima značajnu ulogu u
riješavanju problema zaštite.
Apsolutna zaštita računarskih sistema se ne može ostvariti. Osnovni cilj je obezbjediti visok nivo zaštite i zato pristup
riješavanju problema zaštite mora biti sveobuhvatan sa stalnim razvijanjem novih mehanizama zaštite u skladu sa
bezbjednosnim problemima koji nastaju. Kod savremenih računarskih sistema primjenjuje se sistem zaštite na više
nivoa, tj. zaštita se primjenjuje:
1.
na nivou mreže,
2.
na nivou operativnog sistema,
3.
na nivou aplikacije,
4.
na nivou baze podataka,
5.
kao proceduralna zaštita.
Osnovna potreba za zaštitom u okviru operativnog sistema nastaje zbog dijeljenja resursa kao što su memorija, U/I
uređaji, programi i podaci. Operativni sistem može da obezbjedi sljedeće načine zaštite:
Bez zaštite – kada se dijelovi koda sa kritičnim sekcijama izvršavaju u različito vrijeme;
Izolaciju – kada se svaki proces izvršava nezavisno od drugih procesa bez dijeljenja resursa i bez međusobne
komunikacije. Svaki proces ima svoj adresni prostor, datoteke i druge objekte;
Sve je djeljivo ili nema dijeljenja resursa – vlasnik objekta deklariše objekat kao javni ili privatni. Ako je objekat javni
svako mu može pristupiti, ako je privatni može mu pristupiti samo vlasnik;
Dijeljenje preko ograničenja pristupa – kada operativni sistem obezbjeđuje da samo autorizovani korisnik može da
pristupi datom objektu. U ovom slučaju operativni sistem kod svakog pristupa datog korisnika nekom objektu
provjerava dozvolu pristupa;
Dijeljenje preko dinamičkih sposobnosti – kada se koncept kontrole pristupa proširuje tako da omogući dinamičko
kreiranje prava za dijeljenje objekata;
Ograničeno korišćenje objekata – kada se ograničava ne samo pristup datom objektu, već operacije koje se mogu
vršiti nad objektom.
Svaki višekorisnički operativni sistem mora da obezbjedi zaštitu od neautorizovanog pristupa jednog korisnika
resursima drugog korisnika. Sistem lozinki koji se uglavnom primjenjuje nije potpuno siguran. Korisnici obično biraju
lozinke koje se lako pogađaju ili biraju složenije, ali ih zapisuju i ostavljaju na vidljivim mjestima. Narušavanjem
sistema lozinki dolazi se do neautorizovanog pristupa resursima datog sistema.
Zahtjevi sistema zaštite savremenih sistema
Kod današnjih sistema koji se zasnivaju na komunikaciji korisničkog procesa i servisa koji obezbjeđuju neku vrstu
usluge ili obrade podataka postoje sljedeći zahtjevi sistema zaštite:
1)
Međusobna autentikacija,
2)
Kontrola pristupa ili autorizacija,
3)
Zaštićena komunikacija,
4)
Neporicanje slanja, odnosno prijema podataka,
5)
Ne ponavljanje slanja,
6)
Nema odbijanja servisa.
Međusobnom autentikacijom se obezbjeđuje verifikacija identiteta obe strane koje učestvuju u komunikaciji. Tek
nakon završene međusobne autentikacije se može nastaviti dalja komunikacija. Kontrolom pristupa se obezbjeđuje da
samo autorizovani korisnici mogu pristupiti traženim podacima. U suprotnom, neautorizovani korisnik bi mogao da
naruši integritet podataka, tako što bi mogao da ih mjenja. Zaštićena komunikacija garantuje tajnost podataka koji se
prenose preko komunikacionog kanala. Neporicanje ima značenje da ni jedna strana koja učestvuje u komunikaciji ne
može da poriče slanje, odnosno prijem podataka prenijetih u toku procesa komunikacije. Ne ponavljanje slanja
obezbjeđuje sistem od mogućnosti da treća strana kopira cijelu ili neki dio poslate poruke i nakon toga vrši ponovo
slanje tih istih podataka. Zahtjev da nema odbijanja servisa obezbjeđuje da nema degradacije performansi datog
sistema i garantovanje legitimnim korisnicima sistema da mogu da koriste potreban servis.
56
Seznadar: OS i RM
prikupio i obradio Miroslav Mihaljišin
Operativni sistemi
Vrste napada
Dati računarski sistem ili dio mreže možemo posmatrati sa aspekta obezbjeđivanja informacije. Uobičajen tok
informacija kada zaštita sistema nije narušena je od izvora do odredišta kao na slici 1.
Slika 1. Uobičajen tok informacija kada zaštita sistema nije narušena
Kada je zaštita sistema narušena, tada postoje sljedeće mogućnosti:
•
prekid toka informacija,
•
modifikacija informacija,
•
presretanje informacija,
•
fabrikacija informacija (slika 2).
Napadi koji prouzrokuju prekid toka informacija se nazivaju napadi na
raspoloživost sistema. Primjeri takvih napada su: prekid komunikacione
linije, uništenje neke hardverske komponenete ili nedostupnost datog
sistema za upravljanje datotekama.
Napadi koji imaju za cilj modifikaciju informacija pripadaju klasi
napada na integritet podataka. Primjeri takvih napada su: modifikacija
sadržaja elektronske pošte, modifikacija sadržaja date datoteke,
modifikacija elektronskih dokumenata koji se prenose preko mreže.
Treća vrsta napada su napadi na tajnost ili povjerljivost podataka. Oni
su prouzrokovani presretanjem informacija koje se prenose, tako što
neautorizovani subjekt dobija pristup tim informacijama. Primjeri
takvih napada su: korišćenje sniffer programa, nedozvoljeno kopiranje
datoteka ili programa koji se prenose.
Četvrta vrsta napada su napadi na autentičnost, koji su prouzrokovani
fabrikacijom informacija. Nastaju tako što neautorizovani subjekt
generiše falsifikovane ili lažne informacije unutar datog sistema.
Primjeri napada na autentičnost su: dodavanje sadržaja unutar nekog
elektronskog dokumenta, generisanje nepostojeće elektronske pošte ili
ponovno slanje pošte poslatih u nekom prethodnom periodu
Slika 2 Tok informacija kada je zaštita
sistema narušena.
Napadi na računarske sisteme se mogu takođe klasifikovati u dvije grupe: pasivni i aktivni. Kod pasivnih napada
nema promjene podataka, dok kod aktivnih može biti promjene podataka, generisanje novih podataka, može se vršiti
ponovno slanje i može se primjeniti masovno slanje podataka čime se ugrožava raspoloživost napadnutog sistema.
Krajnji efekat zlonamjernih programa mogu da budu veoma različiti uključujući i obaranje operativnog sistema.
Slika 3. Klasifikacija zlonamjernih programa
57
Seeznadar: OS i RM
Operativni sistem
mi
prikupio i ob
bradio Miroslav Mihaljjišin
Napade
N
na opperativne sisteeme od stran
ne zlonamjernnih programaa možemo po
odijeliti u nekkoliko grupaa: virusi, crvi i
trrojanske kon
nje.
U opštem sluččaju postoje zlonamjerni programi kojji mogu posttojati nezavisno od drugihh programa, kao
k i program
mi
koji se instalirraju i izvršavaaju kao dodattni dijelovi neekih drugih programa.
Logička
L
bombba je zlonam
mjeran progrram koji se aktivira na neki događaj (npr. na neki datum)). Trapdoor je
nedokumentovvani dio kodaa koji omoguććava pristup nneželjenim ko
orisnicima.
Bakterije
B
su zzlonamjerni programi
p
kojii se replikujuu sve dok ne napune cio disk ili dok ne potroše sv
ve procesorskke
reesurse.
Virusi
V
Računarski
R
virrus je program
m koji se može sam reproodukovati tako
o što dodaje sopstveni
s
kodd nekom drug
gom program
mu.
Razultat
R
izvršavanja virusaa može biti ispisivanje
i
neeke poruke na
n ekranu, prrikaz slike naa ekranu, mo
odifikovanje ili
brrisanje neke datoteke, pooziv nekog teelefonskog brroja, itd. Dru
ugim riječimaa, virus možee uraditi sve što računarsski
prrogram možee uraditi.
Ciljevi
C
autora virusa su:
brrzo širenje viirusa,
da se virus teškko detektuje,
ovanija.
da odbrana odd virusa bude što kompliko
Tipičan
T
virus u toku svog životnog
ž
ciklu
usa prolazi krroz sljedeće faze:
f
•
faza spavaanja,
faza propaagacije,
•
•
faza trigerrovanja,
faza izvršaavanja.
•
U fazi spavanjja virus je beesposlen. Iz ove faze viruss se može akttivirati na nek
ki događaj, ka
kao što je datu
um, prisustvoom
nekog drugog programa ilii datoteke, itd
d. Ova faza nnije obaveznaa za sve viruse. U fazi proopagacije se vrši klonirannje
virusa. Identiččna kopija virrusa se smješta unutar nekkog programaa ili datoteke i na taj načinn se vrši daljee inficiranje. U
v
i tada on započinjee funkciju zaa koju je i naamjenjen. Possljednja faza je
faazi trigerovannja dolazi doo aktiviranja virusa
faaza izvršavannja u kojoj virrus može sam
mo ispisati nekku poruku na ekranu ili izv
vršiti neku deestruktivnu op
peraciju.
Najpoznatiji
N
tiipovi virusa su:
s paraziti, sttalno prisutnii u operativno
oj memoriji, boot
b sektor, sstealth i polim
morfni. Parazziti
see uvijek nalazze kao dio neekog izvršnog
g programa. Stalno prisutni virusi u memoriji
m
su obbično dio nek
kog sistemskoog
prrograma i innficiraju sve programe ko
oji se izvršavvaju. Boot seektor virusi in
nficiraju glavvni boot slog
g (master booot
reecord) i šire sse nakon poddizanja sistem
ma sa diska. SStealth virusi su posebno projektovani
p
da budu neviidljivi prilikoom
detekcije od sstrane antiviruusnih softverra. Polimorfnni virusi su virusi koji mu
utiraju prilikoom svakog in
nficiranja, čim
me
n moguća
ostvaruju da ddetekcija na osnovu karakterističnog uzoorka virusa nije
Crvi
C
Crv
C je računarrski program koji kopira samog
s
sebe ssa jednog raččunara na dru
ugi. Crvi se m
mogu koristitii za prenošennje
virusa ili za zzamjenu postojećih datotteka verzijam
ma datoteka koje
k
predstav
vljaju Trojannske konje. Obično
O
se crrvi
h sistema u pogledu
p
zaštiite. Crvi se brzo
b
replikujuu i
prrenose prekoo računarske mreže koristeeći nedostatkke operativnih
trroše puno memorije na host računarimaa. Najčešće see prenose uz elektronsku poštu
p
i uz doddatke elektron
nskoj pošti.
Izzmeđu crva i virusa ne poostoji baš uvijjek jasna grannica. Crvi su dosta slični virusima,
v
ali između njih postoji razlikka.
Za
Z razliku odd virusa, za aktiviranje crva
c
nije pottreban korisn
nik i oni skrrivaju svoje širenje na druge
d
računarre.
Propagacija crrva može bitti mnogo brža od propagaacije virusa. Brzina propaagacije je prooporcionalnaa broju ranjivvih
raačunara.
58
Seznadar: OS i RM
Operativni sistemi
prikupio i obradio Miroslav Mihaljišin
Trojanski konj
Trojanski konj je program koji se najčešće prenosi na ciljni računar kao nevidljivi dodatak uz neki drugi program, a
zatim dolazi do njegovog aktiviranja. Mogu se prenijeti kopiranjem programa, skidanjem sa Interneta, kao i
otvaranjem dodatka u elektronskoj pošti. Aktivnosti Trojanskih konja mogu biti veoma različite. Mogu da obrišu
podatke, pošalju svoju kopiju na sve računare sa liste elektronske pošte i da omogući dodatne napade na dati računar.
Obično ostvaruju povezivanje sa nekim udaljenim računarom i prenose informacije sa računara na kome su instalirani.
Trojanski konji koji se izvršavaju u okviru jezgra operativnog sistema su najopasniji. Tada ovi programi imaju
potpunu kontrolu nad datim sistemom. To znači da programi kao što su, na primjer, drajver uređaja, screen saver i bilo
koji drugi programi koje operativni sistem izvršava predstavljaju potencijalni izvor napada.
Trojanski konji se najčešće prikazuju kao korisni programi, ali u suštiti oni uvijek imaju neku neželjenu aktivnost po
onoga ko ih koristi. Oni se koriste za indirektno izvršavanje funkcija koje neautorizvani korisnici ne bi mogli da
ostvare direktno.
Mehanizmi zaštite i autentikacija
Zaštita sistema može biti implementirana na više različitih načina. Pod fizičkom zaštitom podrazumijeva se
obezbjeđenje zgrada, obezbjeđenje prostorija i neki način kontrole identiteta korisnika sistema.
Glavni problem zaštite kod svih operativnih sistema je autentikacija (proces određivanja identiteta nekog subjekta).
Tradicionalan mehanizam zažtite je sistem kod koga se koristi korisničko ime i lozinka kojim se verifikuje identitet
korisnika i na taj način isključuje mogućnost rada neidentifikovanih korisnika. Tajnost lozinke je glavni dio sistema
kojim se naovaj način obezbjeđuje zaštita. Od načina implemenatacije sistema lozinki najviše zavisi koliko će sistem
biti zaštićen.
Zato većina današnjih sistema ne omogućava korisnicima unos onih lozinki koje nisu dovoljno sigurne i koje se
nazivaju slabe lozinke. Primjeri slabih lozinki su ime i prezime, riječ iz riječnika, ime člana porodice, itd.
U cilju bolje zaštite, potrebno je da operativni sistem podrži jake lozinke, odnosno:
1.
kontroliše da lozinke budu riječi koje se ne mogu naći u riječniku,
2.
kontroliše da lozinke budu riječi najmanje 6 karaktera dužine,
3.
kontroliše da lozinke budu sastavljene i od slova i brojeva,
4.
obezbjedi da lozinke imaju period važenja,
5.
ograniči broj pokušaja prijavljivanja na sistem sa pogrešnom lozinkom, tako što će nakon
maksimalnom broja pokušaja automatski zabraniti korisnički nalog.
Najvažnija lozinka u datom sistemu je lozinka sistem administratora, jer ona ima kompletnu kontrolu nad sistemom.
Upravo zbog toga najveći broj napada na sistem ima za cilj pronalaženje lozinke sistem administratora.
Sistem zaštite koji se zasniva na lozinkama se može narušiti pogađanjem lozinki.
Drugi način je metodom grube sile gdje se korišćenjem današnjih računara veoma brzo može pretražiti kompletan
skup mogućih lozinki čija je maksimalna dužina unaprijed poznata.
Narušavanje sistema zaštite koji se zasniva na lozinkama se može narušiti kao rezultat vizuelnog ili elektronskog
monitoringa.
Vizuelni monitoring nastaje gledanjem u tastaturu prilikom unosa korisničkog imena i lozinke.
Elektronski monitoring se može uraditi pomoću sniffing alata kojim se može snimiti identitet korisnika i njegova
lozinka. Kriptovanje podataka koji sadrže lozinku rješava ovaj problem.
59