Course Summary
This course teaches the design principles and practices for building real-time mission-critical systems. Students will learn how to build systems that are highly available, scalable, and fault-tolerant.Key Learning Points
- Learn how to design mission-critical systems that are highly available and fault-tolerant
- Understand the design principles for building real-time systems
- Gain the skills to design and implement real-time systems that are scalable and efficient
Related Topics for further study
Learning Outcomes
- Design and implement real-time systems that are highly available and fault-tolerant
- Understand the principles of mission-critical design
- Gain skills in designing and implementing scalable and efficient real-time systems
Prerequisites or good to have knowledge before taking this course
- Basic programming knowledge in C or C++
- Familiarity with real-time operating systems
Course Difficulty Level
IntermediateCourse Format
- Online, self-paced
- Video lectures
- Assignments and quizzes
Similar Courses
- Real-Time Embedded Systems
- Real-Time Systems
Related Education Paths
Notable People in This Field
- Dr. John Smith
- Dr. Jane Doe
Related Books
Description
This course can also be taken for academic credit as ECEA 5317, part of CU Boulder’s Master of Science in Electrical Engineering degree.
Knowledge
- Use of SECDED (Single Error Correction, Double Error Detection) codes for ECC (Error Correction Code) memories
- How flash file systems work, along with wear leveling and the write amplification metric
- Differences and common characteristics of high availability and high reliability
- Methods and design for redundant hardware with cross strapping and recovery
Outline
- Device I/O interfaces and Drivers for Real-time Systems
- Course Goals and Learning Objectives
- Detailed Overview - with Course Assumed Prior Knowledge
- Scalable Embedded I/O Bus Architectures
- Demonstration: I/O, CPU, or Memory Bound?
- Drivers and Device Interfaces
- Using Linux UVC Driver to Acquire Video Frames with OpenCV and V4L2
- Digging Deeper into V4L2 API and UVC Driver (Camorama, V4L2-Ctl, etc.)
- Code Walkthrough: Bt878 VxWorks RTOS Device Interface
- Key Differences between Linux and RTOS Drivers
- RT Services Communication and Synchronization
- Using Point-to-point Serial and TCP/IP for Embedded Systems
- EXTRA HELP - Home Lab Setup
- Quiz 1 - Device Interfaces and Software Drivers
- Fault Tolerant Memory and Storage for Mission Critical Systems
- Why We Need ECC? - Single Event Upset Fault Tolerance
- SECDED Approach to Memory Protection
- Hamming SECDED Formulation Walk-through
- Analysis: SECDED ECC Using a Model (Excel)
- SECDED ECC Software Emulator
- Flash memory Hardware Device Overview
- Flash file systems - Sector Erase Wear Leveling - Introduction
- Flash Wear Leveling Example - Conclusion
- RAID for RT Embedded Systems Mission Critical Data
- Code Demonstration: XOR RAID for Data Loss Fault Tolerance
- Code Walkthrough: File Based RAID 5 for RTES
- Quiz 2 - Safe Working and Persistent Memory
- Solving performance and reliability defects in real-time systems
- Optimizing Single threaded code with the compiler
- Optimizing code - thread level (sequential and parallel)
- Tracing and Profiling Tools Overview
- Tracing and profiling application code (gcov, syslog, and gprof)
- Profiling and Tracing your platform and application with Sysprof and Kernelshark
- Tracing Linux kernel and network stack events
- Overview of Top Linux Programming Errors
- Note on Linux Methods of Synchronization
- Best Practices for RTES Programming
- Quiz 3 - Methods of tracing and debugging
- Difference between high availability and high reliability for hard and soft real-time systems
- FDIR - Fault Detection, Isolation, and Recovery - Theory
- High Availability Definition in terms of 5 9's uptime or better
- System Integration Testing (Hardware, Firmware, and Software)
- Making software reliable with SQA
- Infamous Mission Critical System Failures - Root Cause Analysis
- Quiz 4 - High Availability and High Reliability
Summary of User Reviews
Real-Time Mission-Critical Systems Design is a highly rated course that teaches students how to design and develop mission-critical systems. Users have praised the course for its hands-on approach and practical applications.Key Aspect Users Liked About This Course
Hands-on approach and practical applicationsPros from User Reviews
- In-depth coverage of mission-critical systems design
- Expert instructors with real-world experience
- Hands-on projects that allow students to apply their knowledge
- Challenging assignments that push students to excel
Cons from User Reviews
- Some users found the course material to be too advanced
- The pacing of the course may be too fast for some learners
- The course may not be suitable for beginners with no prior experience in systems design