logo


slogan

4
About Us
Training
Calendar
Registration
Contact Us
10

 

Design of Distributed & Multi-Core Systems and Software
 
   

Course Highlights:
This course examines the high-level design of embedded systems and software for distributed and multicore processing environments.

It begins with a discussion of the basic concepts of distributed systems and multi-core systems-on-a-chip ("SoC's"). This is followed by an in-depth study of distributed control systems design, including examples from automotive applications and home automation.  Guidelines are given for the design of large and complex distributed systems, with examples from the worlds of transportation and high-performance communication systems.  The course then shifts focus to the use of multi-core SoC's in embedded systems designs.  This includes detailed study of both symmetric and asymmetric multiprocessing -- from the perspectives of hardware, software and operating systems support.  It delves deeply into operating systems for multi-core SoC's, multi-core software architectural design, and special memory issues in multi-core software.

This course is far from a general course about system or software design theory, but rather it is highly focused on the practical design of multi-processor embedded systems and software that will operate in distributed and multicore processing configurations

Objective of the course
The primary goal of this course is to give the participant the skills necessary to design software for real-time and embedded multiprocessing systems that will operate in distributed and/or multicore processing configurations.  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 will have responsibility for designing, structuring and implementing the software for real-time and embedded multiprocessing systems that will operate in distributed and/or multicore processing configurations.

Course participants are expected to have background in embedded and real-time software design.  [This knowledge can be gained by attending a prerequisite embedded software design course such as "Architectural Design of Real-Time Software".]

Course Outline:


Definitions and Background

Distributed Systems
Multi-Core Systems-on-a-Chip
Differences: Multi-Core vs. Distributed

Distributed Control Design

Loosely-Coupled Distributed Systems
Distributing a Control Capability
Examples: On-Board Automotive Networks
System Partitioning Guidelines
Exercise: Body Electronics Control for Airport Train

Designing Complex Distributed Systems

Identifying Sub-systems: Sub-system Structuring Criteria
Distributed Applications: Logical vs. Physical Nodes
Design Models for Distributed Applications
Exercise: Multiprocessing System Performance Calculations
Decomposition of Sub-systems into Software Tasks (Optional)
Message Communication Performance Modeling (Optional)
Case Study: High-Performance IP Communication Router Design

Multi-Core Systems-on-a-Chip (SoC's)

Amdahl's Law
Fine-Grained vs. Coarse-Grained Parallelism
Symmetric vs. Asymmetric Multiprocessing
Operating Systems for Embedded Multiprocessing

Symmetric Multiprocessing ("SMP")

Organizing Software for SMP
Operating Systems Support for SMP
Spinlocks
Load Balancing vs. Processor Affinity
Hidden Dangers in Designing Software for SMP

Asymmetric Multiprocessing ("AMP")

When to Use AMP
Operating Systems for AMP
Design Patterns for Multicore Software
Moving from Uni-Processing to AMP

Memory Issues in MultiCore Software

Working with Cache Memory
Memory Contention
"False Sharing"
Memory Consistency and Inconsistency

Final Examination.


INSTRUCTOR:  Dr. David Kalinsky
Dr 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".

He has built and managed high-tech training programs on aspects of software engineering for the development of real-time and embedded systems for a number of Silicon Valley companies.  He has also been involved in the design of many embedded medical and aerospace systems.  In addition, he has in the past developed and taught training courses on a number of major real-time operating systems (RTOSs), including VRTX, pSOS, VxWorks, OSEK / VDX, Nucleus, OSE and others.  With his broad experience, he has trained thousands of embedded systems software engineers and architectural designers throughout the world.



Who We Are
We are a professional organisation providing training services to companies.  We offer a comprehensive range of training courses, workshops and seminars covering every aspects relating to engineering. 

We provide various training programs that meet the immediate and future needs of engineers. The training is organised through seminar style, hands-on workshop, project-based tutorial or a mixture to bring the maximum learning benefits to the enginners.
Our Trainers
We have a quality pool of leading authorities, worldwide experts and fully trained up professionals who are constantly striving to uncover the pitfalls and best practices of modern technology development.
     
All rights reserved by
Omniscient International
     About Us      Training       Calendar      Registration      Contact Us