CATALOG DESCRIPTION: Theory, design, and implementation of real-time systems, i.e., special-purpose computers that guarantee certain tasks will be completed by certain times. Use of real-time operating systems.
- This course satisfies the project requirement.
Jane W. S. Liu, Real-time Systems, Prentice Hall, 2000.
Additional handouts and reference texts will be announced.
COURSE COORDINATOR: Peter Dinda
COURSE GOALS: This course will focus on the design of computer systems that must or should provide timely responses. Automotive control, avionics, streaming media, and games are real-time systems. In addition to traditional hard real-time concepts and design, we will also explore soft real-time systems and distributed real-time systems. This is a project-oriented course. Students will develop a real-time system composed of small single-board computers and hand-held computers.
- Required: CS 343 or similar operating systems experience
- Required: Familiarity with ANSI C systems programming
- Recommended: Familiarity with micro-controller based design
DETAILED COURSE TOPICS:
- Introduction to general real-time concepts
- Deterministic guarantees, stochastic guarantees, and best-effort behavior; hard and soft real-time systems
- Limitations of general purpose operating systems
- Tasks, task sets, dependencies, and resources
- Admission control and scheduling problems
- Rate monotonic analysis
- Offline analysis and the creation of cyclic executives
- Synthesis methods and tools for embedded systems
- Real-time operating systems
- Earliest deadline first scheduling
- Priority inversion
- Real-time networking (Tenet, ATM, WFQ, etc)
- Distributed real-time systems in the small (CAN, etc)
- Distributed real-time systems in the large (RT CORBA, RT Java, etc)
- Adaptative real-time systems
Students will use single-board computer and handheld computer development environments in teaching laboratory.
Homework assignments and laboratory assignments to be announced.
- 50% Projects
- 10% Homework
- 20% Midterm
- 20% Final exam
COURSE OBJECTIVES: When a student completes this course, s/he should be able to
- Formally specify tasks, their constraints, and dependencies;
- Use rate monotonic analysis (RMA), to determine whether a set of independent tasks will meet its timing constraints;
- Create a custom cyclic executive for a constrained set of tasks that minimizes the overall resource costs;
- Program an embedded system with your tasks and executive;
- Understand and use tools ease the implementation of embedded hard real-time systems;
- Understand how general-purpose real-time scheduling algorithms such as earliest deadline first (EDF) schedule tasks, both period and aperiodic, to meet their timing constraints;
- Understand how to combine bounded interrupt times, EDF, full preemption, priority inheritance, and admission control to achieve hard real-time performance in a general purpose operating system;
- Understand how networks can provide hard and soft real-time guarantees;
- Understand how distributed real-time systems are designed and built on top of OS-level and network-level real-time primitives; and
- Understand how adaptive distributed real-time systems can provide some degree of real-time behavior even when such primitives are unavailable.