Sistemsko
programiranje i sistemski softver
| |
Smjer: |
Nastavni |
| |
Semestar: |
IX
|
| |
Tip kursa: |
Izborni |
| |
Fond sati: |
2+2+0 |
| |
Broj
ECTS kredita: |
10 |
Nastavni program:
-
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;
-
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);
-
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;
-
Ulaz i izlaz: Memorijski i U/I mapirani ulaz
i izlaz; Princip rada tastature, diska, ekrana, komunikacijskih uređaja;
-
Prekidi/događaji i njihove servisne rutine:
Tablica prekida; Hardverski interapti; Softverski trapovi; Procesorski
izuzeci; Čuvanje podataka prilikom obrade servisne rutine; Najvažnije rutine;
-
Kompajleri: Sintaksna, leksička i semantička
analiza; LL i LR parsiranje; Predstavljanje sintaksnih dijagrama sintaksnim
procedurama;
-
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;
- Bilderi i linkeri:
Princip rada linkera; Make bilder; Princip rada asemblera, jednoprolazni i
dvoprolazni;
- Izvršno okruženje:
Punioci, format izvršnog fajla, uloga registara, sistemske funkcije,
statičke i dinamičke biblioteke; Virtuelne mašine;
- Programska okruženja i
alati za dizajn i programiranje: Kompajleri iz komandne linije; Interpreteri;
Integrisana okruženja; Vizuelna okruženja;
-
Tehnike kontrole konkurentosti: Paralelno
izvršavanje; Threadovi; Semafori; Uzajamno isključivanje;
-
Vrednovanje i optimizacija perfomansi:
Profajleri; Benchmark programi; Ocjena algoritama;
Literatura:
-
S. Ribić: Sistemsko Programiranje (skripta),
ETF Sarajevo, 2005
-
Paul A. Carter: PC Assembly Language (www.drpaulcarter.com/pcasm/)
-
Randal E. Bryant and David R. O'Hallaron:
Computer Systems: A Programmer's Perspective, Prentice Hall, 2003,.
-
Idriz Fazlić: Programska organizacija
računara, ETF Sarajevo, 2002
-
Andrew S. Tanenbaum: Structured Computer
Organization, 4th ed., Prentice Hall, 1999