建立一个负载平衡器架构的多核心移动通信系统.docx
- 文档编号:9373257
- 上传时间:2023-02-04
- 格式:DOCX
- 页数:9
- 大小:23.05KB
建立一个负载平衡器架构的多核心移动通信系统.docx
《建立一个负载平衡器架构的多核心移动通信系统.docx》由会员分享,可在线阅读,更多相关《建立一个负载平衡器架构的多核心移动通信系统.docx(9页珍藏版)》请在冰豆网上搜索。
建立一个负载平衡器架构的多核心移动通信系统
978-1-4244-4478-6/09/$25.00©2009IEEE391
第5次国际应用计算智能与信息研讨会•May28–29,2009–Timişoara,Romania
建立一个负载平衡器架构的多核心移动通信系统
D.Tudor,G.Macariu,C.JebeleanandV.Creţu
PolitehnicaUniversityofTimisoara,Timisoara,Romania
{dacian,georgiana,calin,vcretu}@cs.upt.ro
摘要—由于在过去十年里移动通信系统的快速增长,在使性能提高的解决办法上已经投入了很多努力以满足对资源日益增长的需求.鉴于单核心所提供的计算能力似乎难以满足应用程序的需要,人们都认为一个采用多核心架构的,旨在更好的平衡性能与能耗的解决方案更具灵活性和扩展性
在本文中,我们讨论这个调度和负载平衡替代运行虚拟环境的问题。
.基于虚拟化的概念,我们总结了调度嵌入式移动通信系统的基本方法。
考虑到单核心架构的缺陷,一个先进的架构就在眼前,并且已经被eMuCo项目在欧洲的一个研究项目中推荐。
重要的是,我们未来所专注的是一个嵌入式系统的关键部分,它旨在发布和平衡负载,以确保优化配置线程的可用内核并最终减少功耗.这就是我们所描述的不同体系结构的负荷平衡器及其整合完整的系统方案。
I.引言
移动通信系统的持续增长已经导致其更复杂多变的发展.复杂多变的特性已经从所谓的高端产品蔓延到低端市场(比如影音串流,视频电话以及丰富的多媒体应用)。
为了满足市场对这些丰富功能的需求,我们已经投入了更多的努力去改善大规模常见处理器的处理能力。
举例来说,对于一个给定的系统,我们更容易去整合一个正常使用的处理器,而不是采用这样的域特定处理器,如图形加速器或者高级的DSP芯片。
鉴于单核心所提供的计算能力似乎难以满足应用程序的需要,人们都认为一个采用多核心架构的解决方案应该被应用。
多核架构是将多个处理内核集成在同一块集成电路上。
现在的嵌入式多核心处理器(如由ARM提供的)支持通过调整动态时钟和高级低功耗状态来控制某一个特定核心。
核心的功耗会减少甚至关闭,这样就能很好支持节能和减少发热量。
而且,这样的架构被预期会在高性能和低功耗的平衡上更具灵活性和可扩展性。
一个自然的结论是,多核心解决方案为各个核心分开执行各种域铺平了道路。
尤其重要的是,通过运用虚拟技术,动态和第三方软件程序的执行只限在他们自己的运行环境中。
虚拟化已被众所周知并被广泛使用于台式机和服务器领域。
现有的操作系统虚拟化技术已经在微内核为基础的技术上广泛开展,例如L4微内核系统。
其中一个eMuCo项目【18】的目标是通过虚拟化技术,开发和演示一种允许开放合作与封闭式应用的概念。
多核架构的优点有三方面:
第一,多核提供了所需的计算性能;第二,他们提供了在低功耗时的时钟频率;第三,他们提供了另一个维度的资源配置.在eMuCo,他们相信将这些技术带到移动环境会向新一代系统迈出一大步。
II.调度方案
嵌入式系统的调度算法可以分为两大类:
离线算法和在线算法。
脱机(静态)调度算法在生成计划之前被系统执行.这种算法适用于系统参数的任务是已知的,先验的和极少变化的.静态计划就是一张有每项任务和其明确开始时间的一张静态表。
虽然作为结果,计划是可预见的而且有保证,但它的缺点是缺乏灵活性,因为一旦任何确定的任务中有参数变化,整个计划将被重建。
在线(动态)在运行的同时生成计划而且不承担任何先验信息的任务参数。
在线调度的主要优点是其灵活性和对环境变化的适应能力,但是所有的运行成本将被提高。
另一种可能性是建立一个准静态计划组成多个脱机计划,每个被用于一个备用情况。
在系统运行时,在线计划将预先计算离线计划以适应每一种情况.这个方案被用于【10】实现容错。
在复杂的实时系统中,应用程序可能会有不同的时间要求而且实时和非实时的任务必须反映在所选的调度算法中。
同时,调度必须保证所有当前运行的任务所需资源并提供一定的计算资源以应对非实时任务。
在这几种情况中,可能需要不同层次的调度:
A.分层调度
嵌入式系统的应用可以有不同的性能要求。
有些可能有严格的时间限制而被当成最重要的要求,即使其他应用有更重要的要求。
一个应用计划和硬实时约束要求应用验证和分析来保证程序能满足它的最后期限。
相比之下,,
调度非实时应用程序并不需要这样,转而,需要服务质量的保证。
可能共存的解决方案是不同的时间要求的应用由执行时间服务器所反映。
基本的想法是,每个应用技术使用服务器一小部分的总处理器带宽,而且任务在服务器上运行时使用的保留带宽是有限的。
这种解决方案是被广泛使用于单处理器嵌入式系统,并还向多处理器系统发展。
在[2]和[3]中,
已经介绍了两种带宽共享算法的多处理器服务器系统。
两种算法分配任务到每一个服务器并使用全球EDF算法。
在[5]中提出了一个更复杂的方案。
这里,服务器负责超过一个单一任务并安排他们使用任何部分的调度算法。
在另一个层面,服务器的任务原本是根让现有的处理器使用全球EDF算法。
硬实时任务中,服务器与系统中的每个进程相关联,而软实时任务中,单一的迁徙服务器和许多数目相等的处理器将尽力而为工作。
由于需要静态地分配给它们分配服务器,该解决方案只能解决系统中硬实时任务数目小的时候。
FRESCOR项目【8】扩展了服务器技术引入概念的协议。
每个应用程序将有一个协议指定的时间和服务质量的要求与调度框架。
如果谈判是成功的,系统会创造一个保留了资源使用协议的服务器来保证有足够的能力来满足应用程序的需求。
协议可在离线或则在线的时候建立,即使系统正在运行,有需求改变或则新程序访问系统。
这种方法能组成一个包含了应用程序组件,数个线程,需要等级排序的服务器
一个保证实时应用系统运行在异构处理器系统时面对它们的时间限制略有不同的方法已经在ARTiS程序机【13】中介绍。
这样的话,一批处理器就能分成实时和非实时的处理器。
硬实时任务在最高优先制度下,只能在实时处理器上运行,不能在处理器之间转移,而软实时任务可同时在实时和非实时处理器上运行,局限性就在于,它们可能会因抢占处理器而其中有一个被迁移到另一个处理器上。
非实时任务可以在两种处理器上运行,只要不危及两种处理器的实时性能。
调度就用任务迁移来实现负载平衡和确保所有的实时任务在规定时间内完成。
B.功率意识的调度方案
由于许多嵌入式系统由电池供能,一个主要的问题就是尽可能地扩展该系统的自主权。
现有的电源感知调度算法利用了在变化电压和频率下处理器性能。
这项技术被称为动态电压缩放(DVS)。
电源感知调度算法基于DVS选择在每个瞬间的任务允许和处理器的电压来申请运行任务。
电源感知调度在脱机(静态)或网上(动态)都可以做到.在静态期间的处理器电压算法执行的任务是静态分配制度实施之前,而不是动态算法决定的处理器电压前安排一个新的任务。
Chenetal.[6]提出了静态调度算法利用DVS的适用于闭环应用的多核心嵌入式系统。
他们由一个初始的轮流安排开始然后适用DVS获得计划的放宽管制,在不破坏应用程序的时序要求的基础上减少能源消耗。
恰恰与[6]中方案不同的是,Shaoetal.在[15]中介绍了一种方法,在初步算法计划中假定所有任务的电压最低等级,然后反复增加任务电压,以减少执行时间循环的应用程序,直到时间约束满意。
【12】中介绍了一个为解决在多核心系统下突发的硬实时任务的动态静态相结合的调度解决方案。
这里的静态程序确定了既能让处理器运行在最小频率又能保证完成任务的的计划。
由于静态程序既考虑到执行时间的最坏情况(WCET),又考虑到每项任务执行中的任务实际等于它最坏执行时间的低概率,于是就要求有一个先进的动态程序来减少能源消耗。
基本上,在系统运行时,当一个任务被分配给一个基于全球EDF算法的处理器时,该算法会降低处理器的速度,但仍然能保证任务的最后完成。
在[1]中有一个类似的方法,不同之处在这里,处理器的速度只在下一个任务没有准备执行的同时当前任务已经完成的情况下降低。
以上就是最大化减少能耗的方案,它当WCET和实际任务时间不同时通过降低速度来执行任务,同时保证任务完成。
另一种可能的方案是,当一个处理核心中没有活跃任务时关闭处理核心,而在任务准备运行时提供最大的电压。
这样方案的提出,参见【16】中的单处理系统或则【4】中的多处理系统。
在【4】中,DVS被即时应用于所有的处理核心中。
在这种情况下,所有核心只有在任务不能准时完成而核心都已经被供电时开启。
此外,所有核心的速度只有在算法不能保证任务在WCET时间内完成的情况下才会加快。
当任务完成后,核心的时钟频率会降低,有些甚至可以关闭。
该算法的一个缺点是,节能高度依赖于每项任务的时间和彼此之间到达的时间。
在【7】中,每个任务实例的电压水平已经决定,它是基于以往的任务执行时间,从而可以更有效地利用能源,前提是每个任务的多个实例都被执行过。
频率和电压缩放同样可以概率性地分配到任务执行时间中。
这种做法在【17】中关于任务在处理器之间分配和平衡能耗的讨论中被提到。
上面提到的所有电源感知调度的解决方案被定义为硬实时任务系统。
但是现代的嵌入式系统必须处理软,硬或非实时任务的组合。
为保证不同形式的任务之间的隔离,一种基于服务器的技术被采用。
Scordino和Lipari在[14]中为减慢处理器导致执行任务花费更久时间的单处理器系统提出了一个使用DVS的基于服务器的技术。
这种服务器基础的DVS展现了一个优点:
没有必要去知道任务的先验时间或则其他执行时间。
C.多模系统
嵌入式系统的一些应用程序有多种操作模式,每个模式都有相关的设置任务。
在这些系统产生的问题会从一个模式转到另一个。
例如,旧模式的任务可能被打断,或则有可能结束的任务当前正在运行,并在那之后用新模式开始任务。
如果任务和新模式只在旧模式停止了转换协议后才开始,则我们称它是同步的,不然就是异步的。
一个同步的过渡协议对于多处理器实时系统已经在【11】中介绍。
III.未来移动通信系统
本节主要是基于eMuCo技术报告【18】,旨在从架构和调度的观点来总结最重要的方面。
A.eMuCo架构
eMuCo[18]是一个先导项目,旨在提供一个回答嵌入式通信系统的多核心架构演变的问题。
eMuCo推出多核心硬件平台,它能有效结合L4微内核虚拟化概念,负载平衡器和传统应用,如GSM协议栈系统或多媒体应用运行在异构运行时的环境,在eMuCo架构中,多内核硬件平台是在最低水平,其中一个微内核正在运行。
(如L4Fiasco微内核[19]).在微内核正在运行的系统模式中,提供受访问保护的上层硬件层,提供系统服务的最小集合,如地址管理,内存管理,线程处理和进程间通信的应用程序。
用户级的服务建立在这些服务的顶部,运行在用户模式并组成基本资源层。
上层包括不同的操作系统或虚拟机运行的微内核和应用层。
系统的灵活性和可扩展性是由使用的负载均衡服务的微内核所定义的。
负载平衡器可以看做是一个运行在用户模式下基本资源层的应用程序,但无论如何,我们决定为这个特殊的应用分配单独的表现力。
从概念上讲,负载平衡器连续监测计算能力所需要的上层的分配(应用程序)和动态平衡的线程内核以提供必要的处理能力,优化功率的消耗(如关闭一个或则多个内核当能源不足时,当需求显现的时候开启所有内核)。
eMuCo系统架构,包括负载器平衡器组件载于图1
B.负载平衡的挑战
在多核心环境中,一个组件技能必须决定其中的各个线程分配,决定何时线程需要搬迁,以满足最佳标准。
我们叫这些组件为负载平衡器
(LB).该负载平衡器的作用是监测线程执行和分配线程的可用内核。
只有负载平衡器有在系统中有个全局的视角,因此可以依据它们的需要放在内核线程中。
在eMuCo系统中,内核线程不迁移操作系统动态,而是仅供作如此功能及其应用。
从架构的观点看,负载平衡器拦截了线程的建立,从而获得了应用程序的线程控制。
此功能是透明的applition层。
负载平衡器可以定期或在任何特定的事件,监测线程和可用内核之间的潜在迁移。
此外,负载平衡器有可能开关CPU内核管理以减少该系统的功耗,并在CPU资源需求更多的时候切换回来。
IV.负载平衡器架构
负载平衡器组件的主要目标是保证在每个特定的时刻,任务是均匀分布在各个可用CPU之间。
这意味着,正在运行的线程应该在CPU之间迁移,使CPU没有过载并保证压力,除非它们是完全关闭的。
预计这一决定会改进整机系统的功耗,基于这些考虑,我们确定两个负载平衡器应该相互自然对抗。
负载平衡器应具有足够的运算能起确保每个线程的运行
如果可能的话,负载平衡器应该确保最优分配线程的CPU,提高功率能耗。
在评估过程中可能产生的设计策略的负载平衡器,两个都在eMuCo项目中被考虑。
主要归纳如下.
第一种方法是指动态负载平衡上
第二种方法依赖静态系统的分析,它是我们在eMuCo项目工作的一部分
异步的情况.CPU的工作负荷被永久监测而且CPU之间的线程迁徙在任何特定时间发生。
这种情况通常会保证CPU之间的最佳工作分配,但是监测部分所需的开销可能会成为一个严重的缺点,尤其是在实时环境。
同步的情况.在这段时间里,系统可以被看做是机器的某些事件(外部或内部)确定状态间的转换。
状态和过渡特定的应用受制于系统,这是主要组成部分,通常实现4级任务,运行一边的负载平衡器。
这种特殊的情况依赖于以下事实,当系统保持下相同的状态时CPU之间的线程分配不需要改变
然而,一旦系统开关的状态,新线程的分布可能是必要的,合适的,对于新状态来说。
在这种情况下,当系统改变状态时没有必要去永久监测CPU负载和线程迁移(因此与该事件同步)。
每个状态的线程的具体分布可以通过分析,自动获取,或其他方法来决定。
这种情况可能并非如那样高效率关注CPU分布的工作量,但是它更有效率的管理电力,因为它提供了更多的灵活性。
例如,系统可能会到达某种状态,这种状态所需的计算能源是如此之低以至于它会自然地关掉几个CPU,而其他的正常运行,而不是保持所有的CPU活跃并平衡每个的负载。
我们任务这种情况是实时环境可取的,因为需要高架之间迁移的CPU线程体积更小,而且只发生在状态变化时。
在同步(或静态方法)的情况下,在每个状态,负载平衡应该管理所有的L4系统,安装并跟踪它们至少包括以下的信息:
线程标识符:
主键用于唯一确定一个进程
优先:
一个介于0和255(0作为最低,255为最高)–这些都是在L4系统下被强制的
CPU的标识:
一个整数,一个唯一的标识表明CPU中有线程正在运行
Inaddition,forreal-timethreadstheinformationwhich
ismanagedbytheloadbalancercanbeenhancedwiththe
following此外,由负载平衡器管理实时线程信息可由下面的方式加强:
发布时间:
当线程执行请求的时刻。
截止时间:
完成任务的的最长时间
从概念上讲,这是通过使用不同的线程表,它们每个联系着一个状态的负载平衡器。
线程静态表在系统启动和应用程序分析计算时分配。
在每个状态,相应的线程表中包含一个静态的正在运行的线程之间的映射和可用的CPU。
这种情况如图2所示.
负载平衡器的体系结构如图3所示.
它作为一个L4的服务,与其他L4服务一起可用:
寻呼机,内存分配器等。
在这种架构中,L4核心很可能运行在整个操作系统的虚拟化层上在eMuCo项目范围内,这决定了操作系统选择了系统L4Linux,这是一个L4微内核Linux内核的一个端口。
Itrunsinuser
modeontopofthemicrokerneltogetherwithother
microkernelapplications,它运行在用户模式的内核与其他顶级微内核的应用,作为常用Linux/x86的二进制兼容[9].系统主要组成部分也可以运行L4应用程序,或作为L4Linux应用程序或其子程序。
在这种环境下,负载平衡器可能需要沟通部分或全部组件去合适地完成它的任务,例如,与L4内核的联系尤为重要,因为线程转移,即使是被负载平衡器控制的,也是在L4级别下完成的
A.线程表系
每一个应用程序的资源需求由系统剩余资源的协议来描述。
应用程序协议的概念会被用于决定系统每个状态的线程表。
该线程配置表可获准基准测试和应用分析。
这对于像调制解调器子系统这样的嵌入式移动设备来说是必须的硬实时应用程序,负载平衡器必须尽快决定线程分配和设置任务优先级。
通过分析一个可以确定一个程序每个操作模式线程表(状态)。
这个过程描述在图4.L4微内核提供了一个跟踪工具,它可以提供应用程序的特定事件的痕迹。
这些痕迹可以包含线程信息,如释放时间,执行时间,线程核心的亲和力等等。
基本上,通过执行L4的每个应用程序然后收集调度事件来申请包含可以通过离线分析确定的资源需求。
此外,这个协议也可以为每个实例决定静态线程表(操作模式)。
图3.负载器平衡架构
图4.线程配置表建设进程
一旦协议完成,一个预定的计算资源(即CPU时间)变会保证了应用程序的任务并按优先级映射到一个在负载平衡器表上
V.结论
在本文中我们从架构和调度方面总结了一些建设嵌入式通信系统时所会遇到的问题和挑战。
我们已经从调度方案和它们在多核心嵌入系统的适应性上开始着手。
接下来,eMuCo架构已经被提出,其目的是缩小资源需求和执行能力的差距。
.在eMuCo架构中,我们确定了一个重要的部分,负载平衡器,它具有协调系统中所有正在运行的任务的功能。
还有重要的是,负载平衡器的的架构同系统的工作流程一起完成一个有效率的工作系统
知识。
eMuCo(www.emuco.eu)是由欧盟支持,欧盟第七框架下的研究和技术发展项目
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 建立 一个 负载 平衡器 架构 多核 移动 通信 系统