D. Kalinsky Associates
Home  |  Training Courses  |  Online Learning  |  Resources  |  About Us  |  Contact  |  Site Map  
Foundation Course:

"Introduction to Real-Time Operating Systems"

*  A First Course on Real-Time Operating System Fundamentals for Embedded Software Developers

*  2- or 3- Day Intensive Class        (with student work exercises)

* Can be Tailored to focus on a specific Real-Time Operating System ("RTOS"), such as:

                                                          VxWorks, Nucleus, OSE, μC/OS, FreeRTOS, eCos, pSOS and others *

* Can be Tailored to focus on the Transition of Applications between specific RTOSs, such as:

                                                          VxWorks, Nucleus, OSE, μC/OS, FreeRTOS, eCos, pSOS  and others *

This course introduces the principles shared by many real-time operating systems, and their use in the development
of embedded multitasking application software.

The course begins with the fundamental elements of real-time multitasking embedded application software design
and development.  Processor and operating system concepts relevant to multitasking systems are examined, with
focus on preemptive task scheduling, intertask communication and synchronization.

The course continues with a detailed survey of popular operating system kernel services, giving many application
examples.  Topics include timer services, dynamic memory allocation schemes, network communication
programming interfaces and device driver supervisors.  Multitasking code development is discussed and example
programs are reviewed and debugged.  Practical experience is gained during student work exercises.

On the third day of this course, advanced topics are discussed such as operating systems and hypervisors for
symmetric and asymmetric multiprocessing which are appropriate for multi-core SOCs.

The faculty for this course has extensive experience with a number of major real-time operating systems (RTOSs),
including VxWorks, OSEK / VDX, Nucleus, OSE, μC/OS, FreeRTOS, eCos, pSOS  and others *.  Instructor can provide
in-depth insight into the specific workings of these RTOSs during the course, if it is of particular interest.


This course is intended for practicing embedded systems software development engineers, software system
architects, project managers and technical consultants who are responsible for designing and implementing the
software for real-time and embedded computer systems using a real-time operating system.

Course participants are expected to be knowledgeable in the C programming language.

This is a course for engineers in industry with less than 3 years of experience with real-time operating systems.  [For
those with more experience, we recommend the advanced course "
Architectural Design of Real-Time Software"  .]


The primary goal of this course is to give the participant the skills necessary to develop software for embedded
computer systems using a real-time operating system.  This is a very practical, results-oriented course that will
provide knowledge and skills that can be applied immediately.


RTOS Basics - Multitasking

Embedded / Real-Time Systems: Definitions and Issues
Application Software: Tasks and Priority-Based Preemptive Scheduling
Criteria for Decomposition into Tasks
Exercise: Multitasking
Correctness Issues for Embedded / Real-Time Software

RTOS Basics - Communicating between Tasks

Intertask Communication and Synchronization Overview
Messages and Message Queues
Exercise: Intertask Communication via Message Queues
Semaphores: Binary and Counting Semaphores
Exercise: Intertask Synchronization via Semaphore
Priority Inversion
Mutexes: Priority Inheritance and Priority Ceiling
Exercise: Priority Inversion

Additional RTOS Kernel Topics

Dynamic Memory Allocation:  Fragmentation Issues
RTOS Timers: Relative and Absolute Timing
Asynchronous Signals
Power Management
Device I/O Supervisor

RTOS Topics Beyond the Kernel                (Day 3)

Network Communication Programming: Sockets Interface
Application Software: Device Drivers
Application Software: Interrupt Service Routines
Exercise: Interrupt Service Routines
Operating System Configuration
Development Environment: Classes of Debuggers

Advanced / Optional Topics                        (Day 3)

Operating Systems for Multi-Core SOCs
RTOSs for Asymmetric MultiProcessing ("AMP")
Operating Systems for Symmetric MultiProcessing ("SMP")
Extended Example: VxWorks RTOS for SMP Multi-Core
Read-Write Locks

Final Examination.

INSTRUCTOR:  Dr. David Kalinsky
Price of an On-Site Course
Check it out! Get the "flavor" of this course by trying one of the
course's classroom lectures in on-line format:
Sample Lecture
Schedule an On-Site Course
* VxWorks and pSOS are registered trademarks of Wind River Systems, Inc. Other marks and brands are the property of their respective holders.

© Copyright 2014 D. Kalinsky Associates, All Rights Reserved.
This page Updated January 13, 2014