- Level Professional
- Duration 19 hours
- Course by EIT Digital
-
Offered by
About
This course is intended for the Master's student and computer engineer who likes practical programming and problem-solving! After completing this course, you will have the knowledge to plan and set up a real-time system both on paper and in practice. The course centers around the problem of achieving timing correctness in embedded systems, which means to guarantee that the system reacts within the real-time requirements. Examples of such systems include airbags, emergency breaks, avionics, and also multi-media systems like video playback and QoS in web servers. The course teaches how to plan real-time systems, in theory, using established mathematical proofs and how to implement them in practice by using the most common scheduling methods. We also learn and how to program the system in the C language using the FreeRTOS real-time kernel. Finally, we have a look at the future of real-time systems namely multi-core real-time systems! This course focus on the learn-by-doing approach with many examples and real-world programming assignments. We have 5 modules, each with a gentle graded quiz in the end and one peer-reviewed programming assignment. The course is actually quite fun! -Simon Holmbacka / Åbo Akademi University Check out our whole curriculum: https://research.it.abo.fi/Modules
Course Introduction
1
External Tool
- Where are you from? -Put a pin in the map!
1
Videos
- Course Introduction
General Concepts of Real-Time Systems
2
Videos
- The Concepts of Real-Time Systems
- The Concept of Real-TimeTasks
The Principles of Scheduling
1
Assignment
- Quiz 1
1
Peer Review
- Assignment 1
3
Discussions
- Setting up the FreeRTOS tool chain
- Week 1 Forum
- Assignment 1 Forum
3
Videos
- The Principles of Scheduling
- Real-Time Pre-emption
- FreeRTOS "Hello World" Tutorial
1
Readings
- FreeRTOS API
Clock Driven Scheduling
2
Videos
- Clock Driven Scheduling - The Concept
- Clock Driven Scheduling - Implementation
Cyclic Structured Scheduling
2
Videos
- Cyclic Structured Scheduling - The Concept
- Cyclic Structured Scheduling - Example
Fixed Priority Scheduling
1
Videos
- Fixed Priority Scheduling
Monotonic Scheduling
1
Assignment
- Quiz 2
1
Peer Review
- Assignment 2
2
Discussions
- Week 2 Forum
- Assignment 2 Forum
2
Videos
- Monotonic Scheduling - The Concept
- Monotonic Scheduling - Example
Tasks with Short Response Time
2
Videos
- Tasks with Short Response Time Theory - The Concept
- Tasks with Short Response Time - Example
Earliest Deadline First Scheduling - Practice
1
Assignment
- Quiz 3
1
Peer Review
- Assignment 3
2
Discussions
- Week 3 Forum
- Assignment 3 Forum
3
Videos
- Dynamic Priority Scheduling
- Earliest Deadline First Theory
- Earliest Deadline First Example
Aperiodic Jobs
2
Videos
- Aperiodic Jobs - The Concept
- Aperiodic Jobs - Example
Sporadic Jobs
2
Videos
- Sporadic Jobs - The Concept
- Sporadic Jobs - Example
The Deferrable Server
1
Assignment
- Quiz 4
1
Peer Review
- Assignment 4
2
Discussions
- Week 4 Forum
- Assignment 4 Forum
2
Videos
- The Deferrable Server Theory
- The Deferrable Server Example
Real-Time Operating Systems Overview
2
Videos
- RTOS Overview
- The FreeRTOS Kernel
Multi-Core Real-Time Systems
1
Videos
- Multi-Core Real-Time Systems
Multi-Core Scheduling
1
Assignment
- Quiz 5
1
Peer Review
- Assignment 5
3
Discussions
- Week 5 Forum
- Assignment 5 Forum
- Ways of improving the course
2
Videos
- Multi-Core Scheduling - Shared Resources
- Multi-Core Scheduling - Scheduling Methods
Auto Summary
Embark on a practical journey into the world of real-time systems with the "Development of Real-Time Systems" course, designed for IT and Computer Science enthusiasts. Guided by expert instructor Simon Holmbacka from Åbo Akademi University, this course focuses on the critical aspect of achieving timing correctness in embedded systems, essential for applications like airbags, emergency brakes, avionics, and multimedia systems. Dive deep into planning and implementing real-time systems using mathematical proofs and common scheduling methods. Gain hands-on experience programming in C with the FreeRTOS real-time kernel and explore the promising future of multi-core real-time systems. Structured around a learn-by-doing approach, the course offers five comprehensive modules, each featuring quizzes and a peer-reviewed programming assignment to reinforce learning. With a total duration of 1140 minutes, the course provides a thorough and engaging learning experience. Ideal for professionals looking to enhance their skills, the course is available through Coursera with flexible subscription options: Starter, Professional, and Paid. Whether you're an experienced programmer or new to C programming, this course promises a fun and insightful foray into real-time systems. Join now and transform your theoretical knowledge into practical expertise.

Farhoud Hosseinpour