(计算机应用技术专业论文)基于半虚拟化内存高性能powerpc体系模拟系统的设计与实现.pdf_第1页
(计算机应用技术专业论文)基于半虚拟化内存高性能powerpc体系模拟系统的设计与实现.pdf_第2页
(计算机应用技术专业论文)基于半虚拟化内存高性能powerpc体系模拟系统的设计与实现.pdf_第3页
(计算机应用技术专业论文)基于半虚拟化内存高性能powerpc体系模拟系统的设计与实现.pdf_第4页
(计算机应用技术专业论文)基于半虚拟化内存高性能powerpc体系模拟系统的设计与实现.pdf_第5页
已阅读5页,还剩63页未读 继续免费阅读

(计算机应用技术专业论文)基于半虚拟化内存高性能powerpc体系模拟系统的设计与实现.pdf.pdf 免费下载

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

文档简介

基于半虚拟化内存高性能p a w e f p c 体系模拟系统的设计与实现 摘要 随着嵌入式应用领域日益扩展,在其中占有重要地位的系统虚拟技术也得到日新月益发 展。p o w e r p c 体系结构在嵌入式领域都有着卓越的表现和广泛的应用,但是不像基于x 8 6 体系的p c 机,基于p a w e r p c 体系的系统成本较高所以针对于该体系的模拟系统的开发和 研究是非常有必要的。因此,开发一个高性能的基于p o w e r p c 体系结构的嵌入式开发平台 是及其迫切的。 针对丁i 嵌入式系统开发的p o w e r p c 体系全系统模拟,即模拟基于p o w e r p c 体系的计算 系统的全部功能部件,包括c p u ( 指令集中断与异常) ,加外设( 串口,网异,m 卫显 示) ,内存系统( m m u ) ,使得操作系统不经任何修改便可以加载操作系统映像运行在该虚 拟机上,从而在宿主机上实现对目标机系统的完全模拟,并且为嵌入式开发者提供便利的开 发调试接口。 m m u 的模拟在整个系统模拟中占有举足轻重的作用,通过在m m u 的常规硬件模拟地 址计算模块之上加入了一层目标机器逻辑地址和虚拟机运行环境的虚拟地址的映射缓存,减 少访存操作过程中m m u 的重复地址转换开销。最终可以使得m m u 的虚拟地址转换速度得 以增加。 由于是模拟单一的p o r e r p c 体系结构,而其上运行的l i n u x 操作系统访问页表,尤其 是内核页表是一个相当频繁的过程。因此通过发掘p 0 w e r p c 体系实现以及运行在其上的操 作系统的各种特性与共性,采取虚拟机主动管理p p ( j u i l u x 内核页表的内存半虚拟化技术, 通过截取操作系统对内核页表内存区域的读写操作,并将其进行缓冲队列管理,充分利用了 时空局部性原理,f :且避免了相应内存区域m m u 的地址翻译,提高虚拟机内存系统的性能 最终使整个系统的模拟效率大幅提高。 蛙后,通过与其它相同类型的商用系统模拟器进行性能比较,以及对具体评测数据的分 析,表明基于上述虚拟技术的模拟系统实现的确具有较高性能。 关键词:虚拟机,嵌入式,地址翻译缓存,半虚拟化,p o w e r p c ,全系统模拟, 内存系统,p p c l i n u x 基于半虚拟化内存高性能p o w 盯p c 体系模拟系统的设计与实现 a b s t r a c t a st h ea p p c a 廿o na r e ai ne m b e d d e ds y s t e me x p a n d sn p i d l yn o w a d a y s ,t l l ev i n u a l i z a t i o n t e c h n o l o g ) rd e v e l 叩sm u c hf a s i e rt 1 1 柚e v e lp 0 、w r p ca r c h i t c d u r eh a v ee x c e l l e n tp e d b 珊柚c ea n d aw i d em n g eo fa p p l i c a b o n si ne m b c d d e dn e l d ,b u tu n k ec h ep c 七a s e dx 8 6s y s t e i i l ,m es ) ,s c e m c o s tb a do np o w e r p c 眦h i t c c t u r ei sm u c hh i g h c r n e 础o t e ,血er e s e a r c ha n dd e v e l 叩聪n to fa h i g l i 学r f o 珊柚c es i m u l a t i o nd c v e l o p m e n tp l a b 珊f o rp o w e r p ca r c h i t e c i u r ci su r g c n t 1 1 1 e 舢s y s l e ms i m u l a f o rp a w e r p ci st os i 加u l a t ca l jt h ef u n 商伽a lc o m p o n 肋1 50 fa c o m p u t c rs y s t e m ,i c l u d i n gc p u ( 1 惦咖c 曲ns e la f c h i l e c t i l i e ,i n t e 咖p t s 蛐de x c e p c i o n ) 帕 d e v i c e ( s e f i a jp 0 r l s ,n e tc a r d 蛆dl c d ) a n dm e m o r ys y s i 哪( m m u ) n eo p e r a t i n gs y s i e m 啪 m no nt h ev i n u a lm a c h i n ew i t h 叫ta n ym o d i f i c a t i o n s t h cs i l l l t l l a t i o no fm m u p l a y sav e r y 岫n a n tp a r ti nt h cw h o ks y s i c l ! ns i m u l a l i o n t h e s p c e d0 f v i n u a la d d r e s st r 蛆s l a i i 0 c a ni n c f e a s ea1 0 ta 赶e h ea d d r e 蟠t r 吼s l 瓶o nc a c h ei sa d d e dt o t h em m ua d d r e s s 仃a n s l a t i o np r o c e 嚣d u et ot h eo m i c t 蛳c eo ft h e 蚰n e c e s s a f ya d d m s sc a l c u l a d o n t h eo p e r a t i o no fa c c e s s i n gp a g ct a b l e s ,。s p e d a l l yt h em a s t e fp a g et a b l ei nu n u xk e m e i i sa v e r ) rf r e q u e n tp m c e s s 1 1 l e f e f o r e 懿p l o r i n gt 1 1 ec o l n i n c h a r a c t e r i s t i c sb e 似e e nt h ep a w e r p c a f c h i f e c u m 翘d h ep p c - l i n l l xh 加e lc 柚p r o f o 蛐d 】ym a k ef h es i l l l u 】a h o np r o c c 辐埘o r ee f f i c i e n t t h en o v e lm e c h 柚i s mb a s e d 叫p a 璀v i n u a l i z i t 王o nt e c h o l o g yl e tt h ev j r t u a lm a c h i n ei t 辩l f m a n a g et i l ea c c e 鹳t ot l l e n i m a s t e rp a g et a b l e t h ea c c e s si si n t c r c e p i e da n db u 饪e r e d ,s ot h e p e r f b 姗a 们e0 ft l l ew h o l es y s t e mi si l p r 0 v e dd r 啪a t i c a l l yd u et 0l o c a l i 黯t i o np r i n d p l ea dt l i e a v o j d 锄c eo fm m ua d d r e s st r a n s 】a t i o n k e y w o r d s : v i n 1 a i m a c h i n e , e m b e d d e d s y s t e m , a d d l 陀s st m n s h n o c a c h e p a 憎v i r t u a i i z a 6 伽,p o w e r p c ,f l l 墨y s t e m s i l n j a “o n ,m e m o r ys y s t 岫, p p c l t u x i i 基于半虚拟化内存高性能p 0 w c f p c 体系摸拟系统的设计与实现 表格目录 表格1 地址翻译缓存性能评测3 0 表格2 半虚拟化数据评测( i 肌) 4 1 表格3 半虚拟化数据评测( v s f 珊) 4 2 表格4p 刚m r p c 指令格式4 6 表格5 w u k o n 昏p p c 与s 删i c s 性能对比5 8 图表目录 l 虚拟机的系统结构1 2 各种虚拟层次5 3 独立型m 7 4 宿主犁v m m 7 5 已配置两个l a 几的机器9 6w 啪体系模型1 0 7 解释执行模拟示意。1 3 8 穿线代码的执行过程。1 4 9 静态指令翻译1 5 l o 静态翻译执行示意1 5 1 1 动态指令翻译1 6 1 2 动态翻译决荒过程1 7 1 3 动态翻译代码片段一1 7 1 4 同步外设模拟示意1 9 1 5 被模拟内存的开辟2 0 1 6 真实硬件中的地址转换。2 3 1 7 虚拟机系统地址映射关系2 4 1 8 加入地址翻译缓存后的访存操作2 4 1 9 地址翻译缓存工作流程2 5 2 0 地址翻译缓存示意2 7 2 1 各地址翻译缓存内存分布2 8 2 2 虚拟地址匹配2 8 2 3p p c - u n u x 指令t l b 异常处理函数。3 3 2 43 2 位线性地址划分3 4 2 5 线性地址与页表。:3 4 图图图图图图图图图图图图图图图图图图图图图图图图图 基于半虚拟化内存高性能p o w c r p c 体系模拟系统的设计与实现 图2 6 p a g g _ 琳丌d 的调用关系示意3 5 图2 7 访存地址分发3 7 图2 8 虚拟机页衷数据维护关系3 8 图2 9 页表数据写操作3 9 图3 0 页表数据读操作4 0 图3 1 逻辑地址与_ _ 级页表的对应处理4 1 图3 2 e b o n y 开发板示意图4 4 图3 3b c 类指令示意4 6 图3 4m s r ( m 枷忸s l x 【er e g i 姗曲4 9 图3 5m m u 下作流程5 1 图3 6 在w u k o n g _ p p c 中运行u c o s i i 5 3 图3 7 p p c i 肿启动过程5 5 图3 8 在w u i ( 0 n g p p c 上运行i 皿n 5 6 基于半虚拟化内存高性能p c 体系模拟系统的设计与实现 1 1 研究背景 第一章绪论 虚拟机技术( n i l a lm a c h i n et e c h n o l o g y ) 是计算机科学中历久弥新的一个分支。它最 初在上世纪6 0 年代m m 公司大型机并行交互访问中得到应用。然而在上世纪七八十年代, 由于硬件成本愈来愈低和多任务操作系统的出现,虚拟机技术的麻用屈指可数;进入九十年 代,虚拟化的概念再一次出现,其中主要的一点原因是通过此项技术可以将原来运行在不同 操作系统以及不同硬件之上的应用程序都跑在一台主机上;随着个人计算机计算能力的不断 提高,虚拟机技术的应用也达到了一个高潮:在操作系统及分布式并行理论教学,嵌入式系 统开发,高端服务器的模拟,兼容遗留系统( 1 e g a c ys y s t e m ) 等方面得到广泛的应用。 虚拟机f f h l a lm h i ,v m ) 系统实际上是真实硬件系统的一个软件抽象。它以一个标 准的用户应用程序运行在宿土机( b o s im a c h i n e ) 的操作系统之上,通过对真实硬件资源进 行管理,划分,对上层提供一个虚拟硬件界面。虚拟机通过接受_ h j 户请求( 输入输出,任务 的运行与挂起等) ,并和宿主机进行数据沟通,最终达到高效率的系统模拟。 厂1 磊、 一一 图1 虚拟机的系统结构 目前,虚拟技术主要应用在以f 几个方面: 服务器整合:将多台服务器上的任务整合到较少的服务器进行管理,从而达到减少 硬件成本,增强硬件利用率的目的: 应用程序兼容整合:一些遗留系统可能需要一些特殊的操作系统( c p m ,r a x o p e n v m s ,m p e i x 等) 或者硬件( s 1 0 0 ,z 8 0 ,a p p l e - i l 等) ,通过模拟这些硬件从 基十半虚拟化内存赢性能p a w c r p c 体系模拟系统的设计与实现 而兼容这些应用程序; 沙箱( s d b o x 吨) :虚拟机可以给那些不受信任的应用程序提供一个安全的,隔 离的运行环境从而构建一个安全的计算平台; 多执行环境( m u l t i p l ee x e c u i i o ne n v i 】m m e n t s ) :虚拟机可用来创建多个运行环境, 通过确保硬件资源的分配来提高系统的服务质量( q u a l j f yo f s e r v j c c ,0 0 s ) ; 虚拟硬件:虚拟机可提供主机没有的硬件,比如虚拟s c s l 磁盘,虚拟以太网卡, 虚拟以太网交换机等等; 并行运行操作系统:不同的操作系统可同时运行在同一台主机之上; 调试:通过在由软件完全控制的虚拟p c 中,可以非常方便的调试操作系统,驱动 程序之类底层的系统科序; 软件迁移:减少软件移植开销,增强应用软件的可移植性; 测试胴i 量保证:可以搭建现实机器中无法呈现的测试场景,方便的进行错误重现, 人人降低了软件测试的工作量。 从超级计算机到游戏控制台,从服务器到手机,随处可见p o w e r p c 处理器的身影。对 p o w e r p c 体系结构家族树的所有分支来说p o w e r p c 体系结构和应用级编程模型是通用的。 p a w e r p c 体系结构是一种精减指令集计算机( r e d u c e di n s t n l c n o ns e tc o m p u t e r ,r i s c ) 体 系结构,定义了2 0 0 多条指令。p o w e r p c 之所以是r i s c ,原因在于大部分指令在一个单一 的周期内执行,而且通常只执行个单一的操作( 比如将内存加载到寄存器,或者将寄存器 数据存储到内存) 。 p 0 w e r p c 处理器有广泛的实现范围,包括从诸如p o w e 一那样的高端服务器c p u 到嵌入 式c p u 市场( 任天堂g a m e c u b e 使用了p o w e r p c ) 。p o w e r p c 处理器有非常强的嵌入式表现, 因为它具有优异的性能、较低的能量损耗以及较低的散热量。除了象串行和以太网控制器那 样的集成阳,该嵌入式处理器与“台式机”c p u 存在非常显著的区别。 本文论述的是如何将p o w e r p c 体系进行全系统虚拟化,并采取一些创新的方法进行性 能的提升和优化。 1 2 研究的意义与目的 p o w e r p c 体系无论在高端服务器还是嵌入式领域都有着卓越的表现和广泛的应用,但是 不像基于x 8 6 体系的p c 机,基于p o w e r p c 体系的系统成本较高,所以针对丁- 该体系的模 拟系统的开发和研究是非常有必要的。 当前p o w e r p c 体系开源模拟器少之义少,针对于嵌入式开发的更是为零。开源项目 q e m u 【1 0 】支持p o w e r p c 体系的模拟,但是只是针对桌面系统,这意味着不但c p u 子类型与 嵌入式系统所用的不同,其外设更是人相径庭。商用系统s i i n i ( w w w v i n u t e c h c o m ) 虽然 2 基于半虚拟化内存高性能p o w c r p c 体系模拟系统的设计与实现 可以模拟多种体系( x 8 6 ,a r n l ,m i p s ,m 6 8 k ,p a w e r p c 等) ,但它的目的仅仅是为了高精度的 体系模拟,运行时不但对系统资源要求很高,而且速度很慢,不适于实际的开发使用。 本文研究的内容是针对丁嵌入式系统开发的p o 、e r p c 体系全系统模拟,即模拟基于 p 0 w c r p c 体系的计算系统的全部功能部件,包括c p u ( 指令集,中断与异常) ,i 0 外设( 串 口,网卡,d 显示) ,内存系统( m m u ) ,使得操作系统不经任何修改便可以加载操作系 统映像运行在该虚拟机上,从而在宿主机上实现对目标机系统的完全模拟,并且为嵌入式开 发者提供开发调试接口。 由于访存操作在所有运行指令中所占的百分比很大,m m u 又在访存操作中担当着非常 重要的地位,因此m m u 的模拟性能在一定程度上决定了整个模拟系统的性能。本文采用基 于地址翻译缓存的m m u 的模拟技术,突破传统严格按照m m u 的硬件行为进行精确软件模 拟的方法,采用缓存目标系统逻辑地址和虚拟机运行环境的虚拟地址的方法,避免了m m u 的重复地址计算,最终提高了m m u 的模拟效率。 由于是模拟单一的p o 、r p c 体系结构,冈此通过发掘p o w e r p c 体系实现以及运行在其 上的操作系统( p p c “x ) 的各种特性与共性,采取地址翻译缓存和虚拟机主动管理 p p c l i n u x 内核页表的半虚拟化技术提高虚拟机内存系统的性能,最终实现一个高性能的基 于p a w e r p c 体系的嵌入式开发平台。 本文研究的模拟技术实现为w u k g - p p c 【1 】( b e d d e d z j u e d u c n ,l u k o n g ) ,作为 s m a r t s i m ( 浙江大学嵌入式软件研发中心从2 0 0 4 年开始研发的通用嵌入式系统全系统模拟 器,于2 0 0 6 年1 月正式通过了由浙江省科技厅组织的科技成果鉴定) 的一个子项目,它提 供了一个供嵌入式系统开发的高性能p a w e r p c 模拟平台,并开源发布。因此,该项目无论 对学术界,i :程界,以及开源社区都有突出的贡献。 1 3 论文的组织 本文后续内容结构如下; 第二章介绍不同层次虚拟技术的特点,应用场景以及发展趋势,并提出传统全系统模拟 技术的局限性。 第三章介绍了一种新颖的m m u 模拟方法,即在m m u 的地址计算模块之上加入了一层 虚拟地址的翻译缓存,最终使得m m u 的虚拟地址转换速度得以增加,使整个内存系统的模 拟效率人幅提高。 第四章介绍不同与传统内存模拟方法提高p o w e r p c 体系模拟性能的关键技术,即虚拟 机主动管理p p c u n u x 内核页表访问的半虚拟化技术; 第五章介绍w u k o n g - p p c ,自主开发的高性能p a w e f p c 体系全系统模拟器的实现技术, 包括p ,e r p c 指令集的模拟,c p u 中断以及异常的实现i ,0 外设的模拟,内存系统及内 3 基于半虚拟化内存高性能p o w c r p c 体系模拟系统的设计与实现 存管理单元( m e m o r ym a g e m tu n i i m m u ) 的模拟,以及在其之上运行操作系统( 包括 p p c l i n u x ,u c o s ) 所必须实现的工作。 第六章对全文的研究作了归纳,总结了本文提山的高性能模拟技术的优势和待完善的部 分,并对今后的丁作及发展愿景作出展望。 4 基于半虚拟化内存高性能p o w c r p c 体系模拟系统的设计与实现 第二章各层次虚拟技术的介绍 2 1 概述 虚拟技术是将计算资源整合或者划分,以提供完全机器模拟,分时或其他用途的操作执 行环境,其中对计算资源的划分是应用的更为j “泛的一个方面。虚拟层通过底层资源操作提 供了相对隔离的环境,这个所谓的虚拟层一般被成为虚拟机监控单元( r t u a lm a c h i l l e m o n i i o r ,v m m ) 。 从理论上来说,v m m 是介于硬件资源之上操作系统之f 的虚拟层,为应用程序,包括 运行库,系统调用服务,系统配置,守护进程等等提供运行环境;但从更为广义的角度上来 看,它可以是一个很具通用型的抽象层次划分( 见圈2 ) ,包括:指令集层,硬件抽象层 ( h a r d w a r ea b s t r a c t i o nl a y e lh a l ) ,操作系统层( 系统调用接口) ,用户空间类库层或应用 程序层本身。无论是哪一种层次的抽象,基本的目的是相同的:通过某些特别的方法划分底 层资源,使得上层调用可以透明的进行。 2 2 指令集层虚拟 应用程序 :圳 运行库 系统调月 摄作燕统 :指令集 l 硬件 图2 各种虚拟层次 指令集层的虚拟是通过软件完全模拟指令集来实现的。标准的计算机包括处理器,内存, 总线,磁盘,磁盘控制器,时钟,i o 系统等等。模拟器将目标机器( g s t m k h i n e ) 发射 的指令翻译成本地机器指令从而在本地机器上执行。这些指令包括典犁的处理器指令( a d d , 5 基于半虚拟化内存高性能p o w c r p c 体系模拟系统的设计与实现 s u b ,b e q ,e t co p o w e r p c ) 和一些针对与具体设备的i o 指令( 曲,i bo x 8 6 ) 。为了能 够成功模拟一台真实的机器,必须模拟一台机器能够进行的所有操作,包括r o m 芯片的读 取重启,加电开机等等。 这种模拟方法的架构拥有一些优势,同时也存在一些问题。这种设计模式的优点是减少 多目标平台模拟的实现代价。只要存在一种方法通过本地指令实现相同的任务时,无论目标 平台如何变化,模拟器都能够通过目标指令的翻译来适应这些变化。这样的话,目标系统和 宿主系统的耦合性就大大的减低了。比如在一台x 8 6 的宿主机上可以模拟x 8 6 ,s p a f c ,朋p h a , p o r e r p c 等多种体系结构。但是,这样的设计也带来了一定的性能损耗。因为目标机发射的 每一条指令都要进行软件的模拟翻译,性能上的开销是显著的。 b 帆h s : b o c h s 是由k e v l a w t o n 组织发起的c + + 实现的开源x 8 6 体系p c 模拟器。它具有高度 的可移植性,可以运行在包括x 8 6 ,s p a r c ,a l p h a ,m i p s 等多种主流体系的机器上。它可 以模拟绝大多数的基于x 8 6 体系的机器,包括3 8 6 ,4 8 6 ,p n u m ,p e n t i 啪p m 或a m d 6 4 的c p u ,及m m x ,s s e ,s s e 2 和3 d o w 指令的支持。b 0 c h s 翻译机器加电启动后的每一条 指令模拟了c p u ,b i o s 以及鼠标,键盘,磁盘,显 ,网卡等标准的p c 外设。b 0 c h s 完全模拟了p c 的运行环境,运行在其上的软件并不能察觉到自己是否运行在真正的硬件机 器之上。不管宿主机的体系结构是什么,它始终模拟的是x 8 6 体系。 2 3 硬件抽象层虚拟 硬件抽象层虚拟是一种通过开发目标平台和宿主平台的体系结构上的相似性来减少实 现时产生的模拟延迟的技术。当今市场上大部分的商用p c 模拟器都在x 8 6 平台上采用这种 技术来使模拟更加高效,更具实用性。这种技术将虚拟资源映射到物理资源上,使用本地硬 件供虚拟机内部的计算使用。但被模拟的机器需要访问关键硬件资源时,虚拟机进行接管并 进行合理的分发。 为了达到预期的模拟效果,虚拟器必须截获每个特权指令,并将其转发到底层的v m m 处理。这是因为,对于v m m 来说,其上可能运行了多个虚拟机,而每个虚拟机中运行的操 作系统都可以发射特权指令来达到对c p u 的掌控。当一个特权指令执行时,此指令被发送 剑m ,而非产生异常,导致崩溃。这样v m m 就完全控制者整个机器,并使其上运行的 虚拟机相互保持隔离,互不影响。v m m 或者在本地处理器上执行指令,或者模拟执行,然 后将运行结果返还给上层运行的虚拟机。但是,当前最流行的x 8 6 平台确不是可完全虚拟 化( f i i y - v i r t i l a l i z a b l c ) 的,比如说,某些特权指令在当运行权限不足时会直接失效而不产 生异常。这样的话,当遇到这种情况时,就需要采取一些特殊的策略使得m 获得通知。 人多数商用的模拟器采用像代码扫描( c o d es c a m i n g ) 和动态指令重写( d y i l a m i ci n s t n l c t i o n 6 基于半虚拟化内存高性能p 0 w e r p c 体系模拟系统的设计与实现 r e w r i t e ) 来解决这些问题。 v m w 矗i : v m w a 叫:9 】是一款具有高度工业强度的虚拟机产品。v m w a r e 的v m m 分为独立型和宿 主型两种模式。独立型模式( 如图3 ) 的v m m 基本上就是架设在硬件上的软件层,让用户 来创建一个或多个虚拟机。这有点像操作系统,需要针对与特定硬件的驱动程序来使对应的 硬件设备正常工作。这种类型的v m m 主要用在服务器中,v m w a f e e s xs e r v e f 就运用了这 种架构【1 8 】。 一 竺竺二 i 硬件 图3 独立型v m m 宿主型模式( 如图4 ) v m m 则是以一个应用程序的形式运行在宿主操作系统之上。它 可以利用宿主操作系统来进行内存管理,处理器调度,硬件驱动及资源管理。v m w a r c w o r k s t a t i o n 采用了这种设计模式。 i 豢地撼俸鬻统 f 赫 1 i ,。,。_ j 【。,。,。j 图4 宿主型v m m 7 基于半虚拟化内存高性能p d 眦r p c 体系模拟系统的设计与实现 v m w a r ew o f k s t a f i o n 可以根据用户需求进行多种方式的网络连接设置,包括v i n u a l e t h e m e th u b ,b r i d g e dn e t 、v o r k i i l g 。d c l w o r ka d d 化s si r 卸s l a t i o n ( n 等等。 2 4 操作系统层的虚拟 硬件层的虚拟具有高度的隔离性( v m 相互间的隔离及与底层物理硬件的隔离) ,无需 重启或是通过复杂的多启动设置就可支持各种不同的操作系统及应用程序,低风险,易维护 等优点。因此级别的虚拟机可以直接访问计算机用户在测试和运行他自己的应用程序之前 要花费不少的时间安装和管理虚拟机软件,包括操作系统的安装,麻用软件包的安装,网络 的设置等等。如果要求运行的操作系统和本地机的操作系统相同的话,用户就浪费了相当的 努力去重复设置相同的运行环境。而基于操作系统层的虚拟技术便是要最大限度减少虚拟机 内部操作系统的冗余性,虚拟机和宿主机除了共享硬件资源之外,还共享其上运行的操作系 统。在操作系统之上的虚拟层提供给用户一个或多个运行环境。 应用程序所需的运行环境包括操作系统,崩户级运行库,一些系统相关的数据结构,文 件系统及其他的环境设置。如果所有的这些都保持不变的话,应用程序则很难察觉是运行在 虚拟还是真实的环境中。通过特殊的分划和复用技术,每个都能够像外导出一个相互 隔离的,完整的运行环境。 j a i l : j a d 是一款基丁f r e e b s d 的虚拟软件,可以划分出独立的操作环境,同时保持u n i x 系统 的基于r t 的文件系统结构。j a i l 提供的运行环境包括进程,文件系统,网络等标准的系统 资源。用户的请求将会被限制在j a i l 中,系统管理员将会管理各个虚拟运行的环境的资源配 置,权限设置等。 某进程如果限制在特定的虚拟环境中,称作“i j a i l ”。全新安装的系统在艏动之后,并 无进程“j n j a i l ”。当某个进程“i n j a 珏”,其后由它创建的所有进程,包括它自己,都在这个 j a n 中。一个进程只能属于一个j a n 。j a n 是由一个特权进程通过j a n ( 2 ) 的系统调用来创建 的,每调用一次j a i l ( 2 ) ,都会创建一个虚拟环境;在已存在的j a i l 中新建一个进程唯一的 方法就是使新进程继承于当前j a i l 中已有的进程;j a i l 中所有的进程都不会离开当前j a n 。 8 基十半虚拟化内存高性能p a 、耽f p c 体系模拟系统的设计与实现 , 量 仁;b 茏j n - r , 雁, 崎tl| h , j i i l l ,。 ,一u 。 工o 。o 。o 3 + m ,l o d o 1 1 j m 【蛔, 1 0 口o s j 图5 已配置两个j a 的机器 2 5 编程语言级的虚拟 - 1 传统意义上的机器就是在执行指令集( 1 n s l m c t i o ns e t c h i t e c n e ,1 s a ) 支持的指令。 从这个层面上说,无论操作系统还是i j 户级程序都是在机器上执行指令而已。硬件操作的处 理或者通过特殊的阳指令,或者是将一段内存映射到i o 空间,然后操作此段内存。所以 说每个应用程序实际上就是由一系列的指令组成的。随着】a v a 虚拟机( j a v a v i n u a l m a c h i n e , j v m ) 的出现,一个全新的层次虚拟技术到来了。其中的主导思想是在应用层创建一个虚拟 机,其行为并诈像传统机器那样仅是执行指令。它支持一套新定义的指令集( i a v ab v t ec o d e s f o r j v m ) 。虚拟机通过让用户在其上运行程序,而并不会对物理机器的造成安全隐患。 m j c l s o n n e tc l i 微软n e t 框架中的通用语言运行环境( c 0 l a n g l i a g em n t i m e ,c l r ) 是通用语言 环境( o nl a n g u a g ch 血a s t m c t u r e ,c u ) 的微软实现。c u t 可以认为是等同于j a v a 的 微软产品。c u 是一种为多语言和多运行库创建无缝开发及运行环境的国际标准,但它强于 j v m ,因为它还将一些数据和服务整合到框架当中。它跟j a v a 一样支持接口( i n t e r f a c e ) , 类( d a e s ) 对象( o b j e c t s ) ,而且还为平台支持的所有语言提供了通用的运行库接口。类 似于j v m 编译器将源代码翻译成某种中间代码,最终由c u t 运行。 2 6 运行库层虚拟 在绝人多数系统中,应用程序需要用户级运行库提供的接口才能运行,这些库的设计目 的是屏蔽操作系统的实现细节,为应用程序开发人员提供便利。因此,我们便可以在这个层 次上实现一种虚拟技术【2 9 】。 9 基于半虚拟化内存高性能p o 、耽f p c 体系模拟系统的设计与实现 这种虚拟技术运用底层系统米实现一种不同的二进制应用程序接口( a p p c a 廿o nb 岫f y i n t e r f a c e ,a b i ) 或是一种应用编程接口( a p i ) ,所以这种技术也可称为a b 玑廿i 模拟。 w i n e : w 证e 是一个递归定义,代表“w i n ej sn o ta ne m l l l a l o r ”。从另一个角度看,它经常被称 为一种w i n d a w s 的模拟器。说w i m 不是一种模拟器,是闪为它并未模拟处理器,在其上也 不安装任何操作系统和驱动程序:它只是一种w i n d a w sa p i 的实现,可用于w 铀d o w s 应用 程序向u i x 系统的移植。后一种说法则表明w 抽e 对于w i n 如w s 平台上的二进制文件 ( e x e ) ,可以模拟出w i n d o w s 的行为。也就是说,w i n e 是在u n i x 系统之上提供w i n d o w s 的a b 肌心l ,并使w i n d o w s 的二进制文件可以正常运行的虚拟层。 1 w i | l d 脚可撬行程 摩p 懈i i 废用穗序| w h d “鳓鸯库 p 嘲, | w l - 翰予系境i 予薰 统 ” 。一 “ w 钿艨j n t d m d “ 菇嚣j w 掘的可巍行程廖 2 7 全系统模拟 w i n e 襄动 v n i i 麸事库l l j k 。l i b x l l ) u n i x 内攘( l i 眦i i ,b s n s o l 且憎) u n “设备攀动 图6 w i n e 体系模型 计算机系统的可模拟性直接来源于科学家阿兰图灵的理论研究。全系统模拟为软件构 建提供了极大的便利:它可以任意扩展,控制,评测被模拟的系统,即目标平台( t a r 踞i p l a 怕r n l ) 。进一步,多个系统模拟可以并行运行,并可以由脚本自动控制。全系统模拟试图 在模拟准确性和性能方面找到平衡点,来为硬件和软件的设计,开发以及测试提供一个统一 的构架和完整的应用解决方案。 当今,计算机系统愈来愈复杂,系统模拟在构造计算机系统的每一步都有所应用:从评 测到科研创新,从硬件设计的验证到系统的性能调优。在所有的模拟器中,设计者要面对精 确性和高效性的平衡,在很多情况下,他们通过降低模拟精确性从而使得模拟运行在一个用 1 0 基于半虚拟化内存高性能p a w e r p c 体系模拟系统的设计与实现 户可以接受的时间范围之内。 一个使得模拟时间降低的方法是仅模拟用户级的代码而忽略机器的特权操作系统代码, 但是从模拟模型中去除掉操作系统部分降低了模拟环境的准确性和应用范围。一些重要的计 算环境,如数据库管理系统,分时系统大约花费总共运行时间的三分之一在操作系统部分上。 如果在这些应用中忽略操作系统会导致错误的结果。而且这些应用大量使用了操作系统提供 的服务,所以其模拟环境中必须有操作系统模拟部分即这里所提到的全系统模拟。 通过全系统模拟,模拟器可以控制各级模拟细节。在运行过程中,模拟器可以调换硬什 模拟部仲,这样研究者便可咀关注他想要关注的部分,忽略其他不感兴趣的部分。 2 7 1 全系统模拟的应用 微处理芯片设计 f 一代微处理器的开发早已成为模拟技术的应用领域。传统基于跟踪技术( t r a c eb a d ) 的模拟方法有着显著的局限性,而全系统模拟试图去解决这些问题。更为重要的是,多处理 器与内存子系统的交互,操作系统的内存管理及调度只有通过全系统模拟的方法才能够完全 模拟。 s i n l i c s 提供了一个近似缓存和啪计时模型,可支持下一代系统初序内存交叉近似访问 ( f 硫t - o r d e ra p p r o x i m a o n o f i t e r l e a v i i l g m e m o r y o p e 珀l i o n ) 。 s i i i l i c s 提供一些支持乱序( o u l0 f o r d e r ) 执行的处理器模拟模型,这些模型具有无限的 执行单元和重命名寄存器,包括有可配置的r e o r d e r _ b u 自f e r ,但是没有流水线。数据依赖和异 常发生时的事务同滚可被支持。 内存研究 被模拟的内存系统可被分为多个内存空问,一般对应丁- 真实计算机系统中的地址空问。 典型的如可被缓存的物理内存,p c i 总线空间,l ,o 空间等。 用户可以将计时系统与内存空间联系起来,用来评测内存访问所消耗的时间,此外还可 以跟踪内存和缓存的访问踪迹。 设备开发 全系统模拟器提供一层界面用来和外部的程序进行交互。这些程序可以模拟一个独立的 设备,内存总线或是连接在其上的任何设备。通过将某设各与模拟器相连,测试它的怕工 作流,用户便可方便的对这个设备进行测试。 操作系统模拟 在目标操作系统不存在的前提下,开发人员可以在模拟器提供的操作系统模拟层之上运 行应用程序。操作系统模拟层无需运行在被模拟的硬件之上,也就是说,我们可以隔离一个 席用程序的具体行为。举个例子,在一个被模拟的操作系统环境中,中断和异常处理函数和 基十半虚拟化内存高性能p a w e r p c 体系模拟系统的设计与实现 缓存的行为并没有直接的关系。操作系统模拟层往往可以用一种脚本语言来实现。出于教学 目的,采用脚本语言来实现内核可以清晰地展示出操作系统的内在结构,并为实际开发研究 提供了一个易修改,可扩展的平台。 比如,开发对新处理器的支持,在早期编译器项目上的开发需要相当的人力物力。简单 的操作系统模拟器就可以使编译器的设计者在没有真实操作系统的前提下进行用户级的回 归测试。 操作系统开发 在硬件产生之前就开发固件( f i r n n a r e ) 和操作系统是全系统模拟的一个典型应用。比 如说,s u 使用h a m m e r 模拟器将i j m x 移植到a m d 的x 8 6 6 4 系统之上;1 1 ) l ,a b js y s t m 采用类似的方法移植了n e t b s d 。通过将旧的设备整合到新的处理器构架中,核心移植1 二作 便可忽略大部分的驱动问题。 即使当前的硬件存在,模拟器仍然可以提供很多好处。在同件开发中,特定断点的支持 非常有用,比如在读特定寄存器时停止执行。 调试 与传统的调试器相比,模拟器提供了很多强有力的方法用于定位错误。一些传统调试任 务包括加载符号信息设置断点,单步执行等。模拟器为开发者提供了访问整个系统内部状 态的途径,使他们可以调试操作系统和设备驱动程序。 可重现性是调试过程中非常有用的一个特性。鼠标,键盘输入的交互,网络数据交换可 以重复出现,使得导致系统错误的事件可被重现。将这些信息和错误之前设置的断点可使调 试过程的效率提高。 开发者可使用脚本的支持来实现高级断点的设置。比如说,断点的写入可以检查附近数 据结构的语义,断点的计时可判定两个程序检测点是否距离过远。 开发者还可以使用外部的调试器。只要模拟器的调试模块按照g n ud e b u 鹳e r 的t c p ,i p 远程调试协议,便可以与g d b 相连接,这样外部的调试器便可以整合到模拟器系统当中,避 免重复编写调试模块。 高可用性测试 系统的一些性能指标,如可靠性,性能,容错性等,如果不用模拟的方法便无法测量。 而模拟器可以任意修改周边环境使得系统产生错误,与真实的物理硬件测试相比优势显而易 见。除此之外,它还可以提供关于错误执行路径的高层信息,井可使错误重现。整个的测试 过程可由断点和脚本自动控制,代价很低。 2

温馨提示

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

评论

0/150

提交评论