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