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. Information regarding course syllabus, examination results, and submission of homework assignment is available at the course's home page at the Student Portal.
|091202: The next re-exam will take place on January 14, 2009 at 08:30-12:30. Deadline for examination sign-up is December 25, 2009.|
|090909: Preliminary results from the grading of the written re-exam 2009-08-24 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 Monday, September 14 at 11:00-12:00 in room 4472.|
|090906: Due to the course examiner's illness last week, the grading of the written re-exam 2009-08-24 will be delayed. As soon as the grading has been completed, a new time for inspection will be announced.|
|090329: Preliminary results from the grading of the written exam 2009-03-10 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 Monday, March 30 at 13:00-15:00 in room 4128.|
|090311: Problems and solutions for the written exam 2009-03-10 available under Course documents.|
|090303: Solutions to examples demonstrated on Lectures #11, 12, 13 and 14 available under Course documents.|
|090303: Handouts for Lecture #15 and Exercise session #7 available under Course documents.|
|090303: Updated handouts for Lecture #14 (an error in the table on slide 18 was corrected).|
|090301: Handouts for Lecture #14 available under Course documents.|
|090218: Handouts for Lecture #13 and Exercise session #6 available under Course documents.|
|090222: Handouts for Lecture #12 available under Course documents.|
|090219: Solutions to examples demonstrated on Lectures #3, 4, 6 and 7 available under Course documents.|
|090218: Handouts for Lecture #11 and Exercise session #5 available under Course documents.|
|090215: Handouts for Lecture #10 available under Course documents.|
|090210: Handouts for Lecture #9 and Exercise session #4 available under Course documents.|
|090210: Handouts for Lecture #8 available under Course documents. Guest lecturer is Dr. Stefan Kuntz, Continental Automotive.|
|090203: Handouts for Lecture #7 and Exercise session #3 available under Course documents.|
|090201: Handouts for Lecture #6 available under Course documents.|
|090127: Handouts for Lecture #5 and Exercise session #2 available under Course documents.|
|090126: Handouts for Lecture #4 available under Course documents.|
|090120: Handouts for Exercise session #1 available under Course documents, and Exercise compendium available under Course literature.|
|090118: Handouts for Lectures #1, #2 and #3 available under Course documents.|
|090114: Updated the official home page of the course in Real-Time Systems for 2008/09.|
|Lecturer and examiner:||
Room: 4472 (EDIT house)
4466 (EDIT house)
4479 (EDIT house)
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.
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 where there is an extra lecture on Wednesday at 08.00-09.45 in room HC2):
|Tuesdays at 10.00-11.45 in room HC2||Thursdays at 13.15-15.00 in room HC2|
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:
|Thursdays at 15.15-17.00 in room HC2|
To achieve practical experience of the construction of a real-time system, a compulsory laboratory assignment is included in the course. The purpose of the assignment is to control a simulated train system with the aid of concurrent tasks on a microprocessor. The software tasks should be able to handle switches, sensors and speed control of two train sets. The assignment encompasses control of external units using interrupt handling. The software is programmed using Ada 95.
sessions are administrated in the following way. If you are a Chalmers student, you register for a group (link
to group registration) at Studieportalen and will thereby be assigned a group name (which is
also the name of your account on the laboratory computer system). If you
do not have access to the registration service, you contact the laboratory assistant to get a group name.
book time slots in the laboratory by writing the assigned group name on a
booking list outside the laboratory assistant's office.
The laboratory sessions are done in groups of at most two students, and take place in the course laboratories of the Division of Computer Engineering (southern part of the EDIT building, floor 4) during study weeks 2 through 7.
The booking of time slots for the laboratory sessions can be done on January 21 at the earliest.
The following time slots are available for the laboratory sessions
(at most 12
groups per time slot):
|Monday 17.00-21.00||Wednesday 08.00-12.00||Thursday 08.00-12.00||Friday 08.00-12.00|
To avoid a shortage of laboratory session time slots at the end of the course, every group must book (and attend) one time slot per week during study weeks 2, 3, 4, 5 and 6. Since the number of time slots per week are limited, not all groups will be to able book more than time slot per week. Therefore, it is not allowed to book more than one time slot in advance. Booking of additional time slots may be done on the day before the current time slot at the earliest. Booked time slots that are not being used will not be compensated for.
Approval of the laboratory assignment is done in the following way. The students demonstrates a functioning program for the course assistant. At the same time, the students should explain how the software is constructed, using access graphs and program listings. Finally, a laboratory report should be written and electronically submitted via the Student Portal (link to report submission) or via email to the laboratory assistant (if you do not have access to the submission service).
Deadline for submitting the laboratory report is March 6, 2009. Deadline for final approval is March 27, 2009.
Student reception and consultation:
Questions related to course contents and laboratory assignment are primarily
answered in conjunction with the lectures, exercise sessions and laboratory
sessions. Otherwise, questions are answered by the course responsible at the
following reception time:
|Wednesdays at 13.15-13.45 in room 4479 (EDIT house)|
The student is evaluated through a final written exam. An approved laboratory assignment and passing the written exam yields a final grade (scale is U, 3, 4, 5). The following material is permitted to use during the written exam:
For the final exam the following rules of thumb apply:
The first re-examination will take place on August 24, 2009 at
14.00 - 18.00 in the V building.
The second re-examination will take place on January 14, 2010 at 08.30 - 12.30.
IMPORTANT! As of the academic year 2005/06, there are compulsory sign-ups for final written exam. You can sign up as early as six weeks before but no later than two weeks prior to the beginning of the examination period. Cancellation of a sign-up must be made one week or more prior to the date of the exam. Examination sign-up is made via the Student Portal (link to examination sign-up).
Alan Burns and Andy Wellings, Real-Time Systems and Programming Languages, 3rd edition, Addison-Wesley, 2001, ISBN 0-201-72988-1 (can be purchased at Cremona and at DC)
What parts of the book that are relevant are listed in the following reading guidelines. (Reading guidelines for the old course book Concurrency in Ada are available here.)