Opis predmeta
Predmet uvede arhitekturo vgradnih sistemov, napredne funkcije ter njihovo uporabo. Osredotoča se na operacijske sisteme, realnočasovne operacijske sisteme in operacijske sisteme za vgradne sisteme, ter podrobno obravnava Linux, vključno s sistemskimi klici in funkcijami.
Poudarek je na upravljanju procesov, večopravilnosti, večnitnosti in upravljanju pomnilnika, z praktičnimi primeri v C/C++. Preučuje se medprocesno komuniciranje, sinhronizacija, semaforji in deljeni pomnilnik, s primeri v C/C++.
Predmet pokriva tudi osnove komunikacijskih omrežij, vključno z modelom odjemalec-strežnik in programiranjem vtičnic, čas in upravljanje časa v realnem času ter večprocesorske sisteme in paralelizem, s ciljem zagotoviti praktično znanje za razvoj in implementacijo vgradnih sistemov in njihove programske opreme.
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
-
Kerrisk, Michael. The Linux Programming Interface: A Linux and UNIX System Programming Handbook. No Starch Press, cop. 2010, San Francisco. ISBN 978-1-59327-220-3 (vez.), 1-59327-220-0 (vez.) COBISS.SI-ID: 5193569. Na voljo v knjižnici UL FE.
-
Stevens, W. Richard, in Stephen A. Rago. Advanced Programming in the UNIX Environment. 3rd ed. Addison Wesley, cop. 2013, Upper Saddle River [etc.]. ISBN 978-0-321-63773-4, 0-321-63773-9. COBISS.SI-ID: 2053701. Na voljo v knjižnici UL FE.