QNX利用动态时间分区发挥CPU最佳效率知识.pdf

QNX利用动态时间分区发挥CPU最佳效率知识.pdf

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
利用动态时间分区发挥CPU 最佳效率 QNX 软件系统公司产品经理郑怡 简介 虽然高功效的多核处理器已经面世,系统设计人员仍然必须确保各个进程正确共享 资源。时间分区是目前可确保一个操作系统能在多个竞争进程中正确共享资源的关 键技术,它甚至可以保护计算机资源免受恶意软件侵害。 时间分区可以为静态或者动态。某些操作系统还支持空间分区,保证每一个分区拥 有一定的内存量。但是,空间分区将不在本文讨论之列。 关于时间分区 时间分区将既定的CPU 时间 (即周期)分配为逻辑区间,也即分区。分区由一个 或多个线程组成,这些线程不一定来自同个进程。实际上,多线程的进程可将其线 程分配给不同的分区。每个分区可获得预先规定的CPU 时间,并且分配到的量不 需要相同;任何逻辑分区在没有100%消耗CPU 时间的情况下,都可以正常工 作。 当给一个分区分配到CPU 时间之后,就产生了该分区的哪个线程需要调度这个问 题。尽管任何调度算法都可以采用,比如轮叫调度,但最好还是采用基于优先级的 调度算法。分区及优先级调度的分离既能确保每个主要任务区域 (即分区)在周期 内都分配到一定量的CPU 时间,又能按照每个线程在系统内的整体重要性来分配 分区内线程的实际工作。 举例来说,一个分区可以包括提供用户界面的进程中的线程,另一个分区可以包括 控制多媒体(以确保提供连续的音乐或者视频播放)的进程中的线程,还有一个分 区可以及控制其他数字处理功能的进程,以实现满意的用户体验。如果这是工厂自 动化系统,则分区可以是用户界面、电机控制、传感器处理及与中央控制计算机的 通信。限制该组合的仅仅是操作系统允许的分区数量、整体系统要求以及系统架构 师的想象力。 无论选择何种设计,将系统的不同分部置于不同的分区可以防止系统的某一部分独 占计算机资源,造成其他部分资源匮乏。 静态时间分区 在静态时间分区的调度机制中,每个分区预先分配到一个周期内的定量CPU 时 间,这些分配不可在运行时间改变。并且,每个分区的线程分配在系统设计时便已 完成,不能改变。这通常可见于航空电子系统,ARINC653 标准也指定这种机制 的使用。 但是,静态时间分区有其劣势,这包括: • 难以决定适当的分区大小及为这些分区分配线程。程序员如果不使用诸如 RMA 之类的形式化分析方法,则必须依赖“直觉”进行实验调试。在运行时 尽管可以观察到系统操作,也不能进行任何更改。 • 未使用的时间即为浪费的时间。如果某个分区用不完其名下的CPU 时间,调 度程序也无法将这些时间分配给其他分区。直到下一个分区被调度之前,此分 区剩余的时间段中,,CPU 都为闲置状态。 动态时间分区 使用动态时间分区,操作系统可以更改各分区在处理周期获得的CPU 时间,以实 现CPU 利用率的最大化。如果某个分区的线程用不完所有分配到的CPU,则剩余 的时间可以分配给其他任务。动态时间分区有时被称为 “偷闲”,这种说法不太精 确,因为“偷闲”调度仅仅是动态时间分区调度方法的一种,还有其他类型存在。 本文介绍的是我们最为熟悉的自适应分区技术,由QNX Neutrino 实时操作系统实 现的动态分区技术。自适应分区技术将分区闲置的CPU 时间重新分配至其他分 区,最大程度优化资源有限型设备的性能。自适应分区技术尤其适用于突发性 CPU 需求。如果系统处于轻载状态,则调度原理与优先级驱动的系统类似;如果 系统处于重载状态,则调度原理与静态时间分区类似。并且,与很多系统的时间分 区不同的是,自适应分区技术允许程序员重新将线程分配给其他分区,并动态调整 分区规模(单个周期里,CPU 分配给分区的规模)。 有些安全关键型的系统要求使用静态时间分区。自适应分区系统可以轻易地转换成 静态时间分区系统。在每个分区内放置一个包含简单无限循环的最低优先级线程 的,便可以迫使分区用完所有分配的时间,而将系统转变为静态时间分区系统。但 是,静态时间分区的系统不能转变为自适应时间分区系统。 示例1:全球定位系统 让我们来比较一下GPS 如何在静态和自适应时间分区下工作。假设共有三个分 区,下图将以不同的颜色代表,以识别这些分区和闲置时间。 名称 时间分配 用户界面 30% 路线计算 40% 诊断和数据获取 30% 闲置 N/A 重布路线 重布路线时,GPS 需要决定新的路线,并进行展示,因此前两个分区可能会超出 其分配的时间。使用静态分区,第三个分区用不完的时间都会

文档评论(0)

kehan123 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档