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.
- list real time system requirements
- illustrate methods and development processes for creating software components usable in real time systems
- evaluate scheduling feasibility while satisfying all timing constraints
- design and develop control program for simpler real time systems
- demonstrate usability of POSIX interface for adapting task scheduling, task synchronization and communication
- estimate usage of various methods, programs, operating systems and other components for real time environment
Forms of Teaching
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.
|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
- Introduction to real time systems. Comparing real time systems with other systems. Real time system properties.
- Informal procedures for building RT systems. Example.
- Formal procedures for building RT systems: UML diagrams, Petri nets. Software design basics.
- Creating controlling software. Appropriate program patterns.
- Building controller tasks (PID controller, fuzzy logic).
- 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.
- 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.
- Mid term exam.
- Dynamic uniprocessor scheduling. Mixed scheduling. Generalized task scheduling on multiprocessors. Generalized multiprocessor scheduling for directed acyclic graphs. Task scheduling with rooted computation tree method.
- Multiprocessor dynamic task scheduling. Scheduling game and multiprocessors simulation. Computation time laxity. Schedulers optimality. Scheduling feasibility.
- Operating system principal components. Scheduling methods available in operating systems.
- Priority inversion problem and its mitigation. Real time operating systems. POSIX interface for setting scheduling parameters, for task synchronization and communication.
- Real time communication over different communication channels.
- General purpose operating system properties. Improving system properties and adapting them to be usable in soft real time systems.
- Final exam.