Services & Training

Solutions
Home > Services & Training > Training > Operating Systems/ Real-Time Systems > Architectural Design of Real-Time Software

Architectural Design of Real-Time Software

Stockholm 22/4

Price SEK 19 500
Number of days 3

This course examines the activities of high-level design of real-time and embedded systems software that's to be developed using a real-time operating system (RTOS).

The class begins with a quick examination of some fundamental issues in real-time multitasking embedded application software design and development, and briefly reviews several modern techniques for real-time and embedded software requirements specification.  It then quickly focuses on how to structure a software system that must execute within strict deadline and resource limits.  Emphasis is placed on multitasking and timing behaviors, rather than object orientation.

The class continues with a detailed examination of a broad spectrum of intertask communication and synchronization options including mutexes of several varieties. 'Liveness' issues such as deadly embrace, lockout, memory starvation
and CPU starvation will be discussed in detail.   Students will learn how to correctly configure queue lengths, and examine design dangers such as interrupt overflow and memory starvation.  The next  major subject area of the class
is the evaluation of timing performance and quality of a real-time or embedded software design.

This course is not a general course about software design theory, but rather it is highly focused on the design of deeply-embedded, time-constrained, resource-constrained multitasking software that will run under the control of a
modern RTOS.

 

Objectives
The primary goal of this course is to give the participant the skills necessary to do high-level design of software for real-time and 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.

Who should attend?
This course is intended for practicing real-time and embedded systems software system architects, project managers and technical consultants who have responsibility for designing, structuring and implementing the
software for real-time and embedded computer systems using an RTOS.

Previous Knowledge
Course participants are expected to have thorough familiarity with at least one RTOS.

Course Material

All documentation and manuals are written in English.

Other information
The instructor, David Kalinsky has more than thirty years of experience in the design and construction of real-time and embedded computer systems software.  He is a popular lecturer and seminar leader on technologies for embedded software development, appearing before audiences of professional engineers in North America, Europe and Israel.  David regularly presents classes at the Embedded Systems Conferences on topics such as "Architectural Design of Device Drivers" and "Principles of High Availability Embedded Systems Design".

 

Course Contents

Real-Time Requirements

Embedded / Real-Time Systems: Definitions and Issues
Requirements Analysis: Context Diagram and Usage Scenarios
Quick Overview of Entity-Relationship Diagrams, State Transition Diagrams and Statecharts What You Get in an RTOS, and What You Don't Get

Identifying Tasks and Objects

High-Level Software Architecture: Concurrency
The Gomaa Guidelines for Decomposition into Tasks
Exercise: Heart Rhythm Monitor - Design Partitioning
Object Orientation for Embedded/Real-Time Software?



 

13 Methods for Intertask Communication

The Correctness Killers: Deadlock, Lockout, Starvation Software Architecture: Intertask Data Communication
Software Architecture: Intertask Synchronization

Fine-Tuning of Intertask Communication

Mutexes: Priority Inheritance and Priority Ceiling
Modeling of Message Queues
Exercise: Queuing Calculations for Medical Device

     

A Plethora of Design Examples

"Standard Circuits" for Real-Time and Multitasking Software Design
Design Patterns for Embedded Software
Extended Example: Aircraft Fly-by-Wire

Evaluating the Quality of a Multitasking Software Design

Evaluating Real-Time and Multitasking Software Designs
Performance Analysis: Individual Scenarios
Performance Analysis: Task Scheduling Theory and Calculations
Exercise: Medical System Performance Calculations

PRINT THIS PAGE