ICS 664

Real Time Operating Systems

4 Graduate credits
Effective January 9, 2006 – Present

Graduation requirements this course fulfills

This course is the study of fundamentals of design and implementation of real-time operating systems. Most embedded computer systems have dedicated microprocessors as their computational and controlling elements and run real-time operating systems. This course covers concepts, programming languages, tools, hardware, and methodologies used in the construction of real-time operating systems and their peripheral components. Topics include: applications of real-time operating systems; communications between PC computers and embedded systems; fundamental concepts of scheduling (multitasking and interruptions); introduction of basic hardware components used in most real-time operating systems; Hardware description language[VHDL]; and the writing of a real-time operating system [RTOS] using industrial standard C language, debugging, and loading the code to the target hardware.

Special information

Note: Full graduate admission; if admitted conditionally, must have the undergraduate courses in the following areas: computer organization and architecture, computer operating systems, and programming proficiency in C based languages. Students are responsible to both be aware of and abide by prerequisites for ICS courses for which they enroll, and will be administratively dropped from a course if they have not met prerequisites.

Learning outcomes


  • Know the characteristics and application areas of embedded systems and real-time operating systems; understand the basic components of embedded computer systems and their interactions among different components (including hardware and software).
  • Demonstrate expertise in reading peer reviewed papers in real-time operating systems and explain them in writing.
  • Understand and modify Window programs that communicate to peripheral devices such as parallel port, etc. and write code that to be loaded to real hardware or to control the simulator.
  • Use circuitry diagrams to represent and modify logic.
  • Use electronic equipment's to debug hardware, load the compiled code onto the target system by using chip programmer, etc.
  • Use hardware design language VHDL to design and verify embedded systems.
  • Use software simulator and in-circuit hardware to test and debug C code written for embedded systems.
  • Write application code and system code for different types of real-time operating systems.