Skip navigation
The Australian National University

Real-Time & Embedded Systems COMP4330

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

Responsible Officer:  JavaScript must be enabled to display this email address. / Page Contact:  JavaScript must be enabled to display this email address.