Opis predmeta
Uvod, bistvene arhitekturne lastnosti vgradnih sistemov, napredni vgradni sistemi, področja in primeri uporabe.
Koncepti operacijskih sistemov (OS). OS v realnem času. OS za vgradne sisteme.
Linux, pregled sistemskih klicev in funkcij.
Upravljanje procesov/opravil, večopravilnost, večnitnost. Upravljanje pomnilnika. Razvrščanje procesov/opravil. Sistemski klici in funkcije za upravljanje procesov/niti. Primeri v programskem jeziku C/C++.
Medprocesne komunikacije, kritično področje, sinhronizacija, semaforji, signali, deljen pomnilnik, cevi, sporočila. Sinhronizacija niti. Sistemski klici in funkcije, s primeri v programskem jeziku C/C++.
Koncepti komunikacijskih omrežij, ISO OSI, TCP/IP, protokoli in storitve. Model odjemalec strežnik. Programski vmesnik komunikacijskih vtičnic s primeri v jeziku C/C++.
Čas in upravljanje časa. Časovniki. Sistemi v realnem času. Razvrščanje v sistemih realnega časa. Primeri v jeziku C/C++.
Večprocesorski sistemi, oblike paralelizmov, pohitritev, učinkovitost, načrtovanje paralelnih/porazdeljenih algoritmov in programov.
Predmet učimo na programih
Elektrotehnika 2. stopnja
Cilji in kompetence
Razumevanje osnovnih načel ter uporaba sodobnih tehnologij in rešitev v naprednejših vgradnih sistemih za avtomatiko in robotiko.
Metode poučevanja in učenja
Na predavanjih so predstavljene teoretične osnove obravnavanih poglavij skupaj s praktičnimi prikazi na Linuxu.
Praktično delo poteka v okviru laboratorijskih vaj. Te so zasnovane v obliki večih programerskih nalog, v katerih se študentje postopoma seznanjajo s posameznimi elementi modernih operacijskih sistemov na konkretnem primeru Linuxa. Skupino na vajah sestavljata dva ali trije študentje, rezultati pa so v obliki programske kode v jeziku C/C++ za izbrano vgradno platformo. Po vsakem delu vaj študentje predstavijo svoje rezultate asistentu.
Predvideni študijski rezultati
Po uspešno opravljenem predmetu bi naj bili študenti zmožni:
- Definirati osnovna načela operacijskih sistemov za vgradne, realnočasovne sisteme v avtomatiki in robotiki.
- Poiskati problemu primerne rešitve za medprocesno komunikacijo v vgradnih sistemih
- Uporabiti problemu primerna orodja, ki jih ponuja operacijskih sistem za kontrolo procesov v vgradnih sistemih
- Izdelati programsko opremo za vgradne sisteme, temelječe na operacijskih sistemih.
- Izdelati preprosto komponento operacijskega sistema, ki deluje v načinu jedra (preprost modul jedra v OS Linux)
- Izbrati ter svetovati prave in primerne rešitve na podlagi vgradnih sistemov za konkretne probleme iz avtomatike in robotike
Temeljni viri in literatura
- M. Kerrisk, The Linux Programming Interface, No Starch Press, Inc., 2010.
- R. Stevens, S. Rago, Advanced programming in the UNIX environment, 3rd Ed., Addison Wesley, 2013.
- Vgradni sistemi, Študijsko gradivo izvajalcev predmeta (Embedded systems: course material written by the lecturers), navodila za vaje (lab assignment instructions).