Development of Real-Time Systems

所在平台: Coursera

课程主页: https://www.coursera.org/learn/real-time-systems

课程评论:没有评论

第一个写评论        关注课程

课程简介

课程名称:实时系统开发 概述:本课程旨在为硕士学生和热爱实践编程及问题解决的计算机工程师提供学习平台。完成本课程后,您将具备在理论和实践中规划和建立实时系统的知识。 本课程围绕嵌入式系统中实现时序正确性的问题展开,确保系统在实时要求内响应。此类系统的例子包括安全气囊、紧急刹车、航空电子设备以及多媒体系统(如视频播放和网络服务器的服务质量)。 课程内容包括实时系统规划的理论学习,使用成熟的数学证明方法以及利用最常见的调度方法在实践中实施。此外,还将学习如何使用C语言和FreeRTOS实时内核编程系统。最后,我们将展望实时系统的未来,特别是多核实时系统的发展。 本课程强调“边学边做”的学习方法,结合了众多实例和实际编程作业。课程分为五个模块,每个模块结束时有轻松的测验和一项同行评审的编程作业。如果您没有C语言编程经验,建议先学习实践课程,如: https://www.coursera.org/learn/arduino-platform 这门课程相当有趣! - Simon Holmbacka / Å博学院 课程大纲: 1. 实时系统导论:学习实时系统的基本构建要素和系统参数,了解调度器及其在实时调度中的任务。 2. 静态调度:学习时钟驱动调度器、固定优先级调度器及单调调度器,并学习如何利用这些调度器进行调度。 3. 动态调度:扩展前一周的知识,学习动态调度方法(如LST调度器和EDF调度器)的原理和应用。 4. 非周期性任务:学习如何处理非周期性任务对调度的影响,采用松弛偷取法和LRT调度器进行调度优化。 5. 实时操作系统:深化对FreeRTOS及其内核的理解,引入多核实时系统及其调度方法。 如要查看完整课程内容,请访问:[课程网址](https://research.it.abo.fi/)

课程大纲

Name:Introduction to Real-Time Systems

Description:Here is where it all starts! We will make a brave attempt to start your future career in real-time systems! This week starts by learning the basic building stones in real-time systems and the system parameters required to successfully construct a real-time system. We introduce you to the corner stone of real-time systems, namely the scheduler – and its task in real-time schedules. You learn also what kind of real-time guarantees are needed in which systems. Concretely, you will learn (1) What is needed to create a real-time system (2) Where real-time requirements are needed. (3) The task and job structure and the parameters needed to schedule a task. (4) Difference between pre-emptive and non-pre-emptive tasks. This course is also part of a Blended Master Programme in Embedded Systems.

Name:Static Scheduling

Description:In this week we start to actually do some scheduling. We firstly have a look at the simplest type of scheduler – the clock driven scheduler. After this we deepen our learning with the fixed priority scheduler and the monotonic schedulers. We learn how the priorities are determined using these schedulers and we learn when/when not to use these schedulers. Secondly we learn how to determine if a system is overloaded in order to validate schedules without complete system simulation.Concretely, after attending this week you will be able to: (1) Schedule a set of tasks with the clock driven scheduler, with the fixed priority scheduler, with the monotonic schedulers. (2) Determine if a system is overloaded using the total-utilization method and the Urm method. (3) Program FreeRTOS to schedule a set of tasks using the fixed priority scheduler

Name:Dynamic Scheduling

Description:In the previous week we learned the limitations of the total-utilization method and the Urm method. We start this week off by extending these tests to tasks with short response times. The new method is also, as usual, used in practice! We then focus on improving the optimality of real-time schedules. This is done by learning the principles behind dynamic scheduling methods. Two new schedulers using the dynamic scheduling principle is learned and used in practice with a few examples; the LST scheduler and the EDF scheduler.Concretely, you will learn: (1) How to determine feasibility of a set of tasks using the time demand analysis method. (2) How to schedule a set of tasks using LST and EDF. (3) To determine when a dynamic scheduler is appropriate and when it is not appropriate.

Name:Non-Periodic Jobs

Description:All things are easy and nice when not caring about non-periodic jobs. When including non-periodic jobs, the schedulers must take these into account to make a feasible schedule, which we learn this week. The problem is that a non-periodic job can arrive at any time, even if a periodic job is already scheduled. We learn both how to optimize a schedule for non-periodic jobs and how to validate a schedule when non-periodic jobs arrive to the schedule. Concretely, we will learn: (1) How to use the slack stealing method to optimize a schedule with non-periodic jobs (2) How to use the LRT scheduler to optimize a schedule with non-periodic jobs (3) How to use the deferrable server to optimize a schedule with non-periodic jobs (4) Formally verify a schedule with non-periodic jobs

Name:Real-Time Operating Systems

Description:This week is what we all have been waiting for! We will deepen our learning of FreeRTOS, its kernel and the functionalities. We demonstrate the importance of predictable computer architectures for example when determining the context switch and factors influencing this overhead. As we head towards the future, we finish this course by introducing you to multi-core real-time systems and scheduling methods for multi-core real-time systems. Concretely, you will learn: (1) The internal mechanisms of FreeRTOS, for example mutexes/semaphores and message queues. (2) Multi-core computer architectures for real-time systems. (3) Multi-core scheduling methods.

课程评论(0条)

课程详情

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. In case you have no experience with C programming, please check you a practical course like: https://www.coursera.org/learn/arduino-platform The course is actually quite fun! -Simon Holmbacka / Åbo Akademi University Check out our whole curriculum: https://research.it.abo.fi/

课程标签

0人关注该课程

主题相关的课程