Reliable Multithreaded Programming with and without an RTOS

Course#: BSEMB10016

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?

Audience

Embedded software developers

Prerequisites

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
Preemption
Rate Monotonic Algorithm
Schedulable Bound
Aperiodic Tasks and Interrupts
Priority Inversion
Intertask Communication
Semaphores
Mailboxes
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
Co-Routines
Function Queues
Event Driven Programming
Events and Reactions
Event Queues
State Machines
Run-to-Completion
Active Objects
UML Statecharts
States and Transitions
Guard Conditions
Actions and Reactions
Entry and Exit Actions
Hierarchy

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.

0

Start typing and press Enter to search