Reliable Multithreaded Programming

Course#: BSEMB1001

About this Course

Course Type Course Code Duration
Embedded Software BSEMB1016 2 Days

There is a lot of misinformation about multithreaded programming and the use of real-time operating system (RTOS) features. Misinformation and programmer inexperience often leads to unreliable multithreading and introduces the possibility for dangerous system failures such as starvation, deadlock, and priority inversion. This course teaches the proper use of RTOS APIs in developing multithreaded software as well as techniques for developing reliable multithreaded program structures without an RTOS at all.

Why Attend this Course?

What Makes this Course Stand Apart?

What you will Learn?


Embedded software developers


Familiarity with the C programming language

Course Outline

Multitasking Fundamentals
Tasks and Task States
Scheduling Points
Context Switching
System Calls
Mutual Exclusion
Rate Monotonic Scheduling
Rate Monotonic Algorithm
Schedulable Bound
Aperiodic Tasks and Interrupts
Priority Inversion
Intertask Communication
Message Queues
Event Flags
Starvation and Deadlock
Related Topics in RTOSes
Memory Management
Timer Ticks
OS Hooks
Interrupt Handling
Task Partitioning

Preemption Implications
Ten Negatives
System Failures
Overhead Costs
Three Positives
Cooperative Multitasking
Foreground Background
Cyclic Executive
Function Queues
Event Driven Programming
Events and Reactions
Event Queues
State Machines
Active Objects
UML Statecharts
States and Transitions
Guard Conditions
Actions and Reactions
Entry and Exit Actions

All exercises are done using the IAR Embedded Workbench integrated C/C++ compiler-debugger on the Renesas target development board. RTOS exercises are based on Micrium’s popular, royalty-free MicroC/OS-III real-time operating system.

What next- How do I arrange a group course or book a public place.?

We are here to help so please utilise our live chat team

Call to speak to your account manager or a consultant on

+44 (0)345 467 9557 or email

We are all technical with a wealth of Learning & Development experience
so can talk you through any specific requirements or the details of
one of our courses.


Start typing and press Enter to search