描述
开 本: 16开纸 张: 胶版纸包 装: 平装是否套装: 否国际标准书号ISBN: 9787121252648
全书包含了以上主要关键技术的实现思路与技术细节,可供计算机专业相关工程技术人员、研究人员参考。
第1章绪论
1.1虚拟计算环境
1.2虚拟计算环境的可靠性
1.3资源监控与动态调整
1.4内存泄漏检测
1.5小结
第2章虚拟计算环境可靠性的相关研究
2.1内存泄漏国内外研究现状
2.1.1与内存泄漏静态检测相关的研究工作
2.1.2与内存泄漏动态检测相关的研究工作
2.1.3存在的问题
2.2虚拟计算环境内存泄漏检测技术的相关研究
2.2.1概述
2.2.2虚拟机性能信息的获取
2.2.3虚拟机内存管理
2.2.4基于虚拟环境的程序调试
2.2.5基于虚拟计算环境的入侵检测
2.2.6虚拟计算环境下存在的语义障碍
2.3国内外典型的资源监测与资源调整工具
2.3.1国内外相关研究
2.3.2代表性资源监控系统的实现
2.4小结
第3章虚拟计算环境及内存泄漏检测基础
3.1虚拟计算环境基础
3.1.1概述
3.1.2CPU虚拟化
3.1.3内存虚拟化
3.1.4输入/输出设备虚拟化
3.1.5Xen的CPU虚拟化模型
3.1.6Xen虚拟计算框架
3.1.7虚拟计算环境下不同抽象级别间的语义障碍
3.2内存泄漏检测技术基础
3.2.1动态内存管理
3.2.2动态代码执行分析
3.2.3目标进程的控制方法
3.3小结
第4章多目标监测的通信进程管理
4.1冲突问题描述
4.2CSP理论
4.3基于CSP的分布式内存泄漏检测分析系统模型
4.4模型的正确性证明
4.5小结
第5章基于自省机制的运行时内存泄漏检测机制
5.1虚拟计算环境中的监控机制与自省机制
5.2基于自省机制的运行时内存泄漏检测模型
5.2.1基于自省机制检测的流模型
5.2.2内存泄漏判定基础
5.3内存泄漏确认规则
5.3.1实现内存对象分组
5.3.2检测潜在的内存泄漏
5.3.3内存泄漏的确认规则
5.4虚拟计算环境内存泄漏检测机制的实现基础
5.5VMLD中4个基础模块的职责
5.5.1内部缓冲区维护模块(MaintainBuffer)
5.5.2控制模块(Controller)
5.5.3拦截模块(Interceptor)
5.5.4监视模块(Monitor)
5.6实验及结果分析
5.6.1有效性实验分析
5.6.2性能实验分析
5.7小结
第6章虚拟计算环境资源监控系统框架
6.1设计思路
6.2系统部署结构
6.3XResMonitor系统功能模块
6.3.1资源信息监测模块
6.3.2资源调整模块
6.4XResMonitor模块工作流程
6.4.1资源信息监测流程
6.4.2资源调整流程
6.5XResMonitor系统特色
6.6小结
第7章虚拟计算环境资源监控系统的关键技术
7.1虚拟机资源信息收集策略
7.1.1Xen虚拟机的信息收集策略
7.1.2XResMonitor系统的信息收集策略
7.2资源实时监测
7.2.1内存资源实时监测
7.2.2CPU资源实时监测
7.3资源调整策略
7.3.1内存资源调整策略
7.3.2VCPU资源调整
7.4XResMonitor监测系统的原型实现
7.4.1原型系统的实现环境
7.4.2功能实现评估
7.4.3原型系统的性能评估
7.5小结
第8章基于Xen的内存泄漏检测分析系统MLDA模块级关键技术
8.1MLDA系统框架描述
8.1.1控制模块
8.1.2侵入模块
8.1.3拦截模块
8.1.4监视模块
8.1.5内核支持模块
8.1.6数据处理与存储模块
8.1.7分析模块
8.1.8用户交互模块
8.1.9模块协作
8.2控制模块和监视模块实现的关键技术
8.2.1Windows下动态链接库注入技术
8.2.2Linux下动态链接库注入技术
8.3拦截模块和监视模块实现的关键技术
8.3.1代码内存保护解除的实现
8.3.2代码复制的实现
8.3.3运行流程重定向代码的生成
8.3.4堆访问情况的捕捉
8.4监视模块和内核代码交互实现的关键技术
8.5内核代码访问内存页表的实现
8.6数据收集模块和数据处理模块交互的实现
8.7数据处理过程
8.8小结
第9章MLDA的系统级技术实现
9.1系统部署
9.1.1Xen内核修改部分
9.1.2监视端的安装
9.1.3Windows下的安装
9.1.4Linux下的安装
9.2MLDA系统结构
9.3MLDA系统的基础功能
9.3.1动态链接库注入
9.3.2超级调用
9.3.3域间通信
9.3.4进程堆内存地址空间页表访问
9.3.5内存操作行为的捕捉
9.4MLDA内存泄漏检测
9.5MLDA内存泄漏预测
9.6小结
第10章GDI内存泄漏检测
10.1概述
10.2GDI拦截模块
10.2.1注入DLL模块
10.2.2修改函数导入表和模块导出表的地址
10.3GDI监控模块
10.3.1监控数据的组织
10.3.2监控数据的采集过程及存储策略
10.4GDI分析模块
10.5GDI可视化模块
10.5.1显示GDI内存泄漏嫌疑和故障信息
10.5.2生成监测报告
第11章结束语
11.1总结
11.2未来工作
附录A基于Xen的内存泄漏检测技术的部分源代码
参考文献
前 言
随着云计算技术的不断发展,现代软件的规模越来越大、复杂性越来越高,其可靠性也越来越难以保障,这种挑战性问题与云计算的虚拟化技术密切相关。在云计算的虚拟计算环境中,为了提高系统服务的可靠性,不仅要对系统的资源占用进行运行时监控调整,而且要对系统所发生的内存泄漏进行检测与分析,这种可靠性保障技术尤其是运行时资源调整与不停机服务器应用程序的内存泄漏检测极具挑战性。
内存泄漏是导致系统可靠性降低的重要因素之一,它不仅会使应用程序申请动态内存失败,导致服务中止,严重时会导致整个应用系统因资源耗竭而崩溃。对于长期运行在服务器上的操作系统及大量服务,发生内存泄漏会带来严重的后果,可能会导致系统级服务中止。内存泄漏问题长期以来一直困扰很多开发人员,常常使项目交付使用的时间大幅延期,不仅降低了开发效率,而且影响了最终软件产品的质量,进而给软件企业造成了直接的经济损失。
内存泄漏是指已经被申请的内存资源没有被合理地释放,从而导致这部分资源不能被系统重新利用的一种现象。内存泄漏广泛存在或者隐藏于程序之中,被泄漏的内存资源不能被重新利用且不再被访问。如果被泄漏的是虚拟内存,则内存泄漏会使得应用程序的虚拟内存空间耗竭,导致任务的中断和失败;如果被泄漏的是物理内存,则整个系统减少了能够使用的物理地址。内存泄漏会使应用程序申请动态内存失败,导致服务中止,严重时会导致整个系统因资源耗竭而崩溃。内存泄漏不仅会减少可用的内核虚拟内存地址空间,而且还会不断蚕食整个操作系统,系统可用的物理内存页面,导致整机不得不重新启动。对于运行时间很短的程序,内存泄漏一般不是问题,但是对于长期运行的程序,如通信领域软件、嵌入式敏感软件系统等行业性软件、运行在服务器上的服务和操作系统本身,内存泄漏会带来严重的后果,可能会导致系统服务中止而造成非常严重的经济损失,并可能带来严重的社会问题。
比如,通信软件作为一类特殊领域的软件,不仅存在监控程序、系统服务程序和应用程序等多种形态,而且它们的部署平台不尽相同,其运行的软件环境也千差万别。这些都给通信软件的内存泄漏检测带来了一系列的挑战性问题。例如,针对运行在不同操作系统、硬件环境等异构平台下的各种不同形态程序,如何有效地判定内存泄漏嫌疑,并准确地进行故障定位?如何高效地监控这些程序对有限内存资源的申请、使用和释放?又如何针对动态变化的运行平台,制定出科学合理的监控策略等。因此,研究和开发跨平台的服务器应用程序内存泄漏检测的关键技术具有重要的意义。
随着云计算、大数据时代的来临,软件系统和硬件环境的异构性将更为突出、更加明显,软件企业(当然包括通信软件生产商)不得不面对这一新的计算特点,也不得不适应这一新的计算环境。将虚拟化技术应用于跨平台内存泄漏检测之上,以虚拟化平台构建内存泄漏检测系统,可以利用虚拟机管理器的一致性,在不同操作系统之间保持同样的实现方式。某些系统内核的关键数据对于猜测内存泄漏现象是否发生具有重大的意义,但通常情况下因操作系统对这些数据加以保护而不容易取得。利用虚拟机管理器特权则可以很容易获得这些数据。对于构建内存泄漏检测框架过程中遇到的域间通信,虚拟化计算平台上也可以利用这些操作系统运行在同一套硬件上的特性提供高效率的解决方案。
全书共11章,第1章介绍虚拟计算环境可靠性问题两个方面的主要内容,即资源的监控调整与内存泄漏检测的背景信息。第2章从内存泄漏的研究现状、虚拟计算环境下的内存泄漏检测方法、虚拟计算资源监测与资源调整等方面进行了概述。第3章介绍基于Xen虚拟机的虚拟计算环境中与内存泄漏检测相关的虚拟化基础理论。第4章基于CSP理论构建一种基于Xen虚拟化平台的内存泄漏检测模型,给出其实现方法;讨论模型内系统成员之间的交互,并基于CSP进行了正确性证明。第5章介绍虚拟化体系结构中的监控机制与自省机制,然后提出基于自省机制的运行时内存泄漏检测模型,并构建原型实现与实验分析,给出实验结果与分析。第6章在原有工作XMMC框架上,基于Xen虚拟计算环境提出XResMonitor资源监测系统框架。首先对资源监测调整系统XResMonitor的设计思路进行简单介绍,并给出其部署结构和总体结构;详细描述其模块结构及各模块的功能及各模块之间的关系,并介绍整个系统框架及各模块的工作流程,总结了XResMonitor系统的主要特色。第7章介绍XResMonitor系统的设计思路和功能模块。首先对Xen虚拟机现有的资源信息收集的策略进行介绍,并引出适合XResMonitor系统的资源信息收集策略;其次介绍XResMonitor系统资源监测的工作原理和关键技术实现,包括对内存资源和VCPU资源的监测;最后给出XResMonitor系统对内存资源和VCPU资源调整的工作原理和关键技术。第8章介绍MLDA系统框架模块级层面的内存泄漏检测分析关键技术。第9章从系统级角度,对虚拟计算环境的内存泄漏检测分析系统MLDA的技术实现进行介绍。第10章介绍GDI内存泄漏检测分析,是本书相关内容的补充。该章内容并不是基于Xen层面的成果,而是运行于Windows层面的检测与分析,因为集成在基于Xen虚拟环境上作为一个统一的工作,故放在后面章节进行介绍。第11章对本书进行的全面总结。
本书较全面地介绍了国内外内存泄漏检测的相关研究和成果,即虚拟化技术实现过程中需要解决的若干关键技术,这些技术支撑着虚拟机管理器功能的核心技术。本书还主要研究了Xen虚拟计算环境下资源监控系统XResMonitor的资源监测收集策略和资源调整策略,设计并实现一种基于Xen虚拟计算环境的资源监控与内存泄漏检测的MLDA系统。
我们与中邮科通信技术股份有限公司合作,受福建省科技计划重大项目资助,开展了“跨平台内存泄漏检测系统的关键技术研发及产业化”(2011H6006)的立项研究,本书全面总结了本项目研究及其拓展的主要内容。
本书获得福建师范大学软件学院软件工程省级重点学科建设的资助,该资助为本书的顺利出版提供了非常重要的支持。在此,也特别感谢福建师范大学科研处的有关领导、软件学院姚志强院长、蔡声镇副院长、倪友聪副教授、杜欣副教授等有关领导和老师的支持和帮助,感谢软件学院提供了相关研究开发所必需的各种条件;姜军、胡耀、陈明珍、韩佳、李鹏澎等研究生同学,他们为本项目做了大量的研究工作,进行了编程实现,付出了艰辛和努力,为本书部分内容的撰写也提供了很重要的帮助。电子工业出版社的王晓庆编辑为本书的出版做了大量的工作,对此深表感谢。最后,特别感谢我的家人对我的支持。
本书错误之处在所难免,敬请各位读者批评指正。
肖如良
2014年11月5日
评论
还没有评论。