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