ECE: Electrical & Computer Engineering
Accredited by ABET
Undergraduate Programs

ECE 4550 Real-Time Systems

Fall 2015 textbook list

The Fall 2015 ECE textbook list is available online for students.

Current Prerequisites & Course Offering

For current prerequisites for a particular course, and to view course offerings for a particular semester, see the Virginia Tech Course Timetables.

Return to course list

ECE 4550 Real-Time Systems (3C)

Theory, algorithmic and protocol concepts, mechanisms, and implementations of real-time computer systems. Introduction to real-time systems, real-time scheduling, real-time synchronization, real-time operating system kernels, and real-time programming languages. Design and analysis of real-time resource management algorithms (e.g., scheduling, synchronization), their implementations in production operating system kernels, experimental studies of those implementations, and real-time application development.

What is the reason for this course?

Real-time computing is an important sub-discipline of computer engineering with significant applications in a number of domains including industrial automation (process control and discrete manufacturing), defense, avionics, and telecommunications. A solid foundation in real-time computing is highly useful for a computer engineer, especially for those focusing on embedded systems, as many (but not all) embedded systems are time-critical. Courses in embedded systems usually cover basic concepts of real-time computing, but not with the depth that is envisioned in this course. Another benefit of the course is the exposure to operating system kernel internals. Since the course has a systems focus with a particular emphasis on PREEMPT_RT, students will learn how to program the Linux kernel, debug kernel code, implement new, or modify existing kernel subsystems, especially the scheduling subsystem, how to performance-optimize kernel subsystems by exploiting various time/space tradeoffs, and will build experience in working with a large-scale open-source project. Besides learning how to write real-time OS kernel modules, this skillset is highly desirable for writing software for embedded, general-purpose OS, and virtualization environments.

Design Technical Elective for CPE; Technical Elective for EE. Typically offered: Spring. Program Area: Computers.

Prerequisites: C- or better in 4534 or CS 3214.

Why are these prerequisites or corequisites required?

Knowledge of concurrency, in particular, understanding of concurrency abstractions (e.g., threads, processes) their synchronization techniques (e.g., mutual exclusion locks), and mechanisms to cope with deadlocks. This material is covered in the course prerequisite of 4534 or CS 3214.

Department Syllabus Information:

Major Measurable Learning Objectives:
  • Describe real-time systems and how real-time resource management algorithms and mechanisms (e.g., scheduling, synchronization) enable satisfaction of application timing constraints.
  • Conduct real-time schedulability analysis.
  • Design, analyze, and implement real-time scheduling algorithms and real-time synchronization protocols in operating system kernels.
  • Write, modify, and debug operating system kernel subsystems including the scheduling subsystem.

Course Topics
Topic Percentage
1. Introduction to real-time systems 5%
2. Real-time scheduling: uniprocessor scheduling 15%
3. Real-time scheduling: multiprocessor/multicore scheduling 10%
4. Real-time synchronization: uniprocessor protocols 15%
5. Real-time synchronization: multiprocessor/multicore protcols 10%
6. Time/utility function real-time resource management 20%
7. Real-time operating system kernel design 15%
8. Real-time programming languages 10%

Return to course list