内存网格关键技术探析的论文.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
内存网格关键技术探析的论文.doc

  内存网格关键技术探析的论文   摘要:内存网格的出现主要借鉴了传统的网格计算技术和集群内存共享技术。本文从动态函数截获,缓存数据组织与管理和异步缓存数据写入三方面探讨了内存网格系统的关键技术。   关键词:内存网格;动态函数截获;异步缓存数据      一 引言      随着计算机技术的发展,cpu和系统主存的性能得到了极大的提高。然而由于io设备的发展相对滞后,磁盘性能逐渐成为了影响计算机整体性能的瓶颈。对于具有频繁、随机磁盘10的数据密集型应用,如onolithic),也就是说它是一个独立的大程序,所有的内核功能构件均可访问任一个内部数据结构和例程。为了方便使用同时又提供了模块化的机制,这就是内核模块。内核模块是可以按照需要动态载入内核和从内核中卸载的代码。内核模块可以不需要重起系统扩展内核的功能。对于linux内核模块,可以用insmod或rmmod命令显式载入或卸载,或者由内核在需要时调用内核守护程序(kerneld)自动载入和卸载。内核模块运行在linux内核空间,可以方便地使用内核提供的系统函数和变量。.cOm从模块程序链接的方式来看,它并不能自由地使用用户空间里定义的函数库,只能使用内核空间中定义的、资源受到限制的函数。内核在内核符号表中维护了一个模块的链表,每个符号表对应一个模块,模块加载进内核时正确地对其进行解释,并将模块作为内核的一部分来执行:加载进内核的模块具有所有的内核权限。模块可以在系统启动时加载到系统中,也可以在系统运行时加载:在不需要时,可以将模块动态卸载,这样就不用每次修改系统的配置时都要重新编译内核了。一般来说,内核模块可以应用于设备驱动、文件系统驱动程序、网络驱动、可执行文件解释器和系统调用等方面。      (二)函数截获   内存网格系统中利用了函数截获(apihooking)的方法来动态改变系统函数执行流程。所谓动态改变,就是指在不修改程序源代码和不覆盖程序在磁盘的存储映像前提下,对程序行为进行修改。   函数截获(api hooking)是获取指定执行代码控制权的基本方法[44,45]。它提供了一种在不修改程序源代码的前提下,动态改变操作系统行为的便捷方法。在众多现代操作系统中,使用函数截获方法的间谍软件(spying soft)通常由至少两个部分组成,即一个截获服务器   chook server)和一个截获驱动器(hookdriver)。截获驱动器主要完成实际的截获功能,截获服务器则负责将截获驱动器在特定时刻注入(inject到目标进程。截获服务器同时管理驱动器并且选择性的接受来自驱动器的信息。   三 缓存数据组织与管理      (一)模型设计   内存网格系统扩展了传统的系统存储层次结构,在主存和磁盘之间添加了内存网格层。内存网格层主要由内存服务节点提供的空闲内存空间构成,内存客户节点通过利用这些空闲内存作为本地磁疵缓存的扩展,从而加速系统磁盘10的性能。但是对于内存服务节点提供的空闲内存空间,如何有效的对其进行组织和管理就成为了一个关键问题。   在基于协作缓存的改进模型中,内存网格的内存客户节点和提供其服务的内存服务节点比例为1:n。因此我们采用了基数树和lru链相结合的方式来解决查找和定位的问题,基数树用于解决缓存数据的定位问题而存在于内存客户节点中,lru链用于对缓存数据的更新和替换存在于内存服务节点中。   在ram grid原型系统的最初设计过程中,为了简化管理过程,我们规定一个内存客户节点在某一时刻有且尽可能使用一个内存服务节点的服务。为了能够对内存服务节点中的空闲内存资源进行有效管理,内存网格系统选择在内存客户节点中实现了缓存数据组织和管理模块。缓存数据组织和管理模块对缓存数据进行本地管理,管理信息包括内存客户节点所使用的内存服务节点上数据页帧的状态信息、存储位置等。为了能够达到这些目标,我们改变了模型中的缓存方案,使用了基于lru和hash双链的数据组织和管理方法。   lru链和hash链的双链管理结构在操作系统设计中由来已久。在开源操作系统linux的早期版本中,对于数据结构的管理与组织就大量的使用了这种经典的双链结构。其中,lru链主要对数据结构进行更新和替换:hash链主要用于数据结构的快速查找和定位。通过双链结构的管理和组织,当内存客户节点通过本地文件系统进行磁盘10操作时,则可以利用远地内存服务节点的内存来获取数据,从而减小内存客户节点磁盘开销,提升系统性能。      (二)cache一致性问题   在单处理器(uniprocessor)系统中,由于处理器与10子系统看到的内存视图不同而产生了cache一致性问题。这是因为10子系统直接读写的是内存区域:处理器在写回(ultiprocesso

文档评论(0)

ggkkppp + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档