2022年您何时需要实时操作系统- .pdf
《2022年您何时需要实时操作系统- .pdf》由会员分享,可在线阅读,更多相关《2022年您何时需要实时操作系统- .pdf(5页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、您何时需要实时操作系统? 大部分嵌入式项目还需要实时操作系统吗?这个问题问得好, 因为现代高性能处理器和 Linux 、Windows 和其他通用操作系统 (GPOS) 的实时补丁的可用性都在飞速发展。嵌入式设备的本质道出了答案。在许多情况下,制造设备都需要几千甚至几百万个部件。哪怕设备硬件的单位成本节省 1 美元, 都会为制造商带来不小的财富。换言之, 设备无法承受数千兆赫兹级处理器的成本 ( 更不用说热耗散了)。例如,在汽车远程信息处理技术市场,常见的 32 位处理器以约 600 Mhz 的速度运行 ——远远慢于台式机和服务器的常用处理器。在这种运行环境中,实时操作
2、系统能得到低端硬件超快、可预测的响应,因此具有显著的节约成本的优势。除节约成本之外,实时操作系统提供的服务还能使许多计算问题迎刃而解,特别是当多种运行争夺系统资源时。例如,试想一个用户期望( 或需要 ) 立即响应输入的系统。利用实时操作系统,软件开发人员能确保用户启动的操作会先于其他系统活动执行,除非必须先执行更重要的任务 ( 如帮助保护用户安全的运行) 。再试想一个必须满足服务质量 (QoS) 要求的系统, 例如一台可播放现场视频的设备。如果设备依靠软件播放其内容,它可能会以用户无法接受的速率出现失帧现象——从用户的角度看,该设备不可靠。但使用实时操作系统的话,软件开
3、发人员就能精确控制软件进程的执行顺序,确保以适当和一致的媒体速率播放。实时操作系统并不“ 公平 ” 对“ 硬” 实时的需求 ( 以及对实现该功能的实时操作系统的需求) 仍然是嵌入式产品业的普遍要求。 问题是, 实时操作系统具备哪些通用操作系统所不具备的功能呢?适用于一些通用操作系统的实时扩展组件有多大用处呢?它们能提供和实时操作系统一样的性能吗? 让我们先从任务调度开始。在通用操作系统中,调度程序通常使用一种“ 公平 ”策略,将线程和进程分配到 CPU 中。这种策略可确保台式机和服务器的应用程序所需的较高的总吞吐量,但无法
4、保证优先级高、时间要求严格的线程先于优先级低的线程执行。例如,通用操作系统可能会降低分配给优先级高的线程的优先级,或按照有利于系统内其他线程的公平原则,以动态方式调整优先级。因此,优先级高的线程就可能被优先级低的线程抢占。此外,大多数通用操作系统都具有无限期的分配潜伏期:系统内的线程越多,通用操作系统调度线程执行所需的时间就越久。其中任何一种因素都能导致优先级高的线程错过最后期限,即使在速度很快的 CPU 上。另一方面,在实时操作系统中,线程会按其优先级的顺序执行。如果优先级高的线程准备运行,它能在很短且有限的时间间隔内,从正在执行的优先级低的线程那里接管 CPU。此外,优先级高的线程还能不间
5、断地运行直到完成任务为止——当然,除非它被优先级更高的线程抢占。这种众所周知的基于优先级的抢占式调度,可确保优先级高的线程始终如一地满足最后期限的要求,即使在其他线程争夺 CPU 时间时。抢占式内核大多数通用操作系统的操作系统内核都不是抢占式的。因此,优先级高的用户线程无法抢占内核调用,相反,它必须等待整个调用全部结束——即使是系统内优先级低的进程进行调用。此外,当驱动程序或其他系统服务( 通常在内核调用中运行) 以客户端线程的名义执行时,操作系统通常会丢失所有优先级信息。这种系统行为会导致无法预料的延迟,而且会妨碍关键运行按时完成。另一方面,在
6、实时操作系统中,内核运行是可抢占的。虽然仍有一些时间窗无法抢占,但在设计精密的实时操作系统中,这些间隔非常短暂,通常大约仅几百纳秒。另外,实时操作系统会针对抢占推迟和中断禁止的时限设置上限; 这能保证软件开发人员确定情况最糟的延迟名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 5 页 - - - - - - - - - 期。为实现这一目标,实时操作系统内核必须尽可能简单、精致。实现这种简单性的最佳途径是设计一种只包含短执行路径服务的内核。通过排除内核中任务集中的运行( 如
7、进程加载 ) 并将其分配到外部进程或线程,实时操作系统的设计人员就能保证通过内核的最长的非抢占代码路径有上限。在一些通用操作系统,内核增加了某种程度的可抢占性。但无法抢占的时间间隔仍然比常见实时操作系统的长得多; 这种抢占间隔的长度取决于通用操作系统内核中包含的最长的关键模块部分 ( 如网络 ) 。另外,抢占式通用操作系统内核不能解决可能的无限期延迟情形,例如因为客户端调用驱动程序或其他系统服务时丢失优先级信息。避免优先级反转的机制即 使 在 实 时 操 作 系 统 中 , 优 先 级 低 的 线 程 也 能 在 无 意 中 阻 止 优 先 级 高 的 线 程 访 问CPU—&md
8、ash; 这种情况被称为优先级反转。当出现无限期的优先级反转时,可能会错过关键的最后期限,进而导致系统运行异常和全面故障的结果。遗憾的是,在系统设计过程中人们往往会忽视优先级反转。有很多优先级反转的实例,包括 1997 年 7 月火星探路者项目遭受困扰的实例。1 一般来说,当优先级不同的两个任务共享资源,而优先级高的任务无法从优先级低的任务那里获得资源时,就会出现优先级反转。为防止这种状况超过有限的时间间隔,实时操作系统可提供一种通用操作系统不具备的选择机制,包括优先级继承和优先级封顶模拟。我们不能单纯地评价两种机制的优劣,所以我们着重介绍优先级继承的实例。首先,我们必须考虑任务同步如何能造成
9、阻塞,而阻塞反过来又如何导致优先级反转。我们假设有任务 1 和任务 2 两个任务正在运行, 其中任务 1 具有较高的优先级。 如果任务 1 准备执行,但必须等待任务 2 完成运行, 就出现阻塞的状况。同步化也会导致这种阻塞; 例如,任务 1 和任务 2 共享由锁或信号量控制的资源,任务 1 等待任务 2 对资源进行解锁。或者,当任务 1 请求目前正由任务 2 使用的服务时,也会出现阻塞状况。1 Michael Barr.“优先级反转简介” 阻塞允许任务 2 运行,直到任务 1 等待的条件出现为止( 例如,任务 2 对两个任务共享的资源解锁 ) 。此时, 任务 1 可以执
10、行。 任务 1 须等待的总时间会随最少时间、平均时间和最多时间变化。 这种间隔就是阻塞因数。如果任务 1 必须满足一定的时间限制,该因数就不能随任何参数变化,如线程数或系统内的输入。换句话说,必须限制阻塞因数。现在,我们引入第三个任务( 任务 3)—— 其优先级比任务 2 的高但比任务 1 的低( 参见图 1) 。当任务 2 正在运行时, 任务 3 准备运行, 它会抢占任务 2 ,而任务 2 在任务 3 被阻塞或完成前都无法运行。当然,这样会增加任务 1 的阻塞因数 ; 也就是说, 它会进一步延迟任务 1 的运行。抢占导致的总延迟就是优先级反转。实际上,可以有多个任务以
11、这种方式抢占任务 2 , 从而导致连续阻塞的结果。在这种情况下,任务 2 可能被无限期地抢占, 产生无限期的优先级反转,导致任务 1 无法满足其最后期限。这时优先级继承就会发挥作用。如果我们回到上述假设中,在同步期内使任务 2 以任务 1 的优先级运行,那么任务 3 就无法抢占任务 2 ,这样就能避免优先级反转的产生( 参见图 2) 。图 1—— 当任务 3 抢占任务 2 时,任务 1 等待任务 2 完成运行。这进一步推迟了任务 1 的运行。 4 图 2—— 任务 2 继承了任务 1 的优先级, 因而阻止了任务 3 抢占任务 2 。任务3 不再推
12、迟任务 1 的运行。提供有保证的 CPU 可用性的分区调度名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 5 页 - - - - - - - - - 保证资源的可用性对许多系统而言都至关重要。如果某个关键子系统( 如 CPU 周期 ) 丢失,用户就无法获取该子系统提供的服务。例如, 在拒绝服务 (DoS) 攻击中, 恶意用户会利用需要优先级高的进程处理的请求攻击系统。该进程会使 CPU 过载并导致其他进程的 CPU 周期匮乏,从而使用户无法使用系统。安全漏洞并非是导致进程
13、匮乏的唯一原因。在许多情况下,增加系统的软件功能都会导致系统“ 濒临危险边缘” ,导致现有应用程序的 CPU 时间匮乏。 及时运行的应用程序或服务不再按预期或要求的那样迅速响应。从历史角度,解决这一问题的唯一途径是更新硬件或对软件进行重新编码( 或重新设计 )—— 这两种方法都无法让人满意。为解决这些问题, 系统设计人员需要一种可通过硬件或软件执行 CPU 预算的分区计划, 以阻止进程或线程独占其他进程或线程所需的 CPU 周期。实时操作系统正是执行 CPU 分区预算的最佳选择,因为实时操作系统已经提供了对 CPU、内存和其他计算资源的集中访问。
14、某些实时操作系统提供了固定分区调度算法。系统设计人员能利用这种调度算法对任务进行分组或分区, 然后为每个分区分配一定比例的 CPU 时间。利用这种方法, 任何既定分区内的任务消耗的 CPU 时间都不会超过该分区静态确定的比例。例如,我们假设为分区分配了 30% 的 CPU。 如果该分区内的进程随后成为拒绝服务攻击的目标,它会消耗不超过 30% 的 CPU 时间。这种分配限制确保了其他进程保持各自的可用性; 例如,它能保证可访问的用户界面( 如远程终端 ) 。因此,操作人员能访问系统并解决问题——无需按动复位开关。 5 但是,这种方法也存在问题。由于调度算法是固定的,因此
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年您何时需要实时操作系统- 2022 何时 需要 实时 操作系统
限制150内