Sistemsko programiranje

Cilj i ishod predmeta

Priprema studenata da postanu programeri koji mogu da naprave a) programe niskog nivoa koji koriste ili se izvršavaju unutar operativnog sistema, b) sistemske alatke za druge programere i korisnike (asemblere, kompajlere, punioce, debagere) i v) programe koji međusobno komuniciraju preko računarske mreže. Nakon završenog kursa studenti razumeju funkciju i načine konstrukcije različitih sistemskih alata, kao što su makro procesori, asembleri, kompajleri, emulatori, povezivači i punioci. Mogu da i sami konstruišu i implementiraju slične alate ili prilagode već postojeće. U stanju su da implementiraju različite kernel module za operativne sisteme Unix i Windows.

Teorijska nastava

Upoznavanje sa funkcijama i načinom konstrukcije različitih sistemskih alata, kao što su makro procesori, asembleri, emulatori, povezivači i punioci. Osnove asemblera za različite procesorske arhitekture. Funkcije asemblera kao alata. Konstrukcija asemblera i makroprocesora. Pretprocesor za jezik C. Projektovanje visoko optimizujućih kompajlera. Projektovanje interpretativnih i JIT emulatora. Formati objektnih programa. Osnovne funkcije punioca. Konstrukcija punioca i povezivača. Dinamičko povezivanje i punjenje. Punjenje sa prekrivanjem. Funkcije kernela operativnog sistema i njihova upotreba. Upoznavanje sa funkcionisanjem sistemskih biblioteka i kernel API-ja različitih operativnih sistema Kernel API i sistemski pozivi. Programiranje ulaza i izlaza. Pravljenje upravljačkih programa. Debagovanje u kernelu. Implementacija kernel modula. Interprocesna i međuračunarska komunikacija.

Praktična nastava

Projektovanje kompaktora mašinskog koda. Projektovanje simulatora odredišnog sistema. Projektovanje komponenti za debagovanje i kontrolisano izvršenje programa. Integrisano razvojno okruženje. Procesi, njihova međusobna komunikacija i upotreba komandi za praćenje. Implementacija najvažnijih Unix sistemskih komandi. Pisanje novih komandi. Upotreba POSIX API i signala. Razvoj upravljačkih programa (drajvera) za Unix i Windows. Sistemsko programiranje upotrebom skript jezika.

3034-sistemsko-programiranje

sbobet88 slot agb99 situs slot slot777 toto AMANAHTOTO slot SLOT GACOR AMANAHTOTO toto slot88 ASIA200 ASIA200 ASIA200 bayijudy.com situs resmi bayitoto slot gacor popotogel login situs slot eropa99 hoki99 roma77 babe138 roma77 roma77 hoki99 abadicash