D. Kalinsky Associates
  Home  |  Training Courses  |  Online Learning  |  Resources  |  About Us  |  Contact  |  Site Map  
Online Learning Center  for Embedded Systems and Software
Internet-based Training:   "Message Passing for Intertask Communication"
This free computer-based training lesson covers the material of a classroom lecture that is part of
our "
Introduction to Embedded Systems and Software" and "Introduction to Real-Time Operating
Systems" courses.
Reading Assignment:   "A Survey of Task Schedulers"
This whitepaper shows some simple "build-it-yourself" task schedulers, and then examines the
point at which it becomes worthwhile to consider a more sophisticated off-the-shelf preemptive
task scheduler.  It concludes with a peek into the future of task schedulers.

This is a reading assignment for the first day of our "
Introduction to Embedded Systems and
Software" and "Introduction to Real-Time Operating Systems" courses.
Reading Assignment:   "Basic Concepts of Real-Time Operating Systems"
This whitepaper introduces the fundamental issues and ideas inherent in real-time operating
system kernels.  It discusses the differences between real-time operating systems on the one
hand, and general-purpose or multi-user operating systems on the other hand.

This is a reading assignment for our "
Introduction to Embedded Systems and Software" and
"
Introduction to Real-Time Operating Systems" courses.
Reading Assignment:   "Mutexes Battle Priority Inversions"
This more advanced whitepaper examines the problems of unbounded priority inversion in
embedded multitasking software design. It shows some of the weaknesses of traditional software
semaphores, and then goes on to propose a mechanism called a 'mutex' as a solution to these
problems.

This is a reading assignment for the second day of our "
Introduction to Real-Time Operating
Systems" and advanced "Architectural Design of Real-Time Software" courses.
Reading Assignment:   "Design Patterns for High Availability"
This more advanced whitepaper examines the problems of embedded systems which must  
provide service 99.999% of the time, while being able to tolerate both expected and unexpected
faults. Their design is based on a combination of redundant hardware components and software
to manage fault detection and correction.

This is a reading assignment for the second day of our advanced "
Architectural Design of
Real-Time Software" and "Design of High Availability Systems and Software" courses.
Reading Assignment:   "Architecture of Device I/O Drivers"
This extremely technical whitepaper examines the high-level design of driver software that is to
operate hardware I/O devices interfaced to an embedded computer. It goes through a series of
structural models for device driver design, presented in the order of their growing complexity.

This is a reading assignment for our advanced "
Design of Device Drivers for Embedded Systems"
course.
Reading Assignment:   "Queueing Theory for Embedded Systems Designers"
This extremely technical whitepaper examines some of the mathematical calculations that
embedded systems and software designers need to perform in order to design message queues
and evaluate other memory capacity issues.  The emphasis of this paper is on practical examples,
rather than mathematical proofs.

This is a reading assignment for our advanced "
Architectural Design of Real-Time Software" and
"
Design of Device Drivers for Embedded Systems" courses.
Reading Assignment:   "New Directions in R.T.O.S. Kernels"
This technical whitepaper examines some of the future trends that embedded systems and
software designers can expect to encounter in choosing real-time operating system kernels for
future projects during the next 5-10 years.  The main focus is on task scheduling alternatives and
intertask communication via asynchronous direct message passing.

This is a reading assignment for our advanced "
Architectural Design of Real-Time Software"
course.
Reading Assignment:   "Architecture of Safety Critical Systems"
This very specialized whitepaper examines the problems of embedded systems which must  
guarantee the life, safety and well-being of human beings, while being able to tolerate both
expected and unexpected faults. Such systems are being used more and more in areas such as
medical, automotive, avionic, chemical and nuclear applications.

This is a reading assignment for the third day of our advanced "
Architectural Design of Real-Time
Software" and "Design of Safety-Critical Systems and Software" courses.
For Additional Reading Materials:
A list of additional technical reading materials, with links for on-line access, is available by
clicking here .
© Copyright 2014, D. Kalinsky Associates, All Rights Reserved.
This page Updated July 6, 201
4
Reading Assignment:   "Designing Software for Multicore Systems"
This very specialized whitepaper examines the design of software for embedded systems which
are to be run on multicore processors, whether in symmetric or asymmetric multiprocessing.
Multicore processors are becoming more and more popular in the design of embedded devices,
as processing requirements continue to burgeon while silicon chip speeds cannot keep up.

This is a reading assignment for the second day of our advanced "
Design of Distributed and
Multicore Systems and Software" and "Architectural Design of Real-Time Software" courses.
Reading Assignment:   "The Enigmatic Avionic"
This non-technical article examines a reliability problem in an embedded system familiar to many
members of the flying public who use airliners for transportation from city to city.  The problem is
presented in layman's terms, and serves as motivation for some of the technical discussions
which are part of our advanced technical courses.

This is a reading assignment for the first day of our advanced course "
Debugging Real-Time
Software"  .
Reading Assignment:   "The Fourth Semaphore: Multiple Reader - Writer Locks"
This is a highly technical article.  Both application software designers and embedded / real-time
operating system designers are striving to find new ways to design software for multicore.  One
new approach is the use of Multiple Reader – Writer locks, a fourth kind of semaphore that is now
becoming popular in embedded / real-time operating systems for multicore.

This is a reading assignment for the second day of our advanced course "
Design of Distributed
and Multi-Core Systems & Software"  .
Reading Assignment:   "Is Lock-Free Programming Practical for Multicore ?"
This is a highly advanced technical article.  Multicore application software designers and
embedded / real-time operating system builders are searching new ways to efficiently and reliably
regulate access to shared data in their software.  The Compare-and-Swap atomic machine
instruction that is available in a number of multicore SOCs, offers a novel solution.

This is a reading assignment for the second day of our advanced course "
Design of Distributed
and Multi-Core Systems & Software"  .
Reading Assignment:   "Security Fundamentals for Embedded Software"
This whitepaper introduces the fundamental issues and ideas in today's struggle against attacks
on embedded systems which exploit vulnerabilities in embedded software .  It discusses a
number of "mindframes" and "vulnerabilities" involved in this new challenge to our embedded
systems.

This is a reading assignment for our foundations course "
Software Security for Embedded"  .
Reading Assignment:  "Guide to using Static Analysis to Debug Embedded Software"
This whitepaper introduces the concepts and principles of operation of modern-generation static
source code analysis tools . These tools are valuable for testing and debugging embedded
systems software, and are also useful in identifying security vulnerabilities in this software.

This is a reading assignment for a number of our courses, including: "
Software Security for
Embedded", "Debugging Real-Time Software", "Design of Safety-Critical Systems and Software",
"
Design of High Availability Systems and Software", and others .