"); //-->
尽管对于嵌入式软件开发商和OEM来说虚拟化技术具有很大的吸引力,然而由于虚拟化平台架构固有的局限,这种技术的采用可能陷入停顿。本文将了解这种局限,以及他们如何通过不同的方法来构建一种虚拟化的嵌入式软件克服这些局限。
在过去五年中,虚拟化技术从一种陌生的技术变成了企业服务器和桌面应用的一种关键技术。最近,虚拟化技术逐渐成为嵌入式开发中的关键角色。推动这种趋势的领域包括移动电话、电信和网络基础设施以及安全嵌入式计算。在所有这些领域,开发商和集成商都考虑采用虚拟化技术来提高可靠性和安全性,以简化遗留代码的更新与维护,同时针对单CPU的多操作系统处理器分割以及多核处理器和多个CPU之间的运行管理进行硬件利用率优化。
尽管开发商和OEM对虚拟化技术显示出明显的兴趣,但是该技术的采用可能会因为虚拟化平台架构本身的局限性而停止。本文将了解这些局限性,以及如何通过不同的方法构建嵌入式虚拟化软件来克服这些局限。
软件复杂度管理
由于嵌入式软件的规模和复杂度急剧增加,在嵌入式系统中采用虚拟化技术的呼声日益高涨。过去十年,嵌入式软件的规模每年倍增,目前嵌入式系统的源代码达到数千万行,几乎等同于(甚至很多时候超过)企业程序的源代码。嵌入式软件固有的复杂性、多线程以及延时敏感性使管理和维护如此大规模的代码变得相当复杂。
嵌入式虚拟化技术的倡导者们将这种现状以及不断增长的复杂度誉为采用虚拟化平台的主要动力。然而,虚拟化技术并不足以解决嵌入式软件开发的主要挑战。尽管把软件组件分割和隔离到不同的虚拟机(VM)容器可以提高可靠性,但由于VM的粒度过于粗糙而未能对蜕变复杂度的改善有实质变化。运行在不同VM上的客户操作系统和主应用程序实际上会提升整体复杂度,尤其是当虚拟化平台软件对嵌入式系统架构的理解和整合不足,以及当嵌入式软件工程实践不是那么协调的时候。

图1a:具不透明性的全VM轮叫调度(Round Robin Scheduling)。
图1b:透明的分级客户任务以及全局调度。
隔离与整合的对比
嵌入式应用从虚拟化技术获得的最直接好处是针对客户操作系统(如Linux、WinCE、RTOS等)以及其他运行环境(自行设计的内核、设备驱动程序等)采取严格的硬件隔离,从而改善可靠性和安全性。这种隔离避免了在智能设备的独立功能区中(如移动电话中的基带和用户界面代码)代码和数据的非故意破坏,而且也阻止终端用户通过下载的代码进行恶意访问。
然而,虚拟化技术为嵌入式应用所带来的稳健性与传统的嵌入式设计经验相悖。传统的设计经验强调在多个嵌入式软件组件之间有效地共享数据,但是将代码严格地分割到VM时,这种数据共享将被阻碍或被禁止。而且,在各种不同的虚拟机上运行的代码中由于没有高效的通信,虚拟化技术将会使嵌入式系统的性能降低到无法忍受的水平,从而影响OEM和第三方软件的整合。
调度的不透明性
嵌入式系统软件涉及复杂的多进程和多线程程序组合。无论是移动系统还是静态系统都需要对数以百计的任务进行调度和同步;甚至处于睡眠状态或暂停状态的设备都自诩有数十个线程在运行。而且,与众多桌面软件不同的是,嵌入式应用程序会涉及到大量的优先级划分方案和规则(例如等级单调分析)。设计、调试和调整优先级、以及执行策略和实时事件响应涉及到整个系统的活动,这些活动需要细致的可见度和控制。
能量管理
对嵌入式系统的能耗优化源于特定设计领域的需求:在类似手机和媒体播放器这些移动设备中,能量管理可以延长电池使用寿命,并帮助OEM的产品在竞争激烈的市场上实现差异化。在诸如网络设备(路由器、网关、安全设备)以及消费电子设备(电视机、DVR、IP电话以及耐用产品)等固定设备中,能量管理能帮助降低用电费用以满足节能需求。
在智能设备中的能量管理涉及硬件和软件方面的技术。通常这涉及到操作系统内核降低用户交互动作(减少键盘/键区和其他输入事件)以及静态程序状态(等待外部事件或在执行中的长暂停)。当系统进入到这样的空闲状态时,能量管理软件可以选择关断耗电的设备,例如LCD显示器、降低CPU的运行频率和总线时钟,并降低工作电压。相反的情况下,同样的软件必须能提高性能以满足对新事件或用户输入的服务。
有效的能量管理需要在操作系统、设备驱动程序以及甚至应用软件之间广泛的紧密配合,是一个全面的规则。然而,VM下文调度的不透明性使能量管理不能有效实现:处于睡眠状态的客户操作系统对其他的VM缺乏可见性,因而不能做出能量管理决策。相应地,管理程序缺乏对所管理的客户操作系统内部状态的充分了解,因此不能在虚拟化平台层面进行能量管理。
专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们
相关推荐
LLVision发布 Leion Hey2 AR 翻译眼镜
人体热电自动节能灯电路图
信息技术应用创新专业人员(ITP)人才培养专项座谈会成功举办
精工电子产品IC在医疗中的应用(上)
鹏鲲量子科技算法驱动决策:AI技术如何革新传统代运营模式
英飞凌XENSIV第四代磁传感器支持最高达到ASIL B级要求的汽车功能安全应用
《EBD2410开发板说明书》第3章:其它资源介绍
LS-2构成直射式红外遥控开关电路图
用BISS0001的红外传感夜问自动照明控制电路
精工电子产品IC在医疗中的应用(下)
羽乐科技荣获新金融联盟“卓越价值贡献奖”,以数据智能赋能金融业高质量发展
《EBD9200-I开发平台教程》- ADS与JTAG调试
财经观察:缺核心技术,印度新能源电池计划放缓
消息称飞书将推出首款硬件,与安克协作打造“AI录音豆”
[求助]我的44B0X板子ping不同!!!!
用于医疗保健领域的ADI公司身体传感器和MEMS器件(上)
赛灵思FPGA在医疗系统中的应用
物体移动探测器
YN5049/5050红外遥控接收器典型应用电路
《EBD2410开发板说明书》第1章:功能介绍与声明
[求助]请教一个44b0启动代码的问题!
[求助]求关于USB接口电路设计的文章
江、浙、沪移动运营商、sp/cp、齐聚上海移动增值论坛
《EBD2410开发板说明书》第2章:开发板硬件介绍
Microsoft 以智能零售自动化为目标,采用智能人工智能
用于医疗保健领域的ADI公司身体传感器和MEMS器件(下)
深圳AI工业赛道添新力!深圳市诚世凯科技有限公司获200万天使轮融资
求助:vxworks调试串口时遇到一点奇怪的问题?
高频电源高次谐波分析
《EBD9200-I开发平台教程》- U-boot的移植及应用