Svaki složeni postupak koji se može izraziti pomoću
algoritama sa konačnim brojem elementarnih operacija, može se predati računaru na izvršenje. Jedan od ključnih dijelova računarskog sistema koji omogućava prenošenje intelektualnog rada sa čovjeka na računar jeste sistemski softver Sistemski softver je posrednik između korisničkog (aplikativnog) softvera i hardvera koji korisniku omogućava da lakše, jednostavnije i efikasnije iskoristi resurse računarskog sistema. Ukratko o predmetu
Glavni dio sistemskog softvera i osnova svakog
računarskog sistema jeste operativni sistem. Kao posljedica masovne upotrebe računara u gotovo svim oblicima ljudske djelatnosti, vidljiv je trend stalnog napretka i čestih promjena informatičkih tehnologija. Ipak, fundamentalni koncepti ostali su neizmjenjeni - na tim konceptima će biti zasnovan i ovaj predmet. Predmet će studente uvesti u osnove operativnih sistema, jasno definisati koncepte i algoritme koji se koriste pri projektovanju njihovih pojedinih dijelova. Predavanja
1. UVOD U OPERATIVNE SISTEME 8. ULAZNO – IZLAZNI PODSISTEM
2. JEZGRO OPERATIVNOG SISTEMA I 9. SEKUNDARNE I TERCIJARNE UPRAVLJANJE PROCESIMA MEMORIJE 3. RASPOREĐIVANJE PROCESORA I 10. SISTEMI DATOTEKA DODJELA PROCESA 11. MREŽNO OKRUŽENJE 4. SINHRONIZACIJA PROCESA 12. DISTRIBUIRANI SISTEMI 5. ZASTOJ (DEADLOCK) 13. ZAŠTITA I SIGURNOST 6. UPRAVLJANJE MEMORIJOM 14. KORISNIČKI INTERFEJS 7. VIRTUELNA MEMORIJA 15. FAMILIJA OPERATIVNIH SISTEMA WINDOWS I BSD UNIX 1. UVOD U OPERATIVNE SISTEME
Opisan je istorijat operativnih sistema i navedene su
njihove funkcije, karakteristike i poželjne osobine. Na osnovu različitih kriterija izvršena je podjela operativnih sistema i dat je kraći pregled njihove strukture. Predavanje završava kraćim opisom operativnih sistema UNIX I Linux. 2. JEZGRO OPERATIVNOG SISTEMA I UPRAVLJANJE PROCESIMA
Predavanje će početi opisom dijelova jezgra operativnog
sistema i hardverskim preduslovima za nadgradnju hardvera jezgrom. Uvodi se pojam procesa i struktura neophodnih za upravljanje procesom. Objašnjena su stanja u kojima se proces može naći u toku svog izvršenja i tranzicije iz jednog stanja u drugo. Ukratko su objašnjeni pojmovi procesorskog reda, zamjene konteksta i raspoređivanja procesa, osnovne operacije koje se nad procesima mogu izvršiti i osnovni mehanizmi međuprocesne komunikacije. Obuhavćeni su i tzv. Laki procesi, tj. Niti. 3. RASPOREĐIVANJE PROCESORA I DODJELA PROCESA
U višeprocesnim operativnim sistemima, procesima
se na osnovu nekog algoritma dodjeljuje procesor na korištenje. Objašnjeni su pojmovi raspoređivanja sa pretpražnjenjem i bez pretpražnjenja. Predstavljeni su značajniji algoritmi za dodjelu procesora: First Come First Served (FCFS), Shortest Job First (SJF), Round Robin (RR) i raspoređivanje na osnovu prioriteta 4. SINHRONIZACIJA PROCESA
Opisani su mehanizmi koji obezbjeđuju sinhronizaciju
procesa: kritične sekcije, semafori i monitori. Predstavljene su hardverske i softverske realizacije kritičnih sekcija: algoritam striktne alternacija, Dekker-Petersenov algoritam i pekarski algoritam Ilustrovana je primjena semaforskih tehnika u rješavanja klasičnih problema: ograničenog bafera, čitalaca i pisaca i večere filozofa 5. ZASTOJ (DEADLOCK)
Definisati ćemo zastoj i skup uslova pod kojim se u
sistemu pojavljuje zastoj. Predstavićemo stanje u sistemu pomoću grafa dodjeljenih resursa i metode upravljanja zastojem: Prevencija Izbjegavanje Oporavak od zastoja 6. UPRAVLJANJE MEMORIJOM
Radna memorija se smatra jednim od najznačajnijih
resursa svakog računarskog sistema. Navedeni su osnovni ciljevi koje treba postići na nivou sloja upravljanja memorijom, a ztim su ukratko opisani pojmovi logičkog i fizičkog upravljanja memorijom, vezivanja adresa i razmjene (engl. swap) Navedene su i osnovne programerske tehnike upravljanja memorijom, poput dinamičkog vezivanja i tehnike preklapanja (engl. Overlay). Nakon toga su opisane metode kontinualne i diskontinualne dodjele memorijskog prostora kao što su straničenje i segmentacija. 7. VIRTUELNA MEMORIJA
Predstavljene su tehnike učitavanja stranica na zahtjev (engl.
Demand paging) i neke alternativne tehnike, kao što su Copy on Write, straničenje unaprijed (engl. Prepaging) i memorijski mapirane datoteke. Opisani su značajniji algoritmi za izbor žrtve pri zamjeni stranica : First In First Out (FIFO), optimalni algoritam, Least Recently Used (LRU), satni algoritam i frekvencijski algoritmi: Least Frequently Used i Most Frequently Used. Na kraju predavanja razmatra se efekt zasićenja 8. ULAZNO – IZLAZNI PODSISTEM
Ulazno-izlazni podsistem obezbjeđuje mehanizme za
komunikaciju sa ualzno-izlaznim uređajima. Bez Ulazno- izlaznog podsistema , korisnik procesima ne može zadati ulazne podatke niti može od procesa preuzeti rezultate obrade. Takođe, proces nije u mogućnosti da rezultate obrade sačuva na disku ili nekom drugom medijumu niti da ostvari komunikaciju sa drugim računarom Navedene su osnovne funkcije i ciljevi ulazno-izlaznog podsistema. Uređaji su zatim podjeljeni prema različitim kriterijima i opisan je hardver koji je značajan za ulazno- izlazni podsistem. Obrađeni su servisi koja pruža ulazno- izlazni podsistem i proces prevođenja zahtjeva u ulazno- izlazne operacije. 9. SEKUNDARNE I TERCIJARNE MEMORIJE
Za razliku od radne memorije sadržaj sekundarnih i
tercijarnih memorija ne gubi se nakon isključivanja napajanja. U sekundarnim i tercijarnim memorijama smješteni su operativni sistem, programi i podaci koji se obrađuju. Ukratko je opisana struktura diskova i postupci kojima se diskovi pripremaju za rad. Nakon toga su opisani nivoi keširanja diskova i algoritmi za raspoređivanje zahtjeva za rad sa diskovima (FCFS, SSTF, SCAN, C-SCAN). Zatim sljedi opis RAID stuktura koje se mogu iskoristiti za formiranje stabilnih podsistema sekundarne memorije. 10. SISTEMI DATOTEKA
Za većinu korisnika, sistem datoteka (File System) je
nevidljivi aspekt operativnog sistema, koji obezbjeđuje mehanizam za čuvanje i pristup datotekama. Definisani su osnovni pojmovi: datoteka, direktorij, i referenca; i opisani mehanizmi za zaštitu i djeljenje datoteka. Nakon toga, student se upoznaje sa pojmom sistema datoteka i metodama dodjele prostora datotekama i upravljanja slobodnim prostorom u sistemima datoteka. Zatim je obrađena problematika pouzdanosti i efikasnosti sistema datoteka, i na kraju je dat opis značajnih sistema datoteka u operativnim sistemima UNIX/Linux i DOS/Windows. 11. MREŽNO OKRUŽENJE
Računarska mreža omogućava komunikaciju
međusobno povezanih autonomnih računara. Korisnicima umreženih računara dostupni su dijeljeni mrežni resursi poput štampača i direktorija, ako i mehanizmi centralizovane autentifikacije i administracije. Većina savremenih operativnih sistema jesu mrežni operativni sistemi, čiji integralni dio čini skup protokola TCP/IP, a softver za umrežavanje omogućava funkcionalnost operativnog sistema u LAN i WAN mrežama. Većina osnovnih usluga operativnih sistema, može se realizovati pomoću mrežnih funkcija. U ovom predavanju opisane su topologija i vrsta mreža, komunikacija u mreži i skup protokola TCP/IP. 12. DISTRIBUIRANI SISTEMI
Distribuirani sistemi predstavljaju kolekciju procesora
tj. Računara, koji ne dijele zajedničku memoriju i sistemski sat. Objašnjeni su osnovni pojmovi i navedene su karakteristike distribuiranih sistema. Nakon toga, govorimo o razlikama između mrežnih i distribuiranih operativnih sistema. Opisani su distribuirani sistemi datoteka i mehanizmi sinhronizacije procesa u distribuiranim sistemima. Problem sinhronizacije procesa i rješavanja problema zastoja proširuje se sa centralizovane na distribuiranu okolinu. 13. ZAŠTITA I SIGURNOST
Zaštita se odnosi na kontrolu pristupa resursima
operativnog sistema, dok je sigurnost širi pojam, koji uključuje i uticaj interakcije sistema sa spoljnim svijetom. Opisani su domeni zaštite i matrica pristupa, a zatim aspekti sigurnosti i mehanizmi autentifikacije korisnika. Objašnjene su metode napada na sistem (DoS, spoofing, sniffing), programske prijetnje (trojanski konji, klopke – trap doors, prepunjenje steka i bafera) i sistemske prijetnje (crvi i virusi). Od tehnika za povećanje sigurnosti sistema opisane su mrežne barijere (engl. Firewalls), sistem za detekciju napada i kriptografske metode zaštite. Na kraju su navedeni rangovi sigurnosti prema TCSEC kriterijumu Ministarstva odbrane SAD. 14. KORISNIČKI INTERFEJS
Na vrhu hijerarhije slojeva operativnog sistema nalazi se
korisnički interfejs, pomoću kog korisnici ostvaruju dvosmjernu interakciju sa operativnim sistemom. Postoje dvije vrste korisničkih interfejsa – alfanumerički i grafički, koji su ovom predavanju ukratko opisani. Predavanje sadrži i kraći opis upravljanja poslovima na sistemima sa paketnom obradom. 15. FAMILIJA OPERATIVNIH SISTEMA WINDOWS I BSD UNIX
U svim prethodnim poglavljima imat ćemo primjere koji su
vezani za operativni sistem Linux. U ovom predavanju vidjet ćemo više detalja koji su vezani za familiju operativnih sistemima Windows kao što su: MS-DOS, Windows 3.x Windows 95/98 Windows NT Windows 2000 Windows XP Windows 2003 Server Windows Vista (prethodno radno ime Longhorn) Kao i više detalja o operativnom sistemu MAC OS X Literatura
1. Operativni sistemi – Borislav Đorđević, Dragan Pleskonjić, Nemanja
Maček 2. Operating System Concepts – A. Silberscahtz, P.B.Galvin, G. Gagne 3. Distributed Operating Systems – Andrew S. Tanenbaum 4. Operating Systems – Internals and Design Principles – W.Stallings 5. Operating Systems in Depth – T.Doeppner 6. Operating Systems: Principles and Practice – Anderson and Dahlin 7. Operating System: A concept based approach – Dhananjay M. Dhamdhere 8. Understanding Operating Systems – Ann McIver McHoes, Ida M. Flynn Način polaganja
Predmet se polaže kroz nekoliko različitih aktivnosti
tokom semestra i finalnim ispitom. Sve aktivnosti koje se mogu odraditi van finalnog ispita nazivaju se predispitne aktivnosti Maksimalan broj bodova koji možete dobiti kroz predispitne aktivnosti je 50 Maksimalan broj bodova koje možete dobiti na finalnom ispitu je 50 Predispitne aktivnosti
Predispitne aktivnosti dijele se na 3 dijela:
Kvizovi Zadaće Prisustvo na nastavi (za redovne studente) Kvizovi
Kroz semestar imat ćete 10 kvizova.
Jedan kviz može pokriti jedno do dva poglavlja. (10 kvizova, 15 cjelina). Svaki put kada pokrenete kviz dobit ćete 20 pitanja koja treba odgovoriti. Tih 20 pitanja neće uvijek biti isto svaki put kada pokrenete kviz. Za svaki kviz ćete imati 20 minuta. Svaki kviz možete ponoviti 3 puta. Unutarnja struktura kviza je takva da svako pitanje nosi po 1 bod, odnosno maksimalan iznos bodova koje možete dobiti na jednom kvizu je 20. Za 10 kvizova to je 200 bodova. Tih 200 bodova ustvari predstavlja 20 bodova na samom predmetu (Cijelokupan iznos podijelite sa 10, tako da praktično svako pitanje ima vrijednost od 0,1 boda). Kvizove nećete morati raditi u računarskom centru i možemo se dogovoriti za neki termin tokom vikenda da se kvizovi uključe. Nakon urađenog kviza nećete dobiti tačne odgovore kao što je bio slučaj sa Osnovama Programiranja Zadaće
U toku semestra imat ćete 10 Zadaća. Zadaća nosi 20 bodova, što
znači ukupno 200 bodova koji se u konačnici dijele sa 10. Zadaće se sastoje od po 5 zadataka koje trebate samostalno uraditi i poslati na moodle gdje je predviđeno da ih pošaljete. Kada pošaljete zadaću na ocjenjivanje ne možete je ponovo slati. Zadaće možete slati do kraja semestra. Zadaće će biti ocijenjene prije finalnog ispita Napomena: U zadaćama možete zaraditi dodatne bodove ako uradite dodatne zadatke u C programskom jeziku. Ti bodovi se zbrajaju sa ocjenom sa finalnog ispit. Maksimalan broj dodatnih bodova je 15. Prisustvo na nastavi
Na početku svakog predavanja dobijate list za potpisivanje.
Bodove za prisustvo na nastavi NE dobijate potpisivanjem tog papira. Nakon svakog predavanja ćete sačekati 5 minuta da upišemo bodove studentima koji su stvarno odslušali predavanje. Za prisustvo na nastavi dobijate 10 bodova Za svako odslušano predavanje dobijate 1 bod – što znači da možete propustiti 5 predaavanja i opet imati maksimalan broj bodova iz aktivnosti. Finalni ispit
Finalni ispit će se sastojati od 100 pitanja koja su se i pojavljivala
na kvizovima. Finalni ispit se radi u računarskom centru u grupama i trajati će za jednu grupu 100 minuta. Prva grupa će biti onih 20 studenta (kapacitet računarskog centra) koji su imali najviše bodova iz predispitnih aktivnosti. Druga grupa će biti sljedećih 20 i treća grupa ako bude bilo potrebe ostali