COMPE 571
Real Time Operating Systems

Catalog Description:

The advanced study of microcontroller-based hardware and software applied to real-time embedded systems. Real-time embedded system  specification and design.  Concepts, techniques, and standards in embedded operating systems. Real-time kernels, intertask communication and synchronization, real-time memory management, hardware / software partitioning. 

Credits: 3

Class Schedule: 3 lecture hours per week.     

Prerequisites by Course:  COMPE 375.

Course Objectives:   

  • Create and review systems requirement documents for embedded systems;
  • Review and analyze software and hardware partitioning;
  • Understand the fundamental concepts, design and implementation  of real-time operating  systems.
  • Introduce  the use of multitasking techniques in real-time systems.
  • Understand basic real-time kernel design concepts 
  • Study  a small multi-tasked embedded operating system
  • Use multiple interprocess communications methods.
  • Analyze features and  structures of commercial real time operating systems. 
  • Understand  device driver development   for real time operating systems.

Textbook(s) and References: 

  • Colin Walls , Building a Real Time Operating System: RTOS from the Ground Up, Elsevier, ISBN-13: 978-0-7506-8379-1
  • Jean J.Labrosse, MicroC/OS-II, The Real-Time Kernel 2nd Ed., CMP Books 2002, ISBN# 1-57820-103-9
  • Daniel W. Lewis, Fundamental of Embedded Software, Prentice Hall,
  • Jean J. Labrosse, Embedded Systems Building Blocks 2nd Ed., CMP Books 2002, ISBN# 0-87930-604-1
  • http://www.tinyos.net ,the source code and documentation for tinyOS operating system.

 

Topics Covered:

  • Introduction to real-time embedded systems.
  • Basic requirements for an embedded operating system, approaches to supporting operating system functions within an embedded project, scheduling without an operating system present , minimum features of operating systems
  • Real time kernels, task design and switching, task control block,   foreground and background tasks, task states, scheduling algorithms, timeslicing, scheduling with an operating system

Case Study :  Threading features of MicroC/OS-II ,  Code review of MicroC/OS task switching and design, MicroC/OS – Interrupt service routines, Timers , Task Management (Create, Delete, Change Priority, Suspend/Resume etc.) in MicroC/OS.
Threading features of Symbian, Active object ,  Symbian  task switching, Symbian – Interrupt service routines, Timers , Task Management (Create, Delete, Change Priority, Suspend/Resume etc.) in Symbian.

Case Study : TinyOS concurrency model,  Components and interfaces, Split phase, Task  management  (Create, Delete, Change Priority, Suspend/Resume etc.) in TinyOS, Timers and ISR in tinyOS.

  • Data sharing issues and solutions to protect data, communication between tasks, critical section, task synchronization, semaphores and semaphore deadlocks,   priority inversion, priority ceiling and priority inheritance, interrupts and  event processing, interrupt service routines.

Case Study : MicroC/OS – Mailboxes,  MicroC/OS – Queues, Semaphores, task priority in MicroC/OS, Deadlock prevention semaphores.

  • I/O systems and I/O interfaces: polled I/O, interrupt-driven I/O, direct memory access, device driver models,  simple character driver,  complex driver architectures.

Case Study : MicroC/OS-II driver model
Case Study : TinyOS component based driver model

  • Memory management in real-time embedded systems, fixed and variable block size memory management

Case Study :  MicroC/OS-II fixed size memory management

  • Watchdog: Hardware failure recovery
  • Boot Loader:  Bootstrapping,
  • Commercial and Open Source Real time operation systems : Evaluation of  commercial operating systems using timing constraints, reliability, availability, and throughput , hard deadlines , error propagation and fault injection, fault tolerant  systems, fault detection

 

Prepared by : Dr. Yusuf Ozturk
Date of preparation : 2/2/2009