Real-Time Systems - EDA222 / DIT161

  7.5 hec, Quarter 3, 2009/10

This web page functions both as a course description sheet and as a medium for distribution of new information regarding the course. The information will be updated dynamically, so please visit this web page at least once per week. For general information regarding the course please consult the syllabus page at the Student Portal.

News

2010-03-23     Preliminary results from the grading of the written exam 2010-03-09 available via the Student Portal (link here).
If you do not have access to the Student Portal, contact the examiner to receive your result. The graded reports
can be inspected on Tuesday, March 30 at 13:00-15:00 in room 4128.
2010-03-09     Problems and solutions for the written exam 2010-03-09 available here.
2010-03-04     Solutions to examples demonstrated on Lecture #15 available here.
2010-03-02     Handouts for Lecture #16 available here.
2010-03-02     Handouts for Exercise #7 available here.
2010-03-02     Link to web page describing Chalmers-approved calculators available here.
2010-02-26     Handouts for Lecture #15 available here.
2010-02-26     Solutions to examples demonstrated on Lecture #14 available here.
2010-02-23     Handouts for Exercise #6 available here.
2010-02-23     Solutions to examples demonstrated on Lectures #12 and #13 available here.
2010-02-23     Handouts for Lecture #14 available here.
2010-02-21     Handouts for Lecture #13 available here.
2010-02-21     Minutes from mid-quarter course evaluation meeting can be found here.
2010-02-16     Handouts for Exercise #5 available here.
2010-02-15     Handouts for Lecture #12 available here.
2010-02-14     A sample access graph added to the assignment page. Access graphs are required in the laboratory report.
2010-02-14     Handouts for Lecture #11 available here.
2010-02-10     Important: Lecture #10 on Thursday, February 11, is cancelled due to the guest lecturer being ill.  
As a consequence, the exercise session (Exercise #4) is moved to the time slot (13.15 - 15.00) of the lecture.
2010-02-09     Handouts for Exercise #4 available here.
2010-02-07     Handouts for Lecture #9 available here.
2010-02-07     Solutions to examples demonstrated on Lecture #7 available here.
2010-02-02     Handouts for Exercise #3 available here.
2010-02-02     Handouts for Lecture #8 available here.
2010-01-31     Handouts for Lecture #7 available here.
2010-01-30     Solutions to examples demonstrated on Lectures #3, #4 and #6 available here.
2010-01-29     The laboratory assignment compendium has been updated. Please download the update from the assignment page.
2010-01-26     Handouts for Exercise #2 available here.
2010-01-25     Information regarding group areas on the laboratory computer system added to the assignment page.
2010-01-24     Handouts for Lectures #4, #5 and #6 available here.
2010-01-21     There are now three student representatives for the course evaluation (for more information, see here.)
2010-01-19     Reading guidelines for the course book is now given on the lecture page in conjunction with each lecture. 
Guidelines for the previous (3rd) edition of the book is also provided.
2010-01-19     Handouts for Exercise #1 available here.
2010-01-17     Handouts for Lectures #1, #2 and #3 available here.
2010-01-11     Updated the official home page of the course for 2009/10.

Staff (contact information)

Course elements

Aim and context

A real-time system is a computer system in which the correctness of the system depends on the time when results are generated. Real-time systems interact with a more or less time-critical environment. Examples of real-time systems are control systems for cars, aircraft and space vehicles, manufacturing system, financial transaction systems, computer games and multimedia applications. This course is intended to give basic knowledge about methods for the design and analysis of real-time systems.

After the course the students shall be able to:

In the design of real-time systems it is practical to implement the application software as multiple concurrently executing processes, there each process is responsible for a given task in the system. The concept of multiple processes provides for an intuitive way of decomposing a complex system into smaller parts that are simple to comprehend and implement.

This course uses Ada as the main programming language because of its powerful support for programming of concurrent processes. In particular, the course demonstrates how language constructs such as rendezvous and protected objects are used for implementing communication/synchronization between processes, resource management and mutual exclusion. Since other programming languages uses monitors or semaphores to implement these functions, the course also contains a presentation of such techniques. In addition, the course demonstrates how to use low-level programming in Ada to handle interrupt-driven communication with input and output devices. To demonstrate the general principles in real-time programming, the course also gives examples of how these techniques are implemented in other programming languages, such as C and Java.

In order to execute a program containing multiple concurrent processes there is a real-time kernel (run-time system) that distributes the available capacity of the microprocessor among the processes. The course shows how a simple real-time kernel is organized.

The real-time kernel determines the order of execution for the processes by means of a scheduling algorithm. To that end, the course presents techniques based on cyclic time-table based scheduling as well as scheduling techniques using static or dynamic process priorities. In addition, protocols for the management of shared hardware and software resources are presented.

In real-time systems with strict timing constraints it is necessary to make a pre-run-time analysis of the system schedulability. The course presents three different analysis methods for systems that schedule processes using static or dynamic priorities: utilization-based analysis, response-time analysis, and processor-demand analysis. In conjunction with this, the course also gives an account on how to derive the maximum resource requirement (worst-case execution time) of a process.

Context

The Real-Time Systems course requires a BSc in Computer Science and Engineering or equivalent, and basic courses in programming and computer organization.

Important Dates

  •  
Tue   Jan 19 First lecture, 10.00 - 11.45 in HA2
  •  
Fri   Mar 5 : Deadline, Laboratory report
  •  
Tue   Mar 9 : Written exam, afternoon, Johanneberg
  •  
Fri   Mar 26 : Final approval deadline, Laboratory assignment

Lectures

The course is organized as a series of lectures where fundamental theories and concepts are presented. Lectures are given at two occasions per week (except study week 1 and 2 where there are extra lectures on Wednesday):

  •  
Tue   10.00 - 11.45   HA2    
  •  
Wed   08.00 - 09.45   HA2   (week 1 & 2 only)
  •  
Thu   13.15 - 15.00   HA2    

As a complement to the lectures, there will be exercise sessions on the specific topics covered during the main lectures. At each session, a course assistant gives a mini lecture on selected parts of the course contents, and also discusses selected problems from the exercise compendium. The remaining time is for discussing solutions to the selected problems or the laboratory assignment. Exercise sessions are offered on one occasion per week:

  •  
Thu   15.15 - 17.00   HA2    

Preliminary schedule: TimeEdit

Detailed information on the lectures will appear here.

Course book

Alan Burns and Andy Wellings, Real-Time Systems and Programming Languages, 4th edition, Addison-Wesley, 2009, ISBN 978-0-321-41745-9

Course Evaluation

For the purpose of course evaluation, we ask volunteers to act as student representatives. Their role includes giving the teachers some feedback on the course. Please send them an email if you have comments or suggestions for improvements regarding the course.

The student representatives are:

  •  
Behrooz Sangchoolie
  •  
Sari Haj Hussein
  •  
Linda Nilsson

Minutes from mid-quarter course evaluation meeting can be found here.

Chalmers central instructions on course evaluation