ECE 397-1 (with CS): Introduction to Real-Time Systems
Time change and clarification of prerequisites
Introduction to Real-Time Systems initially had scheduling conflicts with a
number of other related courses. In order to make it easier for prospective
students to register, lectures have been rescheduled to 12:30-2:00 on
Tuesdays and Thursdays in Tech LR5. In addition, the prerequisites have been clarified.
Project
Example sensor code
Example PPC code
Introduction to Real-Time Systems is a project-oriented course.
The project will be the design and implementation of a distributed
real-time system, a sensor network.
You will use battery-powered, wireless, microcontroller-based sensor
boards to gather temperature, light level, and audio
information. You'll write code to locally analyze this information,
determining whether anything unusual has been observed in order to
assign a priority to your sensor board's transmissions. Then, you'll
balance the tasks of sensing, data processing, transmitting data, and
retransmitting data to assist your peers. This part of the class will
introduce you to the development of tightly resource constrained
embedded real-time systems.
You will use wireless Pocket PC computers to provide audio and video
capabilities to the system and as clients from which to ask questions
like "where in Tech is there activity?" and "let me see what's going
on!". Similar to the sensor board element, you will learn how to
balance your Pocket PC's many tasks to provide stable real-time
behavior. Here, you'll be working on top of a larger real-time
operating system, Windows CE.
The finished system will automatically route important information
(temperature, light, rumble, audio, and video streams) throughout an
automatically formed wireless network to observers (Pocket PCs and
desktop machines) that may reconfigure the sensor nodes or remotely
cause them to take actions such as sounding an alarm.
Students will form teams in order to complete the course project. We
will make a strong effort to form well-balanced teams with each teams
students collectively having the appropriate background.
Course goals
This course focuses on the design and implementation of computer
systems that must or should provide timely responses. Real-time
systems surround us and their development requires special skills.
Automotive control, avionics, streaming media, and games are all
real-time systems. In addition to traditional hard real-time
concepts, design, and implementation, we will also explore soft
real-time systems and distributed real-time systems.
Where this course can fit in your requirements
ECE 397-1 can be used toward your CS degree electives, for both MEAS
and WCAS students. It will also count towards your CS project
requirement.
- Proficiency with ANSI-C and C++ is required.
- Familiarity with microcontroller-based systems will be helpful, but is not
required.
- Familiarity with Windows-based development using Visual Studio and
similar tools will be helpful, but is not required.
- Familiarity with operating system concepts such as processes and
threads, as well as some systems programming experience, are required.
However, CS 343 and/or CS 213 are not required.
Faculty
- Robert Dick
- Electrical and Computer Engineering
- Office: Tech L477
- Office hours: Tuesday and Thursday 4:00-5:00 and by appointment
- Peter Dinda (Computer
Science)
Teaching assistant
Main reference
Jane W. S. Liu, Real-Time Systems, Prentice Hall, 2000.
Handouts
Papers (should be accessible from Northwestern)
- Leveson/Turner Therac-25 Paper
- Liu/Layland RMA and EDF paper
- Ferrari/Banerjea/Zhang Tenet paper
-
O. Coudert, “Exact Coloring of Real-Life Graphs is Easy,”
Design Automation, Jun. 1997. Not required but makes important point
on solving hard problems.
- Streaming media (Kurose and Ross, 2nd Edition, Chapter 7)
- Ramamritham, et al Distributed Real-time Scheduling Paper
- Bestavros Load Profiling Paper
- Schmidt Real-time CORBA architecture paper
- DARPA QUORUM Project
- Mitzenmacher Power of Two Choices Paper
- Dinda, et al Best Effort Real-time Case Paper
- Noble, et al Odyssey Paper
- Lehoczky real-time queueing theory paper
- Disseration on
embedded real-time system synthesis. Most of the contents also appeared in
conferences and journals.
- Introduction to Windows CE Programming on the Pocket PC
- Pocket PC Code Structure
- Workload Characterization: Beyond The
Book
- Brief portion of Michael R. Garey and David S. Johnson, Computers and
Intractability: A Guide to the Theory of NP-Completeness, W.H. Freeman
& Company, NY, 1979. Handed out in class.
- K. Ramamritham and J. Stankovic, “Scheduling Algorithms and Operating
Systems Support for Real-Time Systems” Proc. IEEE,
Jan. 1994. Handed out in class.
- Yu-Kwong Kwok and Ishfaq Ahmad “Static scheduling algorithms for
allocating directed task graphs to multiprocessors” ACM Computing
Surveys, 1999. Handed out in class.
- Kaushik Ghosh, Bodhisattwa Mukherjee, and Karsten Schwan, “A Survey
of Real-Time Operating Systems (Draft)” Georgia Institute of Technology
Technical Report, Feb. 1994. Portion handed out in class.
- Leslie Lamport's preprint on proving timing properties with model
checkers. Handed out in class.
Technical documents
Projects
Page maintained by
Robert Dick.