You are on page 1of 108

N.

Bajgori Operativni sistemi

Osnovni koncepti

Osnovni koncepti

Operativni sistemi - osnovni koncepti

2
Sistemski softver - osnovni okvir Operativni sistem Kratak osvrt na istorijat operativnih sistema Vrste operativnih sistema - klasina podjela Klasifikacija savremenih operativnih sistema Osnovne komponente (funkcije) operativnih sistema Upravljanje procesima Upravljanje glavnom memorijom Upravljanje pomonom memorijom Upravljanje fajlovima (datotekama) Upravljanje I/O sistemom Sistem zatite Mrena komponenta Komandni interpreter - korisniki interfejs Arhitektura operativnih sistema Registry baza podataka Komercijalne OS platforme

30

Osnovni koncepti

2. Osnovni koncepti
2.1. Sistemski softver - osnovni okvir
Klasifikacija sistemskog softvera se u literaturi razliito tretira, u zavisnosti od pristupa autora, ali se svi slau da se njegovom glavnom komponentom moe smatrati operativni sistem. Ostale komponente koje se u pojedinim pristupima tretiraju sastavnim dijelom sistemskog softvera, kao to su npr. programi prevodioci, odnosno, kompajleri i interpreteri, sistemi za upravljanje bazama podataka, nisu predmet knjige i njima se neemo baviti. Panju emo usmjeriti na operativni sistem kao najvaniju komponentu sistemskog softvera, koji pored svojih osnovnih funkcija ukljuuje i drajvere (device drivers), razne alate i rutine (tools and routines), dok emo programe kao to su kompajleri, interpreteri I sistemi za upravljanje bazama podataka smatrati dijelom aplikativnog softvera.

2.2. Operativni sistem


Glavna komponenta sistemskog softvera je program koji se zove operativni sistem (operating system - OS). U najkraem, operativni sistem je skup programa koji upravljaju raunarskim sistemom. Aktivnosti operativnog sistema su usmjerene na druge dvije glavne komponente raunara: hardver i aplikativni softver (slika 2.1).

Slika 2.1. Glavne aktivnosti operativnog sistema


31

Osnovni koncepti

Sa aspekta korisnika, operativni sistem ima ulogu interfejsa preko kojeg on koristi raunarski sistem. U zavisnosti od tipa korisnika, razlikuje se i oblik interakcije sa operativnim sistemom. Krajnji korisnici (end users) operativni sistem koriste u funkciji efikasne interakcije sa elementima hardvera i aplikativnim softverom, dok programeri i sistem administratori kao napredniji korisnici imaju posebne zahtjeve prema operativnom sistemu i ostvaruju interakciju na niim nivoima. Stoga je za ovu klasu korisnika neophodno bolje poznavanje svojstava operativnog sistema i njegovih rutina (naprimjer, Windows API funkcije) jer se one koriste u razvoju aplikacija. Na sljedeoj slici predstavljen je model interakcije tri tipa korisnika sa raunarskim sistemom, odnosno operativnim sistemom pod kojim on radi.

Slika 2.2. Operativni sistem i korisnici Raunar moe da radi pod razliitim operativnim sistemima, pri emu ovo nije pravilo koje vai za sve raunarske sisteme. Meutim, kada se radi o standardnim personalcima, kao i nekim serverima, onda je na korisniku da odabere koji operativni sistem eli koristiti. Operativni sistem obino dolazi pre-instaliran na raunaru, tako da njegovu ulogu korisnik odmah moe da uoi po startanju raunara. U zavisnosti od verzije OS-a, po ukljuenju sistema, na ekranu se ispisuju razliite poruke, izmjenjuju neke slike itd. sve do odreenog momenta kada raunar prestaje sa aktivnou i na ekranu se pojavi jedna slika koja ostaje stabilna i koja obino zahtijeva odreenu akciju korisnika. Do tog momenta, operativni sistem raunara je izvrio itav niz aktivnosti koje se u osnovi svode na inicijalizaciju razliitih dijelova hardvera. Ono to korisnik dobije na ekranu je odreena forma interfejsa koju e koristiti u

32

Osnovni koncepti

svim operacijama koritenja raunara. Startanje neke aplikacije, recimo programa za obradu teksta, za operativni sistem znai odgovarajuu naredbu za izvravanje odreene aktivnosti koja se obino naziva proces. Sistemski softver se sastoji od programa koji koordiniraju rad razliitih komponenti raunarskog sistema sa osnovnim ciljem osiguranja efikasnosti funkcioniranja sa aspekta potreba krajnjeg korisnika. Osnovne operacije ukljuuju, naprimjer, formatiranje diskete, kopiranje fajlova, kreiranje direktorija, slanje fajlova na tampanje i sl. Na taj nain operativni sistem uspostavlja, ne samo vezu izmeu raunarskog hardvera i krajnjeg korisnika u smislu omoguavanja njegovog efikasnog koritenja, ve i vezu kojom se aplikativni softver integrira sa ostalim komponentama raunarskog sistema. Funkcije jednog operativnog sistema je relativno lako objasniti na primjeru standardnog personalnog raunara, na kojem, u jedno odreeno vrijeme radi jedan korisnik, i raunar u najveem broju sluajeva radi u tzv. "stand-alone" sistemu rada. Stoga veina korisnika danas, kada se pomene termin "operativni sistem", obino misli na Microsoftov operativni sistem Windows. Meutim, sva pria o operativnim sistemima u savremenoj elektronskoj obradi podataka se ni izbliza ne zavrava na ovoj OS-platformi. Potrebe korisnika za ovim tipom obrade podataka u savremenom kompjutingu daleko prevazilaze ono to prua standardni personalac od 500 USD i ovaj OS proizvod firme Microsoft. Danas je obrada podataka u organizacijskim sistemima, pogotovo onim veim, jedna vrlo kompleksna kategorija i obino je bazirana na tzv. server raunarskim sistemima, to u finansijskom izrazu znai da se moe raditi o konfiguracijama od nekoliko desetina hiljada, do nekoliko miliona USD. Takvi sistemi podravaju istovremeni rad od strane vie korisnika, pri emu taj broj moe ii i do nekoliko hiljada. Operativni sistemi koji upravljaju radom ovakvih raunarskih sistema su daleko kompleksniji, iako sa aspekta krajnjeg korisnika to i ne mora znaiti veliku razliku u odnosu na njihovo iskustvo sa Windowsima. U veini sluajeva, naime, interfejs preko kojeg korisnik pristupa velikom sistemu obavlja se preko PC operativnog sistema, bilo da se radi o Windowsu ili nekom drugom desktop OS-u. 2.3. Kratak osvrt na istorijat operativnih sistema U godinama prvih komercijalnih raunarskih sistema, u periodu nakon II svjetskog rata, pa sve do 60-ih godina, upravljanje raunarskim sistemima se obavljalo uglavnom manuelnim putem. Za svaku
33

Osnovni koncepti

pojedinanu obradu podataka operator je morao runo startati odreeni broj ureaja na sistemu. Moe se rei da je svaka operacija iz tzv. I-P-O ciklusa (input-process-output) zahtijevala znaajne aktivnosti kontrole i koordinacije od strane ovjeka. Sljedea bitna karakteristika obrade iz ovog perioda sastojala se u tome da su se programske obrade morale izvravati u tzv. serijskom nainu rada - jedan program u jedno vrijeme. Obrade su u cjelini bile neefikasne jer su raunarski sistemi bili neaktivni u periodima kada su operatori obavljali manuelne operacije. Za ovaj period, dakle, etrdesete i pedesete godine ovog stoljea, moe se rei da i nije bilo pravih operativnih sistema. Upravo zato je njihov kasniji razvoj znaajno doprinio poboljanju efikasnosti raunara jer su preuzeli veliki broj operacija koje je ovjek obavljao. Danas, savremeni raunarski sistemi obavljaju vie operacija u isto vrijeme i mogu biti ostavljeni da sami kontroliraju sistem obrade bez involviranja ljudskog faktora. Ipak se operativni sistemi iz ovog perioda obino oznaavaju prvom generacijom. U to vrijeme je uveden i termin "batch processing" koji je upravo oznaavao sistem rada sa odreenom "serijom" zadataka. Obrada je bila bazirana na sistemu buenih kartica koje su bile "itane" od strane raunara i pohranjivane na trake ili diskove (magnetne medije). Poetak 60-ih godina se karakterizira razvojem multiprogramiranja (multiprogramming), pravca koji je oznaio drugu generaciju operativnih sistema. U ovom nainu rada, vie korisnikih programa se nalazi u glavnoj memoriji u isto vrijeme i procesor je u mogunosti da aktivnost usmjerava na svaki od njih. Znaaj ovakvog naina rada raunarskih sistema povean je uvoenjem terminala preko kojih je korisnik dobio mogunost interaktivnog rada sa sistemom. Sa vie terminala povezanih na sistem, vie korisnika je imalo mogunost pristupa tako da se uvodi i osobina viestrukog pristupa. Omoguavanje pristupa sistemu od strane vie korisnika zahtijevalo je dodatne mogunosti sa aspekta efikasnog rasporeivanja vremena i prostora od strane raunara. Sljedea bitna stvar je bila svakako i sigurnost, u smislu iznalaenja naina zatite od neovlatenog pristupa sistemu u cjelini ili pojedinim fajlovima, odnosno programima. U ovo vrijeme se pojavljuju i tzv. real-time sistemi u kojima se raunari poinju koristiti u kontroli industrijskih procesa. Trea generacija OS-a, od sredine 60-ih do kraja 70-ih godina, imala je za osnovnu karakteristiku da su to bili sistemi opte namjene koji su mogli biti koriteni, kako za batch obradu, tako i za interaktivnu i obradu u realnom vremenu. Nedostatak takvih sistema sastojao se u tome da se radilo o vrlo velikim i skupim sistemima, tekim za upravljanje i odravanje. Primjer raunarskog sistema iz ove generacije je IBM-ov
34

Osnovni koncepti

System 360. U tih 15-ak godina zabiljeen je znaajan rast u proizvodnji minikompjutera, od prvog DEC PDP-1 iz 1961. godine, do sistema PDP11. U to vrijeme pojavio se UNICS (Uniplexed Information and Computing Service) koji je kasnije u dobroj mjeri posluio kao osnova za razvoj UNIX-a. Sa razvojem mikroraunara, 80-e godine donose etvrtu generaciju OS-a, ija glavna odlika su upravo verzije za ovu klasu raunara. Novi raunari su bili stand-alone i single-user sistemi, to znai da su imali vrlo jednostavne zahtjeve u pogledu performansi OS-a. Brzi razvoj informacijske tehnologije u posljednjih 20-ak godina doveo je do uvoenja novih tipova konfiguracija raunarskih sistema kao to je npr. multiprocesorski rad u kojem se vie procesora ili ak raunarskih sistema povezuje u cilju osiguranja boljih performansi obrade podataka. Razvoj komunikacijske tehnologije je doprinio uvoenju raunarskih mrea, a samim tim i operativnih sistema koji podravaju takav nain rada. Posebna klasa operativnih sistema su tzv. distribuirani sistemi (distributed systems) koji podravaju rad vie sistema povezanih u jednu cjelinu pri emu se ne mora raditi o istoj fizikoj lokaciji. Takoer, uveden je termin klaster (cluster) koji se odnosi na vie raunarskih sistema povezanih brzim komunikacijskim linijama tako da predstavljaju faktiki jednu cjelinu i korisnik ima utisak da radi sa jednim sistemom. Kraj 80-ih godina donosi i veoma znaajnu novinu na podruju korisnikog interfejsa, izgradnjom GUI-baziranih (GUI - Graphical User Interface) operativnih sistema ili dodavanjem GUI svojstava postojeim verzijama. Apple Macintosh OS, Microsoft Windows na personalcima, te X-Windows bazirani UNIX na radnim stanicama su samo primjeri nekih od GUI-baziranih OS-a. 2.4. Vrste operativnih sistema - klasina podjela Operativni sistemi se mogu klasificirati na Pomenuemo one koji se najee navode u literaturi: vie naina.

Prema broju korisnika koji mogu raditi na sistemu u isto vrijeme dijele se na: jednokorisnike i viekorisnike OS (SingleUser and Multi - User Operating Systems). Viekorisniki OS pruaju mogunost koritenja jednog raunara od strane vie korisnika u isto vrijeme. Ovi sistemi se jo nazivaju i multiprogramming operativni sistemi, u kojem OS preuzima
35

Osnovni koncepti

funkciju dodjeljivanja ili preusmjeravanja CPU-a izmeu razliitih korisnikih zahtjeva. Prema broju operacija (zadataka) koji se mogu izvravati u isto vrijeme dijele se na: jednozadane i viezadane OS (SingleTasking and Multi-Tasking Operating Systems). Multitasking OS omoguavaju koritenje vie od jednog pograma u isto vrijeme. Windows 9x je primjer single-user i multitasking OS-a, dok je UNIX primjer OS-a koji omoguava i multitasking i multiuser nain rada. Veina dananjih operativnih sistema podrava viezadani rad. Multiprocesorski operativni sistemi predstavljaju koncepciju OS-a slinu multiprogrammingu, s tim da se ovdje radi o vie procesora koji na veini takvih sistema koriste, odnosno dijele zajedniku memoriju. Krajnji korisnik ovakve sisteme vidi kao da se radi o jednom vrlo monom procesoru. Prema broju raunara kojim upravljaju, mogu se podijeliti na stand-alone i mrene operativne sisteme (Network Operating Systems - NOS). U prvom sluaju se radi o operativnom sistemu koji upravlja samo jednim raunarom, dok drugi tip ima mogunost upravljanja sa vie raunara koji su povezani u raunarsku mreu. Raunarska mrea je grupa raunara koji mogu komunicirati meusobno, dijeliti resurse i periferale, kao i pristupati udaljenim raunarima. Mreni OS je softver koji to omoguava. Dva su osnovna tipa NOS-a: "Peerto-peer" i "client-server". Trei tip OS-a koji se pojavljuje u novije vrijeme je tzv. JavaOS koji predstavlja novi pristup u podruju sistemskog softvera. "Peer-to-peer" NOS. Operativni sistem koji omoguava korisnicima da dijele resurse na njihovim raunarima kao i da pristupaju resursima sa drugih raunara koji su definirani kao djeljivi (shared), pri emu svi raunari imaju isti status, naziva se "peer-to-peer" NOS. Primjeri "peer-to-peer" NOSa su: Windows 3.11 (Windows za radne grupe), Windows95, Windows98, Windows NT Workstation, Lantastic, VINES, MacOS. Client-Server NOS. Kod ovog modela, raunari na kojima rade korisnici se obino nazivaju radne stanice (workstations) i oni predstavljaju client stranu modela. Moniji raunar preuzima ulogu servera to znai da se na njega instalira mreni operativni sistem (NOS) i veina aplikacija koje e se koristiti sa radnih stanica. Server osigurava razne usluge za radne stanice kao to su: pohranjivanje podataka, komunikacije prema printerima,
36

Osnovni koncepti

server softver za elektronsku potu, dijeljenje aplikacija i datoteka, backup servis itd. "Client-Server" NOS moe biti dodijeljeni (dedicated) i ne-dodijeljeni (non-dedicated). Kod prvog modela, jedan raunar igra ulogu servera i ne moe se koristiti za druge svrhe. Drugi tip servera (nondedicated) se moe koristiti i za standardne operacije kao i svaka druga radna stanica. Naprimjer, Novell NetWare NOS se moe koristiti u oba moda, dok se Windows NT Server NOS koristi kao "non-dedicated". Distribuirani operativni sistemi predstavljaju varijantu operativnog sistema koji se koristi u mrenom okruenju. Za razliku od klasinog mrenog OS-a kod kojeg svaka maina u mrei ima svoj nezavisni OS, korisnici znaju da u mrei ima vie raunara, da im mogu pristupati pojedinano, kopirati fajlove, koristiti druge resurse, itd., distribuirani OS predstavlja sloeniji tip mrene strukture. Ovakav tip OS-a upravlja hardverskim i softverskim resursima na nain da korisnik mreu raunara vidi kao jedan jedinstveni sistem, pri emu on ne mora da zna na kojoj maini se izvrava koji program. 2.5. Klasifikacija savremenih operativnih sistema Pored navedenih klasinih podjela (jednokorisniki-viekorisniki, jednozadani-viezadani, mreni, distribuirani), savremeni operativni sistemi, obzirom na hardverske platforme na kojima rade i aplikacijska okruenja koja opsluuju, mogu se podijeliti na dvije glavne kategorije: Server operativni sistemi Desktop operativni sistemi Server operativni sistemi su, po pravilu, istovremeno viekorisniki, viezadani i mreni operativni sistemi i obino se instaliraju na server mainama, od monijih personalaca do mainframeova. Ova kategorija se dalje moe klasificirati na nekoliko naina, u zavisnosti od toga koji atribut se uzme u obzir: a) Prema veliini sistema iji rad podravaju, dijele se na operativne sisteme za: Superkompjutere Velike sisteme (high-end servers) Srednje sisteme (midrange servers)

37

Osnovni koncepti

Male sisteme, sisteme za "mali biznis" (small business servers), sisteme za odjele (departmental servers) ili sisteme za radne grupe (workgroup servers). b) Prema tipu operativnog sistema: Operativni sistemi jednog proizvoaa, koji rade samo na hardverskim platformama tog proizvoaa (proprietary operating systems). U ovoj grupi ima vie razliitih operativnih sistema, a najvaniji su sljedei: UNICOS pod kojim rade superkompjuteri Cray. MVS (OS/390, z/OS) firme IBM - OS za mainframe sisteme firme IBM, kao i jo nekih proizvoaa mainframe sistema (Hitachi Data Systems, Amdahl, itd). OS/400 firme IBM - za IBM servere AS/400. OpenVMS firme HP*, koji radi na VAX i Alpha sistemima. MPE/iX (Multi-Programming Executive), operativni sistem firme HP za klasu HP 3000 sistema. Operativni sistemi jednog proizvoaa, koji rade na hardverskim-procesorskim platformama drugih proizvoaa (obino Intel/AMD procesori): Windows NT/2000/2003 Novell NetWare Linux UNIX operativni sistemi, odnosno razliite verzije ovog operativnog sistema, u zavisnosti od proizvoaa (IBM - AIX, HP - HP-UX, HP - True64UNIX, Silicon Graphics - IRIX, Sun - Solaris, itd.). c) Prema procesoru koji je osnova konfiguracije, dijele se na: Operativne sisteme koji rade na IBM-ovom procesoru, koji je osnova mainframe sistema. Glavni predstavnik je OS/390 (z/OS). Operativne sisteme koji rade na RISC procesorima razliitih proizvoaa, kao to su: PA-RISC i Alpha firme HP, SunSPARC firme Sun, R6000 firme IBM, Rx00 firme Silicon Graphics, itd. U ovu grupu spadaju sljedee verzije UNIX-a: HP-UX, Sun Solaris, Tru64UNIX, AIX, IRIX, itd. Ovdje treba dodati i OpenVMS. Operativne sisteme koji rade na Intelovim i/ili AMD procesorima, odnosno na Intel/AMD baziranim PCserverima. To su sljedei operativni sistemi: Windows NT
*

OpenVMS je razvijen prije 25 godina od strane firme Digital. 38

Osnovni koncepti

Server, Novell Netware, IBM OS/2 Warp Server, Sun Solaris, SCO UNIXWare, i Linux. U drugu kategoriju operativnih sistema - desktop OS, spadaju operativni sistemi pod kojim rade personalni raunari i koji se mogu koristiti uglavnom u tri naina rada: a) Kao desktop operativni sistemi, ako se radi o tzv. stand-alone konfiguracijama personalnih raunara. b) Kao client operativni sistemi u client/server okruenjima, pri emu ulogu server OS-a ima neki od gore navedenih operativnih sistema. c) Za povezivanje u tzv. "peer-to-peer" lokalne mree, sa ciljem dijeljenja podataka, programa, hardverskih ureaja i sl. Poto bi detaljna obrada svih navedenih operativnih sistema prela okvire ove knjige, u nastavku e se, imajui u vidu ciljeve knjige, obraditi tri desktop OS-a:

Windows MacOS RedHat Linux kao desktop OS

Windows e, kao daleko najzastupljenija desktop OS platforma, biti predstavljen kroz nekoliko verzija koje su trenutno u upotrebi (Windows 9x, Windows 2000 Professional, Windows XP). MacOS je prezentiran zbog specifinosti hardverske platforme (Apple raunari bazirani na PowerPC procesoru), kao i zbog toga da bi pokazali da su i ostali nonWindows desktop operativni sistemi zasnovani na slinim premisama. Takodjer, imajui u vidu injenicu da se u posljednjih nekoliko godina Linux kao OpenSource OS nametnuo kao desktop OS opcija i alternativa Windowsu, u knjizi je prezentiran RedHat kao jedna od najee koritenih Linux distribucija.

2.6. Osnovne komponente (funkcije) operativnih sistema


Operativni sistem je, najkrae reeno, program koji djeluje kao posrednik izmeu korisnika raunara i raunarskog hardvera. Primarni cilj operativnog sistema sastoji se u tome da olaka koritenje raunarskog sistema, dok se kao sekundarni cilj moe navesti efikasno koritenje raunarskog hardvera. U odnosu na ovako definirane ciljeve, moe se rei da se operativni sistemi kreiraju sa osnovnom svrhom osiguranja takvog okruenja u kojem korisnik moe koristiti raunarske
39

Osnovni koncepti

programe. Prema A. Silbeschatz-u, J. Peterson-u i P. Galvin-u, uloga koju ima operativni sistem je vrlo slina onoj koju ima Vlada u svakoj zemlji. Kao i svaka Vlada, sam operativni sistem ne izvrava neku posebno korisnu funkciju, ve jednostavno omoguava okruenje u okviru kojeg ostali programi mogu initi korisne poslove. Da bi se takvo okruenje osiguralo, operativni sistem se konstruira na modularnom principu pri emu moduli predstavljaju dobro definirane komponente sistema sa precizno definiranim inputima, outputima i funkcijama. Osnovne funkcije operativnog sistema su: Upravljanje zadacima: pripremanje, rasporeivanje i nadgledanje svih zadataka za neprekidno odvijanje obrade od strane raunarskog sistema. Upravljanje resursima: kontrola koritenja resursa raunarskog sistema od strane drugih komponenti sistemskog i aplikativnog softvera koji je u procesu izvravanja. Ovi resursi ukljuuju: primarnu memoriju, sekundarnu memoriju, vrijeme centralne procesne jedinice, i input-output ureaje. Upravljanje podacima: kontrola koritenja podataka (inputoutput, pohranjivanje, pretraivanje). Ovi programi kontroliraju alokaciju sekundarne memorije, fiziki format i katalogiziranje pohranjivanja podataka, kao i transfer podataka izmeu ureaja primarne i sekundarne memorije.

Iako svi operativni sistemi nemaju istu strukturu, za one koji se danas najee koriste, moe se rei da sadre sljedee osnovne funkcije ili komponente*: 1. 2. 3. 4. 5. 6. 7. 8. Upravljanje procesima (Process Management) Upravljanje glavnom memorijom (Main Memory Management) Upravljanje pomonom memorijom (Secondary Management) Upravljanje I/O sistemom (I/O System Managemet) Upravljanje datotekama (File Management) Sistem zatite (Protection System) Mrena komponenta (Networking) Komandni interpreter, odnosno korisniki interfejs (CommandInterpreter System).

Komponente operativnog sistema su obraene prema knjizi: Silberschatz,A., Galvin,P.B., Gagne,G., Operating Systems Concepts, Addison-Wesley, Wiley, 1997-2002. Koritene su i ilustracije sa prezentacijskih fajlova koji prate ovu knjigu. (http://www.wiley.com) 40

Osnovni koncepti

2.6.1. Upravljanje procesima


Osnovni koncepti o procesu Procesor raunara izvrava veliki broj programa. Iako je njegov primarni zadatak izvravanje korisnikih programa, procesor je potreban i za izvravanje drugih sistemskih aktivnosti. Sve ove aktivnosti se nazivaju procesima. Na prvi pogled, proces se moe smatrati odreenim zadatkom ili programom. Meutim, radi se o konceptu koji je openitijeg karaktera i, kako emo kasnije vidjeti, ne moe se poistovjetiti sa programom. Proces se moe definirati kao "program u izvravanju", pri emu se on sastoji od programskog koda, programskih podataka, kao i svih ostalih informacija neophodnih za izvravanje programa. Koncept procesa predstavlja glavni pojam u podruju savremenih operativnih sistema i razvijen je u nastojanju osiguranja multiprogramskog rada. U osnovi, radi se o apstraktnom terminu koji je razvijen od strane OS dizajnera kao nain za nadgledanje i kontrolu istovremenog izvrenja vie programa. Fizika reprezentacija procesa, koja se naziva slika procesa (process image), u zavisnosti od konkretnog sistema, sastoji se od sljedeih informacija: Izvrni programski kod (executable program code) Podaci (data) Informacija o stanju (context - state information) - informacija neophodna za restartanje programa bez gubitka informacija. Kada operativni sistem prelazi sa jednog procesa na drugi, on mora sauvati stanje prekinutog (interrupted) procesa i restorirati stanje sljedeeg procesa. Ova operacija se naziva context switching ili process switching (slika 2.3). Njena osnovna namjena je da omogui nastavak odvijanja procesa koji je bio prekinut kao da nije uopte bilo prekida.

41

Osnovni koncepti

Slika 2.3. Context Switching Izmeu pojmova proces i program ne stoji znak jednakosti. Kod singletasking operativnih istema, kao to je bio MS-DOS, izmeu ova dva termina se mogao staviti znak jednakosti, dok to nije sluaj sa multitasking operativnim sistemima. Kod prvih, proces je program - serija instrukcija mainskog koda, zajedno sa svim resursima programa. Ti resursi ukljuuju memorijske adrese alocirane programu, hardverske ureaje koje je program rezervirao za iskljuivo koritenje, itd. Jedan program moe rezultirati u vie istovremenih procesa, a takoer i jedan proces moe izvriti vie od jednog programa, ali uglavnom u formi sekvencijalnog, a ne istovremenog (concurrent) izvravanja. U tom smislu, program predstavlja jedan pasivni entitet kao to je npr. sadraj nekog fajla koji je pohranjen na disku, dok proces predstavlja aktivni entitet sa programskim brojaem koji specificira sljedeu instrukciju za izvravanje. Proces je na odreeni nain osnovna radna jedinica u sistemu. Takav sistem se sastoji od kolekcije procesa, od kojih su neki OS procesi (oni koji izvravaju sistemski kod), a drugi korisniki procesi - procesi koji izvravaju korisniki kod. Pomou operacije izmjene (switching) CPU-a izmeu pojedinih procesa, operativni sistem moe uiniti raunar produktivnijim. Operativni sistem u dijelu upravljanja procesima obavlja sljedee aktivnosti:
42

Osnovni koncepti

Kreiranje i brisanje (uklanjanje) korisnikih i sistemskih procesa Suspenzija i ponovno aktiviranje procesa Osiguravanje mehanizama za sinhronizaciju procesa Osiguravanje mehanizama za komunikaciju procesa Osiguravanje mehanizama za otklanjanje tzv. zastoja ili mrtvih petlji (deadlocks).

Proces moe biti u nekom od sljedeih stanja (slika 2.4): Novo (New state): Proces se kreira, dodjeljuje mu se Proces ID i ostali atributi. Spreman (Ready state): Proces je spreman za izvravanje. Izvravanje (Runing state): Proces je u fazi izvravanja. ekanje (Waiting state, blocked or sleep state): Proces se izvrava ali je u stanju oekivanja nekog dogaaja. Obino ne moe nastaviti izvrenje dok se taj dogaaj ne desi, naprimjer, neka I/O operacija. Zavreno ili izlaz (Terminated or Exit state): Proces se zavrio, normalno ili nekom drugom operacijom.

Slika 2.4. Process state diagram Operativni sistem kreira procese dinamiki. Parent procesi (procesi - roditelji) "raaju" (spawn) child procese (procese - djecu). Kad OS kreira novi proces, mora mu dodijeliti PID broj, unijeti podatke u tabelu procesa (process table), inicijalizirati PCB (Process Control Block), dodijeliti memoriju, kao i smjestiti ga u odgovarajui red (queue): Ready, Suspended, Ready, itd. Kad je novi proces kreiran, proces-roditelj moe nastaviti da se izvrava paralelno s njim, a moe i ekati dok se procesdijete ne zavri.

43

Osnovni koncepti

Proces se moe zavriti u sljedeim sluajevima: Proces je kompletiran i poziva exit sistemski poziv (exit system call). Drugi proces ga "ubija" (najee roditelj-proces). Roditelj - proces se zavrava, dijete - proces je automatski zavren ("ubijen"). Svaki proces je u operativnom sistemu predstavljen sa svojim kontrolnim blokom (Process Control Block PCB, slika 2.5).

Slika 2.5. Process Control Block PCB predstavlja jedan blok podataka ili slog koji sadri informacije o specifinom procesu. One ukljuuju sljedee: Stanje procesa (Process State), koje moe biti: new, ready, running, waiting, ili halted. Programski broja (Program Counter) - oznaava adresu sljedee instrukcije koja se treba izvriti za taj proces. CPU registri (CPU Registers). Zajedno sa programskim brojaem, ova informacija o stanju procesa je bitna kada nastupi prekid (interrupt), kako bi proces kasnije mogao biti nastavljen. CPU scheduling information. Ukljuuje prioritet procesa, pointere na scheduling redove, i bilo koje druge scheduling parametre.
44

Osnovni koncepti

Memory-management information. Ukljuuje tzv. limit registre (limit registers) ili page tables. Accounting information. Sadri informacije o CPU vremenu, vremenskim limitima, brojevima procesa, itd. I/O status information (I/O zahtjevi, informacije o I/O ureajima alociranim na specifini proces, itd.). Procesi se u sistemu mogu izvravati konkurentno (concurrently), tj. vie procesa moe biti obraivano na CPU. Razlozi za ovakav oblik izvravanja su sljedei: Dijeljenje fizikih resursa - omoguiti dijeljenje ogranienih hardverskih resursa u okviru viekorisnikog okruenja. Dijeljenje logikih resursa - operativni sistem mora osigurati mogunost koritenja odreenih oblika podataka (npr. nekog fajla) od strane vie zainteresiranih korisnika u isto vrijeme. Poboljanje brzine obrade. Modularnost. Olakanje za krajnje korisnike u smislu omoguavanja istovremenog rada na vie razliitih zadataka. Procesi koji se izvravaju unutar jednog operativnog sistema mogu biti nezavisni procesi i kooperirajui procesi. Proces je nezavisan ako on ne moe utjecati, niti se na njega moe utjecati od strane drugih procesa. Takav proces ima sljedee karakteristike: Stanje procesa nije djeljivo na bilo koji nain od strane bilo kojeg drugog procesa. Njegovo izvrenje je deterministiko u smislu da rezultat izvrenja zavisi iskljuivo od stanja inputa. Rezultat izvrenja e biti uvijek isti za isti input. Njegovo izvravanje moe biti zaustavljeno i ponovo startovano bez prouzrokovanja bilo kakvih efeketa. Proces je kooperirajui ako moe utjecati, odnosno ako se na njega moe utjecati od strane nekog drugog procesa. Ovakvi procesi imaju sljedee karakteristike: Stanje procesa je djeljivo sa ostalim procesima Rezultat procesa se ne moe predvidjeti unaprijed Rezultat procesa nije deterministian u smislu da on ne mora uvijek biti isti za isti input.
45

Osnovni koncepti

Kooperirajui procesi mogu direktno dijeliti itav logiki adresni prostor ili samo podatke preko fajlova. U prvom sluaju, djeljivi su i podaci i programski kod, to se postie pomou tzv. light-weight procesa ("laganih" procesa) ili tredova, odnosno niti (threads). Tredovi mogu biti podrani od strane OS-kernela, a mogu se osiguravati i na nivou iznad kernela preko skupa poziva (calls) na korisnikom nivou. Multitasking i scheduling Multitasking je sposobnost raunara da obavlja vie zadataka u isto vrijeme. Rekli smo ranije da postoje singletasking i multitasking operativni sistemi, pri emu ovi prvi obavljaju jedan zadatak, a drugi vie zadataka u isto vrijeme. Meutim, ovdje treba imati u vidu da raunari koji rasplau samo jednim procesorom nikad ne obavljaju vie od jednog zadatka odjednom, ali zbog brzine rada procesora korisniku izgleda kao da obavljaju vie zadataka odjednom. Svi multitasking operativni sistemi dijele procesorsko vrijeme u jedinice koje se nazivaju isjeci vremena (time slices). Time slice je najmanja jedinica vremena koja moe biti alocirana nekom programu. Ono zavisi od brzine procesora i njegove arhitekture, naprimjer, kod Windows 98 operativnog sistema je oko 20 milisekundi. U osnovi postoje dva naina izgradnje multitasking sistema:
Preemptivni* (preemptive) multitasking.

Kooperativni (cooperative) multitasking i

Kooperativni multitasking se zasniva na sistemu "kooperativnosti" izmeu aplikacija u smislu zajednikog koritenja resursa sistema. Drugim rijeima, sistem ima povjerenje u aplikacje da e koristiti procesor u odreenom vremenskom periodu i ostaviti ga (ustupiti - yield) nekom drugom programu nakon izvravanja procesa. Sve aplikacije slijede ovaj pristup. Ovaj sistem kooperativnog multitaskinga odvijao se koristei koncept tzv. eksplicitnih i implicitnih ustupanja (yield), pri emu je yield definiran kao proces preko kojeg jedna aplikacija (program) signalizira operativnom sistemu da sljedea aplikacija moe otpoeti sa radom. Explicitno ustupanje je kada aplikacija alje direktni signal operativnom sistemu kazujui mu da moe ustupiti procesor drugom programu, dok se implicitno ustupanje odnosi na situaciju kada aplikacija izvrava odreenu operaciju koja implicira
*

Ova tehnologija se u naoj literaturi prevodi i kao predupredni multitasking. 46

Osnovni koncepti

operativnom sistemu da moe drugoj aplikaciji dozvoliti rad. Meutim, deavalo se da jedna aplikacija "prigrabi" resurse za sebe tokom itavog procesa izvravanja, tako da operativni sistem gubi kontrolu nad sistemom. Jedna aplikacija, dakle, moe prigrabiti vie resursa i na taj nain blokirati rad drugih aplikacija. Pored toga, ako aplikacija koja koristi procesor krahira (crash), za operativni sistem nije bilo naina da to identificira i rijei problem bez stopiranja itavog sistema. Preemptivni multitasking je baziran na potpuno drugaijem pristupu u odnosu na kooperativni multitasking. Preemptivni operativni sistem dri u potpunosti kontrolu nad procesorom i moe u svakom momentu zaposjesti (preempt) procesor od strane nekog drugog programa koji ga u tom momentu koristi. U ovom sistemu, programi ne moraju brinuti o ustupanju procesora drugim programima, tu je operativni sistem koji to rjeava. Naprimjer, kod Windowsa 3.1, OS-a koji je bio baziran na kooperativnom multitaskingu, pjeani sat na ekranu znaio je da je sistem u potpunosti zauzet i korisnik nije mogao nita drugo raditi dok taj sat ne nestane sa ekrana. Preemptivni multitasking pod kojim rade sve verzije Windows NT-a znai da je samo taj tekui zadatak (aplikacija) zauzet i da se moe startati bilo koja druga aplikacija. Na procesu bazirani multitasking operativni sistemi imali su osobinu da je jedna aplikacija za svaki novi zadatak, koji se trebao izvriti u isto vrijeme sa postojeim, morala startati novi proces. To je i za sam sistem bio potpuno novi proces kojem se, takoer, trebalo alocirati novi memorijski prostor i ostali resursi. Ovaj problem je rijeen uvoenjem koncepta nitovanja (threading) koji se zasnivao na sljedeem: svaki proces predstavlja jedan kompletan program, sa programskim kodom, memorijskim adresama, itd., ali on ne obavlja nikakav posao. Svaki proces ima najmanje jednu izvrnu nit (executive thread), nazvan Thread 0, koji ustvari izvrava taj posao. Proces mora imati najmanje jednu nit, ali moe imati onoliko niti koliko treba. Osnovna poenta je u tome to sve niti unutar procesa dijele resurse tog procesa. Na taj nain, program moe kreirati nove niti bez potrebe da kopira podatke za niti koje e ih koristiti, jer sve niti koriste, odnosno dijele iste resurse. Na ovom konceptu bazirane aplikacije mogu istovremeno izvravati vie niti ili izvrnih jedinica jednog procesa. Naprimjer, Win32-bazirani Setup program bilo koje aplikacije moe biti podijeljen u tri treda: Prvi, koji dekompresuje fajlove Drugi, koji kopira fajlove Trei, koji modificira sistemske konfiguracijske fajlove.

47

Osnovni koncepti

Ovi tredovi su nezavisni jedan od drugog, izvravaju se u isto vrijeme, i na taj nain poboljavaju performanse sistema. Rasporeivanje procesa (Process scheduling) Kako procesi ulaze u sistem, oni se stavljaju u odgovarajui red (job queue). Ovaj red se sastoji od svih procesa koji su pohranjeni na pomonoj memoriji i koji ekaju na alokaciju dijela glavne memorije. Procesi koji su ve u glavnoj memoriji i spremni su za izvrenje dre se u odgovarajuoj listi koja se naziva spreman red (ready queue). Postoje, takoer, i drugi redovi u sistemu, kao npr. red ureaja (device queue), koji predstavlja listu procesa koji ekaju za odgovarajui I/O ureaj.

Slika 2.6. Rasporedjivanje procesa Jedan odreeni proces se pomjera izmeu razliitih scheduling redova tokom njegovom ivotnog ciklusa. Operativni sistem mora selektirati procese iz ovih redova i taj proces selektiranja se obavlja pomou odgovarajuih "rasporeivaa" (schedulers). Postoje, uglavnom, dva tipa schedulera: long-term scheduler ili job scheduler i short-term scheduler ili CPU scheduler. Job scheduler odabire procese sa pomone memorije i uitava ih u radnu memoriju, dok CPU scheduler vri selekciju izmeu procesa koji su spremni za izvravanje i vri alokaciju CPU-a na jednog od njih. Osnovna razlika izmeu ova dva schedulera je u frekvenciji njihovog izvravanja. CPU scheduler mora biti vrlo brz zbog
48

Osnovni koncepti

kratkog vremena izvravanja pojedinih procesa, a i kratkoe trajanja izmeu pojedinih izvravanja. Job scheduler se izvrava mnogo rijee. Ovaj scheduler vri kontrolu stepena multiprograminga, tj. broja procesa koji se nalaze u radnoj memoriji. Neki operativni sistemi imaju i dodatni nivo schedulinga koji se naziva medium-term scheduler. Koncept se zasniva na tome da se procesi mogu ponekad ukloniti iz radne memorije i na taj nain reducirati stepen multiprograminga koji CPU izvrava, a da se poslije izvjesnog vremena ti procesi ponovo uvode u memoriju i nastavljaju sa izvravanjem tamo gdje su bili zaustavljeni. Ova shema se naziva swapping, pri emu se kae da je odreeni proces swapped out i swapped in pomou medium-term schedulera. Ovdje treba istai da je scheduling osnovna funkcija operativnog sistema zato to se skoro svi resursi raunarskog sistema moraju rasporediti na odreeni nain prije njihovog koritenja. Poto je CPU jedan od primarnih resursa, CPU scheduling predstavlja jedno od centralnih mjesta u operativnom sistemu. Kad god je CPU bez odgovarajue aktivnosti, tj. "besposlen" (idle), operativni sistem mora odabrati jedan od procesa iz okvira reda spremnih (ready) da bi se izvrio. Ovaj proces selektiranja se, kako je ranije reeno, obavlja pomou short-term schedulera ili CPU schedulera. Scheduling moe nastupiti pod sljedeim okolnostima: 1. Kada proces mijenja stanje iz "running" u "waiting" (npr. I/O zahtjev). 2. Kada proces mijenja stanje iz "running" u "ready" (npr. kada se pojavljuje prekid -interrupt). 3. Kada proces mijenja stanje iz "waiting" u "ready" stanje (npr. kod kompletiranja I/O zahtjeva). 4. Kada se proces zavrava. U sluajevima 1 i 4, nema izbora u terminu schedulinga, poto se mora selektirati novi proces (ako takav postoji u ready redu). To, meutim, nije sluaj sa varijantama 2 i 3. Kada se scheduling dogaa pod okolnostima 1 i 4, kaemo da je scheduling shema non-preemptive, dok se za one pod takama 2 i 3 kae se da je to preemptive shema. Sviovanje CPU-a na drugi proces zahtijeva memoriranje stanja prethodnog procesa, kao i uitavanje prethodno memoriranog stanja novog procesa. Ovaj posao se naziva context switch. Context-switch vrijeme zavisi od hardverske platforme.

49

Osnovni koncepti

Osnovni zadatak CPU schedullinga sastoji se u odluivanju kojem od procesa iz ready reda treba biti alocirana CPU. U tom smislu postoji nekoliko scheduling algoritama koji imaju razliita svojstva. Izbor najboljeg algoritma bazira se na odreenim kriterijima, od kojih su najvaniji sljedei: Koritenje CPU-a. eli se drati CPU to je mogue vie zauzetom. Propusnost (throughput). Radi se o mjeri koja predstavlja broj procesa koji su kompletirani u jedinici vremena. Za duge procese to moe biti jedan proces po satu, dok za kratke transakcije taj pokazatelj moe biti npr. 10 procesa u sekundi. Turnaround time. Interval izmeu vremena podnoenja (submit) procesa i vremena njegovog kompletiranja. Vrijeme ekanja (waiting time). Vrijeme koje proces eka u ready redu. Vrijeme odgovora (response time). Vrijeme od momenta podnoenja zahtjeva pa do momenta kad je produkovan prvi odgovor. Poeljno je da se maksimizira CPU koritenje i propusnost, a da se minimizira turnaround time, waiting time, i response time. Od scheduling algoritama*, najee se koriste: First-come, first-served (FCFS) Shortest-Job-First (SJF), kao specijalni sluaj openitijeg priority scheduling algoritma Round-Robin (RR) scheduling Multilevel Queue scheduling Multilevel feedback Queue scheduling. Koordinacija procesa (Process Coordination) Posebno poglavlje u obradi podataka je tzv. concurrent processing, koji predstavlja osnovu multiprogramskih operativnih sistema. Ovakvi sistemi sadre skupinu procesa od kojih procesi koji pripadaju operativnom sistemu izvravaju sistemski kod, dok korisniki procesi izvravaju korisniki kod. Svi ovi procesi mogu biti u situaciji da se izvravaju konkurentno. Da bi se osigurao sistem adekvatnog
*

O ovim algoritmima opirnije u prethodno navedenoj knjizi.


50

Osnovni koncepti

izvravanja svih procesa, operativni sistem mora osigurati mehanizme za komunikaciju izmeu procesa i njihovu sinhronizaciju. Svaki proces sadri segment koda koji se naziva kritina sekcija (critical section) ili ktitini region u okviru kojeg proces moe da mijenja zajednike varijable, pie u datoteku, itd. Stoga je bitno osigurati da kada jedan proces izvrava njegovu kritinu sekciju, nijedan drugi proces ne moe izvravati takvu svoju sekciju. Kae se da je izvravanje kritinih sekcija uzajamno iskljuivo (mutually exclusive) u vremenu. Ovaj problm se u teoriji operativnih sistema naziva problem kritine sekcije (criticalsection problem), i osnovni cilj se definira kao "kako izgraditi odgovarajui protokol koji procesi mogu koristiti da bi kooperirali". Svaki proces mora zatraiti dozvolu da bi "uao" u postupak izvravanja svoje kritine sekcije. Sekcija ili dio koda koji implementira ovaj zahtjev naziva se ulazna sekcija (entry section). Kritinu sekciju moe slijediti izlazna sekcija (exit section), dok se ostatak koda naziva ostatak (reminder) sekcija. Procesi unutar raunarskog sistema u principu teku asinhrono. Meutim u pojedinim sluajevima mogu postojati dijelovi procesa, pa i itavi procesi, iji je rad potrebno meusobno uskladiti. To usklaivanje dvaju ili vie procesa naziva se sinhronizacijom procesa. Sinhronizacija se sastoji u tome da se dijelovi procesa koji trebaju biti sinhronizirani odvijaju prema odreenim pravilima, odnosno redoslijedu. Mehanizam sinhronizacije mora osigurati: a) da samo jedan proces bude u kritinoj sekciji i b) da se prije ulaska u kritinu sekciju eka ogranieno vrijeme. Kada su procesi medjusobno ovisni, operativni sistem mora uskladiti njihovo izvoenje. Komunikacija meu procesima se moe vriti na vie naina, a jedan od naina je tzv. tehnika semafora. Ponekad se ova tehnika naziva i tehnika flagova ili zastavica. Kada jedan program kreira neki memorijski objekt koji bi mogao biti koriten od strane razliitih procesa ili niti, on dodijeli semafor tom objektu. Ako semafor signalizira da neki drugi proces koristi taj objekt, nadolazei proces (nit) eka sve dok mu se ne da signal da je taj objekat rasploloiv. Semafor je, ustvari, nenegativna varijabla, tj. moe poprimiti samo vrijednosti vee ili jednake nuli. Svakom se semaforu dodjeljuje neka poetna vrijednost. Postoje dvije elementarne operacije: WAIT (operacija ekanja) i SIGNAL (operacija signaliziranja). Operacija WAIT(S) je operacija ekanja na semaforu. Ova e operacija oduzeti jedinicu od sadraja semafora i na osnovu ispitivanja novog sadraja semafora propustit e proces da dalje izvodi svoje
51

Osnovni koncepti

instrukcije ili e ga potpuno zaustaviti i staviti u takozvani red ekanja na semaforu. Procedura izvoenja operacije je uvijek ista, ali se mogu razliito definirati matematika usporeivanja sadraja semafora na osnovu kojeg operacija donosi odluku. Postupak u izvravanju operacije WAIT se moe definirati kao: Ispituje se sadraj semafora (IF, THEN) Umanjuje se vrijednost semafora za jedan (S=S1) Na osnovu nove vrijednosti semafora (s) donosi se odluka: Proces se proputa da izvodi svoje instrukcije Proces se zaustavlja, stavlja ga se u red ekanja i oslobaa procesor.

Operacija SIGNAL(S) je suprotna operaciji WAIT i slui za oslobadjanje procesa iz reda ekanja na semaforu (s). Ako ne eka ni jedan proces na semaforu, onda SIGNAL povea vrijednost semafora za jedan. Jedno izvoenje ove operacije oslobaa samo jedan proces iz reda ekanja, i ako postoji vie procesa u tom redu, mora postojati odreeni algoritam po kojem se procesi stavljaju i oslobaaju iz tog reda. Procedura izvoenja operacije SIGNAL moe se definirati ovako: Ispitivanje sadraja semafora (IF, THEN) Uveavanje vrijednosti semafora za jedan, neovisno od toga da li je proces u redu ekanja ili nije Na osnovu nove vrijednosti semafora (S) donosi odluku: Oslobaa proces iz reda ekanja Zadrava proces u redu ekanja.

Drugi mehanizam za koordiniranje procesa je tzv. uzajamnoekskluzivni objekat (mutex object), koji je, ustvari, vrsta semafora. Ova tehnika osigurava uzajamno ekskluzivni (mutually exlusive) pristup resursima. Deadlock (zastoj, mrtva taka ili pat pozicija) U multiprogramskom okruenju, razni procesi konkuriraju za ogranieni broj resursa. Proces zahtijeva odreeni resurs i ako taj resurs nije raspoloiv u to vrijeme, proces ulazi u tzv. stanje ekanja (wait). Moe se desiti da procesi koji ekaju vie ne promijene stanja, zato to su resursi koje je taj proces zahtijevao ve zauzeti od strane drugih procesa. Ova situacija se u terminologiji operativnih sistema naziva deadlock ili u slobodnom prevodu: zastoj, mrtva petlja ili pat pozicija.
52

Osnovni koncepti

U normalnom nainu rada, proces moe koristiti odreene resurse samo u sljedeem slijedu: 1. Zahtjev (Request). Ako se zahtjevu ne moe odmah udovoljiti (naprimjer, ako se resurs u tom momentu koristi od strane nekog drugog procesa), onda proces mora ekati sve dok ne dobije taj resurs. 2. Koritenje (Use). Proces moe koristiti resurs. Naprimjer, ako se radi o printeru kao resursu, moe tampati odgovarajui fajl na taj printer. 3. Otputanje (Release). Proces "otputa" (ostavlja) resurs. Request i Release su sistemski pozivi kao to su: Request Device, Release Device, Open File, Close File. Resursi mogu biti bilo fiziki resursi tipa printera, trake, eksterne memorije, CPU-a, itd, ili logiki (fajlovi, semafori, monitori). Deadlock moe ukljuiti iste, ali i razliite tipove resursa. Uzmimo, naprimjer, sistem sa jednim printerom i jednom magnetnom trakom. Ako imamo situaciju da proces PI "dri" ureaj magnetne trake, a proces PJ dri printer, pat pozicija e nastupiti ako, recimo, proces PJ zatrai traku, a PI uputi zahtjev za printer. Na narednoj slici je je predstavljena jedna situacija tipinog dedloka:

Slika 2.7. Dedlok U literaturi se navode sedam karakteristinih sluajeva nastanka deadloka: Deadlok na fajl zahtjeve Deadlok u bazama podataka Deadloci u alociranju dodijeljenih ureaja Deadloci u alociranju viestrukih ureaja Deadloci u spoolingu Deadloci u dijeljenju diskova Deadloci u mrei.

53

Osnovni koncepti

U principu, postoje dva pristupa za rjeavanje problema deadloka. Prvi se sastoji u koritenju odreenih protokola tako da sistem nikad ne doe u situaciju da "ue" u deadlock stanje. Ovdje postoje dvije metode: prevencija (prevention) i izbjegavanje (avoidance). Drugi pristup se sastoji u dozvoljavanju da sistem ue u stanje deadloka, ali da se iz njega "izvue" (recover). U tom sluaju postoje razliite alternative. Jedna mogunost je da se operator sistema obavjesti da dedlok postoji i da on manuelno rijei taj problem, dok je druga mogunost da se sistemu prepusti da se "oporavi" od dedloka automatski. Postoje dvije opcije za otklanjanje dedloka (breaking). Prva se zasniva na prekidanju jednog ili vie procesa, dok druga opcija ide na zaposjedanje nekih resursa od jednog ili vie procesa koji su u pat poziciji. Da bi se dedlok eliminirao ukidanjem (aborting) procesa, najee se koriste dvije metode: Ukinuti (prekinuti) sve procese koji su u deadloku Ukidati jedan po jedan proces, sve dok se dedlok ne eliminira u potpunosti. Kod zaposjedanja (preemption), resursi se sukcesivno oduzimaju od onih procesa koji su u dedloku i daju drugim procesima sve dok se dedlok ne ukine. Na kraju ovog kratkog izlaganja o procesima, dajemo dvije slike koje prikazuju stanje procesa na dva operativna sistema: Windows NT Serveru (slika 2.8-a) i UNIX-u (slika 2.8-b).

Slika 2.8-a. Procesi na Windows NT Serveru


54

Osnovni koncepti

Slika 2.8-b. Procesi na UNIX-u

Upravljanje procesima kod Win9x platforme

Preko koncepta Virtual Machine Managementa, Windows9x podrava oba tipa multitaskinga - kooperatini (cooperative) i preemptivni (preemptive). Sve Win32 aplikacije su kreirane tako da su preemptivno viezadane (preemptively multitasked), kako u odnosu jedna prema drugoj, tako i u odnosu prema operativnom sistemu. Isti je sluaj sa MSDOS aplikacijama, dok su Win16 aplikacije razvijene za Windows 3.1 bazirane na konceptu kooperativnog multitaskinga. Scheduling je baziran na procesima i nitima, pri emu je svaka MSDOS virtualna maina jedan proces, kao i svaka Windows aplikacija koja radi u sistemskoj virtualnoj maini. Proces u ovom operativnom sistemu generalno odgovara aplikacijskom programu. Nit ili tred (thread) predstavlja izvrenje koda pridruenog nekom procesu. Svaki proces poinje sa jednim tredom. MS-DOS i Win16 aplikacije uvijek imaju jednostruki tred izvravanja (single thread of execution). Meutim, Win32 aplikacije mogu kreirati nove tredove da bi izvrili razliite dijelove koda konkurentno. Naprimjer, program za obradu teksta moe kreirati novi tred za printanje dokumenta, dok korisnik moe da nastavi editovanje dokumenta koristei originalni thread. Windows9x dozvoljava i procesima i nitima da imaju svoje vlastite nivoe prioriteta (priority levels) i procesorsko vrijeme se rasporeuje prema tim nivoima. Kada se kreira jedan proces, on specificira svoju
55

Osnovni koncepti

klasu baznog prioriteta (base priority class). Niti unutar procesa, ako nije dugaije specificirano, dijele taj bazni prioritet. U Windows 98 operativnom sistemu postoje etiri razliite klase prioriteta (za Win32 aplikacije): Idle Priority Class. Niti koji rade na ovom nivou dobivaju odreeno procesorsko vrijeme samo ako nema zahtjeva od nekih drugih niti sa veim prioritetom. Programi kojima se odreuje ovaj nivo su oni koji mogu startati samo ako nema nikakve druge aktivnosti na sistemu (naprimjer, screen saveri). Normal Priority Class. Veina programa koji rade na sistemu rade sa ovom klasom prioriteta. Ova klasa se koristi za standardne aplikacije kao to su text procesori, spreadsheet aplikacije, itd. High Priority Class. Predstavlja klasu najveeg prioriteta koja se generalno koristi. Niti na ovom nivou su oni koji moraju odgovoriti tzv. time-sensitive dogaajima. Primjer je proces koji vri validaciju korisnika koji se logiraju na sistem. Real-Time Priority Class. Ovo je klasa koja predstavlja klasu najveeg prioriteta na sistemu. Unutar svake klase postoje 32 razliita nivoa, poevi od nule (0) koja predstavlja najnii prioritet unutar klase, pa sve do 31 (najvei prirotet). U cilju olakanja programiranja, ovih 32 nivoa su grupirani u sedam nivoa koje programer moe koristiti, a to su: IDLE, LOWEST, BELOW NORMAL, NORMAL, ABOVE NORMAL, HIGHEST, TIME CRITICAL. Kada se jedan nit (tred) kreira, njemu se pridrui osnovni nivo prioriteta (base priority level), ali i dinamiki level prioriteta (dynamic priority level) koji moe biti mijenjan od strane operativnog sistema. U odreeno vrijeme, taj dinamiki nivo niti moe biti "pojaan" (boosted) od strane schedulera operativnog sistema, s tim da one niti koje imaju nivo prioriteta od 0 do 15 mogu biti dinamiki pojaane, dok one sa prioritetom od 16 do 31 ne mogu. Win32 aplikacijske niti koje rade pod Windows 9x operativnim sistemom mogu, takoer, koristiti wait funkcije semafora, koje mogu specificirati odreene kriterije.

2.6.2. Upravljanje glavnom memorijom


56

Osnovni koncepti

Openito o glavnoj memoriji Upravljanje memorijom u raunarskim sistemima moe se posmatrati sa tri aspekta: hardverski, aspekt operativnog sistema i aplikacijski aspekt. Sve tri dimenzije su implementirane u veini savremenih raunarskih sistema i predstavljaju razliite slojeve u rasponu izmeu korisnika i memorijskog hardvera. Na hardverskom nivou radi se o elektronskim ureajima koji fiziki pohranjuju podatke. Savremeni raunarski sistemi rade sa dva osnovna tipa mamorije: primarna (radna, glavna, centralna ili RAM) memorija (main memory) i eksterne memorije (secondary storage), koje, zavisno od memorijskog medija, mogu biti u formi magnetnog diska, magnetne trake, diskete, optikih medija, itd. Primarna memorija je u fizikom smislu implementirana preko memorijskih modula koji se nalaze na matinoj ploi unutar ili u neposrednoj blizini procesora. Postoje etiri glavna tipa primarne memorije:
Memorija koja se nalazi unutar procesora (registri) Glavna (centralna ili radna) memorija - RAM (Random Access

Memory)
ROM memorija (Read-Only Memory) Cache memorija

Glavna memorija predstavlja repozitorij podataka sa vrlo brzim pristupom kojeg dijele CPU i I/O ureaji. Procesor uitava instrukcije iz glavne memorije za vrijeme tzv. instruction-fetch ciklusa, kao i uitava i upisuje podatke u memoriju za vrijeme data-fetch ciklusa. Openito, glavna memorija je jedini memorijski prostor koji je CPU u mogunosti pristupiti direktno. Naprimjer, da bi CPU obradila neke podatke sa diska, ti podaci moraju najprije biti transferirani u glavnu memoriju pomou od CPU-a generiranih I/O poziva. Takoer, instrukcije moraju biti u memoriji da bi ih CPU mogla izvriti. Savremeni raunarski sistemi mogu izvravati programe sa vrlo razliitim rasponom u pogledu kapaciteta radne memorije, od PC-DOS maina sa 640 KB radne memorije, pa do serverskih sistema koji mogu raspolagati sa vie desetina i stotina gigabajta radne memorije.

57

Osnovni koncepti

Operativni sistem izvrava sljedee aktivnosti u pogledu upravljanja memorijom: Vodi rauna o tome koji dijelovi memorije se momentalno koriste i od strane koga. Odluuje koji e se procesi uitati u memoriju kada memorijski prostor bude raspoloiv. Alociranje i dezalociranje memorijskog prostora.

Glavna memorija, dakle, uva podatke i programske elemente za CPU. Ima etiri osnovne namjene: Da skladiti podatke koji su uneseni dok se ne transferiraju do ALU za procesiranje. Da skladiti podatke i rezultate za vrijeme meufaza procesiranja. Da dri podatke nakon procesiranja dok se ne transferiraju ka izlaznom ureaju. Da dri programske elemente ili instrukcije primljene od ulaznih ureaja i vanjske memorije.

Glavna memorija je mjesto gdje CPU smjeta instrukcije i podatke koje obrauje. Veliina memorije odreuje i veliinu programa koji mogu biti pohranjeni i izvravani. RAM memorija je sastavljena od hiljada sitnih sklopova od kojih svaki predstavlja jedan bit. Najmanja jedinica kojoj raunar pristupa iz RAM-a je jedan bajt. Memorijski kapacitet RAM-a se mjeri u bajtima, odnosno kilobajtima, megabajtima, gigabajtima. Danas tipine PC konfiguracije imaju 256 ili 512 MB RAM-a (1MB = 1,048,576 bajta), dok se kod serverskih konfiguracija RAM memorija ve izraava u desetinama i stotinama GB. RAM memorija se u fizikom smislu proizvodi u formi tzv. memorijskih modula (slika 2.9).

Slika 2.9. Memorijski modul Osnovni atributi koji karakteriziraju razliite tipove raunarske memorije su: kapacitet, vrijeme pristupa i cijena. Na sljedeoj slici su predstavljene veliine ovih atributa za razliite vrste memorije: registre, cache memoriju, RAM, hard disk. Moe se uoiti da se npr. registri karakteriziraju najveim brzinama u pristupu podacima (5 ns), ali su najmanji u pogledu kapaciteta i najskuplji sa aspekta cijene. Sa druge
58

Osnovni koncepti

strane, hard disk ima najvei kapacitet u pogledu mogunosti pohranjivanja podataka, ali je brzina pristupa podacima daleko manja u odnosu na registre, cache i glavnu memoriju. Izraava se u milisekundama, za razliku od brzine registara, cache memorije i RAM-a koje se izraavaju u nanosekundama*.

Slika 2.10. Vrste memorije, veliina i brzina pristupa podacima

Slika 2.11. Raunarska memorija prema tri osnovna atributa: cijena (cost), brzina pristupa podacima (speed), veliina (size)

Veliine koje su navedene na slici i koje se odnose na brzinu pristupa podacima, te kapacitete pojedinih tipova memorije treba uzeti uslovno, imajui u vidu stalna unapredjenja na poduju ovih tehnologija. Na dananjem stepenu razvijenosti raunarske memorije odnos izmedju brzina pristupa podacima u radnoj memoriji i na hard disku oznaava se kao 1:10000 (10000 puta je bri pristup podacima iz RAM-a nego sa hard diska). 59

Osnovni koncepti

Raunari uglavnom koriste tzv. SIMM (Single In-line Memory Module) ili DIMM (Dual In-line Memory Modules), module koji su ustvari male ploe koje sadre memorijske RAM ipove. Vie memorije na raunaru znai i bru obradu jer se na taj nain smanjuje broj pristupa hard disku od strane procesora. RAM se moe podijeliti na: glavni RAM i video RAM. Prvi dio memorira sve podatke neophodne za rad procesora, dok je video RAM namijenjen efikasnijem prikazivanju grafike na monitoru. Glavni RAM se dalje moe podijeliti na statiki RAM (SRAM - Static RAM) i dinamiki RAM (DRAM - Dynamic RAM), itd. Statiki RAM (SRAM) je skuplji i daleko manjeg kapaciteta u odnosu na dinamiki RAM i uglavnom se koristi kao cache memorija. Dinamiki RAM je ono to se kod savremenih raunara danas oznaava kao glavna memorija. Tako naprimjer, ako se za raunar kae da ima 256 MB RAM-a onda to znai da je to 256 MB dinamikog RAM-a. Danas se koriste uglavnom tri vrste DRAM-a:

SDRAM DDR RDRAM

dok se kao nove RAM tehnologije najavljuju: DDR-II, Magnetic Random Access Memory (MRAM), QuadBandMemory (QBM). SDRAM (Synchronous Dynamic Random Access Memory) sinhronizirani dinamiki RAM je memorija koja se najee koristila kod PC raunara u posljednjih nekoliko godina, do pojave DDR memorije. Osnovni nedostatak ove memorije u odnosu na statiki RAM je u potrebi stalnog osvjeavanja sadraja minijaturnih kondenzatora koje u sebi sadri. To osvjeavanje se radi jednostavnim itanjem podataka iz memorijske elije i onda kada to procesor ne zahtijeva. Prefiks sinhrona je dobila i zbog usklaenosti - sinhronizacije sa sistemskim satom i radnim taktom procesora. Ta sinhronizacija odlikuje se po tome to memorijski kontroler, koji je inae dio sistemskog ipseta, prati otkucaje sistemskog sata i u odnosu na njega vri pristupe memoriji (prenos podataka). Na ovaj nain se postie sinhroniziran rad sa procesorom te se na taj nain izbjegavaju situacije da procesor mora ekati na neki podatak iz RAM-a. Brzina SDRAM-a se izraava u MHz kao i brzina procesora, a ne u nanosekundama kao to je bio sluaj sa prethodnim modelima RAM-a. SDRAM je kreiran da radi na brzini transfera podataka sinhroniziranoj sa radom procesora ime se osigurava tzv. zero wait
60

Osnovni koncepti

sistem rada izmedju CPU i RAM-a. Medjutim, slanje podataka od strane RAM-a ide po principu jedanput po ciklusu (once-per-cycle). DDR (Double Data Rate SDRAM) predstavlja novu verziju SDRAM memorije koja ima duplo veu propusnost, jer za vrijeme jednog signala alje dva podatka, a standardni SDRAM jedan (RAM alje procesoru podatke dvaput u toku trajanja jednog ciklusa). Puni naziv ove vrste RAM-a je DDR SDRAM. Rije je o memoriji koja u jednom trenutku moe izvesti dvije transakcije: mogue je pisati u memoriju i iz nje itati. Standardna SDRAM memorija dozvoljava protok samo u jednom smjeru na 100, odnosno 133 MHz, dok je brzina kod DDR memorije 200, 266, 333 MHz. Dananji Pentium 4 procesori podravaju DDR 333 modele, dok za AMD procesore ve postoje ipseti koji podravaju DDR400 memoriju. RDRAM (Rambus Dynamic Random Access Memory). RDRAM koristi Rambus in-line memory module (RIMM) koji je slian po veliini i pinskoj konfiguraciji standardnom DIMM modulu. Ono to RDRAM ini razliitim je njeno koritenje tzv. Rambus kanala specijalnog highspeed data bus-a. Ovu tehnologiju je razvila firma Rambus (www.rambus.com), a najnovija tehnologija je nazvana Direct RDRAM. DRDRAM prua dvobajtni bus (sabirnicu), u odnosu na 8-bitni bus koji prua standardni DRAM. Koristi tzv. Pipelining tehnologiju za prenos podataka iz RAM-a u cache memoriju. Karakteristika ovog modela RAMa je takoer mogunost slanja podataka dva puta u toku jednog CPUciklusa, to uz RDRAM-ov 400 MHz memorijski bus predstavlja mogunost slanja podataka na brzini od 800 MHz. Pored toga, zahvaljujui dvobajtnom busu (podatkovnom kanalu) ova tehnologija moe osigurati data transfer brzinu od 1,6 Gbit/sec. Interesantno je napomenuti da je Intel u poetku podravao Rambus DRAM, dok danas najavljuje ukidanje te podrke i oslanjanje na DDR. U nastavku tehnologija:
DDR-II

dajemo

osnovne

karakteristike

novih

DRAM

(Dual Channel DDR) predstavlja nadolazeu nadogradnju DDR memoije, koja jo uvijek zbog visokih cijena ne nalazi neku iru upotrebu. Propusnost DDR-II modela je 4,2 GB/s, odnosno 5,3 GB/s, u odnosu na 2,1/2,7 GB/s kod standardnih DDR266 i DDR 333 modela. Magnetic Random Access Memory (MRAM) je RAM tehnologija koju razvija IBM i koja umjesto elektrine energije treba da koristi magnetizam za storiranje podataka u radnoj
61

Osnovni koncepti

memoriji. Osnovni ciljevi ove tehnologije su usmjereni na storiranje to vie podataka, bri pristup podacima i manji utroak energije. QuadBandMemory (QBM) je RAM tehnologija koju je razvila firma Kentron (www.kentrontech.com). Naglasak je na udvostruavanju propusnosti DDR modela RAM-a upotrebom tzv. PLL (Phase Locked Loop) kola. Da bi se poboljao stepen iskoritenosti CPU-a kao i brzina kojom raunar odgovara na zahtjeve korisnika, razni programi se moraju drati u memoriji. U tu svrhu postoje razliite eme i algoritmi za upravljanje memorijom, a njihova primjena zavisi prvenstveno od naina na koji je sistem hardverski dizajniran. Uitavanje procesa u radnu memoriju Proces mora biti uitan u radnu memoriju da bi bio izvren. On je obino pohranjen na disku u obliku binarnog exe fajla. Skup procesa koji su na disku i ekaju da budu uneeni u radnu memoriju ine tzv. ulazni red (input queue). Normalna procedura se sastoji u tome da se odabere jedan od procesa iz input reda i da se uita (loduje) u memoriju. Glavna memorija predstavlja niz rijei ili bajtova od kojih svaki ima svoju vlastitu adresu. Interakcija se ostvaruje preko niza itanja (reads) ili upisivanja (writes) u specifine memorijske adrese. Postupak vezivanja instrukcija i podataka za odgovarajue memorijske adrese naziva se adresno vezivanje (address binding). Da bi se bolje iskoristio memorijski prostor, koristi se koncept dinamikog uitavanja (dynamic loading) koji se sastoji u tome da se odreena programska rutina ne uitava u radnu memoriju sve dok nije pozvana. Prednost ovog koncepta je u tome to se ne-koritene rutine nikad ne uitavaju u radnu memoriju. Dinamiko lodiranje ne zahtijeva nikakvu posebnu podrku od strane operativnog sistema, na korisnicima je da u postupku kreiranja programa koriste ovaj pristup. Slian koncept naziva se dinamiko linkovanje (dynamic linking). Njegovim koritenjem se otklanjaju nedostaci statinog linkovanja u kojem se sistemske ili programske biblioteke tretiraju kao i svaki drugi objektni modul i direktno se, pomou loadera, kombinuju i prevode u izvrni kod. Osnovna razlika u odnosu na dinamiko lodovanje sastoji se u tome to je u ovom sluaju operacija linkovanja odloena za vrijeme izvravanja.
62

Osnovni koncepti

Osnovne funkcije upravljanja memorijom Veliina radne memorije nije jedini faktor performansi raunarskog sistema, ve je to i nain na koji se upravlja tim resursom. Naprimjer, kod ranijih ema upravljanja memorijom, fiziki iznos memorije bio je ograniavajui faktor. Ako je raunar imao etiri megabajta memorije, onda je korisnik bio limitiran u izvravanju jednog ili vie programa, tako da njihova veliina ne pree 4 MB. Sa modernim emama upravljanja memorijom to vie nije sluaj. Sistem za upravljanje memorijom mora sadravati sljedee osnovne funkcije: 1. Potrebno je stalno voditi rauna o "slobodnim" i o "zauzetim" prostorima u radnoj memoriji, tako da je mogue u svakom trenutku odgovoriti na pitanje moe li novodoli program biti smjeten u memoriju i time omoguiti generiranje novog procesa. 2. Potrebna je odreena strategija dodjeljivanja memorije na temelju koje e se u svakom pojedinom sluaju odluivati: kome i koliko memorije treba dodijeliti (ovo je vano samo kod nekih sistema dodjele), kada treba dodijeliti memoriju i gdje, na kojem mjestu u memoriji dodijeliti memoriju (ako sistem ima mogunost izbora na vie mjesta). 3. Oslobaanje memorije (dealokacija). Tu se odluuje i provodi izbacivanje nekog programa iz memorije. Kod prvih monoprogramskih raunarskih sistema problem upravljanja memorijom se jednostavno rjeavao na nain da je ona bila podijeljena izmeu operativnog sistema i dijela koji je uitavao proces i izvravao ga. Meutim, kod multiprogramskih sistema, gdje se uitava i izvrava vie procesa, potrebno je osigurati takve tehnike alokacije memorije da se procesi mogu izvravati efikasno u isto vrijeme. Metode alokacije glavne memorije Od ranijih ema upravljanja memorijom, najpoznatija su dva pristupa: Pojedinana kontinuirana alokacija (Single User Contiguous Allocation) i Pristup alokacije memorije u dijelovima - particijama.

63

Osnovni koncepti

Pojedinana kontinuirana alokacija (Single User Contiguous Allocation) predstavlja prvu emu alokacije memorije. Program koji se trebao izvravati uitavao bi se u cjelosti u memoriju. Ova ema alokacije memorije je vrlo slina memorijskoj emi koju je koristio MS-DOS operativni sistem (slika 2.12). Slika 2.12. Pojedinana kontinuirana alokacija Ako odgovarajui program nije mogao biti uitan, onda bi se rjeenje trailo, ili u poveanju glavne memorije, ili u modifikaciji programa tako da bude manji ili podijeljen u segmente kao to je prikazano na slici 2.13.

Slika 2.13. Podjela u segmente Ideja ove tehnike sastoji se u zadravanju u memoriji samo onih instrukcija i podataka koji su potrebni u neko odreeno vrijeme. Kada program treba neke druge instrukcije, one se uitavaju u onaj prostor koji je prethodno bio okupiran od strane instrukcija koji vie nisu potrebne. Glavna karakteristika alokacije memorije u dijelovima je da doputa smjetaj vie procesa u memoriju istovremeno. Kod takve alokacije, memorija je podijeljena u vie dijelova ili particija u koje se smjetaju procesi (jedna particija, jedan proces). Postoje dva osnovna tipa alokacije memorije u dijelovima: fiksna ili statika alokacija (Fixed Partitions) i dinamika alokacija (Dynamic Partitions). Fiksna alokacija (fiksne particije) Ovaj pristup je bio prvi pokuaj u nastanku koncepta multiprogramiranja i sastojao se u kreiranju fiksnih particija unutar radne memorije. Jedna particija fiksne veliine se kreira za svaki zadatak, s tim da se veliina odreuje u momentu podizanja sistema. Ovakav model alokacije memorije uvodi tabelu sa sljedeim podacima: broj particije, njezina veliina, lokacija (poetna adresa) i stanje (slobodno ili zauzeto).

64

Osnovni koncepti

Fiksno particioniranje ima dva modaliteta: sa jednakim veliinama particije (equal sized partitions) i sa nejednakim veliinama particije (unequal sized partitions). Primjeri ovih dvaju ema dati su na sljedeoj slici:

Slika 2.14. Fiksne-jednake i fiksne-nejednake particije Postoje dva glavna problema kod jednakih veliina particije. Prvi se odnosi na situaciju kada je neki program vei od particije i ne moe biti uitan u memoriju, pa programeri moraju koristiti tzv. overlays tehnike tako da se samo manji dio programa dri u memoriji u bilo koje vrijeme. Drugi problem je vezan za tzv. fenomen interne fragmentacije koji se objanjava tako to jedan dio particije ostaje neiskoriten ako je program (proces) manji od veliine particije, poto on zauzima itavu particiju bez obzira na svoju veliinu. ema sa slike 2.14-b koristi nejednake veliine particije, ali jo uvijek fiksne, tako da se u odreenoj mjeri rjeavaju problemi interne fragmentacije i potrebe koritenja overlays tehnike kod pisanja programa. Manji programi mogu biti lodovani u manje particije, a vei u vee. Naprimjer, u prvom sluaju bi proces veliine 128 KB zauzeo itavu particiju od 512 KB i na taj nain prouzrokovao "prazninu" od 384 KB, dok se taj isti proces u drugom modelu moe lodovati u particiju od 256 KB, tako da je neiskoritenost memorije 128 KB, ili tri puta manja. Osnovna prednost ovog pristupa je implementacije, dok su osnovni nedostaci sljedei: u jednostavnosti

Fragmentacija - dolazi do stvaranja neiskoritene memorije nakon particioniranja Nefleksibilnost zbog nepromjenjivih veliina particija Ogranien stepen multiprogramiranja. Dinamika alokacija (dinamike particije) Dinamiko particioniranje memorije je uvedeno sa osnovnim ciljem otklanjanja nedostataka kod fiksnog particioniranja. Iako je u novije
65

Osnovni koncepti

vrijeme zamijenjeno sa modernim tehnikama virtualne memorije, u poetku je imalo vrlo znaajne rezultate. Kod ovog pristupa, raspoloiva memorija se i dalje uva u kontinuiranim (contiguous) blokovima, ali se zadacima daje onoliko memorije koliko oni trae prilikom lodiranja. To omoguava varijabilno particioniranje i na taj nain odreivanje veliine particije tano onoliko kolika je veliina procesa. Time se eliminira problem interne fragmentacije. Pojavljuje se, meutim, tzv. fenomen eksterne fragmentacije koji se moe objasniti sljedeim primjerom. Na slici 2.15, 896 KB memorije je raspoloivo za koritenje od strane procesa. Tri procesa: P1, P2 i P3 su uitani u memoriju. Nakon njihovog uitavanja, ostalo je raspoloivo 64 KB (state d) i kada na red doe npr. proces P4 koji zahtijeva 128 KB, poto ima samo 64 KB slobodno, proces P2 je, koristei odgovarajui algoritam zamjene, odreen da bude swapiran iz memorije da bi osigurao mjesto za P4. Proces P2 je ponovo spreman da se izvrava, ali ne moe se smjestiti ni u jedan od dva raspoloiva prostora (64 KB, 96 KB). Potom se proces P1 swapira iz memorije da bi ustupio mjesto P2-u, itd. Na taj nain se u memorijskoj strukturi pojavljuju tzv. rupe (holes), kojih vremenom ima sve vie i to je ustvari ono to se naziva eksternom fragmentacijom. Eksternom zbog toga to "rupe" nastaju van particija.

Slika 2.15. Dinamiko particioniranje Kod dinamike alokacije memorije, broj i veliina particije odreuje se prema redoslijedu pojavljivanja procesa. Preostali dijelovi memorije

66

Osnovni koncepti

ine nealocirane particije. Za praenje zauzetosti memorije potrebno je imati dvije tablice, jednom se prate alocirani (zauzeti) dijelovi memorije, a drugom nealocirani (slobodni). Prema promjeni procesa u memoriji, potrebno je neprestano aurirati stanja u tablicama Pored fiksnog i dinamikog particioniranja postoji i pristup koji se naziva relokatibilno dinamiko particioniranje (Relocatable Dynamic Partitioning), koji je nastao kao rezultat nastojanja da se ukloni fragmentacija memorije koja je bila karakteristina za sisteme fiksnih i dinamikih particija. U okviru relocatable dinamikih particija, memorijski menader relocira programe u memoriji u cilju okupljanja svih praznih blokova i njihovog kompakovanja da bi se naopravio jedan blok, dovoljno velik, da bi se neki od ekajuih procesa mogao uitati. Kompakcija ili sastavljanje slobodnih memorijskih blokova se naziva i "sakupljanje smea", odnosno garbage collection. Alokacija memorije u particijama ima svoje prednosti u odnosu na pojedinanu kontinuiranu alokaciju: Omoguava multiprogramiranje i efikasnije koritenje sistema Nisu potrebni posebni sklopovi za provoenje ove alokacije Algoritmi za alokaciju i dealokaciju su relativno jednostavni. Meutim, ovakva alokacija ne zadovoljava potrebe u potpunosti, jer metod ima i neke svoje nedostatke: Neiskoritenost memorije, koja moe u odreenim periodima pasti ispod 10%. Dolazi do prevelike fragmentacije memorije (mali neiskoriteni dijelovi). Veliina i broj particija ograniene su veliinom radne memorije. Algoritam upravljanja zauzima znatno vei dio memorije i izvodi se due nego u pojedinanoj kontinuiranoj alokaciji. Svi dijelovi procesa moraju se nalaziti u memoriji bez obzira da li se koriste ili ne. Koncept virtualne memorije Noviji pristupi u rjeavanju problema efikasnog upravljanja radnom memorijom bazirani su na konceptu poznatom pod nazivom virtualna memorija.

67

Osnovni koncepti

Ovaj koncept je baziran na koritenju jedne od dviju tehnika: stranienja (paging) ili segmentacije (segmentation) ili na njihovoj kombinaciji. U osnovi se radi o dodjeljivaju procesima vie manjih dijelova memorije tano odreene veliine, poznatih pod nazivom stranice (pages). Druga prednost koncepta virtualne memorije je u tome da se adrese stranica ili segmeneta koji su vezani za odreene procese pohranjuju kao logike adrese. To u osnovi znai da dijelovi procesa mogu biti jednostavno swapirani u i van radne memorije i da u memoriji trebaju biti samo onda kada su neophodni. Swapiranje je tehnika izmjetanja programa, procesa ili podataka iz radne memorije na disk i obratno i vraanje u radnu memoriju. Smatra se preteom koncepta virtualne memorije, dok se danas koristi kao sinonim za paging. Na ovaj nain, operativni sistemi mogu simulirati koritenje vie memorije nego to je raspoloivo u njenom fizikom smislu. To se postie tako to se procesi ili dijelovi procesa, kao i podaci, storiraju u tzv. backing store koji se obino nalazi na disku. U ovakvom sistemu, adrese sa kojima rade aplikacijski programi su poznate kao virtualne adrese. Virtual memory system prevodi virtualne adrese u fizike adrese i fizika adresa je ta koja pretrauje sadraj iz memorije.

Slika 2.16. Svapiranje U konceptu virtualne memorije, svakom procesu se dodjeljuje njegov virtualni adresni prostor (virtual address space), koji predstavlja raspon memorijskih adresa koje on moe koristiti. Raspon memorijskih adresa u virtualnom adresnom prostoru moe znaajno premaiti stvarni fiziki kapacitet RAM-a, tako da, naprimjer, raunar
68

Osnovni koncepti

moe imati 16 MB RAM-a u fizikom smislu, dok se procesima moe alocirati do 4 GB virtualne memorije. Stoga je jedna od osnovnih uloga menadera virtualne memorije kao komponente operativnog sistema da mapira sekcije procesnog virtualnog memorijskog adresnog prostora sa fiziim adresnim prostorom. Poto je 4 GB radne memorije veliki fiziki prostor, imajui u vidu veliinu radne memorije na standardnim personalcima (256 MB, 512 MB, itd.), VM menader oito moe smjestiti samo dio virtualnog adresnog prostora u fiziku memoriju. Druga bitna funkcija VM menadera je da swapira sadraj fizike memorije na disk kada je iznos raspoloivog fizikog RAM-a nedovoljan da udovolji odreenom zahtjevu procesa. Pomou ove operacije, VM menader stvara predstavu procesu da raunar i proces imaju na raspolaganju ukupno 4 GB fizikog prostora. Operacija swapinga se slikovito moe objasniti kao prezentiranje itaocu jedne knjige koristei samo dvije stranice papira koje se mogu brisati, od kojih je jedna vidljiva za itaoca, a druga nije. Kada italac zavri sa itanjem jedne stranice (podaci u memoriji), sadraj te stranice se kopira na za itaoca nevidljivu stranicu (disk). Zatim se sljedei dio teksta knjige stavlja na vidljivu stranicu. Ako italac eli vidjeti prethodnu stranicu, sadraj vidljive stranice se jednostavno izmjenjuje (swapira) sa sadrajem nevidljive stranice. To je upravo zadatak virtualne memorije, odnosno VM menadera - dijela operativnog sistema koji njome upravlja. U nastavku emo dati osnovne karakteristike paginga i segmentacije kao savremenih metoda alokacije memorije i njihovih varijanti. Paged Memory Allocation i Demand Paged Memory Allocation Paging ili Paged Memory Allocation koristi koncept virtualne memorije i slian je fiksnom particioniranju u tome da je raspoloiva memorija podijeljena u fiksne veliine koje se nazivaju okviri stranica ili stranini okviri (page frames), ali su particije znatno manje. Nadolazei procesi se dijele u vei broj manjih dijelova - stranica, jednakih u veliini, sa izuzetkom posljednje stranice, gdje nije mogue osigurati da njena veliina bude ista kao i ostale. Svakom procesu se pridruuje stranina tabela koja sadri broj stranice i odgovarajui broj okvira u memoriji. Veliinu stranice odreuje operativni sistem. Neki operativni sistemi odreuju tu veliinu jednaku veliini memorijskog bloka ili sektora na disku. Veliina okvira stranice je jednaka programskoj stranici, tako da je jedan okvir stranice u
69

Osnovni koncepti

mogunosti da dri jednu programsku stranicu. Prije startanja programa, memorijski menader vri pripremu u smislu: Odreivanja broja stranica programa Lociranja dovoljnog broja okvira stranica u memoriji Uitavanja svih programskih stranica u okvire. Svaka adresa koju generira CPU sastoji se iz dva dijela: broj strane (page number -p) i page offset (d). Broj strane se koristi kao index u tabeli strana (page table). Ova tabela sadri osnovnu adresu svake strane u fizikoj memoriji. Paging hardverski model predstavljen je na slici 2.17:

Slika 2.17. Paging hardware Paging model memorije dat je na slici 2.18:

70

Osnovni koncepti

Slika 2.18. Paging model logike i fizike memorije Paging pristup eliminira eksternu fragmentaciju u cjelini, dok internu svodi na minimum. Poto sve stranice koje pripadaju jednom odreenom procesu ne moraju biti u memoriji odjedanput, neophodno je osigurati mehanizme za efikasno transferiranje stranica u glavnu memoriju. To je zadatak virtualne memorije, poto ona osigurava prostor gdje se stranice mogu pohranjivati kada se ne koriste i da mogu biti swapirane (izmjenjene) u i van vrlo brzo. Demand Paging koncept uklanja restrikciju dranja itavog zadatka u memoriji, od poetka do zavretka obrade. Zadaci su i u ovom konceptu podijeljeni na stranice jednake veliine koje obino stoje na eksternoj memoriji. Model koristi osobinu programa da se izvravaju sekvencijalno, tako da sve stranice nisu neophodne u istom momentu. Na taj nain je mogue izvravati programe koji su mnogo vei nego to je raspoloivo u radnoj memoriji. Problem koji se pojavljuje kod paginga, naroito demand paginga je fenomen tzv. thrashinga, koji se pojavljuje kada operativni sistem izbaci neki proces iz memorije neposredno prije njenog koritenja. Segmentirana alokacija memorije (Segmented Memory Allocation) Segmented memory allocation pristup je baziran na konceptu struktuiranja programa u module. Svaki zadatak je podijeljen u odreene segmente razliitih veliina. Memorija vie nije podijeljena u okvire stranica zato to je veliina svakog segmenta razliita. Kao i kod Demand Paging koncepta, svi segmenti programa ne moraju biti lodovani kada se program izvrava. Takoer, segmenti ne moraju biti lodovani jedan do drugog. Segmentacija je pristup alokacije memorije koji je takoer baziran na konceptu virtualne memorije. Slian je konceptu paginga, ali razvijen sa ciljem poboljanja ove tehnike. Osnovna razlika se sastoji u tome da su procesi podijeljeni u segmente, dok je glavna memorija podijeljenja kad se ti segmenti loduju u memoriju na nain kako je to raeno kod dinamikog particioniranja. Razlika izmeu segmenata i stranica je u tome to segmenti ne moraju biti iste veliine. Kao i kod koncepta dinamikog particioniranja, segmentacija eliminira interno fragmentiranje ali i dalje ima problema sa eksternom
71

Osnovni koncepti

fragmentacijom. Meutim, ovaj put eksterna fragmentacija je znatno umanjena poto su segmenti mnogo manji od particija. Segmented/Demand Paged Allocation Ovaj pristup koristi dobre strane od navedena dva pristupa: Segmented i Demand Paged Allocation. Stranienje (Paging) eliminira eksternu fragmentaciju, dok segmentacija uklanja internu fragmentaciju. Programi su podijeljeni u segmente varijabilne duine, ali su segmenti podijeljeni u stranice odreene duine. Memorija je podijeljena u okvire stranica (Page Frames). Sve stranice koje pripadaju jednom segmentu se loduju kada je taj segment aktivan. Procesor i upravljanje memorijom Ranije verzije Intel procesora su koristile segmentirani model memorijske arhitekture. Programi su bili limitirani na 16-bitne memorijske adrese, proizvodei tako samo 64 KB adresabilnog memorijskog prostora. Sa procesorom 8088 Intel je ukljuio dodatna 4 bita na ip, to je inilo ukupno 20 bita, ali da bi zadrao kompatibilnost sa 16-bitnim programima, Intel je podijelio memoriju u 16-bitne dijelove nazvane segmenti. Programi koji su trebali vie od 64 KB memorijskog prostora, morali su pristupati memoriji specificirajui dvije adrese: segment i offset. Ofseti su bili stvarne adrese unutar 64-bitnog segmenta. Poevi od 80386 procesora, Intel je preao na 32-bitno adresiranje, pri emu 32 bita omoguavaju pristup do 4 GB memorijskog prostora. Ovakav nain memorijskog adresiranja doveo je do kreiranja koncepta ravnog ili pljosnatog memorijskog modela (flat memory model). Svaka memorijska adresa na sistemu je specificirana koristei 32 bita, dajui tako svakom programu mogunost adresiranja do 4GB memorije. 64-bitni kompjuting - tehnologija zasnovana na 64-bitnim procesorima (npr. Alpha, Itanium 2) koje prate 64-bitni operativni sistemi (komercijalne verzije UNIX-a, OpenVMS, z/OS, itd.) i 64-bitne aplikacije predstavlja novu tehnologiju koja donosi brojne prednosti u odnosu na 32-bitne sisteme:
Mogunost rada sa veim fajlovima (terabajti u odnosu na Veliina memorije do 264 bita, ili oko 16 exabayta (16 milijardi

megabajtne veliine fajlova).

GB), u odnosu na 232 (4 GB) memorije kod 32-bitnih sistema. Bri I/O ciklusi, tj. vrijeme pristupa periferalima se znaajno skrauje.
72

Osnovni koncepti Bra obrada podataka.

Sa aspekta memorije, radi se o etiri miljarde puta vie memorijskog prostora koji mogu da osiguraju 64-bitni procesori, odnosno isto toliko vie memorije kojom mogu da raspolau i njome upravljaju operativni sistemi. Ovo je od posebne vanosti kada se radi o brzinama pristupa podacima imajui u vidu injenicu da se podacima koji su smjeteni u RAM-u pristupa 10.000 puta bre nego podacima koji su na disku. 64-bitna tehnologija ima mogunost uitavanja ogromnih baza podataka (desetine i stotine GB) u RAM. Radi se, dakle, o eksponencijalnom poveanju (264 u odnosu na 2 ). Ako bi pokuali to objasniti na realnom primjeru, to bi otprilike izgledalo ovako*: Najjaa 32-bitna tehnologija danas bi mogla da uspostavi bazu podataka o svakoj osobi koja je ivjela u SAD od 1977. godine do danas. Sa druge strane, 64-bitna baza podataka bi mogla obuhvatiti imena svake osobe koja je ivjela na planeti od poetka raunanja vremena, i da ostane jo slobodnog prostora.
32

U narednoj tabeli data je slikovita komparacija mogunosti procesorskih tehnologija zasnovanih na razliitim veliinama rijei: Veliina rijei 8-bit 16-bit 32-bit 64-bit Broj karaktera 256 65536 4,3 milijarde 18 triliona Poredjenje (priblino) 10 engleskih alphabeta Populacija manjeg grada Broj odraslih osoba u svijetu Zrna pijeska na velikoj plai

Tabela 1. Procesorske tehnologije Intel procesori imaju karakteristiku paging koncepta u upravljanju memorijom. Savremeni operativni sistemi rade sa ukljuenom (enabled) paging osobinom procesora. Kada je ova osobina aktivna, onda ne postoji 1:1 korelacija izmeu memorijske adrese koritene od strane programa i fizike memorijske lokacije, ve operativni sistem i procesor
*

Ovu ilustraciju navodi Sun na Web stranici na kojoj objanjava svoj 64-bitni sistem. 73

Osnovni koncepti

koriste odgovarajue tabele koje im omoguavaju da lociraju fiziku memorijsku adresu za svaku koritenu logiku memorijsku adresu. Sistem dijeli itavu memoriju sistema na 4 KB stranice (pages). 32-bitna adresa koju koristi aplikacija se prevodi u fiziku adresu koristei tabelu. Prvih 20 bita od 32-bitne memorijske adrese lociraju specifinu stranicu memorije, tako da sistem moe upravljati sa neto vie od milion 4 KB stranica istovremeno. Ostalih 12 bita specificiraju stvarnu adresu u okviru odreene stranice. Razlog zato je ovakav sistem uveden je upravo u konceptu virtualne memorije, u okviru kojeg se ne samo RAM memorija, ve i odreeni prostor sa diska koriste kao adresibilna memorija. Ovaj koncept omoguava sistemu da izvri daleko vie zadataka i da obradi vrlo velike programe. Negativna strana ovog pristupa je pojava koja se naziva stanje tzv. "muenja" (thrashing). Thrashing se pojavljuje kada vie programa rade, pri emu svi oni zajedno trae vie memorijskih stranica nego to moe stati u fiziku memoriju sistema. Sistem se "mui" jer konstantno premjeta memorijske stranice u i iz paging fajla, nastojei da zadovolji sve aplikacije odjednom. Kada se ovo desi, korisnik moe reducirati broj programa koji se izvravaju, ili veliinu podataka koje koriste, dok se drugi pristup u otklanjanju ovog problema sastoji u fizikom poveanju radne memorije. Naredna slika prikazuje osnovne informacije o koritenju CPU-a i memorije u okviru Task Managera na Windows XP-u.

74

Osnovni koncepti

Slika 2.19. CPU i memorija na Windows XP-u

Upravljanje memorijom kod Win9x platforme

Poznato je da je Microsoft svoj prvi pravi 32-bitni operativni sistem razvio u okviru Windows NT projekta. Nedugo nakon objavljivanja prve verzije NT-operativnog sistema (1993), razvijen je i Windows 95. Kako oba operativna sistema rade na Intelovom 80386 i njemu kompatibilnim 32-bitnim procesorima, njihove eme za upravljanjne memorijom imaju mnogo slinosti. Windows 9x koristi sistem za upravljanje memorijom zasnovan na paging pristupu. U ovom sistemu, memorijske stranice se dre u RAM-u u zavisnosti od toga kako davno su koritene i koliko se trae. Memorijske stranice koje su manje koritene (least recently used LRU) smjetaju se u paging file na disku. Sistem konstantno ocjenjuje stranice u memoriji i istoriju njihovog koritenja da bi odredio koje stranice bi se mogle premjestiti na disk. Sa aspekta korisnika, to otprilike izgleda ovako: kada se koristi npr. text procesor aplikacija, njene memorijske stranice, ako ne sve, onda barem one koje se odnose na svojstvo text procesinga koje se koristi u tom momentu, dre se u radnoj memoriji, dok se programi i memorijski objekti koji su lodirani, ali ne rade nita, smjetaju u paging file. Windows 9x koristi tzv. ravni-pljosnati memorijski model (flat memory model).
75

Osnovni koncepti

Windows 9x dijeli ukupnu radnu memoriju na nain koji podrava privilegijske prstenove. Od ukupno 4GB memorijskog adresnog prostora, aplikacije i njihovi podaci mogu zauzeti prvih 2GB memorijskih adresa, sljedeih 1 GB memorije je rezervirano za centralne komponente operativnog istema i DLL programe, dok je preostalih 1GB rezervirano za Ring 0 softver to je ustvari sama jezgra operativnog sistema.

Upravljanje platforme

memorijom

kod

Windows

NT/2000/XP

Microsoft je napustio segmentni model pri razvoju Windows NT-a. Windows NT je kao 32-bitni operativni sistem takodjer baziran na 4 GB memorijskom modelu, to znai da se svakom procesu dodjeljuje 4 GB prostora virtualne memorije (slika 2.20). Virtual Memory Manager (VMM) osigurava upravljanje virtualnom memorijom. Pored mapiranja memorijskog adresnog prostora, VMM omoguava procesima dijeljenje memorije. Ako dva procesa treba da pristupe istim podacima, VMM kopira podatke u odgovarajui opseg fizikih adresa, i jednostavno mapira virtualne adresne prostore oba procesa ka istom opsegu fizike memorije. VMM je odgovoran i za memorijsku zatitu. Zadatak VMM-a je i da osigura nevidljivost i nedostupnost virtualnog adresnog prostora jednog procesa drugom. Ovo osigurava, ne samo sigurnost, poto neautorizovani proces ne moe itati podatke od drugog procesa, ve i pouzdanost, jer jedan proces ne moe otetiti memoriju drugog procesa. Windows NT/2000/XP platforma u cjelini, dakle, podrava 4 GB virtuelne memorije. Gornjih 2 GB je rezervirano za kernel-mode procese, a donjih 2 GB za kernel-mode i user-mode procese. Fizika memorija se u ovom kontekstu odnosi na RAM-memoriju instaliranu na raunaru. VMM koristi memory-mapping tabelu u funkciji praenja virtuelnih adresa koje pripadaju svakom procesu i lokacija podataka u fizikoj memoriji. U funkciji omoguavanja aplikacijama da koriste memoriju konkurentno (istovremeno), VMM koristi tehnologiju zvanu paging kako bi zamijenio (swapirao) memorijske sadraje izmeu RAM-a i diska. Sadraji koji se zamjenjuju (swapiraju) nazivaju se pagefiles.

76

Osnovni koncepti

Slika 2.20. Virtual Memory Manager kod Windows NT-a Poboljanja koja u podruju upravljanja memorijom donosi Windows XP ukljuuju sljedee komponente:

Logiki prefetcher za bre procese bootiranja i startanja aplikacija. Poboljanja u funkciji bolje skalabilnosti. Reducirano koritenje tzv. paged pool-a Poveani broj PTE-a (Page Table Entries)

Windows XP poveava maksimalnu koliinu memorije koja moe biti mapirana sa PTE na priblino 1,3 GB, to je dvostruko vie u odnosu na Windows 2000. Ovo omoguava Windows XPu da prati veu koliinu memorije bez koritenja PTE a. Windows XP moe alocirati do 960 MB neprestane pool memorije na sistemima sa 256 MB RAM-a.

77

Osnovni koncepti

Slika 2.21. VMM i swapiranje

2.6.3. Upravljanje vanjskom memorijom


Eksterni magnetni mediji Glavna ili radna memorija slui za privremeno memoriranje podataka, programa ili dijelova programa. Ureaji koji slue za memoriranje veih koliina podataka i programa nazivaju se eksterni magnetni mediji, na kojima se nalazi tzv. eksterna ili pomona (sekundarna) memorija. Ovi ureaji su u fizikom smislu odvojeni od glavne memorije i procesora, ali su direktno s njima povezani. Za razliku od glavne memorije koja je sadrana u memorijskim ipovima, eksterna memorija se moe nalaziti na razliitim medijima. Meutim, ono to bitno razlikuje eksterne memorijske ureaje od glavne memorije sa aspekta obrade podataka je brzina pristupa podacima koja je znatno manja u odnosu na glavnu memoriju. Ovi ureaji slue kako za odlaganje (izlaz) podataka, tako i za uitavanje podataka od strane programa koji se obrauju, te se stoga mogu smatrati ulazno-izlaznim ureajima. Takoer, treba imati u vidu da, iako se nazivaju eksterni ureaji, oni su skoro po pravilu smjeteni unutar osnovne jedinice raunara, iako su mogue

78

Osnovni koncepti

opcije u formi eksternog ureaja koji se nalazi van osnovne jedinice. Ovdje treba razlikovati dva pojma: Medij za pohranjivanje podataka (storage media) i Ureaj za pohranjivanje podataka (storage device). U prvom sluaju se radi o tzv. nosiocima podataka, kao to su: traka, disk, disketa, na koje se podaci pohranjuju. Za razliku od medija, u drugom sluaju se radi o ureaju koji sadri komponente za itanje i upisivanje podataka na te medije. Danas se uglavnom koriste dva osnovna tipa medija:
Magnetni mediji Optiki mediji

U eksterne magnetne medije spadaju: magnetni diskovi, magnetne diskete, magnetne trake, Zip mediji, dok su optiki diskovi glavni predstavnik optikih medija za pohranjivanje podataka. Ureaji magnetnog diska se esto nazivaju i ureaji za pohranjivanje sa direktnim pristupom. Na drugoj strani, mediji kao to su magnetna traka poznati su pod nazivom ureaji sa sekvencijalnim pristupom. Mediji magnetnog diska i magnetnih traka su najee koritene forme sekundarnog skladitenja podataka kod modernih raunarskih sistema. Oni osiguravaju brz pristup (hard diskovi) i visoke kapacitete pohranjivanja podataka (trake). Hard disk je formatiran u odreen broj staza i sektora koje predstavljaju fizike lokacije za podatke. Svaka staza je podijeljena u devet sektora.

Slika 2.22. Hard disk


79

Osnovni koncepti

Ispod kuita diska nalaze se okrugle metalne (ili keramike) ploe koje nazivamo platterima, premazane specijalnim materijalima napravljenim tako da imaju mogunost pohrane podataka u obliku magnetskih uzoraka. Ovisno o kapacitetu, disk moe imati jedan ili vie plattera koji su meusobno odvojeni, a nalaze se "nataknuti" na osovinu povezanu specijalnim motorom koji ima mogunost rotiranja od 5400, 7200, pa do preko 10000 okretaja u minuti. Za pisanje i itanje po disku koriste se glave diska, koje se nalazi na posebnoj ruici nazvanoj actuator arm. Rije je o naizgled vrlo jednostavnom, ali vrlo preciznom ureaju koji pozicionira glavu diska tano iznad odreene staze u kojoj se nalaze traeni podaci. Kako bi sve to radilo, potrebna je jo i kontrolna elektronika koja predstavlja most izmeu raunara i mehanike diska koja pretvara zahtjeve s raunara u elektronike impulse koje motor, aktuator glave i ploe diska pretvaraju u podatke koje je kasnije mogue interpretirati. Princip rada aktuatora i glave diska podsjea na princip rada gramofonske ploe, samo to glava ne strue po povrini diska nego lebdi iznad njega na vrlo maloj udaljenosti. Ploe na hard disku podijeljene su u cilindre, staze i sektore. Cilindar ine sve staze koje su poredane okomito jedna iznad druge na magnetnim diskovima. Staze sadre sektore. dok svaki sektor sadri do 512 bajta podataka (slika 2.23.).

Slika 2.23. Osnovna arhitektura hard diska Sljedei faktori utiu na vrijeme pristupa podacima: Brzina rotiranja diska Vrijeme traenja (seek time) Latentnost (latency time)
80

Osnovni koncepti

Veliina cache-a na hard disku Nain snimanja podataka Interface (IDE ili SCSI) Hard diskovi imaju konstantnu brzinu rotiranja. Ona se mjeri u jedinici rpm to znai rotations per minute odnosno broj obrtaja u minuti. Kod dananjih diskova ova brzina rotiranja se kree od 3600 do 15000 rpm. Kod dananjih hard diskova za PC raunare standard je 5400, odnosno 7200 rpm. Ova brzina rotiranja prua prilino velike brzine prenosa podataka i istovremeno omoguava prilino tihi rad hard diskova. Vee brzine rotiranja naravno pruaju i dosta vee brzine prenosa podataka kao i krae vrijeme pristupa. Hard diskovima koji rotiraju brzinama od 10000-15000 rpm neophodno je hlaenje koje se postie pomou specijalnih ventilatora. Vrijeme pristupa podacima je zbir tri veliine:
Vrijeme traenja (seek time) Vrijeme promjene glava Latentnost (latency time)

Vrijeme pristupa je vrijeme koje proe dok podaci stvarno ne budu fiziki proitani odnosno zapisani. Vrijeme traenja (seek time) je vrijeme koje je potrebno jedinici hard diska da pronae traene podatke na magnetnom disku i da pozicionira glavu za itanje iznad njih. Vrijeme promjene glave karakterie vrijeme koje je potrebno da bi hard disk preao odnosno promijenio sa jedne magnetne glave na drugu i to u istom cilindru. Vei uticaj na stvarno vrijeme pristupa, odnosno vrijeme koje proe dok podaci stvarno ne budu fiziki proitani odnosno zapisani, ima tzv. latency vrijeme (latentnost). Nakon to hard disk pozicionira magnetne glave iznad eljene staze na magnetnom disku, on mora jo saekati dok traeni sektor (koji se nalazi na toj stazi) ne doe tano ispod magnetne glave za itanje/pisanje. to je brzina rotiranja diskova vea to je manja latentnost, a time je efektivna brzina prenosa podataka vea. Kod diskova sa brzinom rotiranja 5400 rpm latentnost iznosi prosjeno oko 6 ms (milisekundi), dok je kod 7200 rpm - 4 ms. Razmjena podataka izmeu RAM-a i hard diska se odvija preko standardiziranih interfejsa (prikljuaka, portova) od kojih se danas najee koriste dva standarda: a) IDE (Integrated Drive Electronic) i b) SCSI (Small Computer System Interface). Magnetne diskete ili floppy diskete su mediji koji su se uglavnom koristili, i jo uvijek se koriste, ali u manjem obimu, za prenoenje i
81

Osnovni koncepti

razmjenu podataka i programa sa jednog na drugi PC. Ovaj medij je, uostalom kao i svaki druga komponenta informacijske tehnologije, doivio velike promjene u veliini, kapacitetu, cijenama itd. Najprije su u upotrebi bile 8" (inne) diskete, zatim 5.25-inne diskete koje su mogle pohraniti 360 KB, odnosno 1.2 MB podataka, i na kraju 3.5-inne diskete sa kapacitetom od 1.44 MB i cijenom manjom od 1 USD. Pored transferiranja podataka i programa, dugo su se koristile kao medij na kojem se isporuivao kako sistemski tako i aplikativni softver za PC raunare. U novije vrijeme, u tu svrhu se skoro iskljuivo koriste kompakt diskovi zbog toga to danas veina softverskih paketa podrazumijeva 10ak ili nekoliko desetina ili stotina MB. Znaaj disketa je opao i zbog umreavanja raunara u lokalne i iroko rasprostranjene mree pa je prestala potreba za prenosivim disketama. Posebno je na to utjecala pojava Internet tehnologije, gdje se fajlovi i drugi sadraji mogu slati preko e-maila, ftp programa, ili direktno kopirati sa Web adresa. Interesantno je napomenuti da je od momenta lansiranja Apple-ovog modela iMac (prije 5-6 godina) prisutna praksa izostavljanja disketnog drajva kod PC konfiguracija (posebno notebooka), to govori da e vjerovatno vrlo skoro klasine diskete izai iz upotrebe. Posebna kategorija disketa su tzv. zip drajvovi, odnosno diskete, koji su najprije na trite plasirani prije nekoliko godina od strane firme Iomega (www.iomega.com). Radi se o posebnom tipu drajva i disketi koja moe pohranjivati, u zavisnosti od modela, 100-250 MB podataka. Najnoviji model zip drajva i disketne jedinice firme Iomega (slika 2.24.) moe pohraniti 750 MB podataka. Brzina snimanja kod ovog novog tipa drajva je 1900 KB/s, ili oko 13x (650 MB zapie se za oko 5 minuta).

Slika 2.24. Iomega 750 MB zip drive Magnetna traka je, nakon hard diska, drugi magnetni medij koji se koristi za pohranjivanje znaajnih masa podataka. Posebno se koristi za tzv. backup operacije kod srednjih i velikih sistema, pri emu se u odreenim vremenskim intervalima podaci i programi sa diska smjetaju na magnetne trake. One se potom odlau na sigurna mjesta, da bi se u sluaju odreenih kvarova na disku, sluajevima otuivanja raunarskog sistema i sl. sprijeilo definitivno gubljenje podataka. Kapacitet ovih traka
82

Osnovni koncepti

zavisi od duine (60m, 90m) i metoda pohranjivanja podataka i kree se od 8 do 40 GB. Prije par godina uvedeni DLT tape ureaji omoguavaju zapis na traku do 80 GB podataka, dok najnovija tzv. ultra-fast drive tehnologija podrava zapis i do 230 GB. Na slici 2.25. dat je prikaz ovih ureaja iz programa firme HP.

HP DDS/DAT 40 GB

HP DLT 80 GB

HP Ultrium 230 GB

Slika 2.25. HP DAT-DLT-Ultrium ureaji magnetne trake RAID (Redundant Array of Inexpensive/Independent Drives/Disks) predstavlja koncept po kojem se isti podaci pohranjuju na vie diskova, pa otuda atribut redundantni. Logika ovog pristupa je jednostavna ako dodje do kvara na jednom disku, podaci se nalazi na drugom. Postoji nekoliko vrsta RAID konfiguracija i one se primjenjuju u zavisnosti od zahtjeva korisnika. Memorijske kartice (memory card, flash memory card, storage card) predstavljaju novi tip memorijskih medija za pohranjivanje teksta, slike, audio i video formata, a koriste se kod digitalnih kamera, PDA i ostalih portabilnih uredjaja. Svaki od modela klasinih memorisjkih kartica zahtijeva poseban Card Reader uredjaj (u terminologiji floppy diskete to je posebna vrsta drajva u koji se umeu kartice). Stoga su danas najee u upotrebi tzv. USB-bazirane Flash memory kartice kapaciteta 128-256-512 MB koje se na raunar prikljuuju preko USB porta, te na taj nain ne zahtijevaju posebne uredjaje za itanje. Optiki diskovi su relativno novi masovni mediji za pohranjivanje. Verzija koja se najee koristi zove se CD-ROM. Na jednom takvom disku moe se pohraniti od 500 do 700 megabajta podataka. Prve verzije ovih ureaja bile su iskljuivo "read-only" to znai da su se podaci sa tih medija mogli samo itati, a ne i upisivati. Potom su razvijeni "CD-writeri", kao poseban tip ureaja koji omoguavaju i upisivanje na kompakt diskove. DVD optiki diskovi su novi tip read-only kompakt diska koji imaju izmeu 4.7 i 17 GB memorijskog prostora. Pored ovih uredjaja, takodjer su razvijeni DVD pisai koji, slino kao i CD-writeri, omoguavaju upis zapis podataka na DVD optike diskove.

83

Osnovni koncepti

Osim standardnog-jednoslojnog DVD diska kapaciteta 4,7 GB, razvijena je i tehnologija dvoslojnih diskova kapaciteta 8.5 GB po jednoj strani. U novim DVD-ima koriste se tzv. lee dvostrukog arita. Prilikom itanja donjeg sloja, lea fokusira lasersku zraku na taj sloj i u potpunosti prolazi kroz polupropusni sloj. Nakon to zavri sa itanjem tog sloja, arina duina lee se promijeni i laserska zraka je fokusirana na drugi sloj. DVD diskovi se proizvode u nekoliko razliitih kapaciteta. Meutim, bitno je napomenuti da bez obzira na kapacitete, svaki DVD-ROM ita moe reproducirati bilo koji od tih diskova. Jedna od najee koritenih veliina kod optikih medija je brzina snimanja, odnosno itanja kod optikih itaa i snimaa. Tzv. faktor x koji se pojavljuje u oznakama odnosi se na brzinu snimanja/itanja kod ovih ureaja. Osnovna jedinica, uvedena prije desetak godina, oznaena kao 1x podrazmijeva brzinu od 150 KB/s (na poetku oznaena kao MultimediaPC MPC-1 specifikacija). Savremeni ureaji, npr. CD-ROM ita oznake 52x medije ita brzinom od 7800 KB/s. Medjutim, kod DVD medija, faktor x iznosi 1385. Tako npr. DVD-ROM ita oznake 16x DVD, medije ita sa max brzinom od 22160 KB/s. Svaki od navedenih medija obavlja osnovnu funkciju, a to je storiranje podataka, pri emu izmeu njih postoje velike razlike u pogledu koliine podataka, brzine pristupa podacima, cijene, stabilnosti itd. Ako se problematika pohranjivanja podataka posmatra u irem smislu, ukljuujui i glavnu memoriju, kao i registre, moe se formirati hijerarhija memorijskih medija kao to je to prikazano na slici 2.26.

Slika 2.26. Hijerarhija memorijskih medija

84

Osnovni koncepti

Mediji sa gornjih nivoa su vrlo brzi kada je u pitanju pristup podacima, ali su i vrlo skupi i ne mogu sadravati velike koliine podataka. Kako se sputa ka donjim nivoima u hijerarhiji, cijena po bitu opada, vrijeme pristupa podacima se poveava, a poveava se i koliina podataka koje medij moe pohraniti. Tako se u savremenom kompjutingu ve govori o koliinama podataka izraenim u terabajtima, petabajtima ili ak eksabajtima. Na narednoj slici su predstavljeni odnosi izmedju veliina koje se koriste kod izraavanja kapaciteta sekundarne memorije.

Slika 2.27. Veliine u izraavanju koliine podataka

Dodatni storage ureaji i backup operacije Imajui u vidu sve vei znaaj pohranjivanja i uvanja znaajnih masa podataka u poslovnom kompjutingu, u novije vrijeme su iznadjena dodatna rjeenja na tom podruju. Storage Area Networks (SAN), disk arrays, network-attached storage (NAS), server-based storage, itd. su samo neka od rjeenja. Optiki mediji i ureaji se takoer koriste za pohranjivanje znaajnih masa podataka u formi tzv. optikih duboxa (optical jukeboxes), slino sistemu viestrukih gramofonskih ploa. Ove tehnologije, uz, kako je to ranije naglaeno, magnetne trake, koriste se kod tzv. backup operacija, odnosno pohranjivanja znaajnih masa podataka na eksterne medije u cilju njihovog uvanja i restauracije u sluaju kvara na osnovnom magnetnom mediju (hard disku). Izbor odgovarajue backup tehnologije zavisi od niza faktora, od kojih su najvaniji sljedei:

Kapacitet medija Cijena medija i ureaja Pouzdanost Mogunost automatizacije backup procedure Mogunost nadogradnje dodatnih medija
85

Osnovni koncepti Jednostavnost koritenja Performanse hardvera i prateeg softvera Kompatibilnost

Backup je, inae, operacija bez koje je nemogue zamisliti savremeni poslovni kompjuting, otuda velika uloga medija i ureaja koji se u tu svrhu koriste. Iako se sve vie koristi i u domenu tzv. personalnog kompjutinga, backup je od osobite vanosti ako se radi o tzv. missioncritical aplikacijama kod kojih se jednostavno ne smije dozvoliti situacija da neki hardversko-softverski kvar na sistemu prouzrokuje kompletan gubitak podataka. Kvarovi na sistemu usljed kojih moe doi do gubljenja podataka uglavnom se odnose na: Oteenje fajl sistema (file system corruption) Sluajno brisanje fajlova Hardverski kvarovi "Pad" sistema (system crash).

Stoga je na nivou poslovnog sistema neophodno definirati backup strategiju, odnosno uraditi plan po kojem e se izvravati backup operacije. Strategija zavisi od vie faktora, ali uglavnom se govori o dvije vrste backupa: potpuni (full) backup i parcijalni backup pri emu ovaj potonji moe biti incremental backup i backup jednog dijela fajl sistema. Odreivanje tipa backupa koji e se koristiti je samo jedna dimenzija te operacije. Drugi bitan aspekt je vrijeme uzimanja backupa, npr. sedmino, dnevno, dvo-satno itd., to sve zavisi od karaktera sistema i aplikacija. Jedna od moguih varijanti bi bila, naprimjer, potpuni backup jednom sedmino, a inkrementalni backup svaki dan. Poetak startanja backup operacije se obino odreuje u kasnim veernjim ili ranim jutarnjim satima, uglavnom u vrijeme kada je koritenje raunarskog sistema na niskom stepenu ili se sistem ne koristi nikako. Upravljanje diskom Obzirom da je disk danas najee koriteni medij za pohranjivanje podataka, upravljanje diskom je od od centralne vanosti u upravljanju vanjskom memorijom u cjelini. Operativni sistem je odgovoran za sljedei skup aktivnosti koje se odnosi na upravljanje diskovima: Upravljanje slobodnim prostorom Alokacija memoriranja i Disk scheduling.
86

Osnovni koncepti

Da bi imao informaciju o slobodnom prostoru na disku, sistem raspolae sa tzv. listom slobodnog prostora (free space list). Ova lista biljei sve blokove diska koji su slobodni, odnosno nisu alocirani drugim fajlovima. Da bi se kreirao novi fajl, sistem pretrauje listu slobodnog prostora za traenu veliinu fajla da bi se taj prostor alocirao tom fajlu. Nakon toga se taj prostor skida sa liste slobodnog prostora. Implementacija liste slobodnog prostora obavlja se pomou odreenih tehnika, od kojih se najee koriste sljedee: Binarna (Bit Vetor or Bit Map) - tehnika u kojoj je svaki blok predstavljen sa binarnom znamenkom 0 ili 1. Ako je blok slobodan, bit ima vrijednost 0, a ako je zauzet onda uzima vrijednost 1. Linkovana lista (Linked list) - pristup koji povezuje sve slobodne blokove diska odravajui pointer na prvi slobodni blok. Ovaj blok sadri pointer na sljedei slobodni blok itd. Grupiranje (grouping) - predstavlja opciju po kojoj se adrese slobodnih blokova pohranjuju u prvi slobodni blok. Counting pristup se bazira na injenici da se nekoliko susjednih blokova mogu osloboditi ili alocirati istovremeno, pogotovo ako se koristi ovaj oblik alokacije. Metode alokacije prostora na disku Osnovni problem u alokaciji slobodnog prostora na disku sastoji se u iznalaenju efikasnih metoda alokacije prostora za odreene fajlove, tako da one mogu biti brzo dostupne i efektivno koritene. Tri su glavne metode alociranja koje se danas najee koriste: Susjedna (Contiguous) Linkovana (Linked) i Indeksirana (Indexed).

Svaka od ovih metoda ima svoje prednosti i nedostatke. Prva metoda zahtijeva da svaki fajl zauzima skup susjednih adresa na disku. Ovakvo alociranje fajla je definirano disk adresom prvog bloka i njegovom duinom. Kod metode linkovanog alociranja, svaki fajl predstavlja povezanu listu disk blokova, iako blokovi mogu biti razbacani po itavom disku. Svaki blok sadri pointer ka sljedeem bloku.
87

Osnovni koncepti

Metoda linkovanja ima nedostatak da se moe koristiti samo za sekvencijalni pristup fajlovima i ne podrava direktni pristup. U tu svrhu se koristi indeksirani metod. Kod ovog pristupa, svaki fajl ima svoj vlastiti index blok koji predstavlja niz disk-blok adresa. Operativni sistemi moraju imati odgovarajue strukture i algoritme koji podravaju navedene metode. Neki sistemi kombinuju metodu susjednog alociranja sa indeksnim metodom na nain da prvi pristup koriste za male fajlove, sa osobinom automatskog prelaska na indeksni metod kad fajl postaje vei. Disk scheduling Operativni sistem u upravljanju vanjskom memorijom moe utjecati na poboljanje performansi diskova na nain da na odgovarajui nain rasporeuje zahtjeve za pristup disku. U principu, brzina diska se sastoji od tri dijela. Da bi pristupio odreenom bloku na disku, sistem mora najprije pokrenuti glavu diska na odgovarajuu traku ili cilindar. Ovaj pokret se naziva seek, dok se vrijeme kompletiranja te operacije naziva vrijeme traenja (seek time). Kada glava diska doe na odreenu lokaciju, mora saekati dok eljeni blok ne naie ispod glave to se naziva vrijeme prikrivenosti - latentnosti (latency time). Nakon toga, transfer podataka izmeu diska i glavne memorije moe otpoeti i to vrijeme se naziva vrijeme transfera (transfer time). Postoji nekoliko algoritama za disk scheduling: FCFS (first-come, first-served) SSTF (shortest-seek-time-first) SCAN i C-SCAN LOOK i C-LOOK.

U novije vrijeme, uvedene su nove tehnike koje poboljavaju performanse diskova i baziraju se na vie diskova koji rade zajedno. Jedna od tehnika je disk stripping ili interleaving u kojoj se vie diskova tretira kao jedna jedinica sa svakim blokom podijeljenim u vie podblokova. Svaki podblok je pohranjen na posebnom disku. Na taj nain se vrijeme potrebno za transfer jednog bloka u memoriju drastino smanjuje jer diskovi transferiraju podblokove paralelno. Ova ideja je predstavljala osnovu za razvoj tzv. RAID modela (Redundant Arrays of Inexpensive Disks) koji se danas esto koristi u poboljanju stabilnosti i pouzdanosti sistema, kao i zatiti podataka.
88

Osnovni koncepti

2.6.4. Upravljanje fajlovima


Upravljanje fajlovima (File Management) je jedna od najvidljivijih komponenti operativnog sistema. U dijelu u kojem smo govorili o upravljanju vanjskom memorijom, rekli smo da postoje razliiti oblici memorijskih medija na kojima raunar moe pohranjivati podatke. Za korisnika je bitna logika dimenzija memorijskog prostora, stoga je uloga operativnog sistema da osigura takve mehanizme kako bi korisnik to jednostavnije mogao upravljati podacima i programima. U veini sluajeva, operativni sistem preko odreenih logikih kategorija, kao to su fajl ili fajl sistem, apstrahuje fiziku organizaciju vanjske memorije. Fajl sistem (file system) predstavlja nain na koji operativni sistem logiki posmatra fajlove u smislu njihovog imenovanja, storiranja i pretraivanja. Obino se radi o hijerarhijskoj strukturi u kojoj su fajlovi smjeteni unutar direktorija ili foldera. Prilikom instaliranja, operativni sistem automatski kreira jedan ili vie direktorija gdje smjeta fajlove koji pripadaju operativnom sistemu (sistemski folder), dok je kasnije upravljanje sistemom organiziranja fajlova u direktorije preputeno korisniku. Pored logikog storiranja fajlova, fajl sistem ukljuuje i konvencije u pogledu naziva fajlova, u smislu tipa i broja karaktera koji se koriste u tu svrhu. Svi operativni sistemi nemaju istu konvenciju u pogledu storiranja informacija o fajlovima, ali se kao osnovni atributi fajlova koje podrava veina OS-a mogu navesti sljedei: naziv fajla, tip, lokacija, veliina, tekua pozicija, informacija o sistemu zatite primjenjenom na tom fajlu, procesi koji trenutno koriste taj fajl, itd. Kod standardnih personalaca, svi fajlovi su pohranjeni u okviru najee jednog diska. Meutim, kod veih sistema, naroito server konfiguracija sa vie diskova, neophodno je osigurati takve mehanizme organizacije fajlova koji e osloboditi korisnika od razmiljanja o problemu fizike lokacije podataka. U tom cilju, svi savremeni operativni sistemi ukljuuju koncept tzv. direktorijske strukture (directory structure) koja, uz koncept fajl sistema, predstavlja osnovu organizacije fajlova na savremenim hardverskim platformama. Ovakva rjeenja omoguavaju tretiranje vie diskova u okviru jednog raunarskog sistema, ili ak sa vie razliitih sistema, u formi jedne logike cjeline, tako da korisnik, ali i aplikacija mogu ignorirati pitanje fizike alokacije podataka koje koriste. Svaki operativni sistem posjeduje svoje rjeenje fajl sistema.

89

Osnovni koncepti

Slika 2.28. Tipina organizacija fajl sistema Operativni sistem obavlja sljedee aktivnosti koje su vezane za upravljanje fajlovima: Kreiranje i brisanje fajlova Kreiranje i brisanje direktorija Podrka odreenih rutina za manipuliranje fajlovima direktorijima Mapiranje fajlova na vanjsku memoriju Backup fajlova na odgovarajue medije vanjske memorije.

Raunar podatke uva (pohranjuje) u datotekama ili fajlovima. Dva su osnovna tipa fajlova: Podatkovni, ili fajlovi koji sadre podatke (data files) i Programski fajlovi (program files), ili izvrni (executables). fajlovi

Na narednoj slici je predstavljeno nekoliko tipinih vrsta fajlova.

90

Osnovni koncepti

Slika 2.29. File Types Podatkovni fajl moe da sadri brojeve, rijei, slike, itd. i ponekad se naziva i dokument (document file). Format jednog ovakvog fajla zavisi od aplikacije koja ga kreira (program za obradu teksta, spredit, program za bazu podataka, grafiki program, itd). Programski fajlovi sadre instrukcije koje "govore" raunaru kako da obavi neki zadatak. Operativni sistemi pod kojima raunari rade i aplikacije koje kreiraju odreene fajlove koriste poseban sistem notacije za odreivanje tipova i naziva fajlova. Fajlovi se nalaze pohranjeni na nekom od magnetnih medija. U fizikom smislu, fajlovi na disku se smjetaju u okviru tzv. klastera (clusters). Klaster predstavlja grupu sektora, pri emu broj sektora koji formiraju klaster zavisi od tipa raunara. Svaki klaster ima svoj broj i kad raunar obavlja operaciju pohranjivanja nekog fajla na disk, operativni sistem biljei broj klastera koji sadri poetak fajla u tzv. FAT tabelu (File Allocation Table). Ovaj fajl je vrlo bitan jer sadri listu fajlova i njihovih fizikih lokacija na disku. Kada korisnik eli da sauva (pohrani) odreenu datoteku na disku, operativni sistem pretrauje FAT tabelu da utvrdi koji klasteri su prazni i zatim vri pohranjivanje u onolikom broju praznih klastera koji je dovoljan za smjetanje datoteke. Brojevi klastera i naziv datoteke se pohranjuju u FAT tabelu tako da ta datoteka moe kasnije biti efikasno locirana. Ukoliko datoteka ne moe da se smjesti u

91

Osnovni koncepti

jedan klaster, ona se smjeta u susjedne prazne klastere (sljedei redni broj), a ukoliko takvih nema, onda u klastere sa nekim drugim brojevima. Stoga se kae da je datoteka "fragmentirana", to moe biti sluaj sa veim brojem fajlova na disku. Fragmentiranost datoteke znai lociranost dijelova na vie mjesta to automatski ima za posljedicu smanjenje performansi diska, odnosno raunara u cjelini. Upravo zato, savremeni operativni sistemi raspolau alatima za defragmentaciju koji naprave ponovni raspored datoteka na disku u smislu da je jedan fajl smjeten u susjednim klasterima. Fiziko pohranjivanje podataka je jedan aspekt organizacije podataka. Druga bitna dimenzija odnosi se na tzv. logiku organizaciju podataka, koja odslikava korisnikov pogled, tj. kako korisnik vidi podatke. Osnovni logiki element podatka je karakter (character), koji se sastoji od pojedinanog alfabetskog, numerikog ili drugog simbola. Slijedei vii nivo podatka je polje (field) koje se sastoji od kombinacije karaktera. Preciznije, polje predstavlja jedan atribut (karakteristiku ili obiljeje) nekog entiteta (osobe, mjesta, stvari ili dogaaja). Skup svih polja ini slog (record) pri emu je mogue grupiranje srodnih polja u formu segmenta sloga (npr. segment adresa, a sadri grad, ulicu i broj). Skup svih slogova jednog entiteta oznaava se kao fajl ili datoteka (file). Ako se ovakva organizacija podataka predstavi u formi tabele, redovi ili vrste bi predstavljali slogove, kolone bi oznaavale atribute, dok bi itava tabela predstavljala datoteku. Raunar pohranjuje podatke na eksterne magnetne medije. Slogovi sa podacima mogu biti rasporeeni na mediju na razliite naine, i taj sistem pohranjivanja determinira nain pristupa podacima. Postoje dva osnovna naina (metoda) organiziranja slogova: sekvencijalni i direktni ili sluajni metod. U sluaju sekvencijalne organizacije datoteke, slogovima se pristupa na nain kako su pohranjeni, dakle sekvencijalno. Ovaj metod se koristi kod magnetnih traka. Direktni metod organizacije podataka omoguava direktni ili sluajan pristup podacima bez obzira na njihovu fiziku lokaciju na mediju. Ovaj metod se koristi kod magnetnih diskova. Metod koristi poseban klju za lociranje fizike adrese sloga na disku. U tu svrhu se koristi tzv. transformacijski algoritam koji prevodi vrijednost kljua u fiziku lokaciju sloga na disku. Postoji i tzv. indexsekvencijalni metod koji predstavlja metod za direktno pristupanje slogovima organiziranim sekvencijalno pomou tzv. indexa kljueva. U zavisnosti od naina organizacije podataka, sve aplikacije se mogu podijeliti na one koje koriste tzv. file management system ili sistem zasnovan na vezivanju podataka za odreenu aplikaciju, i
92

Osnovni koncepti

database management sistem (DBMS) ili sistem za upravljanje bazom podataka u kojoj su smjeteni podaci. U prvom sluaju, jedni isti podaci se kreiraju vie puta, obino od strane vie korisnika, i koriste u vie razliitih aplikacija. Naprimjer, aplikacija koja prati prodaju moe imati svoju datoteku kupaca, druga aplikacija koja pokriva fakturiranje takoer ima svoju datoteku kupaca, itd. Baza podataka je integrirana kolekcija logiki povezanih fajlova. Kao primjer moemo navesti organizaciju podataka o studentima na univerzitetu. U tom sluaju, entitet o kojem se evidentiraju podaci je student koji ima vie atributa (obiljeja) koji ga opisuju kao naprimjer ime, prezime, adresa, pol, broj indexa, smjer, prosjek, itd. Svaki od ovih atributa u bazi podataka se implementira preko odgovarajueg polja. Skup svih polja (atributa) za jednog studenta naziva se slog, dok je skup svih slogova predstavljen fajlom ili datotekom. Nain na koji se podaci povezuju u odreenjoj bazi podataka determinira tip baze podataka koji moe biti hijerarhijski, mreni, relacijski, model entiteta i relacija, i objektno orijentirani.

2.6.5. Upravljanje I/O sistemom


U strukturi raunarskog sistema, pored jednog ili vie procesora i skupa modula glavne memorije, trea glavna komponenta se odnosi na skup ulazno/izlaznih (input/output - I/O) ureaja. Svaki taj modul ima vezu sa sistemskim busom ili nekom drugom inter-konekcijskom strukturom i kontrolira jedan ili vie I/O ureaja. Pri tom treba imati u vidu da kada kaemo I/O modul ne mislimo prvenstveno na fiziku komponentu, ve i na odreeni nivo "inteligencije" ili logike za kontroliranje toka podataka izmeu I/O ureaja i busa. Eksterni ureaj povezan na I/O modul se esto naziva i periferalni ureaj ili jednostavno periferal. Svi eksterni ureaji se mogu klasificirati u tri glavne kategorije: ovjeku orijentirani, itljivi od strane ovjeka-korisnika (Human-readable) - orijentirani su na komunikaciju sa korisnikom. Primjeri ovih ureaja su terminali, monitori, tastatura, printeri. Orijentirani maini, itljivi od strane maine (Machinereadable) - orijentirani na komunikaciju sa opremom. Kao primjer moemo navesti magnetni disk, traku, itd. Treba istai da se disk, traka i ostali eksterni magnetni mediji negdje smatraju komponentom I/O sistema, a negdje dijelom ukupne raunarske
93

Osnovni koncepti

memorijske strukture (memorijski ureaji). Sa funkcionalne take gledita, ovi ureaji su dio memorijske hijerarhije, dok posmatrano sa strukturnog stanovita, ovi ureaji su kontrolirani od strane I/O modula i zbog toga se smatraju sastavnim dijelom I/O komponente raunarskog sistema. Orijentirani na komuniciranje sa udaljenim ureajima (Communications). To mogu biti neki od prethodno navedenih ureaja, a moe biti i raunarski sistem u cjelini. Osnovno je da se radi o tzv. remote ureajima, odnosno ureajima na daljini. Ovi ureaji se ne povezuju direktno na sistemski bus iz sljedeih razloga: Postoji veliki broj raznovrsnih eksternih ureaja sa razliitim tehnikama funkcioniranja, te bi stoga bilo nepraktino inkorporiratri sve te tehnike unutar procesora. Brzina transfera podataka sa eksternih ureaja je po pravilu znatno manja u odnosu na glavnu memoriju i procesor, te bi opet nepraktino bilo koristiti vrlo brzu strukturu sistemskog busa za komuniciranje sa eksternim ureajima. Eksterni ureaji esto koriste razliite formate podataka u odnosu na raunar na koji su prikljueni. Ovo su sve razlozi zbog kojih je neophodan I/O modul. On ima dvije osnovne funkcije (slika 2.30):

Slika 2.30. Generiki model I/O modula Uspostavljanje interfejsa ka procesoru i memoriji preko sistemskog busa ili neke druge inter-konekcijske strukture.

94

Osnovni koncepti

Uspostavljanje interfejsa prema jednom ili vie eksternih ureaja preko odgovarajuih podatkovnih veza. Osnovne funkcije jednog I/O modula su: Kontrola i timing Komunikacija sa procesorom Komunikacija sa eksternim ureajem Data buffering Detekcija greaka.

Kontrolna i timing funkcija obuhvataju koordinaciju toka saobraaja izmeu internih resursa (glavne memorije, sistemskog busa) i eksternih ureaja. Komunikacija sa procesorom obuhvata operacije kao to su: dekodiranje komandi koje dolaze od procesora, izmjenjivanje podataka izmeu procesora i I/O modula preko podatkovnog busa, izvjetavanje o statusu I/O modula, prepoznavanje adrese periferala koje on kontrolira. Komunikacija sa eksternim ureajima ukljuuje i odreene komande, informacije o statusu i podatke. Data buffering je znaajna funkcija I/O modula zbog velikih razlika koje postoje u brzinama transferiranja podataka izmeu memorije, procesora i eksternih ureaja. Podaci se smjetaju (bufferiraju) unutar I/O modula u oba smjera (kada se alju iz memorije ka eksternim ureajim i obratno) i dostavljaju ka destinaciji brzinom koja odgovara toj destinaciji. I/O modul je odgovoran i za detekciju greaka, kao i za svojevrsno izvjetavanje procesora o tome. Greke mogu imati razliite oblike, od mehanikih i elektronskih poremeaja kao to su, naprimjer, poguvan papir u printeru ili tzv. bad sektor na disku, do greaka u transmisiji podataka. Kada se radi o I/O operacijama, postoje tri osnovne tehnike koje se koriste u I/O komunikacijama: Programirani I/O (programmed I/O) Prekidima-voen I/O (Interrupt-driven I/O) Direktni pristup memoriji (Direct memory access - DMA). Kod prve tehnike, kada procesor izvrava odreeni program i naie na instrukciju koja se odnosi na I/O on izvrava tu instrukciju na nain da
95

Osnovni koncepti

izdaje komandu ka odgovarajuem I/O modulu. I/O modul e izvriti zahtijevanu akciju, ali nee upozoravati procesora o tome. Na procesoru je da provjeri status I/O modula povremeno, sve dok ne nae da je operacija kompletirana. Problem kod programiranog pristupa je u tome to procesor mora ekati dugo vremena, stalno ispitujui status I/O modula. Kao rezultat toga, umanjuje se performansa sistema kao cjeline. Alternativa ovoj tehnici je pristup koji se sastoji u tome da procesor alje I/O komandu modulu i dalje nastavlja sa nekim drugim aktivnostima. I/O modul e onda pitati procesora za odgovarajuu uslugu u momentu kada je spreman da razmjeni podatke sa procesorom. Procesor potom izvrava transfer podataka i nastavlja prethodnu aktivnost. Interruptom vodjeni I/O, iako efikasniji od standardnog programiranog I/O-a, zahtijeva intervencije procesora za transferiranje podataka izmeu memorije i I/O modula, tako da svaki transfer podataka mora proi kroz procesor. Stoga, kada se radi o transferu velikih koliina podataka, neophodna je efikasnija tehnika koja se naziva direktni pristup memoriji - DMA. DMA funkcija moe biti uraena kao poseban modul na sistemskom busu, ili moe biti inkorporirana unutar I/O modula. U oba sluaja, procesor delegira I/O operaciju DMA modulu, koji transferira podatke direktno ka memoriji ili iz nje, bez potrebe da podaci idu kroz procesor. Kada je transfer kompletiran, DMA modul alje odreeni interrupt signal procesoru, tako da je procesor u ovoj operaciji ukljuen samo na poetku i na kraju transfera. Logika struktura I/O funkcije U upravljanju I/O ureajima, sa aspekta operativnog sistema dva cilja su od najvee vanosti: Prvi se odnosi na efikasnost I/O podsistema zbog toga to I/O operacije esto predstavljaju usko grlo u raunarskom sistemu. To je zbog toga to je veina I/O ureaja znatno sporija u odnosu na procesor i radnu memoriju. Jedan nain rjeavanja tog problema je u koritenju multiprogramiranja, tako da dok neki procesi ekaju na izvrenje I/O operacije, drugi se izvravaju. Stoga je jedan o glavnih ciljeva na podruju dizajna I/O komponenti usmjeren primarno na poboljanje performansi I/O ureaja. Drugi cilj se odnosi na openitost (generality) u dizajniranju I/O ureaja i naina na koji procesi i sam operativni sistem upravljaju ovim
96

Osnovni koncepti

ureajima. Zbog velikog broja i raznovrsnosti I/O ureaja, teko je osigurati vei stepen generalizacije, pa se ide na ustrojavanje modularnog i u osnovi hijerarhijskog pristupa u dizajniranju I/O funkcija. Savremeni operativni sistemi su struktuirani na hijerarhijskom principu, koji podrazumijeva da su funkcije operativnog sistema organizirane prema njihovoj kompleksnosti, nivou apstrakcije, itd. Iz toga je proiziao tzv. slojeviti model operativnih sistema, pri emu svaki sloj (nivo) obavlja odreene funkcije. U principu, svaki nivo se oslanja na nivo koji je ispod njega u hijerarhiji za obavljanje hardveru-bliih funkcija, dok viem nivou dostavlja odreene usluge. Tri najvanije I/O logike strukture sa aspekta operativnog sistema su predstavljene na slici 2.31. U dijelu slike koji prikazuje logiku strukturu komunikacijskog porta (slika 2.31-b), logiki I/O modul je predstavljen komunikacijskom arhitekturom koja sadri vie slojeva i to je upravo mjesto gdje dolazi OSI model komunikacijskog sistema. Na slici 2.31-c predstavljena je struktura koja se odnosi na upravljanje I/O sa sekundarne memorije koja podrava koncept fajl sistema. Pored onih standardnih, karakteristinih za sva tri tipa I/O ureaja, tri nivoa su od posebne vanosti:

97

Osnovni koncepti

Slika 2.31. I/O logike structure Upravljanje direktorijem (directory mnagement) - simbolika imena fajlova se konvertuju u identifikatore koji upuuju na fajlove direktno ili indirektno. Fajl sistem - odnosi se na logiku organizaciju fajlova sa operacijama koje specificiraju korisnici. Fizika organizacija - na ovom nivou se vri konvertiranje logikih fajl referenci u fizike adrese vanjske memorije.

2.6.6. Zatita i sigurnost


98

Osnovni koncepti

Poseban aspekt operativnog sistema odgovarajuih rjeenja zatite i sigurnosti.

je

pitanje

osiguranja

Zatita (protection) se odnosi na probleme integriteta aplikacija koje se izvravaju na sistemu. Drugim rijeima. u raunarskom sistemu moraju postojati mehanizmi koji e osigurati da fajlovi, memorijski segmenti, CPU, kao i drugi resursi mogu biti koriteni samo od onih procesa koji su dobili odgovarajuu autorizaciju od strane operativnog sistema. Stoga se uloga sistema zatite sastoji u osiguravanju mehanizama koji e podrati odgovarajui sistem ili politiku (policy) koritenja resursa. Ove politike se mogu implementirati na razliite naine. Neke mogu biti inkorporirane u OS, dok druge mogu biti dio upravljanja sistema. Neke se ak mogu postaviti tako da ih sam korisnik moe definirati i mijenjati. Upravo iz ovih razloga, operativni sistem mora imati odgovarajui stepen fleksibilnosti, tako da su razliitim tipovima korisnika (sistem administrator, programer, krajnji korisnik) dozvoljeni razliiti nivoi definiranja sistema zatite. Sigurnosni sistem (security system) se tie skupa mehanizama za kontrolu pristupa raunarskm resursima od strane programa, procesa, korisnika, itd. Za razliku od sistema zatite koji se bavi problemima interne prirode, sigurnosni sistem se bavi problemima okruenja u kojem raunarski sistem radi. Interna zatita nije dovoljna ukoliko je ne prati odgovarajui sistem koji regulira pristup resursima na sistemu. Stoga se kao najznaajnije pitanje sigurnosnog sistema postavlja problem tzv. autentikacije, ili autentinosti (authentication), odnosno autorizacije (authorization) korisnika koji rade na sistemu. Na single-user sistemima ovaj problem nije toliko izraen, iako vlasnik jednog personalca, odnosno njegov glavni korisnik, moe takoer definirati odgovarajui sigurnosni sistem koji e onemoguiti neovlateno koritenje. Sa druge strane, kod savremenih viekorisnikih server raunarskih sistema, ovo pitanje je itekako bitno, jer su to sistemi na kojima moe raditi vie korisnika istovremeno, i na kojima se izvravaju aplikacije od posebnog znaaja za organizaciju u cjelini. Najee koriteni metod u rjeavanju problema sigurnosti, a koji koriste skoro svi operativni sistemi danas, zasnovan je na sistemu korisnikog imena (username) i pasvorda ili lozinke (password). Ovaj sistem je vrlo jednostavan za koritenje sa aspekta krajnjeg korisnika, meutim, nosi i odreene probleme vezane za tajnost informacija kojima se identificira korisnik. Pasvord moe biti generiran od strane sistema, a moe ga odrediti i sam korisnik. Druga varijanta se ee koristi, zbog
99

Osnovni koncepti

toga to je tee pamtiti pasvorde koje kreira sistem. Ovdje postoje razliite varijante i o nekima emo govoriti u poglavljima o server operativnim sistemima. Sljedei sigurnosni aspekt koji, takoer, zahtijeva odgovarajua rjeenja, bilo od strane operativnog sistema, pojedinih tipova aplikativnog softvera, ili ak fizikih IT-ureaja je pitanje tzv. enkripcije (encryption), koje je od posebnog znaaja kod transferiranja podataka putem nekog od savremenih sistema raunarskih mrea. Naroito je dolo do izraaja nakon uvoenja Interneta i daljim razvojem komunikacijske tehnologije. Naime, u savremenom sistemu podatkovnog komuniciranja, podaci od posebnog znaaja (bankarski transferi, razne poslovne transakcije, podaci vezani za dravne poslove, itd.) transferiraju se sistemom komunikacijskih linija i vrlo je bitno osigurati da ne doe do neovlatenog pristupa tim podacima. U tom cilju se podaci prije slanja na neki komunikacijski medij najprije enkriptuju (kodiraju) u odgovarajui format, zatim se u takvom formatu transferiraju, da bi se na drugom kraju, kod primaoca, ponovo dekodirali u format koji je itljiv za korisnika. Ovaj postupak kodiranja-dekodiranja mogu da obavljaju posebne aplikacije, a mogu i odreeni ureaji, i njihov odabir zavisi od niza faktora, od kojih je svakako najvaniji stepen "otvorenosti" komunikacijkih linija koje se koriste. Kao primjer moemo navesti VPN aplikacije i ureaje koji se u tu svrhu koriste kod tzv. virtualnih privatnih mrea (Virtual Private Networks), mrenog sistema koji koristi Internet za prenos podataka. U ovom, a i u nekim drugim formama raunarskih mrea, enkripcijski softver i hardver se moe koristiti u odreenim oblicima integriranosti sa standardnim komunikacijskim ureajima (npr. ruterima).

2.6.7. Mrena komponenta i distribuirani sistemi


U cilju poboljanja performansi elektronske obrade podataka, raunarski sistemi se mogu povezivati u razliite oblike raunarskih mrea. Na taj nain se formiraju tzv. distribuirani sistemi iji osnovni cilj je je poboljanju, ne samo brzine obrade, ve i pouzdanosti sistema, skalabilnosti, itd. Dva su osnovna izvedbena oblika ovih sistema: Multiprocesorske konfiguracije ili sistemi sa paralelnim procesorima, kako se jo nazivaju. Odlikuju se arhitekturom koja sadri dva ili vie procesora. Oni dijele memoriju, a komunikacija izmeu procesora je vrlo brza. Ovakvi sistemi rade pod jednim operativnim sistemom koji, naravno, mora posjedovati svojstvo podrke multiprocesorskog rada.

100

Osnovni koncepti

Multikompjuterski (distribuirani) sistemi su sistemi sastavljeni od vie raunara koji, za razliku od prethodnog modela, ne dijele memoriju jednog raunarskog sistema. Raunari mogu biti na istoj lokaciji, ali i udaljeni i do nekoliko stotina kilometara. Razmjena podataka je, naravno, znatno sporija nego kada se radi o standardnom multiprocessorskom sistemu i zavisi od tipa komunikacijskog kanala izmeu sistema (Ethernet, iznajmljena linija, optika vlakna, itd.). U dananjim uslovima, postoje razliite verzije ovih dvaju sistema, tako da se i njihovo distanciranje u smislu definicije ponekad teko izvodi. Tako naprimjer, multiprocesorski sistemi mogu imati i lokalne memorije, pored onih djeljivih, dok se multikompjuterski sistemi mogu kreirati kao "mree u kutiji" sa odvojenim procesorima, memorijama, ali tako da su centralizirani na jednoj lokaciji. Ovakve vrste konfiguracija se mogu formirati kao cjeline sa visokim stepenom integriranosti komponenata putem sistemskog softvera, odnosno operativnog sistema. Operativni sistemi za distribuirane raunarske sisteme mogu biti struktuirani uglavnom na sljedea dva naina: Mreni operativni sistemi (Network Operating Systems loosely coupled software). Ovakav tip operativnog sitema proiruje mogunosti standardnog desktop operativnog sistema u smislu obezbjeenja pristupa resursima koji se nalaze u okviru jedne raunarske mree kroz dijeljene fajlova, printera, drugih ureaja, komunikacije, itd. Svaki raunar u okviru takvog sistema naziva se vor (node) i radi pod zasebnim operativnim sistemom. Korisnici mogu koristiti resurse iz sastava raunarske mree, s tim da je pristup odgovarajuoj maini neophodan da bi doli do traenih podataka/resursa sa tog sistema. Distribuirani operativni sistemi (Distributed Operating Systems - tightly coupled software). Distribuirani operativni sistem podrava distribuiranu obradu na nain da se programi i procesi mogu izvravati na fiziki razdvojenim procesorima. Zadatak distribuiranog operativnog sistema sastoji se u upravljanju distribuiranim sistemom kao centraliziranim sistemom tako da pristup udaljenim resursima nema nikakve razlike u odnosu na lokalne resurse. Osnovu distribuiranih sistema ine raunarske komunikacije, odnosno raunarske mree. Stoga u nastavku neto vie rijei o ovom aspektu informacijske tehnologije.
101

Osnovni koncepti

Raunarske mree Raunarska mrea se moe definirati kao sistem za raunarsko komuniciranje koji povezuje dva ili vie raunara i perifernih ureaja. Komunikacijska tehnologija predstavlja osnovu za povezivanje raunara u raunarske mree. Ciljevi raunarskog umreavanja su sljedei: Dijeljenje fajlova i programa Dijeljenje hardverskih resursa raunara (disk, CD-ROM, DAT traka, itd.) Dijeljenje printera Centralizirano upravljanje resursima koji su u mrei Efikasniji rad u grupama itd. Raunari se mogu povezivati u raunarske mree na vie naina u zavisnosti od komunikacijskih medija i ureaja koji se koriste, veliine podruja na kojem se mrea uspostavlja, vrste raunara i periferala koji se uvezuju itd. Prva klasifikacija raunarskih mrea vri se na osnovu lokaliteta (veliine podruja) sa kojeg se raunari povezuju. U tom sluaju se govori o tri tipa mrea: Lokalne mree (Local Area Networks - LAN) Rasprostranjene mree (Wide Area Networks - WAN) Globalna mrea - Internet. Lokalna mrea (LAN) je skup raunara direktno vezanih jedni za druge na jednom uskom lokalitetu. LAN mrea povezuje raunare koritenjem komunikacijskih kablova i mrenih kartica koje se, kako smo vidjeli, postavljaju u prazne slotove matine ploe raunara. to se kabliranja tie, u zavisnosti od eljenih performansi i raspoloivih materijalnih sredstava, moe se koristiti svaki od navedenih sistema: "twisted-pair", koaksijalni, fiber optiki, a ako se radi iskljuivo o Apple Macintosh raunarima onda se koristi Local Talk sistem kabliranja. Tako se moe rei da se LAN hardver sastoji od raunara, komunikacijskih linija, mrene kartice i periferne opreme. Mreno okruenje definira mreni operativni sistem (NOS) i protokoli koji osiguravaju komunikaciju i mrene usluge.

102

Osnovni koncepti

Slika 2.32. Tipina LAN mrea Mrena topologija (slika 2.19) odnosi se na fiziko i logiko ureenje raunara unutar mree. Svaki fiziki elemenat mree se obino naziva vor (node), to moe biti bilo koji ureaj na mrei koji moe da razmjenjuje podatke sa drugim mrenim vorovima. Postoje tri osnovne mrene topologije: Bus (Bus) Prsten (Ring) Zvijezda (Star). U Bus topologiji vorovi su organizirani du komunikacijskog kabla, sa mogunou dodavanja vorova. Obino se koristi kod povezivanja raunara koaksijalnim kablom pri emu se veza izmeu kabla i raunara ostvaruje pomou tzv. "T" konektora, dok je na krajevima neophodno staviti tzv. terminatore. U prstenastoj topologiji vorovi su povezani u krug, dok zvjezdasta mrea ima centralni vor za koji se veu svi drugi vorovi pojedinanim vezama.

Bus

Prsten Slika 2.33. LAN topologije

Zvijezda

Rasprostranjene mree se takoer mogu podijeliti tipinih konfiguracija:

na nekoliko

103

Osnovni koncepti

Kampus mree, koje obuhvataju vie zgrada unutar jednog kampusa ili industrijskog parka. Metropolske mree (Metropolitan Area Network - MAN) predstavljaju mree koje se prostiru na itave gradske konglomeracije, pa ak i preko njih. Mree poslovnih sistema - mree koje meusobno veu sve raunarske sisteme unutar nekog poslovnog sistema, nezavisno od platforme raunarskog sistema, operativnog sistema, komunikacijskih protokola, i geografskih lokacija. Bez obzira na tip, raunarska mrea se, slino kao i raunarski sistem, sastoji od hardverskog i softverskog dijela, odnosno: Raunara Komunikacijskih medija Komunikacijskih ureaja Softvera (sistemskog i aplikativnog).

Softverska komponenta ukljuuje mreni operativni sistem, komunikacijske protokole, drajvere mrenih kartica i sl. Na ovaj nain se jedna raunarska mrea moe smatrati raunarskim sistemom u irem smislu. Prilikom kreiranja jednog komunikacijskog sistema, odnosno raunarske mree, sa aspekta operativnog sistema neophodno je osigurati odgovore na sljedea pitanja: Strategije rutiranja - kako slati poruke u okviru mree? Strategije povezivanja - kako dva procesa alju dijelove poruka? Kontencija - kako rijeiti konflikte koji mogu nastati unutar mree, poto se vri dijeljenje resursa? Strategije dizajna - u smislu komunikacije izmeu aplikacija. Strategije rutiranja odnose se na iznalaenje naina i puta dostavljanja odreene poruke od strane jednog procesa sa neke lokacije A ka drugom procesu koji se nalazi na lokaciji B. Ako izmeu te dvije lokacije postoji samo jedan fiziki put, onda je jasno da poruka mora proi kroz taj put. Meutim, ako izmeu njih postoji vie puteva, onda postoji i vie opcija rutiranja poruke. Stoga, u procesu podatkovnog komuniciranja, svaka lokacija raspolae sa tzv. routing tabelom koja oznaava alternativne puteve koji se mogu koristiti za slanje poruka na druge lokacije. Tri osnovne routing eme su:

104

Osnovni koncepti

Fiksno rutiranje (fixed routing). Kod ovog tipa rutiranja, put izmeu taaka A i B je specificiran unaprijed i on se ne mijenja sve dok odreena hardverska greka ne stavi taj put van pogona. Virtualno rutiranje (virtual routing). Put od take A do take B je fiksan za trajanja jedne sesije, pri emu razliite sesije koje ukljuuju poruke od A ka B mogu imati razliite puteve. Dinamiko rutiranje (dynamic routing). Put koji se koristi za slanje poruke od A ka B se odabere onda kada je poruka poslana. Odluke o rutiranju se donose dinamiki, otuda i naziv dinamiko rutiranje. Tri osnovne eme za povezivanje procesa u cilju komuniciranja preko mree su: Circuit switching. Ovaj oblik veze je slian onom koji se koristi u standardnom telefonskom sistemu. Nakon uspostavljanja veze izmeu dvije strane, A i B, veza postaje nedostupna za ostale potencijalne uesnike u komunikaciji. Veza je dakle permanentna, dodjeljena je za vrijeme trajanja komunikacije i u tom vremenu je niko drugi ne moe koristiti. Message switching. Za razliku od prethodnog tipa veze, ovdje se radi o privremenoj vezi koja se uspostavlja za vrijeme trajanja jednog transfera poruke. Packet switching. Poto su poruke koje se alju u sistemu komuniciranja promjenjive duine, da bi se pojednostavio dizajn sistema, komunikacija se uspostavlja sa porukama fiksne duine koji se obino nazivaju paketi (packets). Primjeri packetswitched mrenog sistema su X.25 and Frame Relay tehnologije. X.25 predstavlja jednostavnu, jeftinu i vrlo esto koritenu WAN tehnologiju. Iako je iroko rasprostranjena, ova tehnologija je dosta spora u pogledu brzine transfera podataka u odnosu na nove tehnologije, npr. Frame Relay. Frame relay radi na data-link sloju OSI modela i omoguava brzine prenosa od 56 Kbps do 1.544 Mbps. Na meunarodnom nivou, postoji verzija Frame Relay tehnologije - International Frame Relay koja se koristi za WAN infrastrukturu transnacionalnih sistema. Kontencija se odnosi na izbjegavanje kolizije u slanju poruka preko odreenog linka, odnosno komunikacijske veze. Postoje odreene tehnike koje se koriste sa ciljem izbjegavanja kolizije na linku:

105

Osnovni koncepti

Collision detection. Prije slanja odreene poruke preko linka,


sistem koji eli da poalje poruku mora "oslunuti" da li se moda neka druga poruka u tom trenutku alje preko te veze. Ako je veza slobodna, sistem moe slati poruku. Zato se ova tehnika naziva i Carrier Sense With Multiple Access (CSMA). Ako dva sistema ponu sa slanjem poruka u istom trenutku, oni e registrirati koliziju i stopirati prenos poruke. Token passing. Ova tehnika se bazira na jedinstvenom tipu poruke koja se naziva token i koja kontinuirano krui mrenim (komunikacijskim) sistemom, obino u ring strukturi. Ona lokacija, odnosno sistem, koji eli da poalje poruku mora ekati dok token ne doe, da bi ga onda uklonila sa mree i otpoela sa slanjem poruke. Kada zavri sa slanjem poruke, ponovo alje token na mreu. Message slots. Odreeni broj slotova (praznih mjesta) fiksne duine za poruke kontinuirano krui mrenim sistemom. Svaki slot moe nositi jednu poruku fiksne duine kao i kontrolnu informaciju kao to je izvor i destinacija, i da li je slot pun ili prazan. Raunarski sistem koji eli da poalje poruku mora ekati dok prazan slot ne naie, i potom umee poruku u taj slot i setuje kontrolne informacije. Slot sa poruke putuje mreom i kada doe do odreene lokacije, sistem sa te lokacije provjerava kontrolne informacije u smislu da li taj slot sadri poruku za njega ili ne. Strategije dizajna komunikacijskog sistema, u smislu kako ih navode Silberschatz i dr. u kontekstu mrene komponente operativnih sistema, podrazumijevaju aspekte dizajniranja komunikacijskog sistema. U sistemu raunarskih komunikacija ureaji koji komuniciraju jedni sa drugima moraju koristiti isti jezik i primjenjivati ista pravila, drugim rijeima, moraju postojati posebni mehanizmi koji e osiguravati da se podaci poslani sa jednog ureaja na drugi transmitiraju bez greaka. U tom smislu je 1983. godine kreiran OSI model (Open Systems Interconnection) od strane glavnih telekomunikacijskih kompanija (slika 2.34.). On propisuje sedam funkcionalnih nivoa (layers) od kojih svaki predstavlja zaseban skup zadataka u funkciji prenosa podataka. Svaka poruka poslana sa jednog raunara ka drugom mora proi ove nivoe, kako u postupku slanja, tako i prijema poruke.

106

Osnovni koncepti

Slika 2.34. OSI nivoi (slojevi) Funkcije svakog od nivoa su sljedee: Nivo 7. Aplikacijski: Aplikacija koju korisnik koristi za komuniciranje, npr. softver za e-mail, fajl transfer i sl. Nivo 6. Prezentacijski: Slui za konverziju podataka za upotrebu od strane nivoa 7, mrenu sigurnost, fajl transfer i funkcije formatiranja. Osigurava takoer konverziju izmeu razliitih raunara koji koriste razliite formate. Nivo 5. Sesija: Zadatak mu je upravljanje mreom. Korisnici komuniciraju direktno sa ovim nivoom, koji moe verificirati logiranje i pasvord, moe nadgledati koritenje sistema. Osigurava mrenim aplikacijama metod za ponovno pokretanje transmisije podataka ako je veza izgubljena. Nivo 4. Transport: Primarno se bavi uoavanjem greaka u transferu i njihovim otklanjanjem. Nivo 3. Mrea: Definira protokole koje koriste mreni operativni sistemi za ostvarenje osnovnih komunikacija. Na ovom nivou operiraju ruteri kao komunikacijski ureaji. Nivo 2. Data link: Nivo 2 kreira skup pravila koje poiljalac i primalac moraju potovati da bi ostvarili komunikaciju. Podrava softverske drajvere koji dolaze sa mrenim karticama i koji se instaliraju na raunar. Na ovom nivou funkcioniraju bridevi kao komunikacijski ureaji. Nivo 1. Fiziki: Na lajeru 1 podaci se dekodiraju u fiziki signal i transmitiraju se kao dekodirani bitovi. Na ovom nivou, raunar ostvaruje vezu sa mrenom karticom. Veinom navedenih nivoa upravlja mreni operativni sistem, odnosno njegova mrena komponenta. To su sljedei nivoi: mreni,
107

Osnovni koncepti

transportni, sesijski, prezentacijski, kao i dijelovi "Data link" i aplikacijskog nivoa. Fiziki nivo i vei dio "Data link" nivoa OSI modela pokriva komunikacijski ureaj, npr. mrena kartica, dok veinu aplikacijskog nivoa ine komunikacijske aplikacije kao sto su: e-mail, telnet, ftp, itd. Nivoi OSI modela su implementirani preko odgovarajuih hardverskosoftverskih protokola. Mrena adapter kartica ili mreni adapter (Network Adapter Card, Network Interface Card) je osnovna komunikacijska komponenta za povezivaje raunara u lokalne raunarske mree. Fiziki se instalira tako to se umetne u jedan od praznih slotova za proirenje na glavnoj ploi, dok se softverski dio instalacije obavlja instaliranjem drajvera sa diskete koja obino dolazi uz karticu. Kod starijih modela mrenih kartica i starijih verzija operativnih sistema, softverska instalacija je esto predstavljala problem jer je trebalo konfigurirati nekoliko parametara kao to su: IRQ broj, I/O adresu, memorijsku adresu i sl. Nove mrene kartice koriste tzv. PNP-standard (Plugand-Play), koji omoguava automatsko konfiguriranje kartice prilikom prvog narednog startanja sistema. Noviji operativni sistemi podravaju ove standarde. Slika 2.35. Mrena kartica i portovi za kablove

2.6.8. Korisniki interfejs


Glavna karakteristika savremenih OS-a je da koriste grafiki korisniki interfejs (Graphical User interface - GUI). Korisniki interfejs je dio OS-a koji korisniku omoguava komunikaciju sa raunarom. U tom smislu je korisniki interfejs operativnog sistema prva instanca u komunikaciji sa raunarom. Meutim, OS interfejs ne treba poistovjeivati sa korisnikim interfejsom koji svaka GUI-bazirana aplikacija posjeduje. U principu postoje dva osnovna naina komunikacije sa operativnim sistemom. Prvi je baziran na koritenju OS komandi koje korisnik unosi pomou tastature. Klasini predstavnik ovog tipa OS-a je DOS (Disk Operating System). Osnovni nedostatak ovakvog naina koritenja je u tome to korisnik mora poznavati komande konkretnog OS-a da bi mogao koristiti raunar. Zato je ovakav interfejs ve skoro u potpunosti naputen i savremeni OS, kako je ve naglaeno, koriste GUI interfejs. Mi je osnovni ureaj koji se koristi u radu sa takvim OS.

108

Osnovni koncepti

Aplikacije, podaci, ureaji i sl. su predstavljeni ikonama i sve operacije su bazirane na tri osnovna naina koritenja mia: Selektiranje (Selecting - Point and Click) Otvaranje ili startanje (Opening - Point and Double Click) Pokretanje (Moving - Click + Hold + Drag).

U nastavku dajemo primjere korisnikog interfejsa kod nekih operativnih sistema. 1.DOS. DOS je tekst-bazirani operativni sistem, ali se najee koritene komande relativno lako pamte. Verzije DOS-a 4.0 pa dalje su raspolagale sa tzv. shell-ovima koji su predstavljali inicijalne napore ka grafikom interfejsu. Shell je bio menu-bazirani interfejs, ali je predstavljao korak naprijed u oslobaanju korisnika od memoriranja odreenih komandi. Slika 2.36. DOS interfejs 2. MS Windows 3.1 i 3.11 (Windows for Workgroups). Microsoft je razvio Windows sredinom 80-ih godina da bi osigurao GUI za svoj bazini DOS OS. To je bio odgovor na Appleov MacOS koji je bio prvi OS sa GUI-interfejsom. Meutim, Windows je bio samo GUI nadgradnja DOS-u, a nikako novi OS. Windows nije mogao raditi bez DOS-a. Verzija Windows 3.0 je lansirana 1990., a najdue koritena i, po mnogima, najstabilnija verzija 3.1 plasirana je 1992. godine. Slika 2.37. Windows 3.1 interfejs

109

Osnovni koncepti

3. Windows 95 Windows95 je bio dugo oekivan od strane PC korisnika da zamijeni DOSbazirani Windows 3.1. Windows95 je pravi OS za razliku od 3.1 koji je bio samo neka vrsta shell-a za DOS. Kreiran je za podrku u stand-alone modu rada, mada se moe koristiti i za umreavanje u lokalnu mreu ("peer-to-peer"). Slika 2.38. Windows 95 interfejs 4. Windows XP Sa objavom verzije Windows XP u oktobru 2001. godine, Microsoft je najavio i kvalitativno novi interfejs. I pored niza poboljanja, ipak se moe konstatovati da se radi samo o poboljanoj verziji Win9x interfejsa.

Slika 2.39. Windows XP interfejs 5. Macintosh OS MacOs je bio prvi operativni sistem koji je koristio grafiki interfejs. Lansiran je 1984. godine i oznaio je pravu revoluciju u tada dominantno tekstbaziranim OS platformama.

Slika 2.40. MacOS interfejs

110

Osnovni koncepti

6. UNIX. UNIX je operativni sistem pod kojim uglavnom rade radne stanice i neki serveri iz klase miniraunara, mada moe da radi i na personalnim raunarima. Radi se o klasinom multitasking i multi-user OS-u koji moe biti dobro rjeenje za podrku poslova obrade podataka u poslovnim sistemima sa vie stotina korisnika. Dugo godina je bio iskljuivo baziran na text modu koritenja, kao i DOS, ali je u posljednjih desetak godina karakteristian trend ukljuivanja grafikog interfejsa i u ovaj OS.

Slika 2.41. Character-bazirani interfejs na UNIX-u

Slika 2.42. GUI okruenje na UNIX-u

2.6.9. Ostale usluge koje prua operativni sistem


Operativni sistem prua odreene usluge kako aplikacijama tako i korisnicima aplikacija. Radi se o rutinama koje olakavaju proces programiranja. Ove usluge se razlikuju od jednog do drugog operativnog sistema, ali se kao osnovne mogu navesti sljedee: Izvrenje programa (program execution). Sistem mora biti u mogunosti da uita program u memoriju i da ga izvri. Program, takoer, mora biti u mogunosti da zavri svoje izvravanje, bilo normalno ili vanredno. I/O operacije. Program koji se izvrava moe zahtijevati odreene I/O operacije koje zavise od karaktera I/O ureaja (naprimjer, premotavanje trake na poetak). Poto korisniki
111

Osnovni koncepti

program nije u mogunosti da izvrava ovakve I/O operacije, na operativnom sistemu je da osigura nain za to. Upravljanje i manipulacija fajl sistemom. Programi mogu upisivati podatke u fajlove, a mogu ih itati iz njih, dok korisnik moe takoer kreirati fajlove, modificirati ih i brisati. Stoga je nain organizacije fajlova kroz odgovarajui fajl sistem vrlo bitan servis operativnog sistema. Komunikacije. Procesi tokom izvravanja mogu komunicirati i izmjenjivati informacije meusobno s tim da ta komunikacija moe biti izmeu procesa na istom raunaru, a moe izmeu razliitih raunara koji su povezani u mreu. Komunikacije se mogu ostvariti koristei dva osnovna pristupa: preko djeljive memorije (shared memory) i pomou tehnike koja se naziva message passing. Detekcija greaka (Error detection). Razliiti oblici greaka se mogu pojaviti tokom funkcioniranja raunarskog sistema. To moe biti greka unutar CPU-a, memorijskog hardvera, na nekom I/O ureaju, i sl., kao i unutar korisnikog programa. Za sve ove tipve greaka, odnosno problema, operativni sistem mora imati odgovarajuu akciju, bilo u smislu fiksiranja problema, ili njegovog evidentiranja i upoznavanja krajnjeg korisnika. Pored navedenih servisa koji su uglavnom usmjereni na pomo korisniku, postoji i dodatni skup aktivnosti kojima operativni sistem osigurava vei stepen efikasnosti samog sistema, to je od posebne vanosti kod viekorisnikih sistema. Tu se prije svega misli na: alokaciju resursa, vodjenje evidencije (accounting) o tome koji korisnici i koliko resursa koriste na sistemu, sistemi zatite u smislu kontrole koritenja odreenih resursa, itd. Sistemski pozivi (System Calls) Sistemski pozivi osiguravaju interfejs izmeu programa koji se izvrava i operativnog sistema. Ovi pozivi su obino uraeni u asemblerskom jeziku, iako neki operativni sistemi dozvoljavaju da se ovi pozivi kreiraju koristei vie programske jezike (naprimjer: C, Pascal, Fortran), tako da ti pozivi lie na pre-definirane funkcije ili podprograme. Sistemski pozivi se mogu grupirati u pet osnovnih kategorija: Kontrola procesa End, Abort Load, Execute
112

Osnovni koncepti

Create Process, Terminate Process Get Process Attributes, Set Process Attributes Wait for Time Wait Event, Signal Event Allocate and Free Memory Manipulacija sa fajlovima Create File, Delete File Open, Close Read, Write, Reposition Get File Attributes, Set File Attributes Manipulacija sa ureajima Request Device, Release Device Read, Write, Reposition Get Device Attributes, Set device Attributes Logically Attach or Detach Devices Odravanje informacija Get Time or Date, Set Time or Date Get System Data, Set System data Gget Process, File, or Device Attributes, Set Process, File, or Device Attributes Komunikacije Create, Delete Communication Connection Send, Receive Messages Transfer Status Information Attach or Detach Remove Devices.

Sistemski programi Savremene raunarske sisteme karakteriziraju i sistemski programi koji imaju dosta slinosti sa OS aktivnostima, ali se esto posmatraju i odvojeno od operativnog sistema. Mogu se grupirati u sljedee kategorije: Programi za manipulaciju sa fajlovima i direktorijima u smislu kreiranja, kopiranja, brisanja, preimenovanja, printanja fajlova i direktorija, itd. Programi koji daju informacije o statusu sistema - upuuju zahtjev sistemu za razne tipove informacija, kao to su; datum, vrijeme, raspoloivi prostor na disku, broju korisnika koji rade na sistemu, i nakon dobivene informacije istu formatiraju i upuuju na odreene izlazne ureaje. Tekst editori.
113

Osnovni koncepti

Programi za podrku programskih jezika. Programi za komuniciranje. Obuhvataju sistemske programe za komuniciranje i razmjenu informacija izmeu procesa, korisnika i raunarskih sistema u cjelini. Komandni interpreter, odnosno interfejs za komuniciranje korisnika sa sistemom preko odgovrajuih komandi.

2.7. Arhitektura operativnih sistema


Nakon pregleda osnovnih funkcija (komponenti) operativnih sistema, a prije upoznavanja sa osnovnim tipovima strukture (arhitekture) savremenih operativnih sistema, podsjetimo se jo jednom ta su osnovni zadaci jednog operativnog sistema. Iz perspektive savremenog kompjutinga, kao osnovne zadatke mogli bismo navesti sljedee: Upravljanje hardverskim resursima raunarskog sistema, poto je operativni sistem jedini koji moe direktno "komunicirati" sa hardverom. Osiguravanje interfejsa ka hardveru za krajnjeg korisnika, administratora sitema, kao i za aplikacije. Koordiniranje aktivnosti vie aplikacija koje se izvravaju istovremeno. Olakavanje razvoja aplikacija, na nain to e pruiti odgovarajue servise kao to su: podrka window managementu, podrka za eksterne medije, itd. Osiguravanje efikasnog korisnikog interfejsa pomou kojeg korisnik moe komunicirati sa raunarom i aplikacijama. Kada je u pitanju struktura operativnih sistema, moe se rei da, historijski posmatrano, postoje sljedea tri osnovna tipa: Jednostavna ili monolitna struktura Slojna (layered) struktura Struktura zasnovana na mikrokernelu (microkernel). Neovisno od toga koji tip strukture je u pitanju, koncept modularnosti je na odreeni nain bitan za sve tehnike. Modul predstavlja jednu logiku jedinicu i moe sadravati razne funkcije i/ili procedure. Komunikacije izmeu pojedinih modula trebaju biti dobro definirane. Nain na koji su moduli struktuirani odraava i strukturu samog operativnog sistema.

114

Osnovni koncepti

Jednostavna ili monolitna struktura Karakteristina je za DOS i prve verzije UNIX operativnog sistema. Sadri mali broj slojeva ili ih nema nikako, bez bilo kakve hijerarhijske organizacije. Interakcije izmeu pojedinih komponenti nisu dobro definirane to svaku modifikaciju ini tekom. Slojevita struktura (Layered structue) Slojevi (nivoi) odgovaraju modulima koji su tako ureeni da predstavljaju hijerarhijsku strukturu. Modul koji se nalazi na najviem nivou (top layer) je najapstraktniji, obino se radi o interfejsu, dok je modul najnieg sloja obino onaj koji ima interakciju sa samim hardverom. Svaki sloj zahtijeva usluge od sloja koji je ispod, odnosno, osigurava usluge onom sloju vieg nivoa. To znai da neka procedura na jednom sloju moe pozvati odreenu proceduru sa nieg nivoa i moe biti pozvana od strane procedure sa vieg sloja. Prednost ovakvih struktura je u modularnosti i jasno definiranim interfejsima, dok se glavni nedostatak sastoji u nioj efikasnosti operacija obzirom da zahtjevi moraju proi kroz viestruke nivoe. Microkernel struktura Mikrokernel struktura oznaava novi pravac u OS dizajnu, uglavnom zbog izraene neefikasnosti i nefleksibilnosti slojevne strukture. Mikrokernel - bazirane strukture imaju horizontalnu organizaciju, umjesto vertikalne, koja je karakteristina za slojevne strukture. Kod ovakvih struktura kernel je reduciran na nekoliko osnovnih funkcija: upravljanje procesima, osnovne komunikacijske rutine, upravljanje low-level memorijom, (low-level memory management), itd. Ostali servisi koje tradicionalni operativni sistemi obino ukljuuju u kernel su raspoloivi od strane sistemskih programa ili korisnikih programa koji se nazivaju serveri. Korisnici i serveri komuniciraju putem poruka koje prolaze preko kernela. Neke vanije prednosti ovog modela su sljedee: Proirivost u smislu novih servisa dodavanjem novih servera. Fleksibilnost - nova svojstva mogu biti dodana, ali se i neka postojea mogu ukloniti, tako da se sistem moe "krojiti" faktiki prema platformi na kojoj e OS raditi.

115

Osnovni koncepti

Portabilnost - poto je mikrokernel jedini dio OS-a koji direktno komunicira sa hardverom, mogunost instaliranja OS-a na drugu hardversku platformu je pojednostavljena. Zasnovanost na objektno-orijentiranom pristupu - OO metode upravo naglaavaju modularnost i enkapsulaciju. Jedno od glavnih pitanja kada se radi o mikrokernel strukturi je ponovo efikasnost, poto se u ovoj strukturi mnogi servisi nalaze van kernela. Na efikasnost, takoer, utie i sistem komuniciranja preko poruka, umjesto tradicionalnih sistemskih poziva. Prve verzije mikrokernel baziranih operativnih sistema su upravo iz tih razloga pokazale manju efikasnost u radu. Kasnije verzije su nastojale to poboljati na vie naina, od kojih je jedan vraanje odreenih svojstava unutar kernela. Windows NT operativni sistem u novijm verzijama koristi modificirani mikrokernel, strukturu u kojoj serveri nisu dio mikrokernela, ali rade u kernel modu, to eliminira odreene extra izmjene moda koje su bile kod tradicionalnih mikrokernela.

Arhitektura Windows 9x operativnog sistema

U cilju boljeg razumijevanja arhitekture, ne samo Windows 9x operativnog sistema, ve i ostalih verzija, bitno je najprije objasniti tzv. privilegijske prstenove (privilege rings) koje imaju Intelovi procesori. Postoje etiri privilegijska prstena u Intelovoj emi (0, 1, 2, 3), ali Windows 9x i Windows NT koriste samo dva: Ring 0 i Ring 3. Razliiti programi se izvravaju na razliitim privilegijskim prestenovima. Procesor i operativni sistem znaju na kojem prstenu se odreeni program izvrava i u odnosu na to ograniavaju pristup tom programu na memoriju koja je bazirana na odgovarajuem prstenu. Programi koji se izvravaju u okviru prstena 0 imaju neogranien pristup ka itavoj memoriji sistema, dok programi iz okvira prstena 3 imaju ogranien pristup memoriji. Program koji radi na prstenu 0 moe pristupiti bilo kojem dijelu memorije, ukljuujui i memoriju kojom raspolau procesi na bilo kojem drugom prstenu. Stoga je poeljno da se softver koji e raditi na prstenu 0 ogranii na centralni dio operativnog sistema. Naprimjer, kod Windows 9x operativnog sistema kernel radi na ovom nivou.

116

Osnovni koncepti

Windows 9x operativni sistem je baziran na slojevitoj strukturi i koristi prstenove 0 i 3 (slike 2.43. i 2.44.):

Slika 2.43. Win98 arhitektura - slojevi

Slika 2.44. Win98 arhitektura - prstenovi Sa slika 2.43. i 2.44. vidljivo je da se Windows 9x arhitektura sastoji od sljedeih komponenti: Drajveri ureaja (device drivers) Device drajveri su programi koji predstavljaju prvu vezu operativnog sistema sa hardverskim komponentama. Oni su kreirani tako da pokrivaju odreene hardverske komponente kao to su: printeri, modemi, mrene kartice, video kartice, razliiti tipovi eksternih magnetnih medija, itd. Upravo iz tog razloga, ovi programi, kao komponenta
117

Osnovni koncepti

operativnog sistema, moraju biti na najniem moguem nivou OS arhitekture. Windows 9x koristi koncept univerzalnog drajvera/mini drajvera (universal driver/minidriver) koji pojedine drajvere ini jednostavnijim. Naprimjer, jedan takav drajver je univerzalni modem drajver UNIMODEM.DRV koji zna kako komunicirati sa svim modemima koji koriste AT komandni set. U kombinaciji sa univerzalnim drajverom, mini drajver je zaduen za osobine odreenog modela modema. Ovakav koncept reducira sloenost u razvoju modemskih mini drajvera zato to univerzalni drajver ve ima mnoge generalne osobine modema. Ono to je novina u Windows 9x je koncept tzv. unificiranog device drajvera (Unified Device Driver). U tom modelu, drajveri za Windows 9x i Windows NT mogu biti isti. Mnogi device drajveri u Windows 9x OS-u se nazivaju virtualni device drajveri (Virtual Device Drivers - VxD), pri emu je svaki od njih pridruen nekoj komponenti hardvera. Oznaka x u nazivu VxD odnosi se na tip drajvera, kao npr.: VPD je printer drajver, VDD je display drajver itd. Virtual device driver fajlovi u Windows 98 OSu imaju ekstenziju .VXD. Iznad device drajvera u Win98 arhitekturi su tri sistemske komponente: Virtual Machine Manager, Installable File System Manager i Configuration Manager. Virtual Machine Manager Virtual Machine Manager je komponenta odgovorna za rasporeivanje procesa, upravljanje virtualnom memorijom, upravljanje aplikacijama, ukljuujui i MS-DOS aplikacije, itd. Kod aplikacijske podrke treba rei da se sam operativni sistem i sve Windows-bazirane aplikacije izvravaju u okviru jedne virtualne maine koja se naziva sistemska virtualna maina (System Virtual Machine), dok svaka MSDOS aplikacija dobija svoju vlastitu virtualnu mainu. Posebne virtualne maine za MS-DOS aplikacije su neophodne zato to su te aplikacije, poto su pisane za single-tasking operativni sistem, kreirane tako da raspolau itavim raunarskim sistemom. Installable File System Manager Installable File System Manager (IFSM) upravlja tzv. instalabilnim fajl sistemima u Windows 9x operativnom sistemu. Installable File System (IFS) je vrsta drajvera koji osigurava usluge fajl sistema operativnom sistemu. Razliiti IFS sistemi osiguravaju pristup ka FAT16,
118

Osnovni koncepti

FAT32, CD-ROM i mrenim fajl sistemima. To u sutini znai da se novo razvijeni fajl sistem moe dodati operativnom sistemu bez potrebe da se sam operativni sistem mijenja. Naprimjer, kada je razvijen FAT32 fajl sistem, operativni sistem (tada Windows 95) nije morao biti mijenjan podrka novom fajl sistemu je bila dodata koristei Installable File System Manager. Instalabilni fajl sistemi rade na nultom privilegijskom prstenu. Configuration Manager Configuration Manager je komponenta koja upravlja Plug-and-Play ureajima u raunarskom sistemu. Odgovorna je za koordiniranje svih parametara instaliranih ureaja kao to su: IRQ brojevi, DMA portovi, I/O port adrese itd. Osnovni zadatak je u setovanju tih parametara tako da se izbjegnu konflikti. Sredinje komponente Windows 9x operativnog sistema Sljedei sloj u Windows 9x arhitekturi sadri sredinje komponente (core components), a to su: User, Kernel i GDI. Korisnik (User) komponenta upravlja svim inputima koji dolaze od korisnika i output porukama koje se upuuju ka korisnikom interfejsu, jednom rijeju, upravlja porukama u sistemu. Jedna takva poruka je dogaaj (event) koji se pojavljuje, naprimjer, kada korisnik zatvara windows na ekranu, pritisne neku tipku na tastaturi, ili pokrene mia. Ove poruke User komponenta upuuje ka odgovarajuem ulaznom redu (input queue) za windows sa kojeg je ta poruka poslata. Jezgro (Kernel) komponenta upravlja najosnovnijim funkcijama operativnog sistema, kao to su: uitavanje i vraanje programa, upravljanje izuzecima i alociranje virtualne memorije. Trea sredinja komponenta je Graphical Device Interface GDI, koji je odgovoran za interakciju sa display device drajverima. Prua, takoer, podrku i podsistemu printanja. Shell Iznad sredinjih komponenti u slojevitoj strukturi Windows 98 OS-a je Shell. To je 32-bitna aplikacija koja upravlja Windows 98 desktopom i explorerom. Iako radi na istom nivou kao i aplikacije, Shell prua i razliite vrste usluga tim aplikacijama. To su, naprimjer, razliite Win 98

119

Osnovni koncepti

GUI komponente koje druge aplikacije mogu koristiti (drop-down list boksovi, check boxes, File Open dialog box).

Arhitektura Windows NT OS-a*

Windows NT koristi klijent/server model u cilju razdvajanja razliitih komponenti OS-a. Stoga, kada se kae da je Windwos NT klijent/server operativni sistem, to ne znai samo da se kao takav moe koristiti kao podrka savremenim c/s aplikacijama i mrenim okruenjima. To prije svega podrazumijeva da je ovaj operativni sistem izgraen koristei c/s paradigmu, odnosno da njegovi moduli komuniciraju na c/s filozofiji. Naprimjer, korisniki program koji zahtijeva crtanje neke slike na ekranu je klijent koji koristi precizno definiranu poruku koja se upuuje drugom dijelu NT Server koda, najvjerovatnije Win32 podsistemu. U ovom sluaju, Win32 podsistem je server u c/s sistemu rada. Komponente kao to su: Object Management, Security, Local Procedure Calls, Process Management, Memory Management, i I/O predstavljaju tzv. low-level komponente koje sainjavaju Windows NT Executive modul koji se nalazi u okviru Kernel moda. etiri osnovne komponente u NT arhitekturi su (slika 2.45.):

Slika 2.45. NT arhitektura


Arhitektura svih novijih verzija Windows OS-a (Windows 2000, Windows XP, Winodws 2003) bazirana je na Windows NT arhitekturi razvijenoj u okviru Microsoftovog NT projekta kvalitativno novog OS-a. Stoga emo najprije prezentirati osnovne postulate arhitekture ove tehnologije. 120
*

Osnovni koncepti

Hardware Abstraction Layer (HAL) Kernel NT Executive Services Environment Subsystems.

Windows NT, kao i veina savremenih operativnih sistema danas, svoje zadatke dijeli u nekoliko kategorija koji su vezani za modove koje podravaju savremeni procesori. Rekli smo da veina dananjih procesora podrava sistem viestrukih modova, koji se nazivaju prstenovi, u okviru kojih se izvravaju programi. Windows NT korisiti dva moda: privilegovani i neprivilegovani mod, i u svojoj arhitekturi ih naziva kernel mode i user mode, respektivno. Komponente koje rade u kernel modu imaju direktnu vezu sa hardverom. Windows NT Executive sadri komponente operativnog sistema: Hardware Abstraction Layer (HAL) Kernel (Microkernel) Executive Services Hardware Abstraction Layer (HAL) Prva komponenta Kernel moda (NT Executive modula) je tzv. hardver apstrakcijski sloj (Hardware Abstraction Layer - HAL). HAL osigurava interfejs niskog nivoa izmeu NT Executive modula i sistemskog hardvera. HAL je ustvari najnii nivo NT Server OS-a i on je platform-dependent, to znai da se taj dio koda razlikuje kod Intel i Alpha procesora. Upravo zahvaljujui ovoj komponenti NT Server je portabilan OS, jer ostatak operativnog sistema ne brine o tome na kojoj platformi je OS instaliran. Svaka hardverska platforma na kojoj NT Server radi (Intel, Alpha) zahtijeva posebno razvijen HAL. Pored toga, HAL osigurava interfejs za simetrini multiprocessing (SMP). NT Server se isporuuje sa dva HAL-a za svaku procesorsku arhitekturu koju podrava (Intel, Alpha), od kojih se prvi HAL koristi za podrku single-processor rada, a drugi za podrku rada SMP sistema do etiri procesora. Dodatni HAL-ovi su raspoloivi od strane nekih drugih proizvoaa i mogu podravati sistem rada do 32 procesora. HAL modulu mogu pristupiti iskljuivo komponente NT Executive modula, tako da ne postoji mogunost direktne komunikacije sa korisnikim programima. Iako je cilj u dizajnu NT Servera da svi hardverski pozivi idu iskljuivo preko HAL-a, u realnosti se deava da
121

Osnovni koncepti

manji broj device driver i kernel poziva idu direktno na hardver. Najvea slabost HAL-a je u tome to je to glavni razlog nekompatibilnosti Windows NT Servera sa starijim DOS i Windows programima. Razlog tome je to su ti programi jednostavno bili navikli da komuniciraju direktno sa hardverom. Kernel Mnoge funkcije koje su tradicionalno bile unutar samog kernela, mikrokernelska arhitektura Windows NT operativnog sistema sada pridruuje komponenti koja se naziva NT Executive. NT mikrokernel je dio NT Executive komponente i radi u procesorovom privilegiranom 0modu. Glavna uloga kernela je da rasporeuje tredove na raspoloive procesore na osnovu njihovih brojeva prioriteta (0-31). Dodjeljuje im odgovarajui iznos procesorskog vremena sve do momenta kada ih "zaustavlja" i daje priliku drugom procesu da se izvrava. Treba imati na umu da kernel-kod ne moe nikako biti obustavljen (preempted). Na vieprocesorskom sistemu, po jedna kopija kernela radi na svakom procesoru. Pored ostalih zadataka, kernel se koristi i za podrku rada sa UPS sistemom. Ako je u pitanju tzv. inteligentni UPS, u momentu kada nestaje elektrine energije, UPS infomira sistem i ta informacija ide direktno na kernel koji potom koordinira normalnu operaciju shutdown-a. Treba razlikovati kernel ili mikrokernel od kernel moda. Iako su meusobno povezani, oni ne predstavljaju isto. Kernel je dio koda NT-a koji predstavlja sredinji dio ili jezgro operativnog sistema. Kernel mod, sa druge strane, je privilegovani sloj operacija podranih od strane procesora. To znai da u Windows NT operativnom sistemu mikrokernel radi u kernel modu, to znai da radi u privilegiranom procesor modu. Najvaniji dijelovi NT kernela su pisani u asemblerskom jeziku da bi sistem radio to bre i efikasnije. Executive services NT Executive (izvrilac) komponenta predstavlja osnovne funkcije operativnog sistema koje se mogu dati na raspolaganje aplikacijama. Radi se o skupu usluga (servisa) kao to su: upravljanje objektima, upravljanje virtualnom memorijom, upravljanje I/O ureajima i upravljanje procesima. Svaka od izvrnih komponenti osigurava odgovarajui interfejs preko kojeg komunicira sa ostalim komponentama i preko kojih ostali podsistemi i aplikacije OS-a komuniciraju sa izvrnim komponentama. Izvrne komponente funkcioniraju kao serveri sa OS podsistemima koji figuriraju kao klijenti.
122

Osnovni koncepti

Svaka izvrna komponenta je neovisna od drugih komponenti, tako da jedna od njih moe biti uklonjena i zamijenjena sa novom verzijom u cilju dodavanja novih mogunosti, a bez uticaja na ostale komponente. Osnovne komponente izvrnih servisa su: Object Manager Process Manager Virtual Memory Manager Local Procedure Call Facility Security Reference Monitor I/O Manager

Objektni menader (upravlja objektima) je odgovoran za kreiranje, modifikaciju i brisanje objekata koji se koriste od strane svih komponenti koje sainjavaju NT Executive. Objekti su apstraktni tipovi podataka koji se koriste za predstavljanje resursa operativnog sistema. Mogu biti konkretni kao device portovi, a moe se raditi i o apstraktnim pojmovima kao to je npr. thread. Objektni menader je odgovoran za komunikaciju objekata sa ostalim procesima koji ih zahtijevaju, zatim za nadgledanje koritenja resursa sistema od strane objekata (obino sistemske memorije), kao i "ienje" tzv. "objekata-siroia" (objekata koji nemaju svog vlasnika). Procesni menader (upravlja procesima) je odgovoran za kreiranje, uklanjanje i modificiranje stanja svih procesa i niti. Osigurava, takoer, i informacije o stanju procesa i niti za ostatak sistema. Memory Manager ili Virtual Memory Manager (upravlja memorijom ili upravlja virtualnom memorijom) upravlja virtualnom memorijom. Osigurava virtualni adresni prostor svakom procesu koji postoji i titi taj proctor radi osiguranja integriteta sistema. Zadatak VMMa je i kontrola pristupa disku u funkciji osiguranja virtualne radne memorije. Local Procedure Call (LPC) Facility predstavlja interfejs izmedju svih client i server procesa koji rade na lokalnom NT sistemu. LPC je mehanizam koji omoguava nitima iz razliitih procesa da razmjenjuju informacije.

123

Osnovni koncepti

Security Reference Monitor (SRM) je temelj itavog sistema sigurnosti na NT sistemu, odnosno, odgovoran je za primjenu svih sigurnosnih politika na raunaru. On to radi u saradnji sa logon procesnim podsistemom i local security authority runtime podsistemom. Kada se korisnik logira na NT sistem, nakon verifikacije logona, logon procesni podsistem zahtijeva SAT (Security Access Token) za korisnika. SAT sadri listu korisnikih privilegija i pripadnosti grupama. I/O menader (upravlja ulazno-izlaznim operacijama) je odgovoran za koordiniranje i obradu svih sistemskih inputa i outputa. Ima zadatak da nadgleda device drajvere, instalable fajl sisteme, sistemski cache itd. NT podsistemi u korisnikom modu (User Mode Subsystems) U korisnikom modu, Windows NT sadri tri glavna podsistema: Win32 podsistem POSIX podsistem OS/2 podsistem Win16 i DOS setovi mogu se smatrati zasebnim podsistemima, no oni ipak ine dijelove Win32 podsistema. Ovi podsistemi djeluju kao posrednici izmeu korisnikih aplikacija i NT executive modula. Svaki podsistem vodi evidenciju o svojim procesima i radi nezavisno od ostalih sistema. Aplikacija moe raditi samo u onom sistemu za koji je kreirana. Win32 je primarni podsistem Windows NT-a. Osnova ovog podsistema je Win32 set API programa, koji su napisani u toku razvoja NT OS-a. Mnogi od ovih API programa su direktna proirenja njihovih Win16 verzija. Win32 je odgovoran za sve korisnike inpute i outpute. Pod njegovom kontrolom su display, mi i tastatura. Kada POSIX i OS/2 podsistemi trebaju ove ureaje, oni usluge trae od Win32 podsistema. Za razliku od prethodne verzije u kojoj su windows manager (USER) i grafiki device interfejs (GDI) bili u sastavu Win32 komponente, verzija 4.0 Windows NT operativnog sistema donijela je novinu u tome to su ova dva veoma bitna podsistema (USER i GDI) premjeteni u NT Executive, modul koji radi u kernel modu. Iako je ovo uraeno sa ciljem da se poboljaju performanse operativnog sistema, neki strunjaci istiu da je to rezultiralo niim nivoom pouzdanosti.

124

Osnovni koncepti

Arhitektura Windows 2000 serije bazirana je na na prethodno prezentiranoj NT arhitekturi, uz odredjene manje izmjene. Na slici 2.46. data je arhitektura Windows 2000 serije OS-a koja je osnova svih verzija iz te serije (Windows 2000 Professional, Windows 2000 Server) i kasnije uvedenih Windows XP-a i Windows 2003 Server OS-a).

Slika 2.46. Windows 2000 arhitekura U nastavku dajemo kratak opis najvanijih komponenti Executive modula (modula izvrnih servisa) u smislu njihovih osnovnih funkcija:
I/O Manager zaduen je za razmjenu podataka sa perifernim

uredjajima. Njegove glavne usluge su: File System, Device Drivers i Cache Manager.

125

Osnovni koncepti Security Reference Monitor stara se o sistemu sigurnosnih

mjera.
Interprocess Communication Manager (IPC) ima za

osnovni zadatak upravljanje komunikacijama izmedju serverskih i klijentskih procesa. Memory Manager ili Virtual Memory Manager upravljanje virtualnom memorijom. Process Manager pokretanje i okonavanje procesa i niti. PnP Manager Plug and Play Manager upravljanje mehanizmom umetni i koristi. Power Manager upravljanje napajanjem sistema. Windows Manager i GDI upravljanje sadrajem ekrana i prikazivanjem prozora. Object Manager upravljanje sistemskim objektima.

Osim navedenih komponenti (usluga), sloj ili reim jezgra (Kernel Mode) ine jo tri komponente: Device Drivers, Microkernel i HAL sa funkcijama objanjenim u okviru osnovnog NT modela. Arhitektura Windows XP-a Windows XP je kreiran na istoj tehnoloko-kodnoj osnovi na kojoj su radjeni Windows 2000 i Windows NT Workstation verzije Windows OS-a. Ovaj kod poznat pod nazivom NT kernel poboljan je i ini Windows XP verziju monijom, stabilnijom i sigurnijom verzijom u odnosu na prethodnu NT verziju (Windows 2000 Professional), a naroito u poredjenju sa non-NT verzijama (Windows Me, Windows 98, Windows 95). Microsoft je novom arhitekturom nastojao kombinovati najbolja svojstva Windows 9x platforme u smislu podrke starijim aplikacijama i starijim hardverskim platformama, sa znatno veim nivoima stabilnosti koje je donijela Windows NT/2000 tehnologija. Naredna slika daje prikaz osnovne arhitekture Windows XP-a. Osnovne prednosti nove platforme su:

Baziranost na konceptu preemptivnog multitaskinga Zatita sistemske memorije Podrka fault-tolerance sistema rada Minimizirani broj reboot operacija prilikom instaliranja softvera.

126

Osnovni koncepti

Slika 2.47. Arhitektura Windows XP OS-a U odnosu na Windows 2000 arhitekturu, u Windows XP-u su izbaene sljedee komponente: POSIX* subsystem, OS/2 subsystem, NEC PC98 support, SGI 320 i SGI 540 support. Ovaj potez Microsofta je vrlo interesantan imajui u vidu injenicu da je jedan od ciljeva izgradnje Windows NT OS-a bio integracija s drugim sistemima. Ta orijentacija je zadrana i u Windowsu 2000, tako da je i ta verzija mogla izvravati skriptove iz drugih OS-a kao to su OS/2, POSIX i DOS. Zvanino obrazloenje Microsofta je da se radi o zastarjelim operativnim sistemima.

POSIX (Portable Operating System Interface for UNIX) je derivat UNIXa.


127

Osnovni koncepti

Za razliku od modela XP arhitekture sa prethodne slike koji prezentira XP komponente u okviru dva osnovna podsistema: Kernel mode i User mode (Kernel reim rada, Korisniki reim rada), arhitektura XP-a se moe predstaviti i na nain da prikae odnovne komponente prema koncepciji tzv. privilegijskih prstenova karakteristinih za Intel procesore. Ve ranije smo naglasili da od etiri privilegijska prstena (rings), Windows koristi dva: Ring 0 prsten ili reim jezgra i Ring 3 prsten ili korisniki reim. Naredna slika prikazuje arhitekturu Windows XP-a prema osnovnim prstenovima korisnikim reimima.

Slika 2.48. Windows XP arhitektura prema privilegijskim prstenovima

128

Osnovni koncepti

U nastavku emo ukratko predstaviti osnovne komponente. Sistemska virtuelna maina sadri tri glavne komponente: 32bitne Windows aplikacije, komandno okruenje i 16-bitne Windows aplikacije. Za razliku od Windowsa 9x koji je imao dosta 16-bitnog programskog koda, Windows XP raspolae samo sa 32-bitnim programskim kodom. Za razliku od WIndowsa 9x gdje su se sve 16-bitne aplikacije izvravale u zajednikom memorijskom prostoru, kod Windowsa XP svaka 16-bitna aplikacija pokree se u posebnom procesu. Za razliku od prethodnih verzija Windowsa, XP ima samo jedno grafiko komandno okruenje Explorer. Virtualna DOS maina. U Windows XP-u DOS aplikacije se izvravaju u okviru tzv. DOS virtualne maine. To znai da processor pravi takvo okruenje u kojem DOS aplikacija misli da je ona jedina koja se u tom trenutku izvrava. Ovakav pristup je bio neophodan zbog prirode DOS aplikacija pravljenih u vrijeme kada je raunar mogao da izvrava samo jedan zadatak. Sloj Windows API Windows XP sadri dva Windows API interfejsa:
16-bitni API podsistem koji aplikacijama prua sve 16-bitne

usluge koje su pruale i prethodne verzije WIndowsa. On je potreban starijim 16-bitnim aplikacijama. 32-bitni API podsistem koji koristi Windows XP, ima vie mogunosti i pouzdaniji je od 16-bitnog interfejsa. Sloj preklapanja (Thunk Layer) koji se nalazi izmedju dva sloja ima zadatak prevodjenja odredjenih 16-bitnih funkcija i podataka u 32bitni oblik ili obrnuto. Komponenta osnovnog sistema (Base System) koja funkcionira na nultom reimu prstenu sadri interne usluge i usluge niskog nivoa specifine za sam operativni sistem. Ovdje se radi o tzv. jezgru OS-a, odnosno kernelu. Korisnici nikada ne komuniciraju s ovom komponentom, a rijetki su i programeri koji mogu koristiti usluge ovog dijela Windowsa. Ovdje spadaju sljedee komponente:

Podsistem za upravljanje datotekama VM menader Mreni podsistem Upravljaki programi


129

Osnovni koncepti

Objektni menader OS servisi Monitor za sigurnost Procesni menader (upravlja procesa)

2.8. Registarska baza podataka (Registry) Windows NT tehnologija je, pored ostalog, donijela promjenu u upravljanju osnovnim informacijama vezanim za hardver, softver, korisnike. Radi se tzv. svojevrsnoj bazi podataka koja se naziva registar ili registarska baza podataka (Registry). Osnovna uloga registra je da slui kao centralni repozitorij informacija vezanih za hardver, sistemski i aplikativni softver, sisteme u mrei i korisnike. Pojednostavljuje operativni sistem na nain to eliminira potrebu za fajlovima tipa AUTOEXEC.BAT, CONFIG.SYS, zatim raznim .INI fajlovima, osim kad odreene legacy aplikacije trebaju te fajlove. Poznato je, naime, da je Windows 3.1 koristio INI fajlove da bi pohranio sistem-specifine ili aplikacijski-specifine fajlove (naprimjer: WIN.INI - za Windows okruenje, SYSTEM.INI - za sistemske fajlove, device drajvere itd., zatim WINWORD6.INI - kao aplikacijski INI fajl, i slino. Microsoft je ovu tehnologiju iplementirao i u svim Windows 9x verzijama. Windows NT Registry (slika 2.49) je implementacija Registry filozofije u okviru NT tehnologije. NT Registry, kao to smo rekli, zamjenjuje konfiguracijske fajlove tipa: .INI, .SYS, .COM i sl. koje su bile koritene u starim verzijama Windowsa i Microsoft LAN Managera. Organiziran je u obliku hijerarhijske strukture sa veim brojem tzv. "rojeva" ili konica (hives) koje ine sekcije ili grane registra. Termin "hives" se koristi zbog slinosti koje ova struktura ima sa rojem ili konicom. Registry stablo je podijeljeno u konice koje sadre odreeni broj kljueva, podkljueva i vrijednosti. Klju (key) je folder koji se nalazi u lijevom dijelu Registry Editora i po sadraju je vrlo slian sekcijama iz INI fajlova. Registry kod Windows NT-a ima pet tzv. root kljueva. Windows koristi termin HKEY to je skraenica za identifikator kljua (engl. handle to a key). Dva su realna i tri aliasa. Realni kljuevi su:

130

Osnovni koncepti

Slika 2.49. Registry na NT-u

HKEY_LOCAL_MACHINE. Sadri konfiguracijske podatke koje se odnose na raunar. Informacije sadrane u ovom kljuu koriste se kao takve od strane svih korisnika. HKEY_USERS. Sadri konfiguracijske podatke za svakog korisnika koji se logira na raunar.

Tri alias root kljua su:


HKEY_CLASSES_ROOT je alias za jednu granu u okviru kljua HKEY_LOCAL_MACHINE, koja sadri asocijacije izmedju tipova fajlova i programa.

HKEY_CURRENT_USER je alias za granu u sastavu HKEY_USERS koja sadri konfiguracijske podatke za korisnika koji je momentalno logiran. HKEY_CURRENT_CONFIG predstavlja alias za HKEY_LOCAL_MACHINE\Config\Profile, gdje Profile uzima jedan od sljedeih brojeva 0001, 0002, itd. Sadri tekuu hardversku konfiguraciju raunara. Na sljedeoj slici je prikazana hijerarhijska struktura Registry-a:

131

Osnovni koncepti

Slika 2.50. Hijerarhijska struktura Registry-a Konice koji se odnose na raunar NT Server dri locirane na: C:\WINNT\SYSTEM32\CONFIG, pri emu se svaka konica pohranjuje u jednom fajlu koji u nazivu nema ekstenziju. Svaki hive ima dva tipa fajlova koja su mu asocirana. Ova dva fajla imaju u nazivu ekstenziju SAV, odnosno LOG. Fajl sa ekstenzijom SAV predstavlja backup konice kojeg NT kreira prilikom startanja. LOG fajl biljei svaku izmjenu koju NT Server ini u toj konici. Na sljedeoj slici su dati tipovi fajlova iz CONFIG foldera:

Slika 2.51. CONFIG folder

132

Osnovni koncepti

Podatke o korisnicima Windows NT pohranjuje u tzv. profile folder koji se nalazi u okviru winnt foldera (C:\WINNT\PROFILES\USERNAME), gdje je USERNAME login ime ili korisniki akount odreenog korisnika. Za svakog korisnika se kreira zaseban NTUSER.DAT fajl koji sadri roj sa konfiguracijskim podacima tog korisnika.

Slika 2.52. Profile file Uloga Registry-a kod NT-a moe se vidjeti sa slike 2.53.

Slika 2.53. Uloga Registry-a u okviru NT-a Setup. Windows NT Setup i bilo koji drugi setup (aplikacijski ili hardverski) dodaju konfiguracijske podatke u Registry. Setup takoer moe koristiti (itati) podatke iz Registry-a u smislu provjere da li je odreena komponenta instalirana ili ne.

133

Osnovni koncepti

Recognizer. Prilikom svakog startanja raunara, Hardware Recognizer (Ntdetect.com) smjeta hardverske konfiguracijske podatke u Registry. Windows NT Kernel. U toku system startupa, Windows NT Kernel koristi informacije iz Registrya, npr., koje device drajvere lodovati i u kojem redosljedu. Device drivers. Drajveri ureaja alju i primaju konfiguracijske podatke iz Registry-a. Sadraj Registry-a moe biti modificiran koristei jedan od sljedea tri metoda: Registry Editor System Policy Editor Windows NT Diagnostics program.

Registry Editor Registry editor je C:\WINNT\System32, ime predstavljen na slici 2.54. program koji se nalazi u folderu fajla je REGEDT32.EXE. Program je

Slika 2.54. Registry editor Na slici 2.55. se moe vidjeti Registry editor kod Windows XP-a.

134

Osnovni koncepti

Slika 2.55. XP Registry Editor Registarska baza kod Windows XP-a sadri takodjer pet tzv. root kljueva.

HKEY_CLASSES_ROOT HKEY_CURRENT_USER HKEY_LOCAL_MACHINE HKEY_USERS HKEY_CURRENT_CONFIG

Slika 2.56. Sadraj registarske baze kod XP-a: osnovni kljuevi

135

Osnovni koncepti

2.9.

Ko mercijalne desktop OS platforme


Nakon to smo se upoznali sa osnovnim OS-konceptima, u nastavku emo detaljnije prikazati najee koritene desktop operativne sisteme, dok e o serverskim OS platformama biti rijei u drugoj knjizi. Obzirom da, kako smo ve naglasili, na tritu danas postoji veliki broj komercijalnih i ne-komercijalnih OS-a, praktino je nemogue obraditi sve verzije. Stoga smo, imajui u vidu ciljeve i domete knjige, izvrili odreenu selekciju kada su u pitanju obje navedene klase. Desktop operativne sisteme emo predstaviti preko tri platforme koje se najee koriste: Microsoft Windows, Apple MacOS, i Linux. Windows je obraen neto detaljnije, imajui u vidu injenicu da je ovaj OS daleko najrairenija desktop OS-platforma danas u svijetu (preko 90%). Potom su prezentirane osnovne karakteristike MacOS-a, a takodjer je dat i uporedni pregled osnovnih znaajki korisnikog interfejsa Windowsa i MacOS-a. Posebno je obradjena RedHat distribucija Linuxa u funkciji desktop OS-a, odnosno desktop alternative Windowsu.

136