1、简介
实时和嵌入式系统的一个显著特点是对有限资源的管理。这些资源可能是CPU时间、内存、网络带宽等,它们的有限性要求系统设计者必须精心管理以确保系统的高效运行。
1.1 资源管理
资源管理是实时和嵌入式系统设计中的一个核心问题,涉及CPU时间、内存、网络带宽等有限资源的有效分配和使用。资源管理模式提供了一系列解决方案,帮助开发者在设计系统时考虑资源的有限性,并提供了一种方法来管理和共享这些资源。
例如,资源可能以原子方式提供服务,这意味着客户端在需要时会以某种方式“锁定”资源,防止其他客户端在原始客户端完成使用之前访问该资源。这实现了资源使用的序列化,这对于具有并发线程的系统的正确操作至关重要。
1.2 QoS(服务质量)
资源有限性是指在实时和嵌入式系统中,嵌入式系统所能提供的资源(如CPU时间、内存、网络带宽等)是有限的。这些资源的有效性可以通过一系列的服务质量(QoS)特性来表示。
QoS是指系统或网络能够提供的服务质量,包括容量、执行速度、可靠性等量化属性。在实时和嵌入式系统中,QoS的量化有限性必须得到管理,以确保系统能够满足实时性要求。
1.3 资源模式概览
本章介绍了以下几种资源模式:
- 临界区模式(Critical Section Pattern):用于确保资源能够完成运行。
- 优先级继承模式(Priority Inheritance Pattern):限制优先级反转。
- 最高锁定者模式(Highest Locker Pattern):限制优先级反转。
- 优先级上限模式(Priority Ceiling Pattern):限制优先级反转并防止死锁。
- 同时锁定模式(Simultaneous Locking Pattern):防止死锁。
- 有序锁定模式(Ordered Locking Pattern):防止死锁。
1.4 本章重点内容
- 资源的有限性:资源的有限性是实时和嵌入式系统设计的核心问题。
- 资源模式:介绍了六种资源模式,每种模式都解决了特定的资源共享和管理问题。
- 资源共享的挑战:资源共享可能导致优先级反转和死锁,这些模式旨在解决这些挑战。
1.5 资源模式的应用
这些模式提供了一系列解决方案,帮助开发者在设计系统时考虑到资源的有限性,并提供了一种方法来管理和共享这些资源。例如,智能指针模式(Smart Pointer Pattern)提供了对某些类型资源(这些资源是动态分配的)的稳健访问。同步并发线程可以被视为资源管理(第5章中的会合模式Rendezvous Pattern)。
2、基础概念
2.1 RMA 简介
标准速率单调分析(Standard Rate Monotonic Analysis, RMA)是实时系统中用于任务调度的一种经典算法。以下是对RMA的详细解释:
2.1.1 RMA的基本原理
RMA是基于静态优先级的调度算法,它假设系统中的任务是周期性的,并且每个任务的截止时间等于它的周期。RM根据任务的请求率分配优先级,周期越短,优先级越高。
2.1.2 RMA的适用条件
为了使RMA有效,必须满足以下条件:
- 任务是周期性的,且截止时间等于周期。
- 任务是独立的,即任务之间没有相互依赖。
- 系统支持无限抢占,即低优先级任务可以被高优先级任务立即抢占。
2.1.3 RMA的调度分析
RMA通过一个数学公式来分析系统是否能够满足所有任务的截止时间。该公式考虑了每个任务的最坏情况执行时间(Cj)和周期(Tj),以及任务的数量(n)。如果分析结果表明系统是可调度的,那么系统将始终能够满足其截止时间。
2.1.4 RMA的限制
RMA的一个限制是它不考虑任务之间的资源共享问题(不考虑阻塞)。当任务需要共享资源时,可能会出现优先级反转和死锁等问题。
考虑阻塞https://blog.csdn.net/ChatCoding/article/details/134497861
2.1.5 RMA的应用
RMA广泛应用于实时操作系统(RTOS)中,它为设计者提供了一种工具,可以预先分析系统的调度能力。通过RMA,设计者可以在系统运行之前确定任务的优先级分配是否合理,从而确保系统的实时性。
2.2 阻塞
当一个任务因为低优先级任务占用了所需资源而无法运行时,该任务被称为阻塞。阻塞问题使得系统的及时性分析变得更加困难。
2.3 优先级反转
优先级反转是指低优先级任务占用资源导致高优先级任务无法运行的情况。这可能导致高优先级任务无法满足其截止时间。
2.4 无限优先级反转
无限优先级反转是指由于资源共享导致的优先级反转问题没有上限,可能导致高优先级任务被无限期地阻塞。
2.5 死锁
死锁是指多个任务因循环等待资源而无法继续执行的情况。死锁的发生需要以下四个条件同时满足:
- 资源互斥(锁定):资源必须在互斥的方式下被多个线程使用。
- 持有和等待:线程至少持有一个资源,并且正在等待获取额外的资源,这些资源可能被其他线程持有。
- 资源不可抢占:资源只能由持有它们的线程自愿释放。
- 循环等待:存在一种线程等待循环,每个线程都在等待下一个线程所持有的资源。
以上是对资源管理、QoS、RMA、阻塞、优先级反转、无限优先级反转、死锁及其发生条件的详细解释。这些概念在实时和嵌入式系统的设计和分析中至关重要,了解和应用这些概念可以帮助设计出能够满足实时性要求的系统。