Real-Time Systems

Course Description

In the course emphasis is set on software development for real time systems, introducing appropriate methods and development processes. Meeting timing constraints in complex multitask system is even harder problem, without general solution. Task scheduling principles that may be used in real time systems are presented and their benefits and drawbacks analyzed. Task scheduling, as well as other system properties, significantly depend on underlying operating system, thus operating system is also the subject of detailed analysis in the context of real time systems.

Learning Outcomes

  1. list real time system requirements
  2. illustrate methods and development processes for creating software components usable in real time systems
  3. evaluate scheduling feasibility while satisfying all timing constraints
  4. design and develop control program for simpler real time systems
  5. demonstrate usability of POSIX interface for adapting task scheduling, task synchronization and communication
  6. estimate usage of various methods, programs, operating systems and other components for real time environment

Forms of Teaching

Lectures

Lectures are organized through two cycles: first last seven weeks and second six weeks. After first cycle is scheduled mid term exam and after second cycle comes final exam. Each week there are three hour lecture. Within some lectures students will be tested with short tests.

Independent assignments

Homework includes solving of the given problems (published in the first week): design and implementation accompanied by a short documentation. Result should be then uploaded and later presented for grading.

Grading Method

Continuous Assessment Exam
Type Threshold Percent of Grade Threshold Percent of Grade
Laboratory Exercises 50 % 20 % 50 % 0 %
Quizzes 0 % 10 % 0 % 0 %
Mid Term Exam: Written 0 % 30 % 0 %
Final Exam: Written 50 % 20 %
Final Exam: Oral 20 %
Exam: Written 50 % 50 %
Exam: Oral 50 %

Week by Week Schedule

  1. Real time system (RTS) design: requirements, RTS categories, complexity as problem.
  2. Real time system (RTS) design: informal and formal methods. UML diagrams. Petri nets.
  3. Designing control program: program loop, interrupts, alarms, multithreading.
  4. Designing control program: PID regulator, fuzzy logic controller.
  5. Periodic and aperiodic tasks: task properties, system classification.
  6. Periodic and aperiodic tasks: theoretical scheduling algorithms. Priority scheduling. The earliest deadline first scheduling. Least laxity first scheduling.
  7. Multiprocessor scheduling algorithms. Task scheduling in operating systems.
  8. Midterm exam
  9. Optimal schedulers. Static scheduling for simple periodic tasks.
  10. Operating system interfaces for time related operations. Clocks. Granularity. Signals.
  11. Synchronization and communication concerns in RTS
  12. Priority inversion. Recursive locking.
  13. Distributed systems. Some additional problems when creating software for RTS:
  14. Properties of real-time operating systems (RTOS). Overview of existing free and commercial RTOS.
  15. Final exam

Study Programmes

University graduate
[FER3-HR] Audio Technologies and Electroacoustics - profile
Elective Courses (3. semester)
Elective Courses of the Profile (1. semester) (3. semester)
[FER3-HR] Communication and Space Technologies - profile
Elective Courses (1. semester) (3. semester)
[FER3-HR] Computational Modelling in Engineering - profile
Elective Courses (1. semester) (3. semester)
[FER3-HR] Computer Engineering - profile
Elective Course of the Profile (1. semester)
Elective Courses (1. semester) (3. semester)
Elective Courses of the Profile (3. semester)
[FER3-HR] Computer Science - profile
Elective Courses (1. semester) (3. semester)
Elective Courses of the Profile (1. semester) (3. semester)
[FER3-HR] Control Systems and Robotics - profile
Elective Courses (1. semester) (3. semester)
[FER3-HR] Data Science - profile
Elective Courses (1. semester) (3. semester)
[FER3-HR] Electrical Power Engineering - profile
Elective Courses (1. semester) (3. semester)
[FER3-HR] Electric Machines, Drives and Automation - profile
Elective Courses (1. semester) (3. semester)
[FER3-HR] Electronic and Computer Engineering - profile
Elective Courses (1. semester) (3. semester)
[FER3-HR] Electronics - profile
Elective Courses (1. semester) (3. semester)
[FER3-HR] Information and Communication Engineering - profile
Elective Courses (1. semester) (3. semester)
[FER3-HR] Network Science - profile
Elective Courses (1. semester) (3. semester)
[FER3-HR] Software Engineering and Information Systems - profile
Elective Courses (1. semester) (3. semester)
[FER2-HR] Computer Engineering - profile
Theoretical Course (1. semester)
[FER2-HR] Computer Science - profile
Specialization Course (1. semester)
[FER2-HR] Electrical Engineering Systems and Technologies - profile
Specialization Course (1. semester) (3. semester)

Literature

Leonardo Jelenković (2020.), Sustavi za rad u stvarnom vremenu, Online
Jane W. S. Liu (2000.), Real-Time Systems,
Nimal Nissanke (1997.), Realtime Systems,
Krishna (2010.), Real Time Systems, Tata McGraw-Hill Education
Alan Burns, Andrew J. Wellings (2001.), Real-time Systems and Programming Languages, Pearson Education

For students

General

ID 240704
  Winter semester
5 ECTS
L1 English Level
L1 e-Learning
45 Lectures
0 Seminar
0 Exercises
10 Laboratory exercises
0 Project laboratory

Grading System

90 Excellent
75 Very Good
60 Good
50 Sufficient