Real-Time Operating Systems

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

  1. PUHAN, Janez. Operating systems, embedded systems and real-time systems. 1st ed. Ljubljana: FE Publishing, 2015. VII, 163 str.
  2. Spletna stran operacijskega sistema FreeRTOS.
  3. Spletna stran mikrokrmilniškega sistema Arduino Due
  4. Spletna stran mikrokrmilnika SAM3X8E

Stay up to date

University of Ljubljana, Faculty of Electrical Engineering Tržaška cesta 25, 1000 Ljubljana

E: T:  01 4768 411