soft ver

Upload: zeljka-gosaric

Post on 04-Nov-2015

5 views

Category:

Documents


0 download

DESCRIPTION

hhh

TRANSCRIPT

  • Softver

    81

    5. SOFTVER

    5.1. OPERATIVNI SUSTAVI

    5.1.1. Funkcije operativnih sustava

    Operativni sustavi ine sistemski softver u najuem smislu. Bez njih se ne moe ni zamisliti rad raunala. Njihova osnovna funkcija je ostvarivanje svih potrebnih preduvjeta za rad bilo kojeg drugog programa, kako korisnikog tako i drugih sistemskih programa. Oni su najue povezani s hardverom i tako osiguravaju infrastrukturu koja svim drugim programima omoguava komunikaciju s razliitim komponentama raunala. Veina operativnih sustava pisana je za tono odreenu hardversku platformu.

    Operativni sustavi sastoje se od vie programa i programskih modula. Zbog svoje specifine funkcije odreeni dijelovi operativnog sustava moraju se aktivirati prije svih drugih programa. To se deava na poetku rada raunala, neposredno nakon njegova ukljuivanja. Uitavanje jezgre operativnog sustava u memoriju obavlja se potpuno automatski. Kod osobnih raunala to ine BIOS rutine koje se nalaze u ROM-u. Kada je jednom uitan, taj dio operativnog sustava trajno ostaje aktivan u memoriji, dok se ostali dijelovi aktiviraju po potrebi.

    Osnovni koncept odnosa komponenti raunalnog sustava i pozicija operativnog sustava u odnosu na hardver, korisnika i korisniki softver, prikazan je na slici 5.01.

    Slika 5.01. Pozicija operativnog sustava u raunalnom sustavu

    Hardver

    Korisnik

    Korisniki softver

    Operativni sustav

  • Poslovna informatika

    82

    Osnovne funkcije operativnih sustava mogu se podijeliti u tri osnovne kategorije, a to su:

    q Upravljanje hardverom.

    q Upravljanje i podrka radu drugih programa.

    q Podrka komunikaciji korisnika s raunalom.

    Upravljanje hardverom je primarna funkcija operativnog sustava. Svi dijelovi raunala, kao digitalni ureaji, zahtijevaju programsko upravljanje njihova rada. To se odnosi i na centralnu i na periferne jedinice.

    Raunalne konfiguracije mogu biti vrlo razliite i ukljuivati iroku lepezu perifernih ureaja. Jedna od najvanijih zadaa operativnog sustava jest da osigura ispravnu upotrebu svih tih ureaja. Zbog raznolikosti perifernih ureaja, konkretne programe za njihovo upravljanje (driver) izrauje njihov proizvoa, a prilikom instalacije oni postaju dio operativnog sustava raunala.

    Operativni sustav nadgleda i usmjerava sve procese koji se odvijaju u raunalu. Prema broju istovremenih procesa koje podrava dijele se na:

    q Jednozadane (Single-tasking).

    q Viezadane (Multi-tasking).

    Jednozadani su znatno jednostavniji, dok viezadani operativni sustavi mogu istovremeno izvravati vei broj zadataka iskazanih razliitim programima, odnosno potprogramima. Vrlo slina podjela, koju je ponekad nemogue razlikovati od prethodne, dijeli operativne sustave na:

    q Jednokorisnike (Single-user).

    q Viekorisnike (Multi-user).

    Naime mogui su jednokorisniki, viezadani operativni sustavi. Viekorisniki operativni sustavi podravaju multiprogramsku obradu podataka. Prije poetka rada svaki korisnik se mora prijaviti sa imenom i lozinkom, da bi raunalo znalo koje mu resurse treba staviti na raspolaganje, a u skladu s korisnikim ovlastima.

    Uz to, operativni sustav predstavlja vezu korisnikih programa prema hardveru, koji od njega zahtijevaju izvravanje hardverskih funkcija, te ne brinu o tom aspektu izvoenja, to bitno olakava njihovo programiranje.

    Podrka komunikaciji korisnika s raunalom manifestira se prije svega tipom korisnikog suelja koje podrava operativni sustav, pa se po tom kriteriju razlikuju operativni sustavi koji su:

    Znakovno orijentirani.

    Grafiki orijentirani.

  • Softver

    83

    5.1.2. Operativni sustavi za mikroraunala

    Operativni sustavi mikroprocesorskih raunala u poetku su bili relativno jednostavni u odnosu na operativne sustave velikih raunala, ali su s vremenom preuzimali veinu njihovih funkcija i mogunosti, a pri tome zadravajui svoje prednosti i specifinosti. Osnovna razlika u poetku je bila u tome da su operativni sustavi velikih raunala brinuli o velikom broju korisnika i boljoj iskoristivosti centralne jedinice, a operativni sustavi mikroraunala o jednostavnosti rada za korisnika. U nastavku su kratko opisani najpoznatiji operativni sustavi za mikroraunala, odnosno u naim uvjetima najpoznatiji operativni sustavi za PC kompatibilna osobna raunala.

    UNIX

    Unix je originalno razvijen kao privatni istraivaki projekt male grupe entuzijasta sedamdesetih godina 20. stoljea. Njihov cilj je bio dizajnirati operativni sustav koji e biti jednostavan, napisan u viem programskom jeziku i omoguiti ponovno koritenje postojeeg programskog koda. Tipini kod tadanjih operativnih sustava je bio vrlo velik, kompleksan i napisan u asembleru. Unix je imao relativno malu koliinu koda napisanu u asembleru, a veina je bila napisana u viem programskom jeziku zvanom C. Grupa je svoj rad nastavila u C-u, tako da su na kraju cijeli kernel, jezgru operativnog sustava, i pratee module napisali u viem programskom jeziku. Kako je nastao kao istraivaki projekt, u poetku se Unix-ov kod besplatno distribuirao, uglavnom po sveuilitima.

    Vaan dogaaj u razvoju Unix-a je pojava inaice Unix 7, koja je napisana radi podrke razliitim hardverskim arhitekturama. U meuvremenu poinje naplata Unix-a, te je ta zadnja besplatna inaica postala osnova za sve budue verzije.

    Unix je izvorno viekorisniki i viezadani operativni sustav. Radi ranog nastanka i podrke razliitim hardverskim platformama, Unix je rasprostranjen na razliitim raunalnim sustavima, od najveih do osobnih, a danas je vrlo popularan kao operativni sustav za razliite vrste servera.

    Jedna od mana Unix-a bilo je njegovo suelje koje je vrlo komplicirano za poetnike. U meuvremenu se mnogo uloilo u razvoj grafikog suelja, kako bi se olakao rad irem krugu korisnika.

    DOS

    DOS (Disk Operating System) je najstariji i dugo vremena najrasprostranjeniji operativni sustav za mikroraunala kompatibilna s IBM-ovim PC raunalom. Svoju popularnost moe zahvaliti naglom porastu koritenja ovog

  • Poslovna informatika

    84

    tipa raunala tokom osamdesetih godina 20. stoljea, prije svega u poslovnom svijetu.

    Radi se o relativno jednostavnom, 16 bitnom, jednokorisnikom i jednozadanom, znakovno orijentiranom operativnom sustavu. Jedno od osnovnih ogranienja ovog operativnog sustava je upravljanje memorijom, to je neposredna posljedica arhitekture PC-a, odnosno njegovih prvih mikroprocesora, koji su ograniavali operativno iskoristivu memoriju na 640 kB.

    Brzi razvoj raunalne tehnologije ubrzo je omoguio znatno monije konfiguracije osobnih raunala, vee brzine procesora i vee memorijske kapacitete, pa su razvijene posebne softverske tehnike za zaobilaenje DOS-ovih ogranienja koje su omoguile njegovo koritenje i na takvim raunalima, ali je ostalo ogranienje nedostatka grafikog suelja.

    MS WINDOWS

    MS Windows-i ine zapravo itavu porodicu operativnih sustava. Poeli su se paralelno razvijati kao nadogradnja DOS-u u vidu grafikog korisnikog suelja koje je kasnije preraslo u operativni sustav, te izvorno kao viekorisniki i viezadani operativni sustav. Dvije osnovne grane razvoja su koristile razliite tehnologije, bile namijenjene razliitim poslovima i kategorijama korisnika, uz razliite naine osvajanja trita.

    Zahvaljujui poslovnoj politici vodeeg proizvoaa softvera u svijetu, Windows-i predstavljaju de-facto standard na PC kompatibilnim raunalima. Windowsi su nastali kao odgovor na izraene zahtjeve korisnika za radom na mnogo produktivnijem i privlanijem okruenju i ne skrivaju svoju vezu s Apple Macintosh-em, od kojeg su posuena mnoga idejna rjeenja.

    Strogo gledano, prve inaice Windows-a koje su predstavljale nadogradnju DOS-a nisu operativni sustavi u pravom smislu rijei budui da nisu potpuno samostalni. S novim inaicama Windows-a, DOS prestaje biti preduvjet njihove instalacije, odnosno Windows-i postaju pravi operativni sustav. Ta izvorna povezanost DOS-a i Windows-a proizvodi itav niz posljedica kroz obvezu Windows-a da osiguravaju izvoenje DOS korisnikih programa.

    S druge strane Windows NT predstavlja izvorno viekorisniki i viezadani operativni sustav namijenjen razliitim vrstama servera. Najnovije inaice Windows-a ukazuju na ujednaavanje tehnologija u izgradnji ovih sustava, uz prevladavanje NT tehnologije.

    LINUX

    Linux je jedan od operativnih sustava izraslih oko Unix arhitekture, te postoje odreene slinosti s njim, ali se ne mogu izjednaavati. Ujedno postoje i slinosti s Windows NT operativnim sustavom to se moe objasniti nekom

  • Softver

    85

    vezom i NT-a s Unix-om. To je u potpunosti 32-bitni viekorisniki i viezadani operativni sustav. Linux je mogue koristiti i u tekstualnom i u grafikom modu, pri emu se osnovna funkcionalnost operativnog sustava bitno ne razlikuje.

    Razvoj Linux-a je zapoeo na ideji potpuno besplatnog operativnog sustava. Zahvaljujui Internetu i ogromnoj koliini entuzijazma sa svih strana svijeta, nastao je samostalan, besplatan i sve popularniji operativni sustav. Utemeljen na ideji besplatnosti, za razliku od drugih operativnih sustava, Linux nije ogranien na jedan izvor isporuke. Nema bitne razlike meu razliitim izvorima isporuke, jer se uvijek radi o jednom te istom Linux-u koji moe biti isporuen s vie ili manje dodatnih programa.

    Problemi Linux-a su na korisnikoj strani jer postoji relativno slab izbor kvalitetnih korisnikih programa. No, i to se mijenja, ali je slijedei moda i vei problem Windows nasljee. Linux postaje omiljen meu informatiarima jer prua maksimalnu slobodu u programiranju i radu. U uvjetima dominacije MS operativnih sustava i korisnikih programa za njih, kreirani su emulatori koji omoguavaju koritenje DOS ili Windows korisnikih programa pod Linux-om.

    5.1.3. Virtualna memorija

    Virtualna memorija je softverski mehanizam kojim se omoguava izvoenje korisnikih programa koji su vei od raspoloive radne memorije, ili pak istovremeno izvoenje vie korisnikih programa ija ukupna veliina prelazi veliinu raspoloive radne memorije. Naime, po osnovnom konceptu rada raunala program koji se izvodi mora biti u radnoj memoriji.

    Oslanjajui se na svojstvo lokalnosti izvoenja programa mogue je postii izvoenje korisnikih programa koji su vei od radne memorije, maksimalno do veliine adresnog prostora, odnosno mogunosti adresiranja samog procesora. Vanjska memorija preuzima dio uloge radne, a da to bitno ne usporava rad raunala, iako su vanjske memorije viestruko sporije od radne.

    Svojstvo lokalnosti izvoenja programa pokazuje da e se u odreenom vremenskom intervalu izvoditi samo dio instrukcija korisnikog programa, pri emu su one fiziki blizu jedna druge. Nije potrebno da ostali dijelovi programa za to vrijeme budu u radnoj memoriji, ve je bitno osigurati da, kada procesor zatreba instrukciju koja nije u memoriji, postoji mehanizam koji e sa vanjskih memorija uitati novi dio programa koji sadri potrebnu instrukciju.

    U tu se svrhu formira virtualna memorija ija se slika pohranjuje na magnetskom disku. Virtualna i radna memorija logiki su podijeljene na dijelove jednake i fiksne veliine, koji se nazivaju stranicama. Naziv stranica nije sluajan i odlina je analogija sa stranicama knjige. Postupak listanja knjige analogan je postupku stranienja u konceptu virtualne memorije.

  • Poslovna informatika

    86

    5.2. PROGRAMI PREVODITELJI

    5.2.1. Programski jezici

    ovjeku je stran strojni jezik jer ga ne moe izravno percipirati. Zbog toga je bilo potrebno razviti stanovite posrednike mehanizme koji bi premostili razlike izmeu jezika ovjeka i raunala. Pri tome su mogue dvije alternativne mogunosti: ili razviti raunalne sustave koji bi razumjeli prirodni jezik, ili pak razviti mehanizam koji bi ovjeku doputao izraavanje u nekom simbolikom jeziku slinom prirodnom jeziku koji bi se automatizirano prevodio na strojni jezik. Iako se tei prvoj alternativi, druga je bila i jo uvijek je dominantna opcija. Mehanizam koji to omoguava su programski jezici i programi prevoditelji. Razvoj programskih jezika, usporedo s tim i programa prevoditelja, mogue je podijeliti u nekoliko generacija. Osnovni je kriterij u kojoj mjeri oslobaaju programera dijela problema vezanih za rad samog raunala, te mu omoguavaju da se posveti rjeavanju korisnikog problema. Njihov razvoj je tekao postupno, te se danas moe govoriti o pet generacija programskih jezika. U tablici 5.01. prikazani su osnovni podaci o generacijama programskih jezika.

    Generacija Opis Primjer instrukcije zbrajanja

    Predstavnik Omjer instrukcija

    1. Strojni jezici 101101101110

    2. Simboliki mnemoniki jezici

    ADD X,Y ASEMBLER 1 : 1

    3. Vii programski jezici

    C = X + Y FORTRAN COBOL BASIC

    1 : 10

    4. 4 GL SUM(IZNOS) SQL 1 : 100

    5. Programski generatori 1 : 1000

    Tablica 5.01. Generacije programskih jezika

    Najstarija raunala zahtijevala su da programer prevede sve algoritme na strojni jezik. Taj je pristup dao veliku vanost izuavanju algoritama, budui je efikasniji algoritam smanjivao broj linija programskog koda, a time i prepisivanje binarnog koda i vjerojatnost pogreke.

  • Softver

    87

    Prvi korak u razvoju programskih jezika bilo je uvoenje simbola i kratica umjesto binarnih oznaka prilikom pisanja programa na papir, a koji su se na raunalo prenosili u strojnom jeziku. Nije trebalo dugo, pa da se i sam postupak prevoenja prepozna kao procedura koju moe izvoditi samo raunalo. Tako su se razvili programi nazvani asembleri koji su prevodili program napisan mnemonikim kodom u strojni jezik. Sustav predstavljanja programa pomou mnemonika prepoznat je kao programski jezik i takoer je nazvan asembler.

    Strojni jezik smatra se prvom generacijom programskih jezika, a asembler drugom generacijom. Iako je asembler imao niz prednosti u odnosu na strojni jezik, nedostajalo mu je cjelovitije okruenje. Osnovne instrukcije su bile iste kao i kod strojnog jezika. Razlika je postojala samo u sintaksi, pa je program napisan u asembleru ovisio o procesoru kojem je bio namijenjen, te nije bilo jednostavno prenositi program na raunalo sa drugim tipom procesora. Drugi nedostatak je bio u tome to je programer bio prisiljen, uz znanja o problemu koji je trebalo obraditi, usvojiti i znanja o radu samog hardvera.

    Daljnji razvoj programskih jezika temeljio se na ideji da se u fazi projektiranja mogu koristiti apstraktniji koncepti od onih koji e biti koriteni u realizaciji. Tako su nastali programski jezici tree generacije koji koriste koncepte koji su bliski ljudima i istovremeno neovisni o hardveru na kojem e se program izvoditi. Tipini primjeri su FORTRAN za matematike i znanstvene proraune te COBOL za poslovne aplikacije, koji koriste iste koncepte koji se koriste u problemskim podrujima. Instrukcije imaju oblik matematikih izraza ili jednostavnih reenica govornog jezika.

    Pri konstrukciji viih programskih jezika trebalo je osigurati da se svaki koncept koriten u jeziku moe jednoznano prikazati osnovnim naredbama strojnog jezika. Upravo to je zadatak programa prevoditelja, koji postoje za svaki vii programski jezik. Pri prevoenju se stoga jedna instrukcija vieg programskog jezika preslikavala u itav niz strojnih instrukcija.

    Jedna od ideja koja se eljela ostvariti razvojem tree generacije jezika bila je neovisnost o vrsti raunala, odnosno operativnom sustavu na kojem e se program izvoditi, to je uvelike i ostvareno. Teoretski, program napisan jezikom tree generacije moe se koristiti na bilo kojem raunalu ako za njega imamo odgovarajui program prevoditelj. U praksi su pak neki problemi ostali nerijeeni, te je obino potrebno nainiti odreene promjene u izvornom programu.

    Ove prve tri generacije programskih jezika nazivaju se proceduralnim jezicima jer slue za pisanje programa u kojima programer mora potpuno opisati proceduru, odnosno postupak rjeavanja problema na temelju odabranog algoritma.

  • Poslovna informatika

    88

    Programski jezici etvrte generacije nazivaju se i neproceduralnim programskim jezicima jer se od korisnika, koji nije nuno i programer, trai samo formalna specifikacija zahtjeva to raunalo treba napraviti, a ne i nain kako e to napraviti. Naravno da iza takvih programskih jezika mora postojati programski sustav u kome su ugraeni opi algoritmi za rjeavanje odreenog tipa problema. Tipian primjer su jezici za rad sa bazama podataka, kao to je SQL o kome e biti vie rijei u narednim poglavljima.

    Peta generacija programskih jezika je tako nazvana samo uvjetno da bi se ukazalo na trend razvoja sredstava za programiranje. Ne radi se o nekim novim programskim jezicima ve o pokuaju automatizacije izrade dijelova programa, cijelih programa, pa ak i cijelih manjih aplikacija bez programiranja. Govori se o programiranju bez programiranja, odnosno aplikacijskim generatorima. Korisnik komunicira sa raunalom na visokoj semantikoj razini, u pravilu putem grafikog korisnikog suelja, gdje korisnik kombiniranjem grafikih simbola na vrlo intuitivan nain specificira programske zahtjeve. Na temelju tih zahtjeva, programski razvojni alat u prvom koraku automatski generira programski kod u nekom od viih programskih jezika, a on se dalje u okviru razvojnog alata prevodi u strojni kod.

    5.2.2. Prevoenje

    S obzirom na injenicu da postoji veliki broj programskih jezika jasno je da postoji isto tako velik broj programa prevoditelja. Osim po tome za koji su programski jezik napisani, programi prevoditelji se razlikuju i u mnogim drugim pojedinostima. Ipak, moe se uoiti jedan skup zadataka koji je zajedniki svim programima prevoditeljima. Meu te zadatke spadaju:

    leksika analiza i dijagnostika pogreaka,

    sintaktika analiza i dijagnostika pogreaka,

    konstrukcija radnog programa,

    optimizacija radnog programa,

    izvjetavanje o obavljenom poslu.

    Shema cjelokupnog postupka prevoenja prikazana je na slici 5.02.

    Leksikom analizom program prevoditelj provjerava mikrostrukturu izvornog programa i formira manje logike cjeline koje su pogodne za prevoenje na strojni jezik. Instrukcije izvornog programa analiziraju se radi otkrivanja eventualnih formalnih pogreaka, vri se saimanje instrukcija izvornog programa, a instrukcije koje su po svojoj prirodi vieznane ili alternativne interpretiraju se na jednoznaan nain, koji ne mora biti ispravan.

  • Softver

    89

    Slika 5.02. Postupak prevoenja izvornih raunalnih programa

    Sintaktikom analizom izvornog programa kontrolira se potivanje gramatike programskog jezika. Kako bi se ovaj zadatak mogao izvriti na odgovarajui nain, program prevoditelj formira stablastu strukturu izvornog programa prema pravilima sintakse danog programskog jezika. Odudara li neka struktura izvornog programa od pravila sintakse, program prevoditelj utvruje i

    Programiranje

    Prevoenje

    Izvoenje

    Povezivanje

    Viekratnoizvoenje

    Izvorni program

    Strojneinstrukcije

    Radni program

    Formalneprogramske

    pogreke

    KompajleriInterpreteri

    Bibliotekasistemskih

    potprograma

    Bibliotekaradnih

    programa

  • Poslovna informatika

    90

    evidentira pogreku. O svim pogrekama uoenim u ove dvije prve faze, program prevoditelj izvjetava programera, a ako su pogreke ozbiljne prekida se daljnji postupak prevoenja.

    Konstrukcija radnog programa slijedi ukoliko program prevoditelj nije otkrio formalne pogreke u izvornom kodu. U ovoj fazi program prevoditelj pridjeljuje simbolikim instrukcijama izvornog programa odreeni skup strojnih instrukcija. Odnos broja instrukcija izvornog i radnog programa u pravilu je 1 : n, to znai da se jedna instrukcija izvornog programa zamjenjuje s veim brojem strojnih instrukcija. Taj broj ovisi obrnuto razmjerno o proceduralnosti programskog jezika. Jezici vee proceduralnosti imaju manji broj strojnih instrukcija po instrukciji izvornog programa.

    Optimalizacija radnog programa je svojstvo kvalitetnijih programa prevoditelja. Ona se ogleda u prestrukturiranju radnog programa, pri emu algoritam programa ostaje neizmijenjen, ali se vri eliminiranje eventualnih redundantnih instrukcija i eventualna izmjena njihova redoslijeda. Proces optimizacije je iterativan, to znai da se ponavlja sve dok se ne stvori optimalna verzija radnog programa, koja istovremeno predstavlja vjeran prijevod izvornog programa. U praksi se to ipak izvodi u najvie dva koraka, pri emu je ponekad mogue odabrati kriterij optimizacije koji moe preferirati memorijske ili procesorske resurse.

    Izvjetavanje o radu programa prevoditelja odvija se usporedo s drugim fazama, te na kraju ukoliko su sve faze uspjeno zavrene daje konani protokol o prevoenju.

    Postoje dvije koncepcije rada programa prevoditelja. Prema prvoj, programi prevoditelji izvorni program prevode odjednom i u cijelosti. Takvi programi prevoditelji nazivaju se kompajlerima. Oni sukcesivno vre sve faze prevoenja, da bi konani rezultat bio program u strojnom jeziku, ali koji jo nije spreman za izvoenje na raunalu. Dodatno je takav program potrebno upotpuniti i povezati s nizom sistemskih potprograma da bi se konano dobio radni ili izvedivi program, koji je mogue pohraniti na vanjskim memorijama, te ga viekratno neposredno pozivati na izvoenje.

    Druga vrsta programa prevoditelja su interpreteri koji kombiniraju postupke prevoenja i izvoenja programa. Nakon faza leksike i sintaktike analize pojedine instrukcije izvornog programa, interpreteri odmah pristupaju njenom prevoenju i izvrenju skupa tako dobivenih strojnih instrukcija uz dinamiko (run time) povezivanje s potrebnim sistemskim potprogramima. Ukoliko su otkrili neke formalne pogreke u instrukciji izvornog programa o tome odmah izvjetavaju programera i daju mu mogunost ispravljanja pogreke prije nastavka prevoenja. Iz ovoga je jasno da interpreteri ne formiraju radni program, te se postupak prevoenja ponavlja svaki put kada je potrebno koristiti program.

  • Softver

    91

    5.3. OSTALI SISTEMSKI PROGRAMI

    5.3.1. Pomoni programi

    Problemi s kojima se susreu korisnici raunala su dvojaki. Vei dio tih problema vezan je za njihov svakodnevni profesionalni rad, zbog kojih i koriste raunalo. Pri rjeavanju tih problema koriste aplikativne ili korisnike programe, bilo da se radi o obraunu plaa u poduzeu, upravljanju zalihama, analizi odnosa s kupcima ili neem drugom u nizu problema tog tipa.

    Druga grupa problema vezana je uz operativne aktivnosti korisnika u radu s raunalom, odnosno svakodnevno koritenje raunala. Ako operativni sustav nedovoljno podrava neke svakodnevne aktivnosti koritenja raunala, potrebni su dodatni programi koji e ih olakati.

    Pomoni programi predstavljaju nadopunu operativnih sustava i korisnikih programa. Oni nadopunjavaju funkcije operativnih sustava i ine rad aplikativnih programa efikasnijim i ugodnijim. Po svojoj prirodi pomoni programi se spram operativnog sustava ponaaju kao i aplikativni programi, premda esto mnogo intenzivnije i neposrednije koriste funkcije operativnih sustava. Iako ih operativni sustav tretira slino aplikativnim programima, njihovo svrstavanje u sistemski softver uvjetovano je s dvije injenice.

    q Problemi koje rjeavaju su u domeni rada samog raunala, odnosno ne odnose se na konkretne zahtjeve primjene raunala za aplikativne potrebe korisnika. S tim problemima raunalo e funkcionirati, ali pruena kvaliteta radu korisniku moe biti nedovoljna.

    q Izrauju ih softverske kue ili pojedinci kao standardne programe za sve korisnike pojedinih operativnih sustava, jer su vrsto vezani za operativne sustave, te se zahtijeva poznavanje internog funkcioniranja operativnih sustava pri pisanju takvih programa.

    Postoji mnogo vrsta pomonih programa pa ih je teko i razvrstati u odreene kategorije, a gotovo nemogue sve nabrojati. Ovi programi ovise o operativnom sustavu za koji su namijenjeni. Namijenjeni su za razliite aktivnosti koje korisnik treba obavljati u smislu odravanja raunala u optimalnom radnom i funkcionalnom stanju. S porastom sloenosti operativnih sustava dio pomonih programa se integrira u sam operativni sustav, a istovremeno se javljaju potrebe za novim pomonim programima. Ipak se mogu spomenuti samo neke najpoznatije grupe pomonih programa koje se koriste s danas uobiajenim operativnim sustavima.

    q Programi za saimanje podataka tijekom rada slue za efikasnije koritenje magnetskih memorija, na nain da se podaci pohranjuju u komprimiranom obliku i time smanjuju zauzee memorijskog prostora. Kod pristupa podacima odvija se suprotni postupak, a sve je potpuno netransparentno za

  • Poslovna informatika

    92

    korisnika. Kako se radi o softverskim tehnikama to donekle umanjuje ostale performanse raunala.

    q Programi za arhiviranje podataka odnosno stvaranje sigurnosnih kopija podataka takoer koriste sofisticirane tehnike saimanja izvornih podataka, ali vode rauna i o zamjeni starih kopija novima, restauriranju pojedinih datoteka i slino.

    q Programi za prijepis podataka na druge medije koriste se za umnoavanje kopija, izradu sigurnosnih kopija podataka ili slino. Danas je tipino prepisivanje podataka na CD medij koje se obavlja postupkom popularno nazvanim prenje, zbog koritenja laserske tehnologije.

    q Programi za otkrivanje i otklanjanje problema na disku slue za detektiranje oteenja na magnetskim diskovima i logiko iskljuivanje tih dijelova iz raspoloivog memorijskog prostora. Oni ujedno slue i za preslagivanje dijelova pojedinih datoteka na disku u fiziki kompaktne zapise zbog boljih performansi.

    q Antivirusni programi su sredstvo zatite od napada raunalnih virusa, te za otklanjanje posljedica njihovog djelovanja ukoliko je do njega ve dolo. Ova vrsta pomonih programa je posebno bitna jer moe sprijeiti ogromne tete nastale destruktivnim djelovanjem virusa.

    Raunalni virusi

    Virus je rije koje se pribojavaju korisnici raunala diljem svijeta, posebice oni koji uestalo koriste Internet. Virus je svaki raunalni program koji se moe sam replicirati, stvarati kopije samog sebe, s ciljem prenoenja virusa s jednog raunala na drugo bez pomoi od strane korisnika. Takvi programi su ime dobili na temelju njihove slinosti sa biolokim virusima. Raunalni virusi zaraze raunalo, repliciraju se unutar njega, te se dalje prenose na druga raunala s kojima dou u kontakt, slino kao to se virus neke bolesti iri meu ljudima.

    in umnoavanja virusa unutar raunala sam po sebi nije opasan. Ako je neki program zaraen virusom, to ne znai automatski da taj program nee funkcionirati na eljeni nain. Problem nastaje kada su, osim funkcije replikacije, virusi programirani da izvravaju i druge aktivnosti. Te aktivnosti mogu biti dvojake i prema tome se raunalni virusi dijele u dvije osnovne kategorije. Sluei se i dalje medicinskim rjenikom, to su:

    q Patoloki, koji su destruktivni i izazivaju razliite oblike oteenja podataka, programa i samih operativnih sustava.

    q Benigni koji samo pokazuju svoju prisutnost i time ometaju normalan rad korisnika.

  • Softver

    93

    Jasno je da su mnogo opasniji patoloki virusi. tete uzrokovane djelovanjem ovih virusa, kao to su gubitak podataka, zamrzavanje raunala i slino, nastaju kada se aktivira njegov destruktivni dio, dio programa pisan s namjerom nanoenja tete na raunalu udomitelju. Takav se destruktivni dio obino aktivira kad se ispune odreeni kriteriji, na primjer odreeni datum, vrijeme provedeno u raunalu ili broj kopija virusa. Dobar primjer toga je zloglasni virus Michelangelo iji se destruktivni dio aktivira i formatira disk nesretnih korisnika samo estog oujka, na umjetnikov roendan.

    Do prije nekoliko godina veina virusa se prenosila s raunala na raunalo pomou disketa. U novije vrijeme javljaju se nove vrste virusa s razliitim nainima irenja meu raunalima, posebno putem raunalnih mrea. Ovisno o vrsti djelovanja i ciljanim oteenjima, patoloki virusi se openito mogu podijeliti u nekoliko glavnih skupina:

    q Virusi koji napadaju izvrne datoteke, odnosno radne programe. Kada se zaraeni program pokrene, pokrene se i virus koji nastavlja svoje repliciranje i destruktivno djelovanje. Drugi virusi pak dolaze samostalno i njihovo pokretanje je neovisno o ostalim programima.

    q Virusi koji inficiraju sistemske datoteke, odnosno odreena sistemska podruja na disku, posebno boot sector. To je sistemsko podruje koje se koristi svaki put kada se pokrene raunalo te uz uitavanje sistemskog softvera s diska, time se svaki put aktivira i virus.

    q Makro virusi su vrlo est oblik virusa, koji uglavnom napadaju dokumente kreirane aplikacijama uredskog poslovanja. Deaktiviranjem makro mogunosti samog dokumenta onemoguava se i djelovanje virusa, te ova vrsta ini uglavnom najmanje tete od svih vrsta virusa.

    q U posljednje vrijeme najraireniji su virusi koji se ire putem Interneta, odnosno s e-mail porukama i datotekama u njihovom privitku (attachment). Takvi virusi se aktiviraju otvaranjem privitka od strane korisnika, te se sami, bez znanja vlasnika zaraenog raunala alju na e-mail adrese koje pronau na raunalu, u adresaru ili na samom Internetu. Brzim irenjem i eksponencijalnim rastom broja poslanih poruka ovi virusi napadaju i samu infrastrukturu Interneta, stvarajui zaguenja i onemoguavajui njegov rad.

    q Trojanski konj (Trojan horse) je virus koji se ne iri, nego je stavljen u normalni program, a najee u program s odstranjenim funkcijama za zatitu od neovlatenog kopiranja.

    q U novije vrijeme se osim pojma virus koristi i naziv crv (Worm) za raunalni program za irenje meu raunalima preko Interneta. Program se razmnoava skriven u radnoj memoriji raunala, a najee napada sam operativni sustav. To se oituje usporavanjem rada raunala ili padom raunalnog sustava, pri emu crv izravno ne inficira druge programe i ne unitava podatke.

  • Poslovna informatika

    94

    Virusi koriste propuste u sigurnosnom sustavu operativnih sustava, te se proizvoai operativnih sustava trude da naknadnim ispravkama (patch) onemogue djelovanja virusa, ali sve se to deava kada je novi virus ve poeo djelovati. Stoga je i dalje jedan od osnovnih oblika zatite i otklanjanja posljedica koritenje antivirusnih programa.

    Antivirusni programi

    Najbolji nain za zatitu od virusa jest paljivo praenje izvora dokumenata ili programa koji se snimaju ili pokreu na raunalu. Obzirom da ovo postaje dosta teko u uvjetima sve veeg irenja e-mail virusa, koritenje antivirusnog programa postaje apsolutna nunost.

    Antivirusni program je softver dizajniran da detektira i eliminira raunalne viruse iz e-mail-ova, memorije, s magnetskih diskova ili drugih mjesta gdje se virus nalazi. Antivirusni programi sadre bazu podataka u kojoj su evidentirane pojedinane karakteristike veine poznatih virusa. Program funkcionira na nain da pregledava datoteke i druge programe u raunalu traei takve karakteristike, te u sluaju pronalaska traenih osobina upozorava korisnika na prisustvo virusa i nudi mu odgovarajue alternative za akciju. Baza podataka s karakteristikama virusa se mora osvjeavati redovito novim informacijama na temelju dokumentacije proizvoaa antivirusnog programa, da bi program bio u stanju prepoznati nove vrste virusa.

    5.3.2. Komunikacijski i mreni programi

    Raunalne komunikacije su doivjele bitan napredak u proteklih tridesetak godina. Prele su put od prvih pokuaja razmjene podataka izmeu terminala i raunala, razmjene podataka izmeu dva raunala putem fiksnih komunikacijskih veza, do dananjih globalnih mrea za prijenos podataka te sve prisutnijih mobilnih mrea. Uz to se ostvarivao trend integracije i jedinstvenog prijenosa svih oblika podataka. Razvoj tehnolokih mogunosti telekomunikacijskih sustava pratio je sve sofisticiraniji komunikacijski i mreni softver, uz standardiziranje telekomunikacijskih protokola.

    Osnovne funkcije komunikacijskog softvera u poecima njegovog razvoja bile su:

    q Uspostavljanje komunikacijske veze, upravljanje komunikacijskim procesorima te kontrola ispravnosti prijenosa podataka.

    q Premoivanje komunikacijskog jaza zbog razliitih standarda koje su primjenjivali razliiti proizvoai. To nije bio veliki problem dok je kompletan hardver u nekoj mrei bio proizveden od istog proizvoaa. Pojavom potrebe povezivanja razliitih sustava ovaj se problem potencira.

  • Softver

    95

    Pojavom i intenzivnim irenjem raunalnih mrea komunikacijski softver prerasta u mreni softver s mnogo sloenijim funkcijama koje mora ispunjavati. Na razini lokalnih mrea pojavljuju se posebni softverski paketi namijenjeni umreavanju osobnih raunala iji operativni sustavi nisu imali komunikacijske sposobnosti. S vremenom ovi operativni sustavi dobivaju te komponente, pa se umanjuje potreba za takvim posebnim programima. S druge strane s pojavom mrea za prijenos podataka irokog dosega, one preuzimaju veliki dio funkcija komunikacijskog softvera i tako rastereuju korisnika raunala.

    Danas je teko tono definirati to je to komunikacijski softver kao posebna kategorija koja se koristi na korisnikim raunalima, jer se temeljni komunikacijski softver nalazi na raunalima u okviru mrea za prijenos podataka. Primjer komunikacijskog programa na osobnom raunalu moe biti program koji slui za udaljeno preuzimanje datoteka ili softver koji omoguava pristup Internet uslugama, ali pri toj kvalifikaciji treba biti vrlo fleksibilan.

    5.3.3. Sustavi za upravljanje bazama podataka

    Sustav za upravljanje bazom podataka ili DBMS (Database Management System) je programski sustav koji omoguava izdvajanje funkcija i aktivnosti upravljanja podacima iz aplikacijskih programa, ime se postie:

    q Jednostavniji razvoj i odravanje korisnikih programa.

    q Vea fleksibilnost izmjena informacijskog sustava.

    q Bolje performanse informacijskog sustava.

    Baze podataka temelje se na razliitim modelima podataka, te i sustavi za upravljanje bazama podataka moraju u potpunosti podravati pravila odgovarajueg modela podataka. Relacijski model podataka danas je dominantan, pa se DBMS za taj model podataka oznaava sa RDBMS.

    Osnovne funkcije koje mora podrati svaki DBMS su:

    q Definicija podataka. DBMS mora biti u stanju opisati shemu baze podataka uz koritenje jezika za definiciju podataka DDL (Data Definition Language).

    q Manipulacija podacima. DBMS mora biti u stanju udovoljiti svim zahtjeva korisnika za dodavanjem, pretraivanjem i izmjenama vrijednosti podataka.

    q Integritet i zatita podataka. DBMS mora biti u stanju detektirati i odbaciti svaki korisniki zahtjev koji naruava integritet baze podataka.

    q Oporavak u sluaju greke. Ako se pojavi greka u radu sustava, DBMS mora uspostaviti posljednje ispravno stanje baze podataka.

    Suvremeni DBMS se realiziraju prema klijent/server konceptu, pa e o njima biti jo rijei u narednom poglavlju.

  • Poslovna informatika

    96

    5.4. KORISNIKI SOFTVER

    5.4.1. Klasifikacija korisnikog softvera

    Korisniki ili aplikacijski softver su raunalni programi namijenjeni podrci zadovoljavanju konkretnih potreba ljudi upotrebom elektronikih raunala. Te potrebe mogu biti vrlo razliite, od olakavanja rutinskih intelektualnih poslova, preko rjeavanja raznovrsnih poslovnih, matematikih i znanstvenih problema, iskazivanja umjetnike kreativnosti do zabave. Korisniki softver daje smisao elektronikim raunalima kao tehnikom sredstvu za poveanje uinkovitosti i djelotvornosti obavljanja poslova, omoguavanje novih spoznaja, poveanje kvalitete ivljena, razvoja osobne kreativnosti te zabave. Praktino ne postoji niti jedan dio ljudske aktivnosti gdje raunala nisu nala svoje mjesto preko raznovrsnih korisnikih programa.

    S obzirom na raznovrsnost korisnikog softvera vrlo je teko uspostaviti jedinstvenu klasifikaciju. Stoga je klasifikacija korisnikog softvera viedimenzionalna. Utvruju se mogui kriteriji po kojima se mogu ocjenjivati svojstva korisnikog softvera, te se potom svaki konkretni sluaj analizira i klasificira po svakom od tih kriterija. Dodatni problem je to se zbog intenzivnog razvoja tehnologije postojei kriteriji mijenjaju i nastaju novi, pa klasifikaciju korisnikog softvera treba promatrati dinamiki i ocjenjivati stanje u odreenom trenutku.

    U nastavku su navedeni neki mogui kriteriji za klasifikaciju korisnikog softvera. Kriteriji se odnose na razliita svojstva korisnikog softvera koja mogu biti bitna pri njegovom vrjednovanju ili odabiru. To nije ni potpuna ni konana lista kriterija, ali ve ona daje izvanredno veliki broj moguih razliitih kombinacija. U konkretnim situacijama neki od tih kriterija mogu biti potpuno nebitni, ime se suava prostor moguih alternativa te olakava vrjednovanje dobrih i loih strana pojedinog programa. Ako se uzme u obzir i ope prihvaene kriterije o tome to je u nekom razdoblju dobar softver, krug se povoljnih alternativa dodatno suava.

    S obzirom na broj karakteristika korisnikog softvera, dobro je uspostaviti odreenu hijerarhiju kriterija, te je u prvom koraku klasifikacije dobro i same kriterije klasifikacije korisnikog softvera svrstati u nekoliko osnovnih kategorija:

    q Komercijalni. q Tehniki. q Pravni. q Kvalitativni. q Funkcijski. q Ekonomski.

  • Softver

    97

    5.4.2. Kriteriji klasifikacije korisnikog softvera

    Slijedea klasifikacija je ilustracija raznovrsnosti kriterija po kojima se moe promatrati korisniki softver, ali ni ona nije potpuna ni konana. Prema opremljenosti:

    profesionalni, amaterski.

    Igre i zabava: virtualna stvarnost, multimedija.

    Prema nainu stjecanja:

    samostalno izraeni, kupljeni.

    Prema nainu upravljanja: upravljan strukturom, upravljan dogaajima.

    Prema stupnju standardiziranosti:

    nestandardni, standardni.

    Prema mogunosti odravanja: lako, teko.

    Prema platformi:

    mainframe, PC.

    Prema vrsti suelja: znakovno suelje, grafiko suelje.

    Prema dijeljenju resursa:

    samostalni, mreni.

    Prema nainu komunikacije: interaktivni, posredni.

    Prema namjeni:

    Informacijski sustavi: obrada transakcija, analiza informacija.

    Prema vrsti projektiranja: strukturno orijentiran, objektno orijentiran.

    Automatizacija poslovanja: administrativnih poslova, odluivanja.

    Prema zakonskim normama: licencirani, piratski.

    Projektiranje i dizajn: inenjerske namjene, umjetnike namjene.

    Prema tehnikoj podrci: organizirana, loa.

    Obrazovanje i znanost: poduka, mat. statistike analize.

    Prema strukturi: monolitan, modularan.

  • Poslovna informatika

    98

    Prema podrci kreativnosti:

    softver za rutinske poslove, softverski alati.

    Prema arhitekturi: kompaktan, klijent/server.

    Prema prilagodljivosti:

    krut, parametriziran.

    Prema mogunosti povezivanja: otvoreni, zatvoreni.

    Navedeni kriteriji su brojni i raznovrsni, te e samo neki od njih biti kratko prokomentirani.

    Profesionalni i amaterski softver ne moraju se bitno razlikovati po svojoj funkcionalnosti, odnosno prema funkcijama koje podravaju, ali se bitno razlikuju po jednostavnosti rada za korisnika, pouzdanosti, stabilnosti, dokumentiranosti i slino. Profesionalni program treba imati dokumentiranu instalacijsku proceduru, korisnike upute, on-line pomo pri radu, korisniku davati razumljive poruke o grekama u radu, biti otporan na pogreke korisnika i slino.

    Jedna od osnovnih dilema pri izgradnji velikih informacijskih sustava je kupiti gotov standardni softverski proizvod ili izraivati softver prema vlastitim potrebama. U ranijim razdobljima bilo je teko pronai gotova rjeenja za informacijske sustave velikih poduzea koja bi zadovoljila potrebe korisnika i specifinosti poslovnih procesa. Stoga se esto pristupalo izradi softvera prema specifinim zahtjevima korisnika. Teina odluke o izradi vlastitog softvera je u injenici da je to dugotrajan, sloen i skup posao, te moraju postojati jaki razlozi za takovu odluku. Ukoliko je mogue kupiti gotov softver koji zadovoljava potrebe korisnika ostvaruju se mnoge prednosti, od manjih trokova do brzog uvoenja u poslovni proces. Danas na tritu postoje mnogobrojna standardizirana, ali i visoko parametrizirana softverska rjeenja informacijskih sustava, tako da se veina korisnika odluuje upravo za kupovinu gotovih softverskih proizvoda. Gotovo sve najvee svjetske kompanije danas koriste softverska rjeenja istog proizvoaa.

    Ako se ve kupuje gotov softver poeljno je da bude standardan. Masovna primjena osobnih raunala koja su sama po sebi visoko standardizirana, uz standardni sistemski softver, omoguila je i visoku standardizaciju korisnikog softvera, tako da na tritu postoji vrlo velika ponuda korisnikog softvera za razliite namjene.

    Softver je intelektualni proizvod, te intelektualno vlasnitvo svoga tvorca. Kupujui softver u pravilu se zapravo kupuje samo dozvola ili licenca za njegovo koritenje. Uporaba softvera za koji se ne posjeduje odgovarajua

  • Softver

    99

    licenca je zabranjena i predstavlja kazneno djelo. Ujedno je zabranjeno neovlateno umnoavanje i distribuiranje takvog softvera.

    S programerskog aspekta suvremeni korisniki softver treba biti izraen na konceptima, metodama i tehnikama u okviru objektne orijentacije. To znai da treba biti modularan, klijent/server arhitekture, s razdvojenim komponentama upravljanja podacima, poslovnim pravilima i korisnikim sueljem. Korisniko suelje mora biti grafiki orijentirano, vrlo prihvatljivo korisniku i intuitivno do stupnja da se korisnik i bez posebnih uputa moe njime koristiti, pod uvjetom da poznaje problematiku koja se sa odreenim programom rjeava.

    Ovo su bila samo neka razmatranja kljunih osobina dobrog korisnikog softvera, uz osnovnu pretpostavku da potpuno zadovoljava poslovne zahtjeve, odnosno da je funkcijski potpuno adekvatan uz dobre performanse To ukljuuje efikasno koritenje raunalnih resursa i osigurava prihvatljiva vremena odgovora, jer su suvremeni korisniki programi u pravilu interaktivni i rade u realnom vremenu.

    5.4.3. Arhitektura korisnikog softvera

    U povijesti razvoja softvera prva izmjena arhitekture programa se desila razdvajanjem softvera na sistemski i aplikacijski softver. Tada su iz raunalnih programa izdvojeni dijelovi koji su se odnosili na upravljanje hardverom, a u programima koji su bili namijenjeni rjeavanju aplikativnih problema ostali su dijelovi koji su se bavili komunikacijom s korisnikom, algoritmom rjeavanja problema i upravljanjem potrebnim podacima koje je program obraivao. Takva monolitna arhitektura aplikacijskih programa u kojoj su se ispreplitale navedene komponente dugo se vremena zadrala kao dominantna. To je esto imalo za posljedicu vrlo sloene, velike i nepregledne programe, koji su zahtijevali dugotrajnu izradu, mukotrpno testiranje i otklanjanje greaka, te posebno probleme pri odravanju odnosno naknadnim izmjenama programa.

    Pojava baza podataka i sustava za njihovo upravljanje omoguila je daljnje rastereenje i pojednostavljenje aplikativnih programa. Dio programa koji se odnosio na upravljanje podacima sveo se samo na postavljanje zahtjeva za pribavljanje potrebnih podataka, pri tom ne vodei vie rauna o tome kako do tih podataka doi. Ujedno se smanjuju i dijelovi programa vezani za kontrolu podataka jer se veina tog dijela posla prenijela na sustav za upravljanje bazom podataka. S druge strane, intenzivno koritenje baza podataka uvjetuje drugaiju komunikaciju korisnika s raunalom, jer se prelazi na njihovu neposrednu komunikaciju i interaktivni rad. To postavlja dodatne zahtjeve u dijelu upravljanja korisnikim sueljem, pa aplikativni programi i dalje ostaju veoma kompleksni za razvoj i odravanje. Pojava i popularizacija klijent/server koncepta dodatno je podrala ovaj trend, ali se nije na tome i zaustavila, ve je uspostavila suvremenu troslonu arhitekturu aplikacijskog softvera.

  • Poslovna informatika

    100

    Na slici 5.03. prikazana je evolucija arhitekture aplikativnih programa koja je vodila k njihovoj troslonoj arhitekturi.

    Slika 5.03. Evolucija arhitekture aplikativnih programa

    U skladu s klijent/server konceptom, razdvajanje aplikacije na dva dijela, dio koji se odnosi na upravljanje podacima oznaava se kao server, a dio koji se sastoji od korisnikog suelja i poslovnih pravila oznaava se kao klijent. Komunikacija izmeu klijenta i servera, koji se u pravilu alociraju na posebna raunala, odvija se razmjenom poruka, na razini postavljanja zahtijeva i njihove realizacije. Poetna klijent/server arhitektura je na strani klijenta zadrala veinu programskih funkcija, pa se takvi klijenti nazivaju debeli (fat). Alternativna arhitektura smjeta poslovna pravila na stranu servera, dok na strani klijenta ostaje samo prezentiranje podataka i naziv mravi (thin) klijent. Suvremena arhitektura aplikacija je troslona s tri fiziki razdvojena dijela, a to su:

    q Klijent koji predstavlja korisniko suelje i omoguava prvenstveno prikazivanje rezultata svojih postavljenih zahtjeva prema ostalim dijelovima aplikacije. Osim prezentacije, na razini suelja korisnik ima mogunost daljnje obrade dobivenih rezultata koritenjem drugih softverskih alata uredskog poslovanja.

    q Aplikacijski server objedinjuje poslovna pravila aplikacije, odnosno logiku i algoritme aplikacije, koja se sada nalaze samo na jednom mjestu u cijelom informacijskom sustavu to bitno olakava njihovu kontrolu, izmjene i odravanje.

    q Server baze podataka se razrauje na vie mjesta u ovoj knjizi pa se ovdje nee posebno obrazlagati.

    Korisnikosuelje

    Upravljanjepodacima

    Poslovnapravila

    Upravljanjepodacima

    Kor

    isnik

    o su

    elje

    - pr

    ezen

    taci

    ja p

    odat

    aka

    Algo

    ritam

    - po

    slov

    na p

    ravi

    laU

    prav

    ljanj

    e po

    daci

    ma

    Kor

    isnik

    o su

    elje

    Posl

    ovna

    pra

    vila

    Klasinaarhitektura

    Poetnaklijent/serverarhitektura

    Alternativnaklijent/serverarhitektura

    Arhitekture korisnikih programa

    Suvremenaklijent/serverarhitektura

    Korisnikosuelje

    Posl

    ovna

    pra

    vila

    Upr

    avlja

    nje

    poda

    cim

    a