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
Instructor's Course Home Page


Jane W. S. Liu, Real-time Systems, Prentice Hall, 2000.


Additional handouts and reference texts will be announced.


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



  • 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
  • Interrupts
  • 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.