ANU crest

Department of
Computer Science
The Australian National University

Real-Time &
Embedded Systems

(comp4330, comp6433)

Lectures
<empty space> Schedule
<empty space> Contents
(incl. slides
& soundtrack)
<empty space>
Laboratories
<empty space> Setup & manuals
<empty space> Assignments
<empty space>
Assessment
<empty space> Examination
<empty space>
Resources
<empty space> References
<empty space> Sources
<empty space> Description
<empty space> Forum

<empty space>


Course administrative handout
 
(6 units) Group C
Second Semester


Three hours per week lectures / two hours per week laboratories

Lecturer: Dr. Uwe R. Zimmer

Prerequisites

COMP2300 and COMP2310; or ENGN2211 and ENGN2223

Syllabus

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.

Description

This course is an introduction to the multi-disciplinary field of embedded real-time systems, where issues from physical sensors up to system integration are addressed. The method of teaching consists of two parallel streams. One following the theoretical foundations of the field, such us temporal logic or real-time scheduling, where the second one is relating the introduced foundations to applications. An important challenge for the course is to tie together diverging fields which are essential for an integrated real-time system.

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 unit 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 unit 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

Objectives

Upon completion of this unit, the student will be able to:
  1. formulate real-time constraints.
  2. employ standard real-time programming constructs.
  3. develop a concept to handle the requests level of reliability.
  4. construct and implement an architecture for an asynchronous, distributed real-time system.
  5. understand and consider constraints from physical dynamical systems.
  6. participate significantly in the enhancement of the reliability (or analysis) of safety critical systems.

Assessment

The following assessment modes are used.
final examination
testing all objectives.
laboratory exercises
the programming exercise will test the capabilities of employing standard real-time constructs and of designing and implementing asynchronous real-time systems. The handling of simple closed control loops with basic physical devices is also tested.
Laboratory assessments: 30%, Final examination: 70%

Technical Skills

Upon completion of this unit, the student will be able to:
  • write programs dealing with time constraints.
  • handle distributed micro-controller systems.

Recommended Reading

  • M. Ben-Ari. Principles of Concurrent and Distributed Programming. Prentice Hall, 1990.
  • Andrew S. Tanenbaum. Distributed Operating Systems. Prentice Hall, Upper Saddle River, New Jersey, 1st edition, 1995.




© The Australian National University
ANU CRICOS Provider Code - 00120C
Wednesday, 27 July 2011Uwe R. Zimmer

<empty space>