CENG 383

Real-Time Systems

Specification and verification techniques for real-time systems with many interacting components. formal design of real-time systems using (a) programming languages with unambiguous semantics of time – related behavior and (b) scheduling algorithms. Real-time operating systems, concepts of programming languages for real-time systems. Synchronous programming languages for reactive systems and their mathematical background. Software development for real-time systems.

Course Objectives

To introduce the fundamentals of real-time systems. To be able to create real-time operating systems.

Recommended or Required Reading

Phillip Laplante, Real-Time Systems Design and Analysis – An Engineer’s Handbook, IEEE Press, 1993.

S.H.Son, Advances in real-time systems, Englewood Cliffs, N.J.: Prentice Hall, c1995.

Learning Outcomes

1. To classify various kinds of real-time systems
2. To identify real-time sytems and design by formal techniques.
3. To be able to create real-time kernels, and to develop programmes on operating systems
4. To demonstrate the ability to use formal methods

Topics
Fundamentals of Real-Time Systems
Review of Computer Architectures in terms of the Realization of Real-Time Systems
Real-Time Definition and Design Techniques
Formal Methods: Timed Automata and Petri-Nets, Model Checking
Real-Time Programming Languages
Synchronous Programming Languages
Real-Time Kernels – I: Theoretical Findings, Scheduling Algoritms
Laboratory Work – I (Advanced C and Assembly Programming)
Real-Time Kernels – II: POSIX
Fault-Tolerance
HW/SW Integration, Performance Analysis and Optimization
Laboratory Work – II (Real-Time Kernel Design: Bootstrap, process management)
Laboratory Work – III (Real-Time Kernel Design: Time Management, Interrupt Mechanisms)
Laboratory Work – IV(Real-Time Kernel Design: Coding Real-Time Scheduling Algorithms)

Grading

Written Midterm Exam: 20%

Written Final Exam:  30%

Assignments: 10%

Term Project:  40%