探析内存网格关键技术毕业论文(2)
2014-08-09 02:23
导读:对于一个需要利用函数截获的系统来说,通常需要依据函数截获的目标和使用环境来决定具体采用何种函数截获方法。首先,我们需要考虑设计目标是只针
对于一个需要利用函数截获的系统来说,通常需要依据函数截获的目标和使用环境来决定具体采用何种函数截获方法。首先,我们需要考虑设计目标是只针对单一应用进行截获还是需要构建一个系统级的截获方案。比如,如果只需要监控一个特定应用,那么就不需要对一个系统级的函数进行截获。
一个截获系统(Hook System)通常由至少两个部分组成,即一个截获服务器
CHook Server)和一个截获驱动器(HookDriver)。截获驱动器主要完成实际的截获功能,截获服务器则负责将截获驱动器在特定时刻注入(inject到目标进程。截获服务器同时管理驱动器并且选择性的接受来自驱动器的信息。
三 缓存数据组织与管理
(一)模型设计
内存网格系统扩展了传统的系统存储层次结构,在主存和磁盘之间添加了内存网格层。内存网格层主要由内存服务节点提供的空闲内存空间构成,内存客户节点通过利用这些空闲内存作为本地磁疵缓存的扩展,从而加速系统磁盘10的性能。但是对于内存服务节点提供的空闲内存空间,如何有效的对其进行组织和管理就成为了一个关键问题。
在基于协作缓存的改进模型中,内存网格的内存客户节点和提供其服务的内存服务节点比例为1:n。因此我们采用了基数树和LRU链相结合的方式来解决查找和定位的问题,基数树用于解决缓存数据的定位问题而存在于内存客户节点中,LRU链用于对缓存数据的更新和替换存在于内存服务节点中。
在RAM Grid原型系统的最初设计过程中,为了简化管理过程,我们规定一个内存客户节点在某一时刻有且尽可能使用一个内存服务节点的服务。为了能够对内存服务节点中的空闲内存资源进行有效管理,内存网格系统选择在内存客户节点中实现了缓存数据组织和管理模块。缓存数据组织和管理模块对缓存数据进行本地管理,管理信息包括内存客户节点所使用的内存服务节点上数据页帧的状态信息、存储位置等。为了能够达到这些目标,我们改变了模型中的缓存方案,使用了基于LRU和Hash双链的数据组织和管理方法。
(科教作文网http://zw.ΝsΕac.cOM编辑) LRU链和Hash链的双链管理结构在操作系统设计中由来已久。在开源操作系统Linux的早期版本中,对于数据结构的管理与组织就大量的使用了这种经典的双链结构。其中,LRU链主要对数据结构进行更新和替换:Hash链主要用于数据结构的快速查找和定位。通过双链结构的管理和组织,当内存客户节点通过本地文件系统进行磁盘10操作时,则可以利用远地内存服务节点的内存来获取数据,从而减小内存客户节点磁盘开销,提升系统性能。
(二)Cache一致性问题
在单处理器(uniprocessor)系统中,由于处理器与10子系统看到的内存视图不同而产生了Cache一致性问题。这是因为10子系统直接读写的是内存区域:处理器