【2018年整理】QNX利用动态时间分区发挥CPU最佳效率

上传人:ji****72 文档编号:35264777 上传时间:2018-03-13 格式:PDF 页数:6 大小:185.28KB
返回 下载 相关 举报
【2018年整理】QNX利用动态时间分区发挥CPU最佳效率_第1页
第1页 / 共6页
【2018年整理】QNX利用动态时间分区发挥CPU最佳效率_第2页
第2页 / 共6页
【2018年整理】QNX利用动态时间分区发挥CPU最佳效率_第3页
第3页 / 共6页
【2018年整理】QNX利用动态时间分区发挥CPU最佳效率_第4页
第4页 / 共6页
【2018年整理】QNX利用动态时间分区发挥CPU最佳效率_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《【2018年整理】QNX利用动态时间分区发挥CPU最佳效率》由会员分享,可在线阅读,更多相关《【2018年整理】QNX利用动态时间分区发挥CPU最佳效率(6页珍藏版)》请在金锄头文库上搜索。

1、 利用动态时间分区发挥 CPU 最佳效率 QNX 软件系统 公司产 品经 理郑怡 简介 虽然高功 效的多 核处理 器已 经面世, 系统设 计人员 仍然 必须确保 各个进 程正确 共享 资源。 时 间分区 是目前 可确 保一个操 作系统 能在多个 竞争 进程中 正确共 享资源 的关 键技术, 它甚至 可以保 护计 算机资源 免受恶 意软件 侵害 。 时间分区 可以为 静态或者 动态 。某些 操作系 统还支 持 空 间分区 , 保证每 一个分 区拥 有一定的 内存量 。但是 ,空 间分区将 不在本 文讨论 之列 。 关 于时 间分区 时间分区 将既定 的 CPU 时间 (即周 期)分 配为逻 辑区

2、 间,也即 分区。 分区由 一个 或多个线 程组成 ,这些 线程 不一定来 自同个 进程。 实际 上,多线 程的进 程可将 其线 程分配给 不同的 分区。 每个 分区可获 得预先 规定的 CPU 时间 ,并且 分配到 的量不 需要相同 ;任何 逻辑分 区在 没有 100% 消耗 CPU 时间 的情况下 ,都可 以正常 工 作。 当给一个 分区分 配到 CPU 时间之后 ,就产生 了该分 区的 哪个线 程需要 调度这 个问 题。尽管 任何调度 算法 都可 以采用, 比如轮 叫调度 ,但 最好还是 采用基 于优先 级的 调度算法 。分区 及优先 级调度 的分离 既能确保 每个 主要 任务区域 (即

3、分 区)在 周期 内都分配 到一定 量的 CPU 时间,又 能按照 每个线 程在 系统内的 整体重 要性来 分配 分区内线 程的实 际工作 。 举例来说 ,一个 分区可 以包 括提供用 户界面 的进程 中的 线程,另 一个分 区可以 包括 控制多媒 体(以 确保提 供连 续的音乐 或者视 频播放 )的 进程中的 线程, 还有一 个分 区可以及 控制其 他数字 处理 功能的进 程,以 实现满 意的 用户体验 。如果 这是工 厂自 动化系统 ,则分 区可以 是用 户界面、 电机控 制、传 感器 处理及与 中央控 制计算 机的 通信。限制 该组 合的仅仅 是 操作系统 允许的 分区数 量、 整体系统

4、 要求以 及系统 架构 师的想象 力。 无论选择 何种设 计,将 系统 的不同分 部置于 不同的 分区 可以防止 系统的 某一部 分独 占计算机 资源, 造成其 他部 分资源匮 乏。 静 态时 间分区 在静态时 间分区 的调度 机制 中,每个 分区预 先分配 到一 个周期内 的定量 CPU 时 间,这些 分配不 可在运 行时 间改变。 并且, 每个分 区的 线程分配 在系统 设计时 便已 完成,不 能改变 。这通 常可 见于航空 电子系 统,ARINC653 标准也 指定这 种机 制 的使用。 但是,静 态时间 分区有 其劣势 ,这包 括: 难以决定 适当的 分区大 小及 为这些分 区分配 线

5、程。 程序 员如果不 使用诸如 RMA 之类 的形式 化分 析方法 ,则必 须依赖 “直觉 ”进 行实验调试 。在 运行时 尽管可以 观察到 系统操作 , 也不能进 行任何 更改。 未使用的 时间即 为浪费 的时 间。 如果 某个分 区用不 完其 名下的 CPU 时间, 调 度程序也 无法将 这些时 间分 配给其他 分区。 直到下 一个 分区被调 度之前 ,此分 区剩余的 时间段 中,CPU 都为 闲置状 态。 动 态时 间分区 使用动态 时间分 区,操 作系 统可以更 改各分 区在处 理周 期获得的 CPU 时间 ,以实 现 CPU 利用 率的最 大化。 如果某个 分区的 线程用 不完 所有

6、分配 到的 CPU,则 剩余 的时间可 以分配 给其他 任务 。动态时 间分区 有时被 称为 “偷闲” ,这种 说法不 太精 确,因为 “偷闲 ”调度 仅仅 是动态时 间分区 调度方 法的 一种,还 有其他 类型存在 。 本文介绍 的是我 们最为 熟悉 的 自适应 分区 技 术,由 QNX Neutrino 实 时操 作系统 实 现的动态 分区技 术。自 适应 分区技术 将分区 闲置的 CPU 时间 重新分 配至其 他分 区,最大 程度优 化资源 有限 型设备的 性能。 自适应 分区 技术尤其 适用于 突发性 CPU 需求。 如果系 统处于 轻载状态 ,则调度 原理 与优 先级驱动 的系统 类

7、似; 如果 系统处于 重载状态 ,则 调度 原理与静 态时间 分区类 似。 并且,与 很多系 统的时 间分 区不同的 是,自 适应分 区技 术允许程 序员重 新将线 程分 配给其他 分区, 并动态 调整 分区规模 (单个 周期里 ,CPU 分配给 分区的 规模) 。 有些安全 关键型 的系统 要求 使用静态 时间分 区。自 适应 分区系统 可以轻 易地转 换成 静态时间 分区系 统。在 每个 分区内放 置一个 包含简 单无 限循环的 最低优 先级线程 的,便可 以迫使 分区用 完 所 有分配的 时间, 而将系 统转 变为静态 时间分 区系统 。但 是,静态 时间分 区的系 统不 能转变为 自适

8、应 时间分 区系 统。 示例 1:全球 定位系 统 让我们来 比较一 下 GPS 如 何在静态 和自适 应时间 分区 下工作。 假设共 有三个 分 区,下图 将以不 同的颜 色代 表,以识 别这些 分区和 闲置 时间。 名称 时间分配 用户界面 30% 路线计算 40% 诊断和数 据获取 30% 闲置 N/A 重布路线 重布路线 时,GPS 需要决 定新的路 线,并 进行展 示, 因此 前 两个分 区可能 会超出 其分配的 时间。 使用静 态分 区,第三 个分区 用不完 的时 间都会成 为闲置 时间, 如图 1a 所 示。 使用自适 应分区 ,剩余 的时 间会分配 给其他 分区, 使系统 响应

9、更 快,更 加有效 地利 用资源, 如图 1b 所 示。 启动 当给 GPS 启 动时, 自适应 分区的作 用更加 显著。 在这 种情况下 ,路线 计算分 区为 闲置,而 用户界 面分区 也较 为清闲。 在静态 分区下 ,CPU 使用可 能如图 2a 所 示。 使用自适 应分区 ,其他 分区 不用的时 间将分 配给诊 断和 数字获取 这一分 区,如图 2b 所 示。 示例 2 :简 单的 自动化系 统 在另一个 例子里 ,让我们 观察 一下带有 多个 元件的 简单 自动化系 统: 元件 线程优先 级 远程网络 监控模块 低 本地人机 界面(HMI ) 中低 传感器扫 描和数 据获取 中低 电机

10、控制 高 如果我们 只依靠 该系统 里的 线程优先 级,则 在集成 阶段 ,我们可 能会发现 在操 作员 使用本地 HMI 前,远程 监控 模块都 会正常 工作。 一旦 操作员开始 使用 本地 HMI , 远程模块 就会冻 结,并 停止 显示更新 。追寻 故障原 因可 能会发现 ,当 HMI 命 令导 致大量电 机控制 操作时 ,远 程模块无 法再获取 CPU 时 间。 图 3 :在 一个基 于优先 级的 系统中, 当本地 HMI 繁忙 时,远程 网络控制 得不 到 CPU 时间。 通过调整 优先级 来解决 问 题 为了修复 系统, 我们可能 为 本地 HMI 指定 一个低于 远 程监控模块

11、的优 先级, 但这 可能会导 致 HMI 性能 无法 达标。将 远程模块 、数 据获 取和 HMI 的优 先级都 设定 为 中等也不 能解决 问题, 因为 这会影响 数据获 取的性 能。 既然重新 设定优 先级解 决不 了问题, 我们必 须改变 线程 运行状态 ,监控 HMI 的 CPU 消耗 ,并确 保它间或 让远 程监控运 行 这会大 大增 加集成阶 段的成 本。 利用分区 进行设 计 时间分区 提供更 好的解 决方 案。我们 将 CPU 预 算分配 给子系统 和每一 个设计 团 队,无需 全系统 范围的 优先 级机制。 每一个 团队可 以在 自己的分 区内开 发自己 的优 先级方案 。实

12、时 操作系 统保证 分区的 预算, 并在每 个分 区内使用 基于优 先级的 调度 程序。按 照需要 的不同 ,这 些分区可 以是静 态或者 自适 应。 分区 时间分配 传感器输 入和数 据获取 30% 本地 HMI 10% 远程网络 控制 10% 电机/ 促 动器控制 50% 时 间分 区是否 永远 是最佳 方案 ? 有时候, 时间分 区也会 存在 问题;比如 说, 有人按 了电源 开关。 在这种 情况下 : 循环调度 程序需 要时间 来意 识到事件 的发生 实时期限 仍然需 要满足 使用中断 进程来 处理事 件可能 会出问题 这种情况 对静态 和自适 应分区 调度都 有影响 ,但是 自适 应

13、分区调 度所受 的影响 可能 较小。就拿 QNXNeutrino 实时操作 系统来说 ,有 一个 关键线程 的概念 存在; 当这 个线程被 激活时 (比如 当有 人按了紧 急电源 切断按 钮) ,调度程 序会停 止所有 分区 调度,并 立即着手 处理 该线 程。 关于QNX 软件系 统公司 QNX 软件系统 公司是 Research In Motion 公司(RIM )的子公 司,是 嵌入式 系统 市场上操 作系统 、中间 件、 开发工具 和专业 服务的 领军 者。包括 思科、 戴姆勒 、通 用电气、 洛克希 德 马丁和 西门子在 内的众 多全球 知名 技术领先 企业, 都将 QNX 技术应用 在网络 路由器 、车 载远程信 息处理 装置、 工业 控制系统 、医疗 设备、 安全 防卫系统 和其他 任务关 键性 和生命关 键型应 用中。QNX 软件系统 公司成 立于 1980 年,总部 位于加 拿大渥 太华 ,其产品 行销全 球 100 多 个 国家或地 区。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 综合/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号