论文部分内容阅读
监控工具对于系统设计具有十分重要的作用,它获取系统的运行数据。这些数据反映了系统的运行状态,从而能够分析系统负载、效率等指标。目前国内外流行的磁盘监控软件多注重对磁盘基本性能的测试,如磁盘的数据传输率、寻道时间、磁盘工作噪音和工作温度等。但对于Windows平台上的应用程序产生的I/O负载情况缺乏详细的获取和记录手段。
本研究采用Windows驱动程序模型(WDM)设备过滤驱动技术,设计出了基于Windows的块请求跟踪系统。这个系统能够实现对磁盘的I/O读、写请求包(IRP)的拦截、分析,并能自动获取磁盘I/O操作信息。在现有的Windows驱动程序模型之上,分析应用程序与驱动程序的通信方式,用户缓冲区访问策略和完成例程的处理过程等,设计出基于Windows的块请求跟踪系统,给出了块请求跟踪系统的设计原理,需求分析,系统结构,主要的数据结构和系统数据流程。整个系统分为内核态模块和用户态模块,分别给出了这两个模块的设计流程和实现方式。最终完成了系统的设计、编译、安装至调试这一个完整的驱动程序开发过程。测试表明,基于Windows的块请求跟踪系统运行良好,能够实时地向用户反馈所需的详细磁盘I/O请求信息,通过跟踪Word,QQ,流媒体播放和虚拟机这五种典型的应用程序的I/O请求,分析了这些程序块I/O负载情况。