Reliable Multithreaded Programming
When it comes to writing multithreaded code, there is a dangerous mix of vendor propaganda and programmer misunderstanding in the embedded systems design community. Those who sell tools, such as real-time operating systems (RTOSes), too often fail to educate their customers in the subtleties of their proper use. And in an industry dominated by self-taught programmers who were formally educated in electrical engineering, there is typically insufficient knowledge of necessary portions of computer science. This combination reduces product reliability and sometimes also puts human life and limb at risk.
Barr Group's Reliable Multithreaded Programming course is an advanced, efficient, and cost-effective hands-on training program for embedded software architects and developers. In just 2-days and through a mix of lectures and programming exercises on actual embedded hardware, attendees learn how to architect and implement multithreaded software for reliable and safe operation. Back at the office, attendees will be able to immediately put the principles learned in this class to use whether their current architecture is based on cooperative or preemptive multithreading and with any OS from Linux to none-at-all.
This course will be open to the public in the following dates and locations:
|Oct 20-21||Chicago, Illinois||$999||Closed|
|Oct 24-25||Munich, Germany||1,299€||Closed|
* Prices will be discounted 20% for groups of 3 or more and increased 15% for late registration during the final 2 weeks. German course prices are inclusive of VAT tax.
To be automatically notified, by email, of future public training dates and locations, simply sign up here.
- 2 days (hands-on)
- Embedded software developers
- Embedded software architects
The following outline is provided as a summary of the major course topics and should not be taken as literally the section-by-subsection lecture breakdown.
- Types of Threads
- Reasons to Multithread
- Reliability/Safety Risks
- Cooperative Multithreading
- Syncing main() with ISRs
- Timing & Cyclic Executives
- Function Queues
- Real-Time Operating Systems
- How Preemption Works
- Mutual Exclusion
- Intertask Communication
- Preventing Starvation and Deadlock
- Ensuring Deadlines are Met
- Avoiding Priority Inversion
- Managing Dynamic Memory
- Watchdog Supervisor Design
- Multithreading in Linux
- Processes vs. Threads
- Inter-Process Communications
- Kernel Threads and ISRs
- Real-Time Linux
- Pros and Cons of Preemption
- Top 3 Advantages
- The 10 Risks/Costs
- Event-Driven Programming
- The Event-Reaction Model
- Managing Event Queues
- Implementing State Machines
- Run-to-Completion Steps
- Cooperating Active Objects
- Key Takeaways
During the course, attendees will independently complete approximately half a dozen hands-on programming exercises. These exercises are interspersed with the lectures. Attendees will use their computer to compile their programs and then download them for execution on an embedded target board with its own processor, memory, and peripherals.
Attendees should already be familiar with the C or C++ programming language before taking this course. Prior experience programming for one or more operating systems may be beneficial but is not necessary.
Each student will need a computer, such as a laptop, running XP or a newer version of Windows with an available USB port and administrator privileges. (Windows over Mac OS X generally works.)
Find out More
Please contact us today to find out more about this course or to enquire about an on-site training at your company.
If you are viewing this page, the following Barr Group training courses may also be of interest:
- Embedded Software Boot Camp
- Embedded Software Architecture
- Event-Driven Programming and State Machines
- Real-Time Programming with Java
All Barr Group Training Public and On-site courses may not be videotaped or photographed without consent from Barr Group's executive team.