0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

性能管理:操作系统的新维度

星星科技指导员 来源:嵌入式计算设计 作者:VAL POPESCU 2022-11-10 15:02 次阅读

鉴于处理器和应用程序的复杂性增加,当前一代操作系统(OS)主要关注软件完整性,而部分忽略了从现有硬件中提取最大性能的需求。

处理器的性能与操作系统允许的一样。嵌入式或其他计算平台不仅包括物理资源(内存、CPU 内核、外围设备和总线),通过资源分区(虚拟化)进行管理,还包括性能资源,如 CPU 周期、时钟速度、内存和 I/O 带宽,以及主/缓存内存空间。这些资源通过优先级或时间片等古老方法进行管理,或者根本不管理。结果,处理器未得到充分利用并消耗过多的能量,从而剥夺了它们真正的性能潜力。

大多数现有的管理计划都是零散的。CPU 周期由优先级和时间隔离管理,这意味着需要在预设时间内完成的应用程序将被保留该时间,无论它们是否实际需要它。由于缓存未命中、未命中推测和 I/O 阻塞,无法安全地预测执行时间,因此保留时间通常比所需时间长。为了确保智能手机中的调制解调器堆栈接收足够的 CPU 周期来进行呼叫,其他应用程序可能会被限制为不同时运行。这就解释了为什么一些未命名品牌手机的用户抱怨说,当手机响起时,GPS会掉线。

除此之外,电源管理最近引起了极大的兴趣。请注意“单独”特征。大多数部署的解决方案都擅长检测空闲时间、使用系统响应缓慢的模式,或 CPU 可以以较低时钟速度运行从而节省能源的特定应用程序。例如,英特尔提出了Hurry Up and Get Idle(HUGI)。要理解HUGI,请考虑以下类比:有人可以使用印地汽车全速到达目的地,然后将其停放,但也许使用普锐斯及时到达那里会更实用。您认为哪个使用更少的气体?基于使用模式的电源管理过于粗糙,无法始终有效地挖掘所有节能机会。

理想情况下,开发人员希望改变时钟速度/电压以匹配瞬时工作负载,但这不能仅通过关注正在运行的应用程序来完成。开发人员也许能够确定应用程序按时完成的最低时钟速度,但是他们是否可以放慢时钟速度,不知道其他等待运行的应用程序如果延迟会受到怎样的影响?单独管理任务和时钟速度(电源)不能导致最佳能耗。获胜的方法将同时管理/优化所有性能资源,但至少要管理时钟速度和任务调度。想象一下,任务调度员是行程计划员,时钟经理是汽车司机。如果汽车减速,则必须重新计划行程。驱动程序可能由于路况不佳(缓存未命中)而必须减速,或者在铁路障碍处停车(多线程中的障碍,由于分配的 I/O 带宽不足而阻塞缓冲区为空等)。表现出数据依赖执行时间的应用程序也存在一个问题,因为它们完成的时间在完成之前是未知的。应该提前为这些应用分配什么时钟速度?

先进的性能管理解决方案

管理性能资源的一个例子是VirtualMetrix性能管理(PerfMan),它通过参数驱动的算法控制所有性能资源。该软件调度任务、更改时钟速度、确定空闲周期,并根据性能数据(如消耗的带宽和停用的指令)分配 I/O 带宽和缓存空间。这种方法(如图 1 所示)解决了碎片问题,甚至可以实现最佳资源分配,甚至可以考虑现代处理器和数据相关应用程序的执行速度的不可预测性。

图1:PerfMan 使用参数驱动的算法控制所有性能资源,从而实现最佳资源分配。

?q=94&bg=ffffff&w=470&f=jpg&fltr%5B3%5D=usm%7C91%7C0.8%7C0.05&src=http%3A%2F%2Fattachments.opensystemsmedia.com%2FECD4529%2Ffigures%2F1

正在申请专利的已完成工时分配算法使用闭环方法,该方法通过将已完成的工作与仍要执行的工作进行比较来做出分配决策,以系统提供的任何可测量的性能量表示。例如,如果应用程序是填充缓冲区的视频播放器或通信协议,则 PerfMan 可以跟踪缓冲区填充级别并确定时钟速度和运行时间,以便及时填充缓冲区。完成的时间不可避免地会有所不同,因此决策会周期性地更新。在许多情况下,缓冲区会过度填充,以防止在缓冲区空时阻塞,这可能导致计时冲突。PerfMan 能够精确分配性能,将缓冲保持在最低限度并减少内存占用。该算法可以处理混合在一起的硬、软和非实时应用程序。

如果将应用程序执行图量化为简单的性能参数,并且截止时间在重要时已知,则算法将动态调度以及时满足截止时间。即使是非实时应用程序也需要一些性能分配,以避免无限期推迟。分配应用程序所需的最小处理器资源会增加系统利用率,从而导致更高的可能工作负载。该方法不依赖于严格的优先级,尽管可以使用它们。执行中的优先级或顺序是应用程序在等待轮到运行时表现出的紧迫性的直接结果,这是要执行的基本工作/已完成范式的函数。

扩展到更多维度

如果任务已准备好在现有操作系统中运行,它们将运行,但它们是否需要运行?如果操作系统知道它们不会影响它们的运行,它们是否可以延迟(强制空闲)?

了解每个任务的时间以及它是正在运行还是等待运行,使软件能够自动确定最小时钟速度和运行时间。因此,在所有负载条件下,一切都按时完成。将时钟速度与瞬时工作负载相匹配并不意味着时钟速度始终最小化。低能耗的目标有时需要高速爆发,然后是空闲,就像英特尔的 HUGI 一样。但即便如此,运行速度超过最佳利用率(每单位时间执行的操作)所指示的速度也没有好处。在等待内存操作完成时快速计时不会节省能源。

该算法的口号是“以最低的能耗实现最高的利用率/工作负载”,这在很大程度上是通过管理所有性能资源的闭环算法来实现的。

在多核系统中,无法同时实现平衡的负载、低多线程屏障延迟和最低的总体能耗。若要解决此问题,可以将 PerfMan 配置为优化一个或多个性能属性。如果目标是最低能耗,那么不平衡的系统(某些内核负载高,而其他内核为空并因此关闭)可能会提供最低的能耗,但代价是执行延迟更长,整体性能较低。

加速线程以减少屏障延迟也可能导致更高的能耗。但是,满足截止日期(硬或软)会覆盖所有其他考虑因素。基于闭环的精确性能资源分配算法可以安全地保持更高的工作负载水平,这反过来又允许将核心整合比现有方法进一步推动,从而实现更高的能耗降低。

在 VMX Linux 上的实现

PerfMan已实现为独立于常驻操作系统运行的瘦内核(sdKernel)。它已移植到 Linux 2.6.29 (VMX Linux),如图 2 所示。安卓端口即将完成。该软件接管 Linux 任务调度并与现有的电源管理基础架构互通。sdKernel 的单独版本提供虚拟化,并支持符合 POSIX 标准的环境中的硬实时任务。在许多平台上,调度/上下文切换都处于亚微秒级别,但由于大多数 Linux 系统调用对于硬实时应用程序来说太慢了,因此 sdKernel 为基本外围设备、计时器和其他资源提供了 API

图2:在 Linux 实现中,PerfMan 接管 Linux 任务调度并与现有的电源管理基础架构互通。

?q=94&bg=ffffff&w=470&f=jpg&fltr%5B3%5D=usm%7C91%7C0.8%7C0.05&src=http%3A%2F%2Fattachments.opensystemsmedia.com%2FECD4529%2Ffigures%2F2

通过监控性能,该软件可以检测异常执行模式,预测即将到来的操作系统崩溃和崩溃。在这种情况下,sdKernel 将通知任务关键型应用程序停止使用 Linux 系统调用,并在重新启动 Linux 时暂时切换到 sdKernel API(安全模式)。

VMX Linux 支持真实和非实时应用程序的混合,具有高效的性能隔离,同时最大限度地降低了能耗。它还可以提供硬件隔离/安全性和安全着陆。

基准测试显示结果

使用 VMX 设计的电能表实时测量的能耗是系统累积的,并与各个应用程序相关联。媒体播放器应用程序(视频和音频)首先使用标准 Linux 2.6.29(图 3 红色图表)和 VMX Linux(图 3 蓝色图表)在 OMAP35xx BeagleBoard 上运行。

图3:在 OMAP35xx BeagleBoard 上使用 VMX Linux 可实现 95% 的平均负载,并及时完成。

?q=94&bg=ffffff&w=470&f=jpg&fltr%5B3%5D=usm%7C91%7C0.8%7C0.05&src=http%3A%2F%2Fattachments.opensystemsmedia.com%2FECD4529%2Ffigures%2F3

性能合规性(性能组合图)显示应用程序任务按时完成的程度(中心线)。该行下方表示违反最后期限。请注意,使用 VMX Linux,在没有预缓冲和违反截止时间的情况下实现了 95% 的平均负载,但它已经接近了。使用 VMX Linux 时,46 秒视频的总电路板能耗从 68.7 W*sec 下降到 27.6 W*sec。显示的数据表示预设间隔内的平均值。作为额外的好处,当Linux故意崩溃时,视频会消失,但音乐以安全模式播放,没有可听见的故障。

简而言之,该实施创造了一种新的绩效管理方法,并取得了令人兴奋的结果。审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 处理器
    +关注

    关注

    68

    文章

    19312

    浏览量

    230039
  • gps
    gps
    +关注

    关注

    22

    文章

    2896

    浏览量

    166297
  • 操作系统
    +关注

    关注

    37

    文章

    6838

    浏览量

    123380
收藏 人收藏

    评论

    相关推荐

    deepin操作系统介绍

    希望从自己的能力和对桌面操作系统的理解,能给 Linux 的用户与开发者更多的选择。我们也相信 deepin 能够得到更多用户的认可与喜爱,成为开源世界的最佳选择。  一、 deepin 操作系统 先说 Linux 操作系统,它
    的头像 发表于 12-23 09:08 365次阅读
    deepin<b class='flag-5'>操作系统</b>介绍

    如何在windows上emulate不同操作系统

    包括: 虚拟机监控器(Hypervisor):负责管理虚拟机的资源分配和调度。 虚拟机(VM):模拟的计算机系统,可以运行不同的操作系统。 虚拟化软件:提供创建和管理虚拟机的工具。 二
    的头像 发表于 12-05 15:50 207次阅读

    什么是嵌入式操作系统?

    指挥官配备最先进的装备。 未来会怎样? 随着威廉希尔官方网站 的发展,嵌入式操作系统将继续演进,以满足更多的应用需求和挑战,它们可能会: 支持更多IoT设备:管理更多的智能家居和工业设备,就像是物联网世界的大管家
    发表于 11-08 15:07

    linux操作系统安装步骤 linux操作系统的特点及组成

    Linux操作系统安装步骤 Linux操作系统是一种开源的操作系统,它以其稳定性、安全性和灵活性而闻名。以下是安装Linux操作系统的一般步骤,以Ubuntu为例: 1. 准备工作 在
    的头像 发表于 10-21 11:24 577次阅读

    新手学操作系统(第一周)

    1.介绍计算机、OS与应用程序之间的关系,计算机的硬件是底层的基础,操作系统在其之上管理硬件资源,应用程序则通过操作系统来实现其功能;2.推荐参考学习书籍;3.实践环境的介绍
    的头像 发表于 10-08 11:33 257次阅读
    新手学<b class='flag-5'>操作系统</b>(第一周)

    工控机支持什么操作系统

    工控机,全称工业控制计算机(Industrial Personal Computer, IPC),支持多种操作系统以满足不同行业和应用场景的需求。具体来说,工控机常见的操作系统包括:
    的头像 发表于 09-11 09:24 476次阅读

    Linux操作系统运行参数自动调整威廉希尔官方网站

    Linux操作系统运行参数的自动调整是一个复杂而关键的威廉希尔官方网站 ,它可以显著提高系统性能、稳定性和资源利用率。通过使用自适应算法特别是内核态的机器学习框架、性能监控工具和配置管理工具,能够在
    的头像 发表于 08-22 09:53 313次阅读
    Linux<b class='flag-5'>操作系统</b>运行参数自动调整威廉希尔官方网站

    简单认识RTOS实时操作系统

    RTOS(Real Time Operating System,实时操作系统)是一种专门设计用于在严格时间限制内处理任务的操作系统。它以其高实时性、多任务处理能力和资源管理能力在工业自动化、医疗设备、航空航天、汽车电子等众多领域
    的头像 发表于 08-20 11:20 2846次阅读

    Windows操作系统是什么?它有哪些特点?

    更新和版本迭代,逐渐发展成为全球应用最广泛的操作系统之一。Windows系统提供了一个用户友好的图形用户界面(GUI),使用户能够通过鼠标、键盘和触摸屏等输入设备来与计算机进行交互,从而管理和控制计算机的硬件和软件资源。
    的头像 发表于 08-07 16:30 2709次阅读

    嵌入式实时操作系统:Intewell操作系统与VxWorks操作系统有啥区别

    Intewell操作系统和VxWorks操作系统都是工业领域常用的操作系统,它们各有特点和优势。以下是它们之间的一些主要区别:
    的头像 发表于 07-08 14:16 451次阅读
    嵌入式实时<b class='flag-5'>操作系统</b>:Intewell<b class='flag-5'>操作系统</b>与VxWorks<b class='flag-5'>操作系统</b>有啥区别

    求助,请问你们开发产品时使用的什么操作系统

    开发产品时,你会使用什么操作系统呢? 使用了操作系统会不会影响执行效率呢?请各位大神们给个意见呀。 我在开发一个产品,现在遇到这个问题,写不带系统的程序,会发现它实现起来着实麻烦,但用了操作系
    发表于 05-14 08:06

    如何根据需求选择合适的新加坡VPS操作系统?

    选择合适的新加坡VPS操作系统您需要考虑哪些因素,如何根据需求选择合适的新加坡VPS操作系统?rak部落小编为您整理发布选择合适的新加坡VPS操作系统需要考虑哪些因素。
    的头像 发表于 05-10 11:14 457次阅读
    如何根据需求选择合适的新加坡VPS<b class='flag-5'>操作系统</b>?

    基于鸿道(Intewell®)操作系统研发的农业机器人操作系统

    江苏大学与科东软件联合研发“农业机器人操作系统”,并成立“农业机器人操作系统”联合实验室,奋力推进农业智能化,推动农业科技创新。“农业机器人操作系统”的威廉希尔官方网站 革新,对提高农业生产效率、保护环境、应对农业劳动力短缺及促进智慧农业发展
    的头像 发表于 04-30 11:09 439次阅读

    带你认识实时操作系统(rtos)

    操作系统与传统的操作系统相比,它更注重于实时性能的保证,确保系统能够在严格的时间限制条件下准确及时的响应处理。
    的头像 发表于 04-16 16:30 1316次阅读
    带你认识实时<b class='flag-5'>操作系统</b>(rtos)

    深度解析全球操作系统格局

    操作系统是负责协调、管理和控制计算机硬件与软件资源的程序,是整个计算机的核心系统软件。 按照操作系统面向的设备类型,通用操作系统主要包括桌面
    的头像 发表于 01-18 15:00 1207次阅读
    深度解析全球<b class='flag-5'>操作系统</b>格局