Fakultet tehničkih nauka

Predmet: Softver u realnom vremenu (22.EAI023)

Matične organizacione jedinice predmeta:
Osnovne informacije:
 
Kategorija Naučno-stručni
Uža naučna oblast Računarska tehnika i računarske komunikacije
Multidisciplinarna Ne
ESPB 6
Cilj:

Cilj predmeta je da se kod studenata razvije razumevanje odnosa o zavisnosti softvera i hardvera kroz mehanizme programskog jezika Ce (engl. C); kao i Ce++-a (engl. C++) jer se njihove hardverske apstrakcije u ogromnoj meri preklapaju. Namera je da se studenti osposobe za samostalan i disciplinovan razvoj programa u programskom jeziku Ce, sa dubinskim razumevanjem koda i načina na koji se to preslikava na hardver.

Ishod:

Nakon položenog predmeta, student je osposobljen da projektuje i realizuje programe srednje složenosti i industrijskog kvaliteta u jeziku C za raznovrsne ciljne platforme. Student je u stanju da razume odnos softvera i hardvera za širok opseg različitih arhitektura Takođe, razume i zahteve realnog vremena, i sposoban je da projektuje softver u skladu sa njima.

Sadržaj:

Zadaci programa koji se oslanjaju na procesorsku arhitekturu i njihove posebnosti. Značaj ograničenja realnog vremena i posledice na način programiranja i projektovanja softvera. Kontrolisano izvršavanje programa i uloga simulatora. Dublje upoznavanje sa hardverskom apstrakcijom programskoj jezika Ce: veličina i reprezentacija osnovnih tipova; promenljive i njihova predstava u fizičkoj arhitekturi; mehanizmi zauzimanja memorije; funkcije i pozivna konvencija; pokazivači i njihov odnos sa nizovima; mala i velika krajnost (engl. endianness); strukture, unije i adresno poravnanje; build proces i pretporcesor. Sistemi za kontrolu verzija. Osnovne strukture podataka koje su česte kod programa za namenske sisteme. Namenska proširenja Ce jezika: dopunski standardi i kompajlerske posebnosti. Teme vezane za bezbednost i pouzdanost programa: tehnike ispitivanja, formalni standardi kodiranja (MISRA i sl.), statička analiza koda. Ocena i merenje memorijskog zauzeća programa. Utvrđivanje vremena izvršavanja za najgori slučaj. Primeri namenskih arhitektura: DSP i GPU. Primeri primene veštačke inteligencije i mašinskog učenja sa posebnim zahtevima izvršavanja u realnom vremenu.

Metodologija izvođenja nastave:

Predavanja. Računarske vežbe. Konsultacije. U okviru predispitnih obaveza studenti rade predmetne projekte. Projektni zadaci obavezno sadrže nekoliko stepeni slobode, podstičući studente da samostalno prave odluke i vrednuju rezultate u kontekstu različitih mogućih namena, ciljnih arhitektura i zahteva realnog vremena. Na završnom ispitu proverava se razumevanja osnovnih principa i teorijskog dela gradiva.

Literatura:
Autori Naziv Godina Izdavač Jezik
Nermann Kopetz REAL-TIME SYSTEMS Design Principles for Distributed Embedded Applications 2002 Kluwer Academic Publishers Engleski
David J. Agans Debugging—The Nine Indispensable Rules for Finding Even the Most Elusive Software and Hardware Problems 2002 Amacom Engleski
-- ISO/IEC 9899:2018 Programming languages — C, International standard 2018 ISO/IEC Engleski
Milan Stevanovic Advanced C and C++ Compiling 2014 Apress Engleski
-- ISO/IEC 18037:2008 Programming languages - C - Extensions to support embedded processors, Technical report, ISO/IEC 2008 ISO/IEC Engleski
Formiranje ocene:
Predmetna aktivnost Predispitna Obavezna Broj poena
Odbranjene računarske vežbe Da Da 20.00
Teorijski deo ispita Ne Da 50.00
Predmetni projekat Da Da 30.00
Izvođači nastave:
Predavanja
Računarske vežbe