RI4OS Operativni sistemi VII: 2+2+0 VIII: 2+2+0


Upravljanje procesima. Kreiranje procesa. Upravljački blok procesa. Stanja i redovi spremnih i blokiranih procesa. Promene stanja. Algoritmi planiranja. Dispečer. Sinhronizacija procesa. Semafori. Primitive WAIT i SIGNAL. Kritična sekcija, proizvođači/potrošači, čitači/pisači. Komunikacija procesa razmenom poruka. Kružna blokiranja. Izbegavanje kružnog blokiranja. Oporavak posle kružnog blokiranja. Upravljanje memorijom. Razmena (Swapping). Prekrivanja. Statičke i dinamičke particije. Algoritmi izbora particije. Zaštita pomoću graničnih registara. Stranična organizacija memorije. Tablica stranica. Deskriptor stranice. Dinamičko preslikavanje adresa. Bafer preslikavanja. Zaštita pomoću ključeva. Segmentna organizacija memorije. Tablica segmenata. Deskriptor segmenta. Dinamičko proširivanje segmenata. Zajedničko korišćenje segmenata. Virtuelna stranična memorija. Deskriptor virtuelne stranice. Algoritmi zamene stranica. Dodela blokova procesima. Koncepcija segmentne virtuelne memorije. Upravljanje uređajima. Upravljački blok uređaja. IO procedure i drajveri uređaja. Blok IO zahteva. Algoritam upravljanja uređajem. Semafori čekanja na zahtev i na završetak operacije. Baferovanje. SPOOLing. Specifičnosti upravljanja diskom. Upravljanje fajlovima. Upravljački blok fajla. Katalozi. Organizacija kataloga. Hijerarhijska organizacija fajl sistema. Operacije nad fajlovima (otvaranje, zatvaranje, itd.). Prava pristupa. Evidencija i dodela slobodnog prostora na diskovima. Elementi operativnog sistema UNIX. Jezgro UNIX-a. Koncepcija buffer cache. Pul bafera. Pojam I-čvora. Struktura regularnih fajlova. Superblok. Dodela blokova na disku.


RI4PP Programski prevodioci VII: 3+2+0 VIII: 2+2+0


Leksicki analizator. Prepoznavaci sa konacnim brojem stanja. Regularni izrazi. Deterministicki i nedeterministicki automati. Dobijanje automata iz regularnih izraza. Minimiziranje masine. Realizacija prepoznavaca. Prepoznavanje reci. Generisanje leksickog analizatora. Bezkontekstne gramatike. Formalni jezici i formalne gramatike. Gramaticke transformacije. Dvosmislene gramatike. Regularne i desno-linearne gramatike. Potisne masine. Primitivne operacije. Prosirene operacije. Prevodenje potisnim masinama. Petlje. Sintaksno usmereno prevodenje. Atributivno-translaciona gramatika. Sintaksna analiza s vrha na dole. S, Q i LL(1) gramatike. Obrada S, Q i LL(1) translacionih gramatika. Oporavak od gresaka. Rekurzivni spust. Obrada atributivnih gramatika. L-atributivna gramatika. Gramatike prostog oblika dodeljivanja. Projekat prosirene masine. Rekurzivni spust za atributivne gramatike. Sintaksna analiza od dna ka vrhu. Masina pomeri-identifikuj. Oporavak od gresaka. Masina pomeri-svedi. Oporavak od gresaka. LR i SLR gramatike. Obrada atributivnih i translacionih gramatika. S-atributivna gramatika. Okruzenje programa. Organizacije memorije kompilatora. Aktivacioni zapis. Staticki opseg vazenja bez i sa ugnjezdavanjem procedura. Displeji. Dinamicki opseg vazenja. Prenos parametara. Tabele simbola. Konstrukcija stabla ekvivalencije. Generisanje koda. Izbor naredbi. Alokacija registara. Osnovni blokovi i grafovi tokova. Transformacije osnovnih blokova. Jednostavni generator koda.


RI4BP Baze podataka VII: 3+2+0


Uvod. Klasična obrada podataka i njeni nedostaci. Koncept baze podataka. Šema. Instanca. Logička i fizička nezavisnost podataka. Modeli podataka. Pregled sistema baza podataka. Jezici za rad sa bazama podataka. Model entiteti-veze. Konceptualno modeliranje. Entiteti. Veze. Atributi. Dijagram entiteti-veze. Specijalne vrste veza: specijalizacija, generalizacija, agregacija. Relacioni model podataka. Osnovni pojmovi. Relacije. Atributi. Ključ. Uslovi integriteta. Transformacija iz modela entiteti-veze u relacioni model. Relacioni upitni jezici: Relaciona algebra. Relacioni račun torki. Relacioni račun domena. Optimizacija upita. Komercijalni upitni jezici. Projektovanje relacione baze. Projektni zahevi. Izražavanje oganičenja. Funkcionalne zavisnosti. Višeznačne zavisnosti. Zavisnosti spajanja. Normalne forme. Dekompozicija relacione šeme. Osnovni koncepti objektnih baza podataka. Mapiranje objektnog modela u relacionu bazu podataka. Konkurentan pristup bazi. Pojam transakcije. Serijski redosled. Serijalizovani redosled. Kontrola serijalizovanosti. Obezbeđenje serijalizovanosti. Mehanizam lock-a. Dvofazni protokol zaključavanja. Protokoli bazirani na grafovima. Mehanizam vremenskog markiranja. Zaštita baze od otkaza. Mehanizmi sistemskih dnevnika. Mehanizam prateće stranice. Načini rešavanja problema izazvanih konkurentnim pristupom bazi u slučaju otkaza sistema.


RI4MS Mikroprocesorski sistemi VII: 3+1+2


Uvod u mikroprocesore. Hardverski i softverski detalji mikroprocesora i8086 (na jednostavnom primeru je moguće, u samo jednom semestru, absorbovati sve relevante detalje). Pripadajuće memorijske i U/I komponenete (8237,8251,8253,8255,8259,8279,itd.). Detalji SDK ploče i razvoj odabrane aplikacije. Uvod u moderne mikroprocesore, PentiumPro, i detalji koji se očekuju u mikroprocesorima koji će se tek pojaviti na tržištu u budućnosti. Rad sa mikrokontrolerima (i8251 i ARM). Razvoj odabrane aplikacije sa svim detaljima. Rad sa generatorom i analizatorom signala. Testiranje mikroprocesorskih sistema na primeru obrade signala podataka. Svako je obavezan da uradi dva projekta.


RI4PRS Performanse računarskih sistema VII: 3+2+0


Problemi, tehnike i oblasti primene analize računarskih performansi. Performanse procesora. Performanse memorijskog podsistema. Brzina memorije, iskorišćenje memorije, hijerarhijska organizacija memorije i efektivni adresni prostor. Performanse diskova. Linearni, diskretni i kontinualni model diska. Performanse CD ROM-a i magnetnih traka. Modeliranje računarskih sistema mrežama sa redovima za čekanje. Poasonov proces. Formula rođenja i smrti. Eksponencijalni i neeksponencijalni modeli. Polaček-Hinčinova formula. Zatvorene mreže. Ciklički model multiprogramiranja, mreža sa centralnim serverom, Gordon-Njuelove jednačine, Bjuzenov algoritam. Otvorene mreže, Džeksonova teorema. Ekvivalentne transformacije (redna i paralelna veza, ciklični redovi). Interaktivni sistemi, determinističko i stohastičko modeliranje. Operaciona analiza, otvorene mreže, zatvorene mreže, mreže sa centralni serverom, MVA algoritam. Pravilan izbor tehnike analize računarskih perfomansi - analitički modeli, merne tehnike, simulacija. Prezentacija i interpretacija rezultata.


RI4SP Sistemsko programiranje VII: 3+2+0


Testiranje. Runo i automatsko testiranje. Testiranje metodama bele kutije. Testiranje metodama crne kutije. Inkrementalno i neinkrementalno testiranje. Testiranje višeg reda. Kriterijumi za određivanje završetka testiranja. Editori. Klasifikacija editorskih komandi. Linijski i ekranski editori. Analiza osnovnih editorskih komandi. Globalna obrada teksta. Regularni izrazi editovanja. Konstrukcija editora bez radne datoteke. Konstrukcija editora sa radnom datotekom. Makroobrada u editorima. Makrojezici. Osnovne postavke makrojezika. Makrodefinicije i makropozivi bez i sa ugnjezdavanjem. Polubutstrepovanje i puno butstrepovanje. FLUB mašina i STAGE2 makroprocesor. ML/I makroprocesor. Komunikacija između makroa. Istorijat razvoja makrojezika. Konstrukcija asemblera. Funkcionalna struktura asemblera. Leksička analiza. Tabele operacionih kodova, simbola i literala. Sintaksna i semantička analiza izraza. Interna forma prevođenja. Izlazi asemblera. Algoritam rada prvog i drugog prolaza. Greške. Konstrukcija makroprocesora. Polazne postavke u konstrukciji. Konstrukcija dvoprolaznog i jednoprolaznog makroprocesora. Studija slučaja. Konstrukcija punilaca. Istorijat razvoja punilaca. Osnovne funkcije punilaca. Konstrukcija punioca sa direktnim povezivanjem. Konstrukcija povezivača. Konstrukcija editora veze za multiprogramske uslove rada.


RI4DRS Distribuirani računarski sistemi VIII: 2+2+0


Osnovni pojmovi. Pojam distribuiranih sistema, arhitekture distribuiranih sistema, čvrsto spregnuti distribuirani sistemi i labavo spregnuti distribuirani sistemi. Logička i fizička distribuiranost, pseudoparalelizam i pravi paralelizam. Konkurentni programi i osnovne pretpostake konkurentnog programiranja. Nedeljive operacije i deljene promenljive. Korutine, zaposleno čekanje, fork-join i cobegin. Međusobno isključivanje zaposlenim čekanjem. Procesi i sinhronizacija. Deklarisanje procesa, semafori i mane semafora. Uslovni kritični regioni i primer batch operativnog sistema realizovanog pomoću uslovnih kritičnih regiona. Monitori i međusobno isključivanje kod monitora. Sinhronizacija uslova kod monitora i ugnježdeni pozivi monitora. Iskazi putevi i notacija za definisanje liste puta. Komunikacije između procesa. Unidirekcioni i bidirekcioni primitivi kod prosle čuvanja poruka. Oblici veza i oblici transakcija. Direktno i indirektno imenovanje. Mane direktnog referisanja procesa. Blokirajući i neblokirajući komunikacioni iskazi. Selektivne komunikacije, zaštićeni iskazi, alternativni i iterativni iskazi. Udaljeni pozivi procedura. Udaljeni pozivi procedura, odnos klient server. Udaljeni pozivi sa kreiranjem procesa i procesom-procedurom. Randevu, osnovne prednosti i implementacija u ADI. Mane randevua. Modeli konkurentnih jezika i preslikavanje na arhitekture distribuiranih sistema. Procesi koji emituju. Emitovanje sa ili bez prihvatnika. Selektivni prijem poruke. Primer filozofa koji ručaju i prikaz rešenja za procese koji emituju. Primeri programskih jezika za distribuirano programiranje: Modula, CONIC, CSP, OCCAM, ARGUS, ADA, LINDA.


RI4ES Ekspertski sistemi VIII: 2+2+0


Uvod. Klasifikacija. Istorijat. Arhitektura. Pretrazivanje. Definisanje problema pretraživanja. Algoritmi pretraživanja. Predstavljanje znanja. Predstavljanje znanja u formalnoj logici. Semantičke mreže. Okviri. Produkcioni sistemi. Strategija rešavanja problema. Iscrpno pretraživanje. Generisanje i testiranje. STRIPS. Transformacija prostora. Planiranje. Princip najmanjeg angažovanja i propagacija ograničenja. Klasifikacioni model. Model školske table. Podrška objašnjavanju. Osnovni i uzročni modeli. PRESS, CLEAR, XPLAIN. Objašnjavanja radi obučavanja. Rad sa neizvesnošću. Monotono i nemotono rezonovanje. TMS. Zaključivanje na osnovu faktora neizvesnosti. Rasplinuto rezonovanje. Razvoj ekspertskih sistema. Životni ciklus. Tehnike akvizicije znanja. Sredstva za ravoj ekspertskih sistema.


RI4RT Računarske telekomunikacije VIII: 3+1+0


Osnovni pojmovi o prenosu i razmeni poruka između računara. Tehnološki i ekonomski osnovi povezivanja računara u mrežu. Raspoloživa sredstva komuniciranja na užem i širem geografskom prostranstvu. Mrežna oprema. Modemi, koncentratori, multiplekseri, čelni procesori, skaneri. Kodovi za pouzdan prenos podataka i uskladištenje. Blok kodovi (sa jednostrukom i dvostrukom proverom parnosti, Hammingov kod, ciklični kodovi) Konvolucioni kodovi. Uvod u slojevitu arhitekturu mreže. Tipovi poruka (sesije, poruke, paketi) i tipovi komutacije (komutacija kola, komtacija primi pa prosledi). Arhitektura otvorenih sistema povezivanja (sloj, interfejs, usluga, protokol). Sloj fizičke veze. Standardi interfejsa DTE-DCE (RS232 i X21). Sloj digitalne veze. mehanizam kontrole protoka i zagušenja. Mehanizam otkrivanja i ispravljanja grešaka. Sloj mreže; mehanizmi upravljana tokovima saobraćaja. Sloj transporta i viši slojevi OSI arhitekture. Modeli kašnjenja kroz mrežu. Asinhrono vremensko multipleksiranje poruka. Modeliranje linije veza korišćenjem teorije redova čekanja. Sistemi čekanja sa prioritetima koriašćenja linije veze. Komuniciranje kroz medijum sa višestrukim pristupom. Medijumi sa višestrukim pristupom (satelitski kanal, radio mreža, lokalne mreže). Postupci višestrukog prenosa; bez kontrole (ALOHA), sa osluškivanjem, sa detekcijom sudara. Usmeravanje poruka kroz mrežu. Postavke usmeravanja (planirano i metoda plavljenja ) Kriterijumi pri usmeravanju (najkraći put i slučajni izbor). Nadzor i upravljanje protocima u mreži. Cilj nadzora i upravljanja. Algoritmi tipa prozora sa promenjivim otvorom. Algoritmi zasnovani na ograničavanju priliva poruka u mrežu. Planiranje mreža. Topologija mreže. Formulacija problema planiranja. Algoritam maksimalnog protoka. Problem lokacije koncentratora i terminala. Vežbe u labaratoriji. Vežbe ilustruju metode kodovanja, modemskog prenosa i osnovne interfejse fizičkog sloja.


RI4ST Softverske tehnike VIII: 2+1+2


Uvod. Softver kao proizvod. Faze životnog ciklusa softvera. Kvalitet softverskih proizvoda. Modeli životnog ciklusa. Model vodopada, evolucioni model, spiralni model. Paradigma automatizacije kao osnov za razvoj softvera. Uloga standarda. Specifikacija softvera. Osobine, stilovi, verifikacija. Operacione specifikacije. Opisne specifikacije. Verifikacija softvera, ciljevi i metodi. Testiranje, analiza, simboličko izvršavanje, debagovanje. Mere složenosti i kvaliteta. Upravljanje razvojem softvera. planiranje projekata, tehnike nadzora. Organizacija tima. Upravljanje rizicima. Alati i okruženja za razvoj softvera. Integrisana razvojna okruženja. Alati za modelovanje. Sistemi za kontrolu verzija. Sistemi za pracenje bagova i zahteva za promene. Alati za testiranje. Osnovni principi savremenih grafičkih interfejsa. Programiranje upravljano događajima. Realizacija interaktivnih programa uz pomoć savremenih objektnih jezika.