Sistemsko programiranje (ETF RII SP 2345)

Opšte informacije

Naziv kursa

Sistemsko programiranje

Oznaka (šifra) predmeta

ETF RII SP 2345

Studij

ETF-B

Odsjek

Računarstvo i informatika

Godina

2

Semestar

3

Tip

Izborni

ECTS

4

Ukupno sati nastave

45

Sati predavanja

30

Sati vježbi

15

Sati tutorijala

0

Cilj kursa - Znanje i vještine koje treba postići student

  Cilj predmeta je da omoguć programeru uvid kako računarska mašina izvršava program, skladišti podatke i komunicira sa okolinom. Programeru se na praktičan načen, preko koncepta virtuelne ili pojednostavljene realne mašine prezentira programiranje na sistemskom nivou; od primitivnih mašinskih instrukcija do kompleksnih. Upoznaje se s odnosom viših programskih jezika i mašinskog jezika. Ovaj predmet je fundament za operativne sisteme, mreže, kompajlere i mnoge druge predmete koji se dotiču pitanja vezanih za sistemski nivo.

Program

  1.Programerov pogled na organizaciju procesora: Procesor. Aritmetičko-logička jedinica. Upravljačka jedinica. N-adresne mašine. Pojam memorije i memorijske adrese. Registri. Programski brojač. Instrukcije. <br /><br>2.Adresiranje podataka na sistemskom nivou: Pristup podacima u registrima. Konstante. Direktno i indirektno adresiranje. Indeksno adresiranje. Pristup podacima preko steka. Linearna memorija i njene alternative (segmenti, stranice). <br /><br>3.Mašinski kod i njegovo generisanje: Asemblerska i binarna predstava instrukcija. Instrukcije prijenosa podataka. Instrukcije za aritmetičke i logičke operacije. Instrukcije bezuslovnog skoka. Uslovni skokovi. Stek. Podprogrami. Šiftovanje i rotiranje. Asembleri. <br /><br>4.Ulaz i izlaz: Memorijski i U/I mapirani ulaz i izlaz. Princip rada tastature, diska, ekrana, komunikacijskih uređaja. <br /><br>5.Prekidi / događaji i njihove servisne rutine: Tablica prekida. Hardverski interapti. Softverski trapovi. Procesorski izuzeci. ÄŒuvanje podataka prilikom obrade servisne rutine. Najvažnije rutine. <br /><br>6.Kompajleri: Sintaksna, leksička i semantička analiza. LL i LR parsiranje. Predstavljanje sintaksnih dijagrama sintaksnim procedurama. <br /><br>7.Generisanje koda: memorija, stek, globalne varijable, dinamički i statički podaci, Generisanje koda iz kompajlera. Realizacija izraza, operatora, procedura, lokalnih i globalnih varijabli, programskih struktura. <br /><br>8.Bilderi, linkeri: Princip rada linkera. Make bilder. Princip rada asemblera, jednoprolazni i dvoprolazni. <br /><br>9.Izvršno okruženje: Punioci, format izvršnog fajla, uloga registara, sistemske funkcije, statičke i dinamičke biblioteke. Virtuelne mašine. <br /><br>10.Programska okruženja i alati za dizajn i programiranje: Kompajleri iz komandne linije, interpreteri, integrisana okruženjam, vizuelna okruženja. <br />11.Tehnike kontrole konkurentosti: Paralelno izvršavanje, threadovi, semafori, uzajamno isključivanje, <br /><br>12.Vrednovanje i optimizacija perfomansi: Profajleri. Benchmark programi. Ocjena algoritama.

Literatura

Obavezna1.Bilješke i slajdovi s predavanja (moći će se preuzeti na WEB siteu Fakulteta); <br /><br>2.S. Ribić: Predavanja (Bilješke i slajdovi s predavanja) iz Sistemskog Programiranja, Sarajevo, 2005 <br /><br>3.Paul A. Carter: PC Assembly Language (www.drpaulcarter.com/pcasm/) <br /><br>4.Randal E. Bryant and David R. O'Hallaron: Computer Systems: A Programmer's Perspective, Prentice Hall, 2003,. <br /><br>5.Idriz Fazlić: Programska organizacija računara, Sarajevo
Preporučena1.A-32 Intel® Architecture Software Developer's Manual, Intel <br /><br>2.Ben Ezzel: Windows 2000 Programming with Visual C++, Sybex, 2000. <br /><br>3.The Art of assembly Language Programming <br /><br>4.Andrew S. Tanenbaum, Structured Computer Organization 4th ed Prentice Hall 1999 <br /><br>5.Patt and Pattel: INTRODUCTION TO COMPUTING SYSTEMS: FROM BITS AND GATES TO C AND BEYOND, McGraw Hill 2003 <br /><br>6.Jack Crenshaw: Let"s build compiler, compilers.iecc.com/crenshaw

Didaktičke metode

  U okviru kursa primjenjuju se predavanja sa prezentacijama i laboratorijske vježbe. Na laboratorijskim vježbama se isprobavaju neke od tema u konkretnim uslovima. Studentima se daju domaći zadaci u cilju provjere znanja. <br />

Način provjere znanja

  Tokom trajanja kursa student prikuplja bodove prema slijedećem sistemu: <br /><br> - prisustvo satima predavanja, vježbi i tutorijala: 10 bodova, student koji više od tri puta izostane s predavanja,vježbi i/ili tutorijala ne može ostvariti bodove po ovoj osnovi; <br /><br> - izrada domaćih zadaća: maksimalno 10 bodova; predviđena je izrada od 5 do 10 domaćih zadaća ravnomjerno raspoređenih tokom semestra; <br /><br> - parcijalni ispiti: dva pismena parcijalna ispita, pri čemu svaki pozitivno ocijenjen parcijalni ispit donosi 20 bodova; <br /><br>Student koji je tokom trajanja semestra ostvario manje od 20 bodova ponovno upisuje ovaj kurs. <br /><br>Student koji je tokom trajanja semestra ostvario 40 i više bodova pristupa usmenom završnom ispitu; ovaj ispit sastoji se iz diskusije zadataka s parcijalnih ispita, domaćih zadaća i odgovora na jednostavna pitanja koja se odnose na teme kursa. <br /><br>Usmeni završni ispit donosi maksimalno 40 bodova. Da bi postigao pozitivnu završnu ocjenu, student na ovom ispitu mora ostvariti minimalno 20 bodova. <br>Student koji ne ostvari ovaj minimum pristupa usmenom dijelu popravnog ispita. <br /><br>Student koji je tokom trajanja semestra ostvario 20 i više bodova, a manje od 40 bodova, pristupa popravnom ispitu. Popravni ispit struktuiran je na slijedeći način: <br /><br> - pismeni dio koji je struktuiran na isti način kao i pismeni parcijalni ispit; u okviru ovog ispita student polaže zadatke iz tema za koje nije postigao prolaznu ocjenu (10 i više bodova) polažući parcijalne pismene ispite, <br /><br> - usmeni dio koji je struktuiran na isti način kao usmeni dio završnog ispita. <br /><br>Usmenom dijelu popravnog ispita može pristupiti student koji je nakon polaganja pismenog dijela popravnog ispita uspio stvariti ukupan skor od 40 i više bodova; ovaj skor sastoji se od bodova ostvarenih kroz: prisustvo nastavi, izradu domaćih zadaća, polaganje parcijalnih sipita i polaganje pismenog dijela popravnog ispita. <br /><br>Usmeni popravni ispit donosi maksimalno 40 bodova. Da bi postigao pozitivnu završnu ocjenu student na ovom ispitu mora ostvariti minimalno 20 bodova. <br>Student koji ne ostvari ovaj minimum ponovno upisuje ovaj kurs.

Napomene

  Prilikom polaganja pismenog ispita, student može koristiti od strane nastavnika pripremljenu listu formula koje mogu biti od koristi prilikom rješavanja zadataka. Nije dozvoljeno korištenje drugih bilješki, knjiga, mobilnih telefona niti drugih elektronskih pomagala, osim džepnog elektronskog kalkulatora. <br /><br>Zadaci koje student treba riješiti na ispitu su istog tipa kao oni rješavani tokom izvođenja predavanja i tutorijala. <br />