一种用于软件加速的方法和装置的制造方法_4

文档序号:8258085阅读:来源:国知局
[0063]在用户操作系统内存不充裕的场景下,在该软件的学习结果显示需要预取的文件数量较大并且每个文件内部读取的片段数据较少时,可以通过采用将文件片段合并的方式进一步加快文件预取的速率。具体而言,根据学习结果中的文件名称、每次文件读取的偏移和每次文件读取的长度确定出需要读取的一个或一个以上文件上相应的一个或一个以上片段,将该一个或一个以上文件上的该相应的一个或一个以上片段合并为一个组合文件,并为组合文件建立片段索引,对组合文件进行磁盘整理以便组合文件在磁盘上连续存放,然后将经磁盘整理的组合文件存入内存的文件预取缓冲区。例如,根据学习结果中的文件名称、每次文件读取的偏移和每次文件读取的长度确定出软件启动读取了文件A的第1、3、10,35片段、文件B的第1、2、25、55片段及文件C的第9、15、33片段;将文件A、B与C中所有需要预取的片段合成一个新的组合文件X,并建立相应的索引,确保读取文件A、B与C中的相应片段时能够定位到组合文件X中的某一片段;对组合文件X进行磁盘整理,确保组合文件X在磁盘上连续存放,然后将经磁盘整理的组合文件存入内存的文件预取缓冲区。在采用上述方式对所需读取的文件片段进行合并处理后,当待加速软件启动打开文件A、B或C中需要预取的任意一个片段时,均可以触发文件预取模块对组合文件X进行预取,且仅进行一次预取操作即可满足所有的文件预取需求,能够进一步减少预取次数,加快文件预取操作。
[0064]通过文件预取模块对待加速软件所需读取的文件数据进行预取后,第三判断模块204当对打开的文件进行读取时,通过文件预取驱动将截获该待加速软件发起的文件读取请求,对于每个文件读取请求,文件系统过滤驱动解析需要读取的文件名称、读取偏移和读取长度等信息,并根据解析得到的信息查询文件预取记录表以确定需要读取的文件数据是否位于文件预取缓冲区,若需要读取的文件数据位于文件预取缓冲区,则通过处理模块205从文件预取缓冲区复制出对应的文件数据,以完成本次读取操作。
[0065]在上面描述的实施方式中,文件预取模块203均采用由相应的文件打开操作实时触发的方式,除此之外,还可以设置单独的触发器模块,采用由触发器模块单独触发的方式来进行文件预取操作。具体地,在启动待加速软件之前,判断待加速软件是否已经包含在学习结果中,若是,则由触发器模块根据学习结果中软件启动所需读取的文件名称对各个所需读取的文件发起打开操作以触发文件预取模块203根据学习结果中的文件名称、每次文件读取的偏移和每次文件读取的长度预取所打开的文件存入文件预取缓冲区,并建立文件预取记录表。例如,可以额外设置触发器模块,该触发器模块随操作系统的启动而启动,触发器模块启动后循环检测操作系统的当前状态,检测操作系统是否完成启动所需的主要工作且处于空闲状态,检测的方法可包括但不限于检测CPU利用率、磁盘负载、内存负载等信息。触发器模块确定操作系统处于平稳状态后,根据学习结果中一款软件启动所需读取的文件名称,对该软件各个所需读取的文件发起打开操作以触发文件预取模块根据学习结果中的文件名称、每次文件读取的偏移和每次文件读取的长度预取所打开的文件存入文件预取缓冲区,并建立文件预取记录表。
[0066]在本发明的一些实施方式中,若待加速软件未包含在学习结果中,也就是说,在待加速软件首次运行的情形下,用于软件加速的装置可进一步包括学习模块,学习模块用于获取待加速软件启动过程中的文件操作行为,文件操作行为包括所需读取的文件名称、文件的读取顺序、每次文件读取的偏移和每次文件读取的长度。其中,学习模块学习一款软件的启动过程中文件操作行为的方式包括但不限于使用文件系统过滤驱动、Hook等技术。
[0067]在本发明的一些实施方式中,在待加速软件首次运行的情形下,用于软件加速的装置可进一步包括磁盘预取模块。在启动学习模块开始获取软件启动过程中的文件操作行为之后,启动磁盘预取模块对待加速软件启动过程中所需读取的文件数据进行磁盘预取,并建立磁盘预取记录表,磁盘预取包括通过磁盘过滤驱动截获系统输入/输出管理器发给磁盘的第一输入/输出请求包IRP读请求,并根据第一 IRP读请求中的读取偏移和读取长度查询磁盘过滤驱动的磁盘预取缓冲区中维护的磁盘预取记录表以判断第一 IRP读请求所需读取的数据是否位于磁盘过滤驱动的磁盘预取缓冲区中,若是,则从磁盘预取缓冲区复制出第一 IRP读请求所需读取的磁盘数据以完成本次读取操作,若否,则将第一 IRP读请求进行阻塞,构造比第一 IRP读请求的读取长度长的第二 IRP读请求,将根据第二 IRP读请求的读取长度读取的磁盘数据插入磁盘预取缓冲区,并将第二 IRP读请求的读取偏移和缓存大小插入磁盘预取记录表,然后根据第一 IRP读请求从磁盘预取缓冲区复制出所需读取的数据以完成本次读取操作。例如,在启动学习模块之后,由应用层触发程序通知磁盘过滤驱动开始磁盘预取。磁盘过滤驱动在获取相应的通知后,开始磁盘预取,并建立磁盘预取记录表,其中磁盘预取记录表包括预取的磁盘数据的读取偏移和读取长度等信息。磁盘过滤驱动截获系统I/o管理器发送给磁盘的IRP读请求,根据该IRP读请求获取需要读取的磁盘数据的偏移和长度,根据需要读取的磁盘数据的偏移和长度查询磁盘过滤驱动内部维护的磁盘预取缓冲区中的磁盘预取记录表,判断本次需要读取的磁盘数据是否位于磁盘过滤驱动维护的磁盘预取缓冲区中,若在磁盘预取缓冲区中查询到本次需要读取的磁盘数据,则从磁盘预取缓冲区中复制需要读取的磁盘数据到IRP的输出缓冲区,完成该IRP读请求,并通知I/O管理器此次读取操作完成。若在磁盘预取缓冲区中未查询到本次需要读取的磁盘数据,也就是说,本次需要读取的磁盘数据未在磁盘过滤驱动维护的内存缓冲区中,则将该IRP读请求(视为原始IRP请求)进行pending (阻塞),同时构造与原始IRP读请求相比读取长度长的新IRP读请求,并将该新IRP读请求发送至磁盘驱动。原始IRP请求的读取长度通常为4KB,新IRP读请求将原先的读取长度(例如,4KB)扩展为64KB或128KB,这相当于将原先需要获取的扇区以及该扇区之后连续的若干扇区同时读取至磁盘过滤驱动的内存缓冲区中。待磁盘区域完成新IRP读请求之后,将读取到的数据(例如,64KB或128KB)插入磁盘预取缓冲区,将新IRP读请求的读取偏移和缓存大小插入磁盘预取记录表中,同时根据原始IRP读请求的读取长度(例如,4KB)将相应的磁盘数据复制至对应的IRP内存缓冲区,完成该IRP读请求。本发明通过构建比原始IRP读请求的读取长度长的新IRP读请求进行磁盘数据预取,更进一步提高了磁盘预取的速度,缩短了文件读取的时间,加速了软件的启动过程。当磁盘过滤驱动维护的磁盘预取缓冲区填满之后,磁盘过滤驱动不再进行新的预取操作,对于每次截获的IRP读请求,仅根据从IRP读请求获取的读取偏移和读取长度查询磁盘过滤驱动的磁盘预取缓冲区中维护的磁盘预取记录表以判断该IRP读请求所需读取的数据是否位于磁盘预取缓冲区,若需要读取的磁盘数据位于磁盘预取缓冲区,则从磁盘预取缓冲区中复制出相应的磁盘数据,完成该IRP请求,若需要读取的磁盘数据不位于磁盘预取缓冲区,则不构造新IRP进行预取操作,仅将原始IRP请求继续向下层驱动进行传递。当软件启动完毕之后,由应用层触发器通知磁盘过滤驱动停止预取操作。磁盘过滤驱动获取该通知后,停止所有的查询与预取操作,清空内部维护的磁盘预取缓冲区和磁盘预取记录表,此后对于获取到的所有IRP均直接传递给下层驱动程序,不进行额外处理。
[0068]在本发明的一些实施实施方式中,学习模块在待加速软件启动完毕之后,将获取的启动过程中的文件操作行为输出作为学习结果,用于软件加速的装置可进一步包括磁盘整理模块,磁盘整理模块根据学习结果进行磁盘整理。在一些情形下,磁盘整理模块根据学习结果进行磁盘整理可进一步包括:根据学习结果中的所需读取的文件名称和文件的读取顺序对磁盘进行整理以便所需读取的文件在磁盘上按照文件的读取顺序存放。具体地,根据学习结果将软件需要读取的各个文件按照读取顺序进行磁盘整理,以便需要读取的文件在磁盘上按照读取的顺序进行存放,不一定必须连续存放,并且尽量确保每个文件内部在磁盘连续的扇区存储。在另外一些情形下,磁盘整理模块根据学习结果进行磁盘整理可进一步包括:根据学习结果中的所需读取的文件名称进行磁盘整理以便所需读取的文件数据在连续的磁盘扇区存储。具体地,可根据学习结果中一款软件所需读取的文件名称对所需读取的各个文件分别进行磁盘整理,以便各个文件均在连续的磁盘扇区中存储。除了上述两种磁盘文件整理方式,还可以采用全文件整理的方式,具体地,可以将软件安装目录以及子目录下所有的文件进行磁盘整理操作,以便每个文件内部在磁盘上顺序、连续的存放。本发明实施方式由磁盘整理模块根据学习结果进行磁盘整理,以便软件启动所需的文件在磁盘上连续、相邻的扇区内存储,显著减少了磁盘的寻道次数和寻道时间,改善了文件数据的读取速度。
[0069]通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件结合硬件平台的方式来实现,当然也可以全部通过硬件来实施。基于这样的理解,本发明的技术方案对【背景技术】做出贡献的全部或者部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,智能手机或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
[0070]本发明说明书中使用的术语和措辞仅仅为了举例说明,并不意味构成限定。本领域技术人员应当理解,在不脱离所公开的实施方式的基本原理的前提下,对上述实施方式中的各细节可进行各种变化。因此,本发明的范围只由权利要求确定,在权利要求中,除非另有说明,所有的术语应按最宽泛合理的意思进行理解。
【主权项】
1.一种用于
当前第4页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1