(信号与信息处理专业论文)多核系统内存管理算法的设计与实现.pdf_第1页
(信号与信息处理专业论文)多核系统内存管理算法的设计与实现.pdf_第2页
(信号与信息处理专业论文)多核系统内存管理算法的设计与实现.pdf_第3页
(信号与信息处理专业论文)多核系统内存管理算法的设计与实现.pdf_第4页
(信号与信息处理专业论文)多核系统内存管理算法的设计与实现.pdf_第5页
已阅读5页,还剩61页未读 继续免费阅读

(信号与信息处理专业论文)多核系统内存管理算法的设计与实现.pdf.pdf 免费下载

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

文档简介

中文摘要 随着网络技术的高速发展,网络已经渗透到人们生活和工作的方方面面,影 响和改变着人们的生活节奏和工作方式。越来越多的网络接入用户以及越来越多 样化的业务需求使得各种网络设备必须提供足够的吞吐量,在这样的背景下,传 统的处理器显得越来越力不从心。多核处理器以其强劲的数据转发性能、复杂的 业务处理能力、简易而又高效的开发环境的优势越来越赢得人们的青睐。随着多 核时代的到来和多核应用的不断发展,网络操作系统的许多功能模块需要做出相 应的调整,以适应多核环境的需要。本文讲述的就是网络操作系统平台内存管理 在多核环境下的调整和性能优化,以及多核内存管理的一个典型应用一u t m 多 核多系统共享内存管理算法的研究与设计。 本文针对多核内存分配中存在的并发访问冲突、共享c a c h e 失效及核间碎片 的特点,结合平台内存管理算法和多核构架,设计了平台多核内存管理算法;针 对小内存分配时内存使用率较低的特点,设计了s i m p l e 内存分配算法;针对系 统中频繁使用的一些专有数据结构,设计了多核内存池管理算法,目的是提高内 存使用率,减少内存碎片;结合l i n u x 系统页框管理算法和u t m 产品的需要, 进行了多核多系统共享内存管理算法的设计与实现,目的是为多系统之间的业务 交互提供通道。 论文第一章介绍了项目的背景;第二章介绍了多核技术和多核多系统技术; 第三章详细分析了l i n u x 内存管理算法和现有平台内存管理算法;第四章针对需 求设计了多核系统内存管理算法和多核多系统共享内存管理算法;第五章对论文 所做的内存管理算法进行了测试,测试结果表明了设计方案的正确性;第六章对 论文进行总结并提出进一步的展望。 关键词:多核多核多系统内存管理u t m a bs t r a c t w i t ht h er a p i dd e v e l o p m e n to fn e t w o r kt e c h n o l o g y ,n e t w o r kh a sp e n e t r a t e di n t o a l la s p e c t so fp e o p l e sw o r ka n dl i f e ,a n di s i n f l u e n c i n ga n dc h a n g i n gv a r i o u sa s p e c t s o fp e o p l e sr h ”h mo fl i f ea n dw o r ks t y l e m o r ea n dm o r ep e o p l e su s i n gn e t w o r ka n d av a r i e t yo fs e r v i c er e q u i l e m e n tm a k eal o to fn e t w o r ke q u i p m e n tm u s tp r o v i d e a d e q u a t ep r o c e s s i n ga b i l i t y : u n d e rt h i s b a c k g r o u n d , t r a d i t i o n a l p r o c e s s o r sa r e b e c o m i n gm o r ea n dm o r ed i 伍c u l tt oh a n d i e m u l t - c o r e p r o c e s s o r s w i t hi t s a d v a n t a g e s o fs t r o n gd a t af o r w a r dp e i r f o m a n c e , c o m p l e x s e r v i c e p r o c e s s i n g c a p a b i l i t i e s ,s i m p l e a n de 币c i e n td e v e l o p m e n te n v i r o n m e n tw i np e o p l e sf a v o r w “h t h ea d v e n to fm u l t i - c o r ee r aa n dr a p i dd e v e l o p m e n to fm u l t i - c o r e 印p l i c a t i o n ,s o m e m o d u l eo fn e t w o r k o p e r a t m gs y s t e mr e q u i r em a k ec o r r e s p o n d i n ga d j u s t m e n t st om e e t t h en e e d so fm u l t i - c o r ee n v i r o n m e n t t h i sa n i c l ei sa b o u ta d j u s t m e n t so fm e m o r y m a n a g e m e n to fn e t w o r ko p e r a t i n gs y s t e mp l a t f o mt om e e tt h en e e d so fm u l t i - c o r e e n v i r o n m e ma n dat y p i c a la p p l i c a t i o no fm u l t i - c o r es y s t e m d e s i g na n dr e a l i z e u t mm u l t i - c o r em u l t i s y s t e ms h a r e m e m o r ym a n a g e m e n ta l g o r i t h m a g a i n s tt h ec h a r a c t e r i s t i c so fm e m o r ya l l o c a t i o n ,s u c ha sm e m o r ya c c e s sc o n f l i c t , f a i l u r e s h a r e dc a c h ea n ds o o n , w i t ht h ec o m b i n a t i o no fp l a t f o 啪 m e m o r y m a n a g e m e n ta l g o r i t h m sa n dm u l t i c o r es y s t e m sa r c h t e c t u r e ,t h i sp 印e rd e s i g n st h e m u l t i - c o r em e m o r ym a n a g e m e n ta l g o r “h m a g a i n s tt h ec h a r a c t e r i s t i c so fl o w e r u t i l 注a t i o no fm e m o r yo w i n gt ot h ee x i s t e n c eo fm e m o uh e a d ,t h i sp a p e rd e s i g n s s i m p i em e m o 叫a l l o c a t i o na l g o r i t h m a g a i n s ts y s t e m u s es o m ed a t as t r u c t u r e 仔e q u e n t l y ,t h i sp 印e rd e s i g n s t h em u h i c o r e m e m o r yp o o la l g o r i t h m ,a i m i n ga t e n h a n c i n gm e m o r yu t i l i z a t i o n ,r e d u c em e m o r yd e b r i s w i t ht h ea n a l y s i so fl i n u x s y s t e m 纳m e sm a n a g e m e n ta l g o r i t h ma n dt h er e q u i r e m e n t so fu t m ,t h i sp a p e r d e s i g n s a n dr e a l i z e sm uj t i - c o r e m u l t i - s y s t e ms h a r e - m e m o r ym a n a g e m e n t a l g o r i t h m ,i no r d e rt oe s t a b l i s hac o m m u n i c a t i o nc h a n n e lb e t w e e nm u h i p l ys y e t e m t h ef i r s tc h a p t e ro ft h i sp a p e ri m r o d u c e st h eb a c k g r o u n do ft h ew h o l ep 印e r ;t h e s e c o n dc h a p t e ro ft h i s p a p e ri m r o d u c e st h em u h i - c o r et e c h n o l o g ya n dm u l t i c o r e m u l t i - s y s t e mt e c h n o l o g y ;c h 印t e r3a n a l y s i s e st h e l i n u xm e m o r ym a n a g e m e n t a l g o r i t h m sa n dm e m o r ym a n a g e m e n ta l g o r i t h m so ft h ee x i s t i n gp l a t f o r n l s ;c h a p t e r4 r e a l i z e s m e m o r ym a n a g e m e n ta l g o r i t h m so fm u l t i c o r es y s t e ma n dm u l t i - c o r e m u l t i s y s t e ms h a r e d m e m o 巧m a n a g e m e n ta l g o r i t h m s ;c h a p t e r 5 g i v e s t h e c o r r e s p o n d i n gt e s ta n dt e s tr e s u l t ss h o wt h a tt h ec o r r e c t n e s so fd e s i g n ;c h a p t e r6 g i v e ss u m m a r yt ot h i sp a p e ra n dm n h e rp r o s p e c t k e y w o r d s :m u l t i - c o r e ,m c m s ,m e m o r ym a n a g e m e n t ,u t m 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作和取得的 研究成果,除了文中特别加以标注和致谢之处外,论文中不包含其他人已经发表 或撰写过的研究成果,也不包含为获得苤鲞盘堂或其他教育机构的学位或证 书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中 作了明确的说明并表示了谢意。 学位论文作者签名:女l 婚 签字日期:卯寥年f 月乡日 学位论文版权使用授权书 本学位论文作者完全了解苤姿盘堂有关保留、使用学位论文的规定。 特授权苤鲞盘鲎可以将学位论文的全部或部分内容编入有关数据库进行检 索,并采用影印、缩印或扫描等复制手段保存、汇编以供查阅和借阅。同意学校 向国家有关部门或机构送交论文的复印件和磁盘。 ( 保密的学位论文在解密后适用本授权说明) 学位论文作者签名:女j 媾 签字日期:硼g 年6 月易日 导师签名: 签字日期:砂铲年多月多日 第一章绪论 1 1 研究背景 第一章绪论 l p 网络己越来越深人和j 泛地影响着人们工作和生活的方方面面。随着网 络高速麓展的信息时代的到来,网络已经渗透到人们生活和工作的方方面而,影 响和改变着人们的生活节奏和工作方式;在这样的发展趋势f ,通讯基础设施建 设的发展就显得尤为重要。需求促进网络设备的应用发展,而网络设备的发展又 建立在最基础的芯片技术的发展之上。越来越多的网络接人用户以及越柬越多样 化的业务需求使得再种网络设备必须提供足够的吞吐量,在这样的背景f ,传统 的处理器越来越显得力不从心。 】n t e m n 产生到现在,刚络设备在短短的几十年时间里就经历了数代的技术 革新。以路由嚣为例,经过了以下发展阶段: 。一 霄霪辱塑蟹刍 第一代是单c p 0 集中式转发,共享总线,【削定接口 第二代是单c f u 集中式转发,共享总线,模块化接几 第= 代是多c p l ,分布式转发,共享总线,模块化接口 第一章绪论 第四代是多a s i c 分布式转发,交换总线,模块化接口 第五代是多n p 分布式转发,交换总线,模块化接口 所谓的从第一代到第五代路由器,架构上就是从集中式走向分布式,处理引 擎从通用c p u 走向a s i c 和n p ( 可编程的a s i c ) 。接口从固定到模块化。 随着网络业务的继续发展,网络设备继续发展下去将会以什么样的形态出 现? 网络业务的极大丰富对网络设备特别是路由器的功能特性、乃至系统架构、 芯片技术将会带来什么样的挑战和机遇? 当前,编程简单、针对市场需求升级容易、而且能提供强大吞吐量的新一代 处理器产品及相关的网络设备解决方案已成为业界争相追逐的焦点。 从用户角度看,他们需要的是一种编程简单,针对市场需求升级容易,而且 能提供强大吞吐量的处理器产品。因此,符合上述特征的新一代处理器产品及解 决方案便成为市场争相追逐的焦点。 从处理器的报文转发能力上看: 通用c p u 嵌入式c p u 网络处理器 a s l c 而从四到七层业务处理能力上看: a s i c 嵌入式c p u 网络处理器 通用c p u 通用c p u 一般指x 8 6 系列,它不是通信处理器,但是近来随着网络业务发 展越来越灵活,通用c p u 也越来越多地用于网络产品的系统设计中。它的主频 一般都很高,超流水线设计,具有很高的系统运算性能,但是对于数据网络的数 据包处理并没有做专门的优化设计,整体报文性能显得不是很高。通用处理器具 有最好的编程灵活性、最好的l 4 l 7 层业务适应能力、最简单的应用开发环境和 最广泛的人才基础,因此,我们看到基于通用处理器设计的系统方案越来越多。 通用处理器面临的最主要问题是:侧重运算能力,数据报文吞吐性能不够理想; 同时,应对复杂的l 4 l 7 层业务,缺乏必要的硬件加速手段,尽管可以实现业务, 但总体性能偏低,难以满足用户对业务时延、吞吐量等指标的苛刻需求。 嵌入式c p u 目前使用非常广泛,从a r m 、m i p s 到p p c ,都有大量的芯片 可供选择。嵌入式c p u 是第一代、第二代、第三代路由器设备采用的主要平台。 一般来说,嵌入式c p u 的主频不是特别高,但它在系统架构上针对数据包处理 进行了专门优化设计,在数据包转发性能上较通用c p u 要高很多。另外,嵌入 式c p u 一般来说也可以完成l 3 l 4 层应用业务类型的处理,甚至也可以完成对 l 4 一l 7 层业务的处理,但由于受限于编程环境以及缺少专门的硬件加速部件,同 样会出现随着业务复杂性的增加,性能急剧下降的问题。另外从业务的灵活丰富 性上来说,距离通用c p u 仍有较大差距【2 1 。 专用a s i c 芯片的出现是为了满足目前网络带宽需求爆炸式增长应运而生 第一章绪论 的。它将i p 转发、m a c 转发以硬件的方式固化下来,轻易达到几十个g 的包 转发性能,这是传统嵌入式c p u 以及通用c p u 根本无法企及的。因此,专用 a s i c 芯片在二、三层以太网交换机中得到了充分的应用。但有些尴尬的是,用 户通过a s i c 得到了高性能的带宽,业务处理能力却没有改观,甚至仍需借用其 他设备才能获得业务能力。举个例子,局域网用户以n a t 方式共享带宽上网, 目前普通的以太网交换机都必须搭配一台路由器或者网关设备才能满足要求。至 于加密、语音等复杂网络应用,a s l c 更是无能为力。而程序固化,导致新业务 只能等待新款a s i c 推出。 为了满足用户对高性能业务的需求,网络处理器诞生了。可以这么说,网络 处理器n p 是一种可编程的a s i c 。报文转发性能上网络处理器比a s i c 稍弱,但 是由于n p 的可编程,可以在l 3 l 4 层的业务处理上完成a s i c 所不能完成的业 务。如n a t 、g i 砸隧道、l 2 t p 隧道功能,性能上同样也是相当强劲。但n p 采 用微码进行开发,新功能提供周期普遍较长。另外受微码空间所限,业务支持类 型无法做得很丰富,并且受硬件架构影响,复杂业务仍然难以在n p 上实现,如 隧道加密、多种业务的相互叠加等等。 由上面的分析可以看出,各种处理器各有优缺点。在网络应用蓬勃发展的今 天,市场所期待的理想处理器或者说网络处理引擎是什么样的呢? 概括起来应该是:高性能、易编程、良好的l 4 l 7 层业务应用灵活性。 多核处理器( 多核c p u ) 就是朝着理想处理器方向努力应运而生的。多核 处理器的出现为网络复杂业务的高性能处理带来了可能性。 多核处理器是在目前芯片功耗限制下,能找到的最好的提升芯片性能的方 法。简单说来,多核处理器,是在同一个硅晶片上集成了多个独立物理核心( 所 谓核心,就是指处理器内部负责计算、接受存储命令、处理数据的执行中心, 可以理解成一个单核c p u ) ,每个核心都具有独立的逻辑结构,包括缓存、执行 单元、指令级单元和总线接口等逻辑单元,通过高速总线、内存共享进行通信。 在实际工作中,每个核心可以在相对节能的方式下运行,牺牲单个核心的运算速 度,但多颗核心协同处理任务,以达到性能倍增的目的【引。 随着多核技术和多核应用的的不断发展,网络操作系统的许多功能模块就需 要作出相应调整,以适应多核环境下的需要,本文就是阐述了网络操作系统内存 管理在多核环境下的调整,以及多核多系统共享内存的管理。 第一章绪论 1 2 项目介绍 1 2 1 多核内存管理 基于多核系统的软件架构可以分为s m p 和a m p 两种。s 御系统通过操作 系统屏蔽多处理器对应用模块的影响,应用模块编写不需要考虑具体c p u 的个 数以及通信机制,就如同在一个c p u 上运行一样,但是操作系统在多个c p u 上 调度任务所带来的开销比较大。a m p 系统在部分c p u 上运行操作系统,在其他 c p u 上直接运行特定的软件代码,实现起来较为复杂,但是相对于s m p 结构更 加灵活可控,更加适合于我们的系统要求。 本项目支持的多核系统采用a m p 架构,系统软件分为控制平面和数据平面 两大部分,控制平面用于指导数据报文处理的消息,数据平面根据控制平面生成 的信息对报文进行处理,控制平面利用已有实现,运行在一个单独的c o r e t h r e a d 上,数据平面运行在其他多个c o r e t h r e a d 上。 目前网络操作系统平台中的任务管理、定时器、信号量以及事件都是与任务 相关的,需要操作系统的支持,因此在不运行操作系统的c o r e t h r e a d 上将不再 支持这几部分功能。内存管理、时间管理、队列管理、开关中断等模块需要修改 单核系统的实现以支持多核系统架构的需要。本文讲述的就是其中的修改单核系 统实现以支持多核系统架构的内存管理部分。 在多核环境下,为了适应控制平面和数据平面分离的要求,增加了多内存分 区管理方式。处于同一内存分区的c o r e t h r e a d 可以同时进行内存的申请和释放 等操作,为了防止同一地址的内存不被并发访问,需要对原内存管理接口进行重 新封装处理。为了提高内存利用率,减少内存碎片,针对系统中使用较多的结构 的内存分配需求,设计了多核系统内存池管理算法。 1 2 2 多核多系统共享内存管理 目前i n t e m e t 应用已经取得了长足的发展,网络安全日益成为人们关注和研 究的热点,为了应对越来越多的网络安全问题,很多企业只是在简单地采购防火 墙、防病毒和防入侵等网络安全产品来解决特定的安全问题,这种安全产品堆叠 的方法在层出不穷的威胁面前变得越来越脆弱,这种方法带来的直接弊端有:资 源浪费,功能充分,管理复杂,难以制定整体的安全解决方案,难以协调,产生 兼容性问题等,除了上述几类弊端外,安全堆叠带来的安全效能低下引发的不为 人发觉的威胁才是最大的隐患。 避免安全堆叠的直接手段就是整合,将各种安全防护设备统一在一个管理体 第一章绪论 系上,并统一管理和部署,这是对日益增多的网络安全威胁的一种积极应对,用 户更希望的是构架更完整,可定制性更强的安全产品,u t m 就是在这样的一个 背景下产生了。 u t m 安全设备是由硬件,软件和网络技术组成的具有专门用途的设备,它 主要提供一项或几项安全功能,将多种安全特性集成在一个硬件设备里,构成一 个标准的统一管理平台【4 】。 一个典型的u t m 产品整合了v p n 、防火墙、入侵检测防御、防病毒等很 多常见的安全功能,而用户既可以选择具备全面功能的u t m 产品,也可以根据 自己的需要选择某几个方面的功能。更加可贵的是,用户可以随时在这个平台上 增加或调整安全功能。 u t m 安全设备也可以包括其他特性,例如安全管理,日志策略管理,服务 质量( q o s ) ,负载均衡,高可用性( h a ) 和带宽管理等,不过其他特性通常都 是为主要的安全功能服务的。 u t m 存在下面的优点【5 j :首先,在理论层面,它通过对各种安全理论的整 合,构建起一个全新的网络安全理念;其次,在方案层面,它要求将尽可能多的 安全解决方案整合在一起,构筑智能型的立体防护系统;第三,在技术层面,它 通过对诸多安全技术与产品的全面整合,为信息网络提供全面动态的安全防护体 系。 u t m ( 统一威胁管理) 是由硬件、软件和网络技术组成的具有防火墙、入 侵检测、防病毒、v p n 等功能的安全设备。国内外主流的u t m 设备的软件系统 一般是构架在同一个操作系统平台下,比如l i n u x ,v x w o r k s 等,在现有的定制 网络操作系统平台中,o s l 网络操作系统平台是各种网络产品的通用平台,对防 火墙和v p n 特性的支持很好,有着极强的路由和转发能力;o s 2 平台支持入侵 防御,防病毒等4 7 层安全特性,是专门为安全产品定制的网络操作系统平台。 由于两个平台在系统结构以及应用编程上存在很大区别,这些特性简单的移植和 集成在任意一个平台上都存在较大的工作量,本项目为了利用现有的技术平台采 用m c m s ( 多核多系统) 构建u t m 产品,我们提出在多核c p u 上同时运行o s l 和o s 2 两个平台系统,即一个系统主要处理防火墙和v p n 业务,另一个系统主 要处理入侵检测和防病毒业务,做到在一台设备上能够同时支持防火墙和i p s 业 务,也就是采用多核多系统的方式来作为我们u t m 设备的软件解决方案。 与国内外主流u t m 产品把所有特性叠加在单一操作系统平台下相比, m c m s ( 多核多系统) 软件构架无疑效率更高,也更灵活,更易于进行功能的裁减。 此外,u t mm c m s 内存管理算法是在l i n u x 操作系统内存管理算法基础上结合 网络设备内存管理自身特点改进而来,并针对多核系统进行了一定的优化和定 第一章绪论 制,与之相比实现起来更加简化,效率更高。 1 3 本文的主要工作 本课题主要研究多核内存管理算法的设计,就是对现有网络操作系统平台内 存管理算法进行优化和修改以适应多核构架的需要,还有多核多系统共享内存管 理算法的设计。主要工作如下: ( 1 ) 理解多核架构和多核多系统的软件设计。 ( 2 ) 分析l i n u x 操作系统内存管理算法的设计。 ( 3 ) 分析现有网络平台内存管理算法的设计,同时实现把现有系统平台内 存管理算法向多核迁移和优化。 ( 4 ) 利用l i n u x 操作系统内存管理算法结合多核多系统需求分析设计出 多核多系统共享内存管理算法。 第二章多核技术与多核多系统技术 第二章多核技术与多核多系统技术 2 1 多核技术及其架构 2 1 1 多核技术 多核处理器可以看作是将多个通用的c p u 以及一些功能部件集成在一块芯 片中形成的一个s o c ,这些c p u 之间以及c p u 与集成到芯片上的其它部件间通 过高速的内部互联技术进行通信,打破了以往多c p u 系统中c p u 之间以及c p u 与其它部件间通信的性能瓶颈,使系统性能得到保证【6 】。 为了对多核系统有着更好的理解,下面对c o r e 和t h r e a d 及核间消息进行如 下定义: c o r e :多核处理器中的通用处理单元,每个c o r e 有一套独立的取指、指令 解析、指令执行和逻辑运算单元,拥有自己独立的l 1d a t ac a c h e 和l l i n s t r u c t i o n c a c h e 。 多核处理器中的多个c o r e 共享l 2c a c h e 或分别具有独立的l 2c a c h e , 各个c o r e 完全并发的执行指令,系统中的l lc a c h e 以及l 2c a c h e 一致性通常 由硬件保证,软件不需要做特殊处理。 t h r e a d :为了充分利用系统资源,部分多核处理器的每一个c o r e 又被划分 为多个虚拟处理器,这些虚拟处理器拥有各自独立的一套寄存器,共享所属c o r e 的l 1d a t ac a c h e 和l 1i n s t r u c t i o nc a c h e ,以时分复用的方式共享c o r e 的取指、 指令解析、指令执行和逻辑运算单元,每一个虚拟处理器( v c p u ) 被称为一个 t h r e a d ,属于同一个c o r e 的t h r e a d 的调度由硬件自动完成,对于应用模块来说, 一个t h r e a d 就像一个独立的c p u 一样运行。 核间消息:一种异步通信机制,消息的发送方通过发送消息给接收方来通告 某个事件的发生及事件相关的内容,接收方检测到消息到达时进行处理,消息的 实现机制因硬件环境的差异与软件需求而各不相同,如队列,事件,信号量,中 断,硬件消息环等都可作为消息的载体,本项目基于的多核系统采用的是硬件消 息环的形式。 多核处理器特点:系统中集成了多个功能相同的c p u ,这些c p u 可以并发 的执行指令,每个c p u 有自己独立的一级c a c h e ( 包括指令c a c h e 和数据c a c h e ) , 通常情况下所有c p u 共享二级c a c h e 。所有c p u 的一级c a c h e 和二级c a c h e 之 间有自动同步机制,系统中集成了内存控制器以及一些高速网络接口单元,各个 第二章多核技术与多核多系统技术 单元与c p u 间通过高速通道连接消除了通信瓶颈。 系统中集成了一些专业硬件加速单元( 如加密解密引擎,压缩解压缩引擎 等) ,软件可以利用这些硬件单元加速业务的处理。 图2 1 多核系统构架 h i 曲s p e e d c o n n e c t i o l l 多核系统工作模型 ( 1 ) m u l :t i l ) l ei m a g e 模型 系统中的每个c o r e 运行独立的操作系统,具有独立的系统映像,多个c o r e 间通过操作系统提供的共享内存,管道等机制通信,采用这种方式下系统中的多 个c o r e 可以运行不同的操作系统,每个c o r e 运行的代码需要独立编译加载,属 于一种松耦合的方式,本项目的m c m s 系统就属于这种方式。 ( 2 ) s i n 9 1 ei m a g e 模型 系统中只有一套操作系统管理所有的c o r e ,共享同一份系统映像( 包括代 码段,数据段等) 系统中所有的c o r e 共享相同的内存空间,可以互相直接访问 彼此的数据,属于紧耦合方式。 m e m o r ym e m o r y i m a g e o i m a g e l i m a g c 2 i m a g e 3 s h a n d m e m o c o f 鳓 c o f e l c o 2 c o r c 3 t c 俎 d a 掘 = : b s s s h a r c d m e m o r v c o 托= o c o r e l c o r e 2 c o n 3 图2 - 2m u l t i p l ei 珊毽e 模型图2 3s i n g l ei m a g e 模型 第二章多核技术与多核多系统技术 多核系统软件模型 该多核系统软件模型主要分为控制平面,数据平面,底层驱动三部分。控制 平面运行在一个单独的c o r e t h r e a d 上,主要功能为系统控制和系统管理,系统 控制主要包括链路层控制,路由协议控制,业务处理控制等,系统管理主要有配 置管理,文件管理等。数据平面运行在多个c o r e 厂r h r e a d 上,负责完成报文的转 发,过滤,加密解密,封装解封装等;底层驱动负责完成系统设备的初始化并 提供设备操作a p i 供上层应用模块使用,主要功能有b 0 0 t r o m ( 引导系统启动) , b s p ( 初始化c p u ,内存,总线等) ,设备驱动( 提供设备初始化以及设备操作 相关a p i 供上层软件使用) 。 一控制流- 卜数据流 图2 - 4 多核系统软件模型 本论文基于的多核系统采用a m p ( a s y m m e t r i cm u l t i - p r o c e s s o r ) 架构,多核 控制平面并发处理较为复杂,影响模块广,故多核控制平面暂不采用并发处理的 方式,工作模式与单核c p u 系统基本一致,运行在一个单独的c o r e t h r e a d 上。 多核数据平面再进行数据转发和处理时采用了混合模型的设计,既避免了流水线 模型可扩展性差以及资源利用率低的缺点,同时解决了并行模型对于某些处理开 销大且设计复杂的问题,可以针对不同特性的处理选择不同的处理方式。中断处 理放在运行控制平面的c o r e t h r e a d 或单独的c o r e 厂r h r e a d 上,避免运行数据平面 的c o r e t h r e a d 因频繁的中断处理引起的上下文切换开销及指令流水线被打断带 来的开销。 第二章多核技术与多核多系统技术 2 1 2 多核程序设计 多核程序设计基本上可以参照单c p u 程序设计的方法,但由于多核处理器 自身的特点,如多线程,并行处理,分布式处理等,使得多核程序设计也有着一 些与单核程序设计显著不同的特点【”,比如对临界资源的访问上。下面介绍几种 在多核程序设计中使用较多的方法。 ( 1 ) 自旋锁的使用 多核系统的设计开发需要重点关注临界资源的保护问题,由于多核系统多 个c o r e t h r e a d 并发处理的特点,单系统中的信号量、关中断操作己不能满足多 个c o r e t h r e a d 互斥访问的要求,取而代之的是一种新的机制一自旋锁,自旋锁 的使用开销很大,在多核系统的设计当中应当尽量避免使用自旋锁。常见锁主要 有两种:( 1 ) 自旋锁任意时刻只能有1 个访问者获取锁资源,其他试图获取锁资 源的访问者均需要自旋等待该锁资源;( 2 ) 读写锁,该锁区分读请求和写请求, 任意时刻只能有一个写访问者进入临界区,多个读访问者可以同时进入临界区, 写访问者进入临界区的时候任何其他写访问者和读访问者均不能进入临界区,有 读访问者的时候写访问者不能进入临界区。 使用原则:加锁范围应尽量小,加锁期间不能发生任务切换,有时需和开关 中断配合使用,需要防止死锁; 关中断保护的临界资源是在任务( 多核数据平面的每一个硬件线程可以看作 只有一个任务在运行的处理器) 和中断中都会访问的临界资源,而自旋锁保护的 是多个虚拟处理器( r m i 处理器中的一个硬件线程看作一个虚拟处理器) 并发 访问的临界资源,如果一个临界资源既会在中断中访问,同时也会在多个虚拟处 理器并发访问,对这个临界资源的保护就需要同时使用关中断和自旋锁。标准的 操作是先关中断,然后加自旋锁保护,这样就能保证任何时候只有一个操作者进 入临界区。 ( 2 ) 原子指令的使用 软件处理过程中经常需要进行统计,计数等操作,在单核系统中直接更新 即可,由于多个c o r e t h r e a d 并发执行的特点,多个c o r e t h r e a d 同时访问更新统 计信息会造成统计信息的不准确,通常情况下是采用自旋锁进行临界资源的保护 来保证处理的一致性。鉴于自旋锁开销较大,在关键路径上需要频繁更新统计信 息的时候会对处理效率产生很大的影响。为了解决该问题,一些多核处理器提供 了扩展的原子加法指令,该指令可以在一个指令周期内完成“读取+ 增加指定的 值+ 写回”的过程,使计数信息的更新过程不会因多个c o r e t h r e a d 同时访问而同 时产生混乱,提高了执行效率。为了屏蔽不同硬件平台的差异,平台对上层软件 第二章多核技术与多核多系统技术 统一提供原子加法操作接口,在不同的硬件平台通过不同的实现充分利用硬件的 特性来提高处理的效率。 ( 3 ) 内存镜像技术 内存镜像机制要求每一个c o r e t h r e a d 保留一份临界资源镜像,每个核只对 自己保留的镜像进行访问和修改,在修改的时候发消息通知所有拥有该资源镜像 的其他c o r e t h r e a d ,其他c o r e t h r e a d 在接收到消息后进行同步处理,以保证所 有的c o r e t h r e a d 感知到临界资源的更新,由于每一个c o r e t h r e a d 访问的资源只 有自己会修改,在访问的时候不需要加自旋锁保护。 ( 4 ) c a c h e 的高效利用 处理器中c a c h e 的刷新是以c a c h el i n e 为单位,即访问内存时如果没有命 中c a c h e 中的内容,需要将内存中的信息拷贝到c a c h e 中的时候是一次性拷贝 c a c h el i n e 大小的内存( c a c h el i n e ,组织数据结构时应该尽量将关系密切的数 据结构存放,以提高访问时的c a c h e 命中率,比如下面就是不好的组织方式 u l o n g u l b ”e s n r c p u 】; u l o n g u l p a c k e t s 口、j r c p u 】; 较好的组织方式如下: t y p e d e f s t r u c t u l o n g u l b ”e s ; u l o n gu l p a c k e t s : ) s t a t ; s t a tg _ s t a t 附r - c p u 】; 对于多核系统来说可能存在数据根据c o r e t h r e a d 来进行组织的情况( 例如 每个c o r e t h r e a d 一份表项的情况) ,此种情况应该尽量先把数据组织成数据结构 后再创建该数据结构的数组( 每个c o r e t h r e a d 使用数组中的一个单元) ,这样就 可以避免多个c o r e t h r e a d 在一个c a c h el i n e 中的情况,多个c o r e t h r e a d 的数 据如果在一个c a c h el i n e 中就会导致其中一个c o r e t h r e a d 更新了自己的数据情 况下其他c o r e 厂r h r e a d 访问自己位于这个c a c h el m e 中的数据的时候都需要重新 从二级c a c h e 或内存中读取( 虽然所访问的数据在此之前并没有更改过) ,降低 了系统处理效率。 多核系统中的数据平面以访问信息为主,复杂的控制信息刷新大多在运行控 制平面的c o r e 完成,在设计的时候对于运行在控制平面c o r e 上的适配层处理频 繁更新的全局变量,在定义的时候尽量与数据平面频繁访问的全局变量分开,避 免两者在同一个c a c h el i n e 中导致控制平面c o r e 的频繁写操作使数据平面c o r e 第二章多核技术与多核多系统技术 在访问全局变量的时候需要频繁访问二级c a c h e 。 ( 5 ) v o l a t i l e 的使用 v o l a t i l e 的使用对于在多个c o r e t h r e a d 间共享访问的全局变量,定义时应该 增加v o l a t i l e 声明,以防止编译器将对该变量的操作优先为对寄存器的操作,导 致某个c o r e 厂r h r e a d 改变了全局变量的值,其他的c o r e t h r e a d 访问的信息没有同 步更新。 2 2 多核多系统设计 2 2 1 多核多系统概述 多核c p u 目前得到了比较广泛的应用,许多操作系统都支持多核c p u ,比 如l i n u x 可以通过使用s m p 方式来支持多核c p u ,多个核共同支持一个操作系 统,而本项目中使用的在多核c p u 的不同c o r e 上运行不同的操作系统的方法, 即多核多系统,简称m c m s ( m u h i c o r em u l t i s v s t e m ) 。 通过m c m s 技术,可以使基于多核c p u 的产品在软件特性上较为容易地集 成不同操作系统平台的业务功能,灵活和丰富了软件的系统架构,扩展了与第三 方合作的领域和内容。比如我们开发的o s l 网络操作系统平台是为路由器和交 换机提供的通用操作系统平台,具有极强的路由和转发能力,同时还具有可靠的 v p n 和防火墙能力,o s 2 操作系统平台是我们专门为网络安全设备进行优化过 的操作系统平台,具有极强的网络安全管理能力,能够有效的进行防入侵检测 防御,具有很强的防病毒能力,我们可以方便的将o s l 和0 s 2 作为两个独立的 系统分别运行在预先指定的不同c o r e ,从而提供了高效的转发和复杂的安全业 务能力。 在本论文的m c m s 中,o s l 和o s 2 系统分别控制同一个c p u 的不同的核, 两个系统各自拥有独立的内存区,独立运行,互不干扰,同时可以通过共享内存 区完成系统间的配置和业务交互,m c m s 中的两个系统之间有一定的耦合关系, 但总体上来说是松耦合的,各自拥有自己独立的操作系统控制权,需要注意的是 o s l 和o s 2 两个系统并不是完全对等的,其中o s l 在运行过程中占主导地位。 2 2 2m c m s 通讯接口 综合控制和转发,多核多系统间存在三种交互通道: 虚拟以太网通道承载的是系统间交互的业务报文,虚拟以太网管理通道承载 的是w 曲配置、o s 2 主动发送的控制报文,虚拟串口管理通道承载的业务是c l i 第二章多核技术与多核多系统技术 配置。 盛越串口 串口管理蠢遣 罡拟串口 o s lo s 2 虚报e t h 厦嚣l 盯h 以走管理童羞 厦拟e t h 段走业务殛遘 虚报曰h 图2 5 多核多系统通信模型 如上图所示,每个系统模拟出虚拟以太网口和虚拟串口,作为系统间通讯的 实体。抽象出虚拟实体主要是兼容现有系统架构,便于系统分层,同时使系统间 的通讯看成是两个独立设备间的通讯,上层应用通过虚拟接口完成系统间通讯, 驱动层通过共享内存完成物理层的通讯。 图2 6m c m s 业务报文交互模型 1 3 - 第二章多核技术与多核多系统技术 多核多系统必须在物理内存为系统间通讯预留足够的共享空间用于系统间 的交互,具体大小依赖于产品规格和o s 2 的业务类型。共享内存的管理算法将 在下面的章节中进行详细介绍。 第三章平台内存管理的分析与改进 第三章平台内存管理的分析与改进 本章通过与l i n u x 系统内存管理算法的比较,全面分析了现有网络操作系统 平台的内存管理算法并进行了一定的改进。 3 1l i n u x 物理内存管理 内存作为最重要的系统资源,其分配和释放策略对系统的运行效率起着至关 重要的作用。一个系统的高效性与稳定性往往取决于它的内存管理机制,因此一 个高效的内存管理系统不仅要能够有效地管理系统内存,减少频繁分配和回收内 存而导致的内存碎片,还要尽量提高内存分配和回收的速度来提高系统的运行效 率 8 1 。 l i n u x 对物理内存实行分页管理,频繁的请求和释放同大小的一组连续页框, 必然导致在已分配页框块内分散许多小块的空闲页框,也即所谓的外碎片。另一 方面,如果请求存储器的大小与分配给它的大小不匹配,就会产生另外一种问题, 即所谓的内碎片。l i n u x 采用伙伴算法和s l a b 分配器模式来解决外碎片和内碎片 问题【9 | 。 3 1 1 页框管理 l i n u x 系统采用伙伴算法管理系统页框的分配和回收,该算法对不同的管理 区使用单独的伙伴算法管理,伙伴系统算法把内存中的所有页框按照大小分成 1 0 组不同大小的页块,每块分别包含1 、2 、4 ,5 1 2 个页框。每种不同的 页框都通过一个仔e ea r e as t r u c t 结构体来管理。系统将1o 个仔e ea r e as t r u c t 结 构体组成一个仔e e a r e a 【】数组。仔e e - a r e

温馨提示

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

评论

0/150

提交评论