Fall 2016 textbook list
The Fall 2016 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.
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.
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.
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.
|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%|