VII semestar

Predmeti:

Programski prevodioci 1

(obavezni, IV godina, VII semestar)

Uvod: pregled funkcionalne strukture kompajlera i osnovnih koncepata.
Leksička analiza: uvod, determ. konačni automati, reg. Izrazi, nedeterm. automati, tompsonov algoritam, konverzija NKA-DKA, leksički procesori implementacija konačnih automata: implicitno predst. stanja, eksplicitno, objektno-orijentisano, alg. konverzije kon. aut u reg. izraz, Generalne karakteristike mikroJave, primer mJ programa, leksička struktura mJ programa.
Sintaksna analiza: uvod, bezkontekstne gramatike, terminologija, višeznačnost (problemi i otklanjanje), prikaz mJ gramatike. Gramatike i regularni izrazi, regularne gramatike i kon. automati, desno-lin gramatike, transform. desno-lin u reg., opšta klasifikacija gramatika. Koncept parsiranja, parsiranje od vrha ka dnu, metod rekurzivnog spusta, pojam LL(1) gramatike, računanje first, follow i selekcionih skupova, potisni automati, konstrukcija TD parsera na bazi potisnog automata. Transf. gramatika za dovođenje u LL(1) oblik.
Parsiranje od dna ka vrhu: uvod, pars. po principu potiskivanja i sažimanja, konstrukcija LR(0) parsera, konflikti u SR parsiranju, konstrukcija SLR(1), LR(1) i LALR(1) parsera.
Primer korišćenja lex i yacc generatora parsera

Uvod: uloga semantičke analize , Sintaksno-upravljano prevođenje zaključno sa def. L-atrib. Gramatika, Izvršno okruženje uvod, do primera sa rekurzijom, Generisanje koda: uvod, arhitektura mJ VM, organizacija mem. kod mJ VM, skup instrukcija mJ VM, Jednostavni lokalni gener. koda

Mikroprocesorski sistemi

(obavezni, IV godina, VII semestar)

Opis mikroprocesora 8086: instrukcijski set, načini adresiranja, mehanizam prekida, opis interfejsa, povezivanje sa memorijom i periferijama.
Opis periferija (generator takta 8284, kontroler prekida 8259A, serijski port 8251, paralelni port 8255, tajmer 8254, DMA kontroler, tastatura, displej), načina povezivanja, inicijalizacije i korišćenja.
Programiranje sistema na asembleru za mikroprocesor 8086.
Opis mikrokontrolera 8051, RAM i ROM memorija, registri posebne namene, tajmeri, serijski port, opštenamenski portovi, posebne funkcije portova, mehanizam prekida, programiranje na Keil C.
Napredne teme o dizajnu budućih mikroprocesorskih i multimikroprocesorskih sistema: keš memorija, instrukcijski nivo paralelizma, podsistem za ulaz/izlaz, podrška za višenitno izvršavanje, predikcija skokova i podataka, SMP sistemi i DSM sistemi.

Programiranje Internet aplikacija

(izborni, IV godina, VII semestar)

 

Savremene Internet aplikacije i tehnologije – mogućnosti, koncepti i primene. Pojmovi i primena troslojnih i višeslojnih aplikacija, upotreba Veb servera, povezivanje sa bazama podataka.
Razvoj Internet aplikacija pomoću Java tehnologije - Java servleti, JSP (JavaServer Pages) strane, upotreba frejmvorka Struts i JSF (Java Server Faces) - pregled, životni ciklus, detalji primene.
AJAX (Asynchronous JavaScript and XML) - interfejsi, primena.
Pojam, koncepti i upotreba Web servisa.

Informacioni sistemi 2

(izborni, IV godina, VII semestar)

Računarski VLSI sistemi

(izborni, IV godina, VII semestar)

Upoznavanje sa jezicima za opis hardvera: VHDL i Verilog. Signali, konkurentnost i sekvencijalnost. Funkcionalno i strukturno modelovanje hardvera. Testiranje. Sinteya. Implementacija.
Resursi procesora. Registri i registarske banke. Sabiraci: sa serijskim prenosom, sa paralelnim prenosom, sa uslovnim sumama, na osnovu selekcije prenosom i sa cuvanjem prenosa. Pomjerači: Barelov i Fanelov pomjerač. Višestepeni pomjerači. Množači. Sekvencijalni i iterativni. Butov i modifikovani butov algoritam. Množači bazirani na ROM memoriji.
Prikaz metodologije projektovanja procesora na primjeru projektovanja RISC procesora na 200MHz. Upoznavanje sa odlučivanjem pri dizajniranju u okruženju ograničenja nametnutih tehnologijom. Testiranje kombinacionih i sekvencijalnih kola. Testiranje memorije. Prefabrikaciono i postfabrikaciono testiranje.

Multiprocesorski sistemi

(izborni, IV godina, VII semestar)

Uvod. Razlozi za uvođenje paralelnih računarskih sistema. Evolucija i klasifikacija paralelnih sistema. Trendovi u domenu aplikacija, tehnologije i arhitektura. O paralelnom programiranju.
Osnovni koncepti arhitekture i organizacije paralelnih sistema. Napredni procesori, memorijska hijerarhija (različite organizacije, privatne i zajedničke keš memorije), interkonekcione mreže (magistrala, prsten, rešetka, hiperkocka, višestepene mreže, krosbar). Sinhronizacija (hardverske atomske primitive) i komunikacija. Problem koherencije privatnih keš memorija i osnovni načini rešavanja (hardverski i softverski). Osnovi hardverskih rešenja. Modeli memorijske konzistencije.
Multiprocesori sistemi sa zajedničkom memorijom. Karakteristike osnovnih arhitektura. UMA sistemi zasnovani na zajedničkoj magistrali i "snoopy" protokolima (invalidacioni, ažurirajući, adaptivni, hibridni protokoli, koherencija u višenivoskim hijerarhijama keš memorija, primeri protokola i elementi implementacije). NUMA skalabilni sistemi zasnovani na mreži opšteg tipa i "directory" protokolima (primeri protokola sa punim katalogom, ograničenim katalogom i katalogom u vidu ulančanih lista).
Hardversko/softverski kompromisi i mehanizmi tolerancije kašnjenja u pristupu memoriji. Sistemi sa distribuiranom zajedničkom memorijom (hardverski i softverski implementiran DSM mehanizam). Relaksirani modeli memorijske konzistencije (slaba, procesorska, ulazna i izlazna konzistencija). Prihvatanje podataka unapred (softverska i hardverska implementacija). Procesori sa prebacivanjem konteksta. Neblokirajuce keš memorije. Komunikacija inicirana od proizvođača podataka (prosleđivanje, ažuriranje).