Real-Time Embedded Systems Theory and Analysis
- 0.0
Approx. 60 hours to complete
Course Summary
Learn about real-time systems, embedded systems, and analysis techniques for developing efficient and reliable software in this course.Key Learning Points
- Understand the fundamentals of real-time and embedded systems
- Learn about scheduling and synchronization
- Analyse and optimize software for real-time systems
Related Topics for further study
Learning Outcomes
- Develop real-time and embedded systems software
- Analyse software for real-time systems
- Optimise software for real-time systems
Prerequisites or good to have knowledge before taking this course
- Basic knowledge of programming
- Familiarity with C or C++
Course Difficulty Level
IntermediateCourse Format
- Online
- Self-paced
Similar Courses
- Real-Time Systems
- Embedded Software and Hardware Architecture
Related Education Paths
Notable People in This Field
- Edward Lee
- Sanjoy Baruah
Related Books
Description
This course can also be taken for academic credit as ECEA 5316, part of CU Boulder’s Master of Science in Electrical Engineering degree.
Knowledge
- Methods to analyze dynamic prioirty real-time service feasibility
- Methods to control unbounded priority inversion problems
- Avoiding and recovering from deadlock
- Avoiding and recovering from unbounded priority inversion
Outline
- Real-Time Scheduling and Rate Monotonic Least Upper Bound Derivation
- Course Assumed Real-Time Knowledge and Overview
- Code Walkthrough: Syslog for Tracing and Autograded Assignments
- Rate Monotonic Fixed Priority Policy and Optimality (Review)
- Rate Monotonic Scheduling within the Least Upper Bound
- Challenges with and Alternatives to Fixed Priority RM Policy
- Deadline Monotonic Extensions to Rate Monotonic Policy
- Deadline Driven Scheduling: using Dynamic Priority Alternatives
- RM LUB Derivation - Introduction
- Two Cases that Drive the RM Least Upper Bound
- RM Least Upper Bound Intersection Point
- RM Least Upper Bound Derivation - Conclusion
- Necessary and Sufficient Feasibility by Worst-Case Analysis (Exact Test)
- Exact Feasibility for Rate Monontoic Policy with Scheduling Point
- Exact Feasibility for Rate Monotonic using Completion Test
- EXTRA HELP: Home Lab Set Up
- Read, Review and Understand Derivations in Original RMA Paper (Liu & Layland)
- Optional: Rate Monotonic Exact Analysis
- Module 1 | Key steps in the RM least upper bound derivation
- Service Design Feasibility Analysis Practice and Methods of Implementation
- Comparison of RM Policy to Round Robin
- RM Fixed Priority Scheduling Examples with Timing Diagrams
- More Complex RM Timing Diagrams
- Timing Diagram with a Harmonic Case
- Timing Diagram Example Comparing RM and EDF
- POSIX RT Extension Support
- General Design Pattern Part-1: AMP RT Functions, Services and Systems
- General Design Pattern Part-2: Mulit-Core, Multi-Service AMP Systems
- Implementation Pattern: Periodic Services with POSIX RT Threads, Interval Timers and Signals
- Message Queues for Synchronization and Data Sharing
- Code Walkthrough: POSIX RT Feature Demonstration
- Methods to Determine Worst Case Execution Time (WCET)
- Methods for WCET Speed-up to Meet Deadlines
- Service Request Period Jitter and Drift
- RT Extensions to POSIX - 1003.1 in Linux, QNX, Solaris, FreeBSD, etc.
- Optional Resources for POSIX 1003.1 RT Extensions
- Module 2 | Service implementation and admission to real-time using RMA, scheduling point, completion test
- Dynamic priority Earliest Deadline First and Least Laxity First
- Advantages of Dynamic Priorities and When to use EDF
- Disadvantages of Dynamic Priorities and When EDF should not be used
- Advantages of Dynamic, Adaptive Scheduling: When to use LLF
- Disadvantages of Dynamic Adaptive Scheduling: When LLF should not be used
- Final Comparison of EDF and LLF Failure Modes and Recovery
- Cheddar Tool Introduction and Overview
- Rate Monotonic vs. EDF - Judgement Day Paper
- Module 3 | Earliest Deadline First , Least Laxity First
- Synchronization and Bounded vs. Unbounded Blocking
- Note on Linux Methods of Synchronizaiton Compared to RTOS
- Bounded blocking for service release
- Bounded blocking and Execution Efficiency impact on RT systems
- Definition of unbounded blocking and examples of root causes
- Code Walkthrough: Circular Wait - Deadlock Demonstration
- Code Walkthrough: Can you think of a simple way to break deadlock after a timeout?
- Review of semaphore use and necessity of Critical Section (C.S.)
- Code Walk-through: Unbounded Priority Inversion Demonstration
- Priority Inheritance, Priority Ceiling, and Priority Ceiling Emulation
- Mars Pathfinder Problem - Rolling Reset 3 Days prior to closest approach to Mars
- Mars Pathfinder Root Cause Analysis
- Mars Pathfinder - Bug Localization and the Fix
- Priority Inversion (Unbounded) and Priority Inheritance Protocol
- Module 4 | Thread synchronization
Summary of User Reviews
Real-time Embedded Theory Analysis course on Coursera has received positive reviews from many users. The course covers the essential concepts of real-time embedded systems and their analysis. One key aspect that many users appreciated is the hands-on exercises that helped them to apply the learned concepts in real-world scenarios.Pros from User Reviews
- Hands-on exercises for practical application
- Clear explanations of complex concepts
- Great instructor support
- Good pace for beginners
- Useful course content
Cons from User Reviews
- Some technical issues with the platform
- Not enough depth in some topics
- Could benefit from more real-world examples
- Some assignments were too difficult
- Not suitable for advanced learners