Real-time Operating Systems
Catalog Description: Topics of interest in the implementation of Real-Time Operating Systems, especially as applicable to embedded systems, including a relevant hardware review, interrupts and interrupt handling, real-time scheduling principles and implementation, latency, task management, shared data and synchronization, timers, message passing, tradeoffs between memory space and speed. Students will build a simple but relatively complete real-time operating system over the course of the semester. Additional projects and assignments are required for graduate credit.
Total Credits: 3
Course Coordinator: Robert Rinker
Prereq: CS 240
Textbook: David Simon, An Embedded Software Primer, Addison-Wesley 1999.
Major Topics Covered
- Processor architecture review
- C language review
- Hardware fundamentals: interrupts, clocks, I/O devices
- Device drivers
- Task scheduling
- Real-time scheduling
- Memory allocation
- RTOS specification and design
- Concurrency, shared data, semaphores
- Interprocess communication: queues, pipes, mailboxes
- Timers, events
After completing this course, students should:
- Be able to work with an embedded processor environment, where program development is performed on a host computer (PC), and the result is downloaded into a standalone "bares-bones" embedded processor
- Be able to use a language such as C to program simple I/O devices connected to the embeddded processor.
- Be able to write both polled and interrupt-driven I/O device drivers, including the use of hardware timers.
- Be able to implement a simple task management, task scheduling system that can choose between two or more memory-resident programs.
- Be able to implement intertask synchronization mechanisms, such as semaphores.
- Understand of interprocess communication mechanisms, such as pipes and semaphores, are implemented.