Syllabus

We will use the book Hard Real-Time Computing Systems: Predictable Scheduling Algorithms and Applications (Giorgio Buttazzo, Springer, 2nd edition, 2006), which is available online – free of cost – through UBC Library.

The tentative list of topics that are expected to be covered this term, and the sequence in which they shall be visited. (This list may change slightly as the term progresses.)

  1. Introduction to, and overview of, real-time and embedded systems
  2. Task models
  3. Periodic task scheduling and schedulability analysis for uniprocessors
    1. Static priority scheduling
    2. Dynamic priority scheduling
  4. The POSIX standard and RTOS fundamentals
  5. Communication between processes and threads
  6. Task synchronization
    1. Blocking
    2. Schedulability analysis with synchronization
  7. Scheduling aperiodic tasks using servers
  8. Completely aperiodic task systems
  9. Distributed real-time systems and resource pipelines
  10. Multiprocessor real-time systems
  11. Soft real-time systems
  12. Platform selection and system architecture issues
  13. Fault tolerance and reliability

The following books are also recommended:

  1. Introduction to Embedded Systems: A Cyber-Physical Systems Approach (Edward A. Lee and Sanjit Seshia.)
  2. Real-Time Systems (Jane Liu, Prentice Hall, 2000.)
  3. An Introduction to Real-Time Systems: From Design to Networking with C/C++ (Raymond J. A. Buhr and Donald L. Bailey, Prentice Hall, 1998.)
  4. Programming with POSIX Threads (David R. Butenhof, Addison Wesley, 1997.)
  5. Computers as Components: Principles of Embedded Computer System Design (Wayne Wolf, Morgan Kaufmann, 2000.)