We may earn an affiliate commission when you visit our partners.
Course image
Sam Siewert

This course can also be taken for academic credit as ECEA 5316, part of CU Boulder’s Master of Science in Electrical Engineering degree.

Read more

This course can also be taken for academic credit as ECEA 5316, part of CU Boulder’s Master of Science in Electrical Engineering degree.

This course provides an in-depth and full mathematical derivation and review of models for scheduling policies and feasibility determination by hand and with rate monotonic tools along with comparison to actual performance for real-time scheduled threads running on a native Linux system. By the end of this course the learner will be able to full derive the fixed priority rate monotonic least upper bound for feasibility as well as justifying the rate monotonic policy and will be able to compare to dynamic priority scheduling including earliest deadline first and least laxity policies.

At the end of this course learners will be able to fully derive and explain the math model for the rate monotonic least upper bound as well as performing timing diagram analysis for fixed and dynamic priority software services. Tools to provide analysis will be learned (Cheddar) to automate timing analysis and to compare to actual performance.

Specific objectives include:

● Rate monotonic theory (complete math models)

● Differences between fixed priority rate monotonic policy and dynamic priority earliest deadline first and least laxity policies

● Scheduling theory and practice writing code for multi-frequency executives, priority preemptive RTOS services, and real-time threaded services on traditional operating systems (Linux)

● Building a simple Linux multi-service system using POSIX real-time extensions on Raspberry Pi 3b using sequencing and methods to log and verify agreement between theory and practice

● Timing diagram generation and analysis using Cheddar

Enroll now

What's inside

Syllabus

Real-Time Scheduling and Rate Monotonic Least Upper Bound Derivation
At the end of this module, you will be able to analyze the mathematics involved in Rate Monotonic Least Upper Bound Condition along with its challenges and alternatives to it. An extension to RM scheduling policy i.e. Deadline Monotonic Scheduling Policy along with implementation of completion test for determining exact feasibility for Rate Monotonic Scheduling policy is also in scope of this module. Working on Programming assignments will give system level implementation of real time services and determining the best scheduling policies for meeting the deadlines for the designed real-time systems along with their trade offs.
Read more
Service Design Feasibility Analysis Practice and Methods of Implementation
At the end of this module learners will be able to describe the design pattern for real-time services, describe implementation challenges such as unbounded blocking and describe normal operation - request for service synchronization between an ISR and each thread or task, initialization, keep-alive posting, error handling, and termination.
Dynamic priority Earliest Deadline First and Least Laxity First
At the end of this Module learners will know when to use dynamic priority policies, advantages of them for soft real-time, disadvantages for error detection and recovery, challenges of feasibility determination and efficiency compared to fixed priority.
Synchronization and Bounded vs. Unbounded Blocking
At the end of this Module learners will be able to describe issues with resources used beyond CPU (memory, I/O, and storage) and how to avoid problems or recover from them

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Geared toward engineering students and practitioners alike
Covers mathematical derivations and models for scheduling policies and feasibility determination
Provides hands-on experience with the Linux operating system, real-time extensions, and Raspberry Pi
Emphasizes real-time systems design, implementation, and analysis
Taught by Sam Siewert, an expert in the field of real-time systems

Save this course

Save Real-Time Embedded Systems Theory and Analysis to your list so you can find it easily later:
Save

Reviews summary

Solid embedded course

According to students, this course is a solid embedded course. Students say that the Professor is enthusiastic, and his lessons are well structured. However, some learners mention that the professor repeats himself and covers untaught topics on quizzes.
Enthusiastic about teaching
"Very nice and interesting course."
"The Professor is an enthusiast and his lessons are very well structured."
"His preparation and knowledge can be clearly felt from its way of teaching."
Quizzes on untaught topics, repeated information
"the professor often repeats himself"
"quizzes you on topics not covered"
"is generally disorganized compared to other courses offered through the CU Boulder MSEE program"

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Real-Time Embedded Systems Theory and Analysis with these activities:
Review linear algebra
Familiarize yourself with the basics of linear algebra, including matrix operations, vector spaces, and linear transformations. This will provide a strong foundation for understanding the mathematical concepts used in real-time scheduling.
Browse courses on Linear Algebra
Show steps
  • Review matrix operations such as addition, subtraction, multiplication, and determinants.
  • Understand vector spaces, including their properties and operations.
  • Familiarize yourself with linear transformations and their properties.
Follow tutorials on Cheddar
Familiarize yourself with Cheddar, a tool for timing analysis, to enhance your understanding of real-time scheduling.
Show steps
  • Find tutorials or documentation on Cheddar.
  • Follow the tutorials to learn how to use Cheddar to analyze timing diagrams.
Read 'Real-Time Systems' by Jane Liu
Gain a deeper understanding of the concepts and principles of real-time systems, including scheduling algorithms, resource management, and fault tolerance.
View Real-Time Systems on Amazon
Show steps
  • Read chapters 1-3 to understand the fundamentals of real-time systems.
  • Focus on chapters 4-6 to learn about scheduling algorithms and their analysis.
  • Review chapters 7-9 to gain insights into resource management and fault tolerance.
Five other activities
Expand to see all activities and additional details
Show all eight activities
Solve practice problems on rate monotonic analysis
Sharpen your problem-solving skills and deepen your understanding of rate monotonic analysis by working through practice problems.
Show steps
  • Find practice problems online or in textbooks.
  • Solve the problems step-by-step, showing your work and reasoning.
  • Compare your solutions with the provided answers to check your understanding.
Organize a study group with classmates
Engage in discussions and problem-solving with peers to reinforce your understanding and identify areas where you need additional support.
Show steps
  • Find a few classmates who are interested in forming a study group.
  • Decide on a meeting time and frequency.
  • Choose topics or problems to discuss during each session.
Develop a simple real-time system using POSIX
Apply your knowledge of real-time scheduling by building a practical system that demonstrates scheduling algorithms and resource management.
Browse courses on Real-Time Systems
Show steps
  • Design the system architecture, including tasks, resources, and scheduling policies.
  • Implement the system using POSIX real-time extensions on Raspberry Pi or a similar platform.
  • Test and analyze the system's performance, comparing the results with the theoretical models.
Write a technical report on real-time scheduling algorithms
Summarize and analyze different real-time scheduling algorithms, comparing their strengths and weaknesses and providing recommendations.
Show steps
  • Research and gather information on various real-time scheduling algorithms.
  • Analyze the algorithms and compare their performance characteristics.
  • Write a well-organized and comprehensive report presenting your findings.
Contribute to an open-source project on real-time scheduling
Gain practical experience in real-time scheduling by contributing to an active open-source project.
Show steps
  • Find an open-source project related to real-time scheduling that interests you.
  • Identify a specific issue or feature that you can contribute to.
  • Fork the project and create a branch for your contribution.
  • Submit a pull request with your changes.

Career center

Learners who complete Real-Time Embedded Systems Theory and Analysis will develop knowledge and skills that may be useful to these careers:
Real-Time Systems Engineer
Real-Time Systems Engineers work with real-time systems, which are systems that must perform computations and operations within a specific time frame. The knowledge and skills taught in the Real-Time Embedded Systems Theory and Analysis course are highly applicable to this role. This course may be helpful in teaching you about scheduling and analysis in real-time systems, which will help you succeed as a Real-Time Systems Engineer.
Safety-Critical Systems Engineer
Safety-Critical Systems Engineers work with systems that must operate without risk of harm to people, property, or the environment. This course may be helpful in teaching you about scheduling and analysis in safety-critical systems, which will help you succeed as a Safety-Critical Systems Engineer.
Quality Assurance Engineer
Quality Assurance Engineers work to ensure that products and services meet quality standards. This course may be helpful in teaching you about scheduling and analysis in quality assurance, which can help ensure that real-time systems meet the necessary standards and requirements.
Embedded Systems Engineer
Embedded Systems Engineers design, develop, and maintain electronic systems. This course may be helpful in teaching you about the scheduling and analysis involved in embedded systems, which will help you to work with real-time systems.
Simulation Engineer
Simulation Engineers work to create and use simulations to model and analyze systems. This course may be helpful in teaching you about scheduling and analysis in simulation, which can help ensure that real-time systems meet the necessary standards and requirements.
Test Engineer
Test Engineers work to ensure that products and services meet quality standards. This course may be helpful in teaching you about scheduling and analysis in testing, which can help ensure that real-time systems meet the necessary standards and requirements.
Control Systems Engineer
Control Systems Engineers design, develop, and maintain control systems for a variety of applications. This course may be helpful in teaching you about scheduling and analysis in control systems, which will help you to work with real-time scheduling.
Data Scientist
Data Scientists work to collect, analyze, and interpret data. This course may be helpful in teaching you about scheduling and analysis in data science, which can help ensure that real-time systems meet the necessary standards and requirements.
Software Engineer
Software Engineers design, build, and maintain software systems. Their work makes it possible to use computers, cell phones, and other devices to do a wide range of activities. This course may be useful in teaching you about scheduling and analysis in real-time operating systems.
Systems Architect
Systems Architects design and develop solutions to complex technical problems. They work with stakeholders to define system requirements, design the system architecture, and develop a plan for implementing the system. This course may be helpful in teaching you about the analysis and design of real-time systems.
Computer Hardware Engineer
Computer Hardware Engineers research, design, develop, and test computer systems and components such as circuit boards, microprocessors, memory devices, and power supplies. This course may be useful in teaching you about hardware related to real-time operating systems.
Systems Analyst
Systems Analysts study business problems and then design, create, and implement information systems to solve those problems. This course may be useful in teaching you about the analysis involved in building real-time systems, and will be helpful in studying the scheduling and analysis that goes into designing them.
Electrical Engineer
Electrical Engineers design, develop, test, and supervise the installation of electrical systems and components. This course may be helpful in teaching you about electrical engineering, particularly in relation to the scheduling and analysis of real-time systems.
Network Engineer
Network Engineers design, install, and maintain computer networks. They also troubleshoot and resolve technical problems. This course may be useful in teaching you about the scheduling and analysis involved in networking within real-time systems.
Robotics Engineer
Robotics Engineers combine electronic engineering, computer science, mechanical engineering, and software development to design, build, operate, and maintain robots. In this role, one would take part in constructing mechanical structures, designing electrical systems, and programming robots. This course may be helpful in teaching you about the software involved in running robots, specifically the scheduling and analysis of real-time systems.

Reading list

We've selected 11 books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Real-Time Embedded Systems Theory and Analysis.
Provides a comprehensive overview of hard real-time computing systems. It covers topics such as scheduling algorithms and applications. would be useful as a reference for the course.
Provides a comprehensive overview of real-time software design for embedded systems. It covers topics such as software architecture, scheduling, and debugging. would be useful as a reference for the course.
Provides a comprehensive overview of real-time systems. It covers topics such as scheduling, analysis, and verification. would be useful as a reference for the course.
Provides a comprehensive overview of embedded systems. It covers topics such as hardware and software design, testing, and debugging. would be useful as a reference for the course.
Provides a practical guide to designing and developing real-time embedded systems. It covers topics such as hardware and software design, testing, and debugging. would be useful as a reference for the course.
Provides a comprehensive overview of embedded system design. It covers topics such as hardware and software design, testing, and debugging. would be useful as a prerequisite for the course.
Provides a comprehensive overview of embedded systems. It covers topics such as hardware and software design, testing, and debugging. would be useful as a prerequisite for the course.
Provides a comprehensive overview of digital design and computer architecture. It covers topics such as Boolean algebra, combinational logic, and sequential logic. would be useful as a prerequisite for the course.
Provides a comprehensive overview of computer architecture. It covers topics such as processor design, memory hierarchy, and I/O. would be useful as a prerequisite for the course.
Provides a concise and accessible introduction to operating systems. It covers topics such as process management, memory management, and file systems. would be useful as a prerequisite for the course.
Provides a concise and accessible introduction to real-time systems. It covers topics such as scheduling, synchronization, and fault tolerance. would be useful as a prerequisite for the course.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Here are nine courses similar to Real-Time Embedded Systems Theory and Analysis.
Quantitative Formal Modeling and Worst-Case Performance...
Fixed Income Professional Certificate Examination
Capital Markets Immersion: A Financial Markets...
Yield Curve Analysis
Evaluating Public Health Programs at Scale
Fixed Income Mathematics: Pricing and Valuation of Bonds
Macroeconomic Analysis: Investigating Inflation Trend...
Crashing a Project using Microsoft Excel
Fixed Income Instruments and Markets
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2024 OpenCourser