Services

Solutions
Home > Training > Operating Systems/ Real-Time Systems > OSE - Architectural Design

OSE - Architectural Design

By request

Price SEK 17 500
Number of days 3

This course examines the engineering activities in the high-level design of multi-tasking and distributed embedded systems software to be developed using the OSE real-time operating system.

Starting with a brief review of some fundamental issues in real-time multi-tasking embedded application software design and development, and briefly surveys several modern techniques for real-time and embedded software requirement specification. It then quickly moves to design issues of structuring a software system that must execute within strict deadline and resource limits. The main focus is on multiprocessing and timing behaviors, rather than object orientation

Inter-process communication is examined in detail, with the emphasis on signals, and also covers mutual exclusion mechanisms in OSE including semaphores and priority ceiling mutexes. The next portion of the class deals with the evaluation of architectural design quality and timing performance of a multitasking embedded software design. The class may (optionally) proceed to a high-level discussion of the design of large systems including their decomposition into subsystems and distributed multiprocessing. It concludes with an introduction to the design of high-availability systems.

This course is not a general course about software design theory or a traditional course about object oriented design. Instead, it is strongly focused on the design of deeply embedded, time-constrained, resource-constrained multitasking software that will run under the control of the OSE real-time operating system in single-processor or distributed multiprocessor environments.

Objectives
The primary objective of this course is to provide the participant with the skills needed to do high-level design of software for real-time and embedded systems using the OSE operating system in single-processor or distributed multiprocessor environments. This is a very practical, results-oriented course, which will provide knowledge and skills that can be applied immediately.

Who should attend?
Real-time software system architects, project managers, and technical consultants working with designing, structuring and implementing software for real-time and embedded systems utilizing the OSE real-time operating system.

Previous Knowledge
Very familiar with the OSE real-time operating system, say at least 2 years of practical experience using OSE. This knowledge may also be gained by attending an introductory course such as "OSE Basics", "OSE Advanced" or "OSE Extended".

Course Material
Students are provided with a complete course notebook including all slides on all topics presented in the course. In addition, students will receive a set of in-depth white papers on specific design topics such as the use and misuse of semaphores and mutexes, direct vs. indirect message passing, and device driver design.

Recommended following courses
OSE Custom Board Suppor Packages

Course Contents

Taking a High-Level View
Embedded / Real-Time Systems: Basic Definitions and Issues
Requirements Capture for Embedded and Real-time Software
Environment Specifications and Operating System Issues
Software Decomposition into Concurrent Processes
Object Orientation for Embedded / Real-Time Software?

Inter-process Communication and Synchronization
The Correctness Killers: Deadlock, Lockout, Starvation                
 


Inter-process Data Communication: Choices in OSE
Inter-process Synchronization: Choices in OSE
OSE's Mutual Exclusion Mechanisms
Priority Ceiling Mutexes in OSE


Refining the Software Design
Queue Lengths and Delays
Some "Standard Software Circuits" for OSE Designs
Some "Standard Patterns" for OSE Designs                      

Example: Aircraft Digital Flight Control using OSE
Evaluating the Structure of Single-Processor Multitasking Designs

Very Large and Complex Systems                
Evaluating Timing Performance: Individual Scenarios
Evaluating Timing Performance: Rate Monotonic Analysis
Large System Decomposition into Subsystems
Distributing Large Applications
Introduction to High Availability Design

NEW! Introduction to Safety-Critical Systems Design with OSE

PRINT THIS PAGE