Subject description
The basic notion of operating systems. The role of programming languages and libraries. The kernel and shell concept. Structural differences between real-time and non-real-time operating systems. Multitasking and low level context switch. Heap management. Virtual vs. physical address space. The relations between MMU, DNA and memory cache. File systems. Virtual memory. Stack size and multiple stack structures. Processes and threads. Priority based scheduling.
The subject is taught in programs
Objectives and competences
Understanding contemporary industrial operating systems with multitasking and real-time capabilities. Surveille of modern embedded systems software development products and hands-on project lab work.
Teaching and learning methods
Lectures, discussion groups, laboratory project work (group and individual).
Expected study results
Upon successful completion of this course, the students should be able to:
- select an appropriate operating system structure for a given realtime problem.
- determine the respective memory size
- select a suitable heap management scheme for a given realtime application.
- verify and validate realtime C code.
- control the fragmentation in file systems.
- perform complex schedulability analysis of a given real-time problem.
Basic sources and literature
- PUHAN, Janez. Operating systems, embedded systems and real-time systems. 1st ed. Ljubljana: FE Publishing, 2015. VII, 163 str.
- Spletna stran operacijskega sistema FreeRTOS.
- Spletna stran mikrokrmilniškega sistema Arduino Due
- Spletna stran mikrokrmilnika SAM3X8E