Real-Time Systems

Course Description

Computer systems used in real time environment must meet strict timing constraints. To be able to meet timing constraints both hardware and software components must be carefully designed. 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.

General Competencies

Students gain knowledge about the real time systems, their requirements, restrictions and general principles used in their construction. Knowledge includes design of control programs, task scheduling and usage of operating system facilities for achieving desired real time system properties.

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.

Exams

Mid term exam and first part of final exams are written. Second part of final exam is verbal exam. Written exams takes 90 minutes for mid term and 120 minutes for final exam. Questions on all exams are both theoretical and practical.

Programming Exercises

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
Homeworks 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. Introduction to real time systems. Comparing real time systems with other systems. Real time system properties.
  2. Informal procedures for building RT systems. Example.
  3. Formal procedures for building RT systems: UML diagrams, Petri nets. Software design basics.
  4. Creating controlling software. Appropriate program patterns.
  5. Building controller tasks (PID controller, fuzzy logic).
  6. RT task properties. Task scheduling classification. Ordered task sets. Processor utilization and schedule feasibility. Uniprocessor static scheduling. Rate monotonic priority assignment. Schedulability in critical instant.
  7. Processor utilization bounds. Processor utilization with only two tasks. Schedulability of multiple tasks based on processor utilization. The general criterion of schedulability. Alternative criteria for determining schedulability.
  8. Mid term exam.
  9. Dynamic uniprocessor scheduling. Mixed scheduling. Generalized task scheduling on multiprocessors. Generalized multiprocessor scheduling for directed acyclic graphs. Task scheduling with rooted computation tree method.
  10. Multiprocessor dynamic task scheduling. Scheduling game and multiprocessors simulation. Computation time laxity. Schedulers optimality. Scheduling feasibility.
  11. Operating system principal components. Scheduling methods available in operating systems.
  12. Priority inversion problem and its mitigation. Real time operating systems. POSIX interface for setting scheduling parameters, for task synchronization and communication.
  13. Real time communication over different communication channels.
  14. General purpose operating system properties. Improving system properties and adapting them to be usable in soft real time systems.
  15. Final exam.

Study Programmes

University graduate
Computer Engineering (profile)
Theoretical Course (2. semester)
Computer Science (profile)
Specialization Course (2. semester)
Electrical Engineering Systems and Technologies (profile)
Specialization Course (2. semester)

Literature

J.W.S. Liu (2000.), Real-Time Systems, Prentice Hall
N. Nissanke (1997.), Realtime Systems, Prentice Hall
C.M. Krishna, K.G. Shin (1997.), Real-time Systems, McGraw-Hill
A. Burns, A. Wellings (1996.), Real-Time Systems and Programming Languages, Addison -Wesley

Laboratory exercises

General

ID 86529
  Summer semester
5 ECTS
L1 English Level
L1 e-Learning
40 Lectures
0 Exercises
5 Laboratory exercises
0 Project laboratory

Grading System

90 Excellent
75 Very Good
60 Good
50 Acceptable