翻译以.原文和在同一文件中前_第1页
翻译以.原文和在同一文件中前_第2页
翻译以.原文和在同一文件中前_第3页
翻译以.原文和在同一文件中前_第4页
翻译以.原文和在同一文件中前_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

作者:ChenTian,DanielWaddington,Jilong4微内核在移动设备上已成功使用。然而,随着单核处理器向多核,众核处理器的迅速转变,许多重要的操作系统功能如物理内存分配(PMA)必linx的整体内核中关于PM已44微内核中的PMA是用户层页理的一分该理作为立服务以少(P)而不是正常的系统或内4PMAfiaco.OC上下文的解决方法。我们也讨论了如何利用4微内核设计优势来实现一个具有更高级特性的PMA48AMD服务器上进行。L4微内核之所以在移动设备上成功使用是因为它可以为其他移动应用androidlinux提供虚拟化和安全性。例如,L4AandroidL4Linux工程已经成功地将AandroidLinuxL4Fiasco.OC微内核上。OKLabslinuxPMA已经做了大量工作,但L4微内核中却很少见到。种物理内存请求。当一个应用程序最初触发一个虚拟内存地址(比如由malloc分配PMA来处理页分配的请求。这PMAVMA和缺页机制。因此,PMA也需要对来自内核其他部分的直接请求进行处理。相比之下,L4微内核中的PMA和整体内核中的大不相同,因为操作系统设在内核态的软件)为其他软件提供最基本的包括硬件中断/异常处理,进程管理,户态执行。因此,PMA被分成两部分,一部分仍然位于内核态,另一部分在用户态作为服务器运行。内核模式的PMA为各种内核代码产生的动态内存分配请求提供服务,用户模式的PMA主要处理其他应用程序的内存请求。和linux相似,应用程序的物理内存请求也通过缺页处理程序(也是一个服务器)被传递给PMA。处理与内存分配有关的缺页实际上减少了考虑碎片和cache错误的需要,因为这当一个操作系统在多核和众核处理器上运行时,PMA的可扩展性就变得很于每个cpu的列表减少合并和的内存单元内容。尽管之前的研究文献[3]说linux的内存管理中仍然有可扩展性问题,但为了提高可扩展性,通常情况下需要执行分散。在这篇里,证明,为每个核创建一个PMA才可以实这恰恰对微内核的性能至关重要。应该注意,这一工作关注用户态PMA,它管非常小(通常少于8%。2L4微内核体系结构,描述了已经1所示,因此称作整体内核。尽管他们已经在不同的计算平台上得以应用,由于多样性特点和可信问题造成的日益增长的复杂性已经要求在和更新方面1同于几百K字节,这很容易适合许多处理器类型的L2Cache。20L4/Fiasco,L4Ka::Pistachio,和NICTA::L4-embedded等等。2近年来,有的关于进一步提高微内核性能和丰富其特点的研究,促成了Fiasco.OC,NOVA,seL4OKL4。这些设计不仅进一步优化了PMA,一个在内核态,使用伙伴分配算法,另一个在用户态,使用基于AVL树的分配算法。图 3Fiasco.OC中的物理内存分配的请求是如何进行处理的。首先,PMA直接进行物理内存8%。其余的内存由用户PMA管理,并由应用程序使用。从图中可以看出,我们描述了一个非常典程首先通过虚拟内存分配器(malloc)分配一个栈变量或堆数据(1步。write处理器的执行从用户态代码转换到内核态的缺页处理程序(第2步,处理器进sigma0(pager,它L4微内核设计中的所有页故障(3步。在一个多核环境中,有多sigma0sigma0IPC收到一个缺缺页处理器切换回故障指令,这样应用程序进程可以继续(7步2,3,6,7步IPC调用(3,6步L4微内核设计必须为安PMA必须能够处理来自不同进程的并发进行的请求。于是,基于同步的锁便成Linux2.6.24版本使用的伙伴分配器使用了每核列表,该列表由每个核的锁保护,用来空白页。在NUMA体系结构的出现后,Linux内核2.6.30版本使用了另外一种分配计划,为每个NUMA域分配一个分配器。但在L4微内核中还没有进行充分研究。为了解决这一问题,我们首先测量内存fiasco.OCL4Re4所示,随着发送内存分配和释放请求的核的数目的增多,请求处理的时间也显著增长。超过48核后,分配时间从25x开始下降,释放时间从2x开始下降。图 sigma0IPCPMA的不可扩展。默认情况下,sigma0是系统中仅有的页表器。当来自不同核的多个请求需要同时被处理时,内核的PF处理器需要将它们集成起来,一并发送给IPC(IPC的两部分)PMA的可扩展性有很大的负影响。L4IPC机制对整个操作系统体系结构而336步中,一个物理页的请求需要和核内的IPC(如同一个核上IPC的两部分)10x20x。IPC要包含处理器间中断(IPI)的处理,这引起了内核模式核硬件上的一PMAL4PMA的可扩展性问题,如并发页请求的N倍,NN个实现PMA图 Fiasco.OC上实现每核一个页表器和默认的页表器,moe是默认的加载器(Linuxinit进程。为了实现每PFA来管理分配给其所在核的内存区域。有许多适合物AVL树在fiasco.OC中,一个进程(任务)的内核数据结构包含了一块可以指向任何合TLB问题在实现期间,我们注意到,当页表器处理空闲请求时,TLBfiasco.OCTLB。由于刷新进实际上是让页表器进程重新形成TLB。然而,在我们的设计中,这一刷新可被TLBTLB相关的地址空间ID(ASID或支持单个TLB条目失效的指令。PMA的方案已经实现了更好的性能,但利用微内核一致体存取。如图8所示。图 一个具有更高级特性的可扩展的平衡方案来保持所有PMA的一个良好的负载平衡。如图8所示,实现负载平衡特性的一个简单的设计是让每个PMA当前PMA中未使用内存的平衡。详细的实现如下。在对一个应用程序的请求进行服PMAPMA应当回复这些请求并且给请求者传送要避免过量的IPC开销。PMA的实现可以采用多种算法,比如基于树的算法,伙伴算法,平板分配存模式而定。由于L4微内核的设计,我们可以修改基本的每核一个PMA的实现,这样每个PMA就可以定制化了,如图8中间所示。要使得一个应用程序可以定制它的本地PMA,需要实现一系列现实的页表IPCPMAAPI可以确定什么PMA算法有可能对正在运行的应用程序产生更好的性能。由于应用程序和页表器存在于同一个核上,并且这些页表器API被调用的频率非常低,这一特点获APIPMA重塑引起的额外的开销。为了保证这点,开发者应当通过剖析或编译器分析了解或获得应用程序的性能和PMA算法的联4.3非一致体存取的意随着上核的个数的增加,非一致性体存取(NUMA)的设计变得流行。在NUMA下,一个核对它本地内存的大大快于偏远内存。因此,当收到一个页分配请求时,PMA需要分配一个本地的页,以实现更好的性NUMA域(7的第一步ACPI表中提取NUMANUMANUMA域中,内存应该被进为基础的实现作为比较,其sigma0被所有进程使用。软件L4Re仅仅理2GB虚拟内存范围。另外,调用不仅回收虚拟内存,也给PMA硬件实验运行在AMDMagnycours服务器上,配备有四个AMDOpteron6174由于32位地址空间的限制,使用了4GB的DRAM。PMAL4RePMA10000个页。L4Re内存分配benark也采取相同的配置。9PMA48核时,时间的下降也仅仅只有5%。而在使用L4Re原生PMA的例子中,性能的下降超过了240%。1010显示了结果。尽管我们LR4ePMA(4所示)而言好得多,因L4RePMA中,分配和释放的下降各自超过了2500%230%。性能敏感度意到,性能对于未解决的页数很敏感,比如在开始前已经分配的页数。如图1150页(200KB的内存)1000页(4MB的内存)PMA中内存片的分配和回收。因此,显著的页数越多,树中的节点越多,11L4微内核一样,物理分配器是在默认页表程序,sigma0中实现的。正如可扩展性问题。本文的目标就是通过实现每核一个PMA,解决这一问题。L4GenodeLabsGenode的内存分配器使用锁来并行。这一设计也引起了可扩展性问题。和Fiasco.OC相似,几个其他可扩展的微内核设计也已经被提出了。例如,服务配置多个服务器。由Research和ETHZurichSystemsGroup开发HeliOS也是有微软开发的,目的是面向多样平台。这些工作中,物理内 里提到的观点不仅适合L4微内核,而且也可以用于实现上述提CPU列表的伙伴分配器,但今后,我们计划在如下两方面继续我们的研究。首先,在PMA中实L4微内核中物理内存分配器的可扩展性问题的根源。Fiasco.OCL4微内核体系结构的上下文中提出了一种可扩展的物理内存48L4微内核上每核一个PMA设计的可扩展性结果。M.Accetta,R.Baron,W.Bolosky,R.Golub,DavidandRashid,A.Tevanian,M.Young.Mach:Anewkernelfoundationforunixdevelopment.InProceedingsoftheUSENIXSummerConference,pages93–113,1986.A.Baumann,P.Barham,P.-E.Dagand,T.L.Harris,R.Isaacs,S.Peter,T.multicoresystems.InSOSP,pages29–44,2009.S.Boyd-Wickizer,A.T.Clements,Y.Mao,A.Pesterev,M.F.Kaashoek,R.Morris,andN.Zeldovich.Anysisoflinuxscalabilitytomanycores.InProceedingsofthe9thUSENIXconferenceonOperatingsystemsdesignandimplementation,OSDI’10,pages1–8,Berkeley,CA,USA,2010.USENIXAssociation.[4][5][6][7][8][9][10]G.C.HuntandJ.R.Larus.Singularity:rethinkingthesoftwarestack.SIGOPSOper.Syst.Rev.,41(2):37–49,Apr.2007.G.Klein,P.Derrin,andK.Elphinstone.Experiencereport:verifyingahigh-performancemicrokernel.InProceedingsofthe14thACMSIGNinternationalconferenceonFunctionalprogramming,ICFP’09,pages91–96,J.Liedtke.Onmicrokernelconstruction.InProceedingsoftheSymposiumonOperatingSystemPrinciples,pages237–250,1995.J.Liedtke,K.Elphinstone,S.Sch¨onberg,H.H¨artig,G.Heiser,N.andT.Jaeger.Achievedipcperformance(stillthefoundationforextensibility).InProceedingsofthe6thWorkshoponHotTopicsinOperatingSystems(HotOS-VI),CapeCod,MA,May5–61997.E.B.Nightingale,O.Hodson,R.McIlroy,C.Hawblitzel,andG.heterogeneousmultiprocessingwithsalitekernels.InProceedingsoftheACMSIGOPS22ndsymposiumonOperatingsystemsprinciples,SOSP’09,pages221–234,2009.U.SteinbergandB.Kauer.Nova:amicrohypervisor-basedsecur

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论