Real-Time Embedded Systems COMP6433
Course overview
Course description
Real-time and embedded systems are all around us. Controlling cars, trains, or aeroplanes, as well as mobile phones, cameras, or A/V equipment, embedded systems are a challenging and demanding part of computer science and engineering. This course delivers foundations of real-time analysis and implementation of systems which are interconnected with the physical world (embedded systems). It also delivers the principles of fault tolerant systems and highly reliable systems. Techniques which are introduced include real-time calculus, real-time scheduling, elementary sensor data filtering and fusion methods, error recovery strategies, and graceful degradation methods.
Rationale
Real-time and embedded systems are vital components for many current and future applications and open at the same time a field of computer science, logic, and engineering which is not addressed in classical efficient algorithms courses. A central issue in most fields of computer science and engineering is to reach a high level of efficiency in terms of highest throughputs, shortest response times, or alike. This course addresses another important issue which adds a new dimension to these general criteria, which is: ``keeping in synchronization with a physical system''. Working academically or industrially in the wide area of systems with a physical integration in its operational environment, it is essential to know about the foundations of hard real-time and safety critical systems.
Ideas
This course will carry the main responsibility for:
- Presenting the main ideas associated with real-time constraints and the integration of computer systems into a physical environment.
- Delivering the understanding of the balance between theoretical foundations and system integration approaches in real-time environments.
- introducing hard realtime development suits including Ada and RT-Java
The course shares responsibility for teaching software design by providing an introduction to the techniques and tools in this area. It will also widen the view for different programming languages and theoretical approaches, since the field demands powerful and expressive tools beyond classical imperative programming.
Topics
The following topics will be covered:
- real-time notions
- real-time analysis
- reliablity, safety, redundancy, and fault tolerance issues
- language support for real-time applications
- synchronization and global time issues
- basic sensor techniques
- real-time scheduling
- real-time calculus (temporal logic)
- system integration with asynchronous hard real-time components
- common micro-controllers for embedded systems
- many application example cases
Technical skills
Upon completion of this course, the student will be able to:
- write programs dealing with time constraints.
- handle distributed micro-controller systems.
Textbooks
Ben-Ari, M. Principles of Concurrent and Distributed Programming, Prentice Hall, 1990.
Tanenbaum, Andrew S.Distributed Operating Systems, 1st edition, Prentice Hall, Upper Saddle River, New Jersey, 1995.
Workload
Three hours per week lectures and two hours per week laboratory sessions


