异步I/O系统文件打开/关闭的控制方法、装置及设备制造方法及图纸

技术编号:36862206 阅读:55 留言:0更新日期:2023-03-15 18:39
本发明专利技术提供一种异步I/O系统文件打开/关闭的控制方法、装置及设备,该方法包括:响应于文件打开申请,获取待打开文件的当前打开/关闭状态,若当前打开/关闭状态指示待打开文件处于打开状态,则不再重复打开该文件;响应于文件关闭申请,将待关闭文件的文件未来访问计数减少1,根据待关闭文件的文件未来访问计数确定是否需要立即关闭待关闭文件。通过当前打开/关闭状态的指示,避免对文件的重复打开操作,有效地减少了文件的打开次数;通过文件未来访问计数的指示,确定是否关闭文件,避免在不必要的情况下对文件进行关闭操作,有效地减少了文件的关闭次数。有效减少异步I/O系统文件打开/关闭次数,进而提高异步I/O系统的工作效率。效率。效率。

【技术实现步骤摘要】
异步I/O系统文件打开/关闭的控制方法、装置及设备


[0001]本专利技术实施例涉及I/O请求处理
,具体涉及一种异步I/O系统文件打开/关闭的控制方法、装置及设备。

技术介绍

[0002]随着计算机计算性能的提升,应用程序的计算规模也随之水涨船高,然而计算机I/O性能的提升速度远远跟不上计算性能的提升速度,I/O过程成为了不少应用程序的性能瓶颈。为了尽可能地提升I/O性能,现代高性能计算机在硬件层面使用了可进行并行存取的磁盘阵列,在系统层面引入了并行文件系统来尽可能提升计算机层面I/O性能的上限。为了让应用程序充分利用现代高性能计算机的I/O性能,并行I/O系统应运而生;而为了进一步减少I/O开销对程序性能的影响,又出现了异步I/O系统,使I/O操作和应用程序的计算过程能够在时间上重叠。此外,当前还出现了并行I/O系统和异步I/O系统的合体,即异步并行I/O系统。
[0003]异步I/O系统(包括异步并行I/O系统)在应用程序发起I/O请求时,会将I/O请求缓存到队列中,而异步I/O系统中的I/O进程或I/O线程会从队列中取出并处理完各I/O请求。各条I/O请求记录了读入或写出数据所对应文件的文件名信息。异步I/O系统必须要有独立于应用程序的文件打开/关闭控制;如果没有,则可能出现因应用程序提前关闭了异步I/O请求对应的文件,而使得无法进行数据读/写的情况。
[0004]对于文件打开/关闭控制的实现,现有技术中通常的做法是:异步I/O系统在执行一条异步I/O请求时,先打开该请求对应的文件,然后进行数据读/写,在完成数据读/写后立即关闭文件。尽管这种方法简单易实现,但其使得每个I/O请求都会打开和关闭文件一次,导致文件打开/关闭操作十分频繁,而文件打开/关闭操作有明显开销,尤其是在有大量进程的并行I/O情况下。综上所述,现有方法会降低异步I/O系统的工作效率。

技术实现思路

[0005]本专利技术实施例提供一种异步I/O系统文件打开/关闭的控制方法、装置及设备,用以解决现有技术中文件打开/关闭次数多,效率低的问题。
[0006]第一方面,本专利技术实施例提供一种异步I/O系统文件打开/关闭的控制方法,包括:响应于异步I/O系统在开始处理I/O请求时发起的文件打开申请,获取待打开文件的文件名,从异步I/O系统的文件打开/关闭历史信息表中获取待打开文件的当前打开/关闭状态,若当前打开/关闭状态指示待打开文件处于打开状态,则不再重复打开该文件;若当前打开/关闭状态指示待打开文件处于关闭状态,则打开该文件并在文件打开/关闭历史信息表中将该文件的当前打开/关闭状态更新为打开状态;文件打开/关闭历史信息表包括至少一条记录,每条记录包括文件名、当前打开/关闭状态和文件未来访问计数;响应于异步I/O系统在处理完I/O请求时发起的文件关闭申请,获取待关闭文件的文件名,将待关闭文件的文件未来访问计数减少1,根据待关闭文件的文件未来访问计数确
定是否需要立即关闭待关闭文件。
[0007]一种实施例中,响应于异步I/O系统在开始处理I/O请求时发起的文件打开申请之前,所述方法还包括:响应于应用程序发起的异步I/O请求,获取异步I/O请求对应的文件名;根据异步I/O请求对应的文件名在文件打开/关闭历史信息表进行查找;若存在异步I/O请求对应的文件名的记录,则将该记录的文件未来访问计数增加1;若不存在异步I/O请求对应的文件名的记录,则在文件打开/关闭历史信息表中新增一条记录,并将该记录的文件名设置为异步I/O请求对应的文件名,当前打开/关闭状态设置为关闭状态,文件未来访问计数设置为1。
[0008]一种实施例中,当前打开/关闭状态采用指针表示,打开状态下指针为对应的文件指针,关闭状态下指针为空。
[0009]一种实施例中,所述方法还包括:获取异步I/O系统中打开的文件数量;若打开的文件数量大于预设文件数量阈值时,则关闭文件未来访问计数最小的文件,直至异步I/O系统中打开的文件数量小于等于预设文件数量阈值。
[0010]一种实施例中,根据待关闭文件的文件未来访问计数确定是否需要立即关闭待关闭文件,包括:当待关闭文件的文件未来访问计数从1变为0时,立即关闭待关闭文件。
[0011]一种实施例中,根据待关闭文件的文件未来访问计数确定是否需要立即关闭待关闭文件,包括:当待关闭文件的文件未来访问计数从1变为0时,不关闭待关闭文件,并将待关闭文件的当前打开/关闭状态更新为延时关闭。
[0012]一种实施例中,文件打开/关闭历史信息表的记录还包括延时关闭后I/O请求计数,所述方法还包括:当一个文件的文件未来访问计数从1变为0时,将该文件的延时关闭后I/O请求计数设置为0:响应于应用程序发起的异步I/O请求,将文件打开/关闭历史信息表中文件未来访问计数为0的各条记录中的延时关闭后I/O请求计数增加1;当文件的文件未来访问计数为0,且延时关闭后I/O请求计数大于等于预设发起请求数阈值时,立即关闭该文件。
[0013]一种实施例中,所述方法还包括:获取异步I/O系统中处于延时关闭状态的文件数量;当异步I/O系统中处于延时关闭状态的文件数量大于等于预设延时关闭文件数量阈值时,则从处于延时关闭状态的文件中选出需要立即关闭的文件并进行关闭,直至异步I/O系统中延时关闭的文件数量小于预设延时关闭文件数量阈值。
[0014]一种实施例中,文件打开/关闭历史信息表的记录还包括文件打开时间,所述方法还包括:在打开一个文件时,将该文件的文件打开时间设置为当前时间;
从处于延时关闭状态的文件中选出需要立即关闭的文件并进行关闭,包括:关闭文件未来访问计数为0且文件打开时间最早的文件。
[0015]一种实施例中,文件打开/关闭历史信息表的记录还包括文件未来访问计数归0时间,所述方法还包括:当一个文件的文件未来访问计数从1变为0时,将该文件的文件未来访问计数归0时间设置为当前时间;从处于延时关闭状态的文件中选出需要立即关闭的文件并进行关闭,包括:关闭文件未来访问计数为0且文件未来访问计数归0时间最早的文件。
[0016]第二方面,本专利技术实施例提供一种异步I/O系统文件打开/关闭的控制装置,包括:文件打开模块,用于响应于异步I/O系统在开始处理I/O请求时发起的文件打开申请,获取待打开文件的文件名,从异步I/O系统的文件打开/关闭历史信息表中获取待打开文件的当前打开/关闭状态,若当前打开/关闭状态指示待打开文件处于打开状态,则不再重复打开该文件;若当前打开/关闭状态指示待打开文件处于关闭状态,则打开该文件并在文件打开/关闭历史信息表中将该文件的当前打开/关闭状态更新为打开状态;文件打开/关闭历史信息表包括至少一条记录,每条记录包括文件名、当前打开/关闭状态和文件未来访问计数;文件关闭模块,用于响应于异步I/O系统在处理完I/O请求时发起的文件关闭申请,获取待关闭文件的文件名,将待关闭文件的文件未来访问计数减少1,根据待关闭文件的文件未来访问计数确定是否需要立即关闭待关闭文件。
[00本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种异步I/O系统文件打开/关闭的控制方法,其特征在于,包括:响应于异步I/O系统在开始处理I/O请求时发起的文件打开申请,获取待打开文件的文件名,从异步I/O系统的文件打开/关闭历史信息表中获取所述待打开文件的当前打开/关闭状态,若当前打开/关闭状态指示所述待打开文件处于打开状态,则不再重复打开该文件;若当前打开/关闭状态指示所述待打开文件处于关闭状态,则打开该文件并在所述文件打开/关闭历史信息表中将该文件的当前打开/关闭状态更新为打开状态;所述文件打开/关闭历史信息表包括至少一条记录,每条记录包括文件名、当前打开/关闭状态和文件未来访问计数;响应于异步I/O系统在处理完I/O请求时发起的文件关闭申请,获取待关闭文件的文件名,将所述待关闭文件的文件未来访问计数减少1,根据所述待关闭文件的文件未来访问计数确定是否需要立即关闭所述待关闭文件。2.根据权利要求1所述的方法,其特征在于,所述响应于异步I/O系统在开始处理I/O请求时发起的文件打开申请之前,所述方法还包括:响应于应用程序发起的异步I/O请求,获取所述异步I/O请求对应的文件名;根据所述异步I/O请求对应的文件名在所述文件打开/关闭历史信息表进行查找;若存在所述异步I/O请求对应的文件名的记录,则将该记录的文件未来访问计数增加1;若不存在所述异步I/O请求对应的文件名的记录,则在所述文件打开/关闭历史信息表中新增一条记录,并将该记录的文件名设置为所述异步I/O请求对应的文件名,当前打开/关闭状态设置为关闭状态,文件未来访问计数设置为1。3.根据权利要求1所述的方法,其特征在于,所述当前打开/关闭状态采用指针表示,打开状态下指针为对应的文件指针,关闭状态下指针为空。4.根据权利要求1所述的方法,其特征在于,所述方法还包括:获取所述异步I/O系统中打开的文件数量;若所述打开的文件数量大于预设文件数量阈值时,则关闭文件未来访问计数最小的文件,直至所述异步I/O系统中打开的文件数量小于等于所述预设文件数量阈值。5.根据权利要求1

4任一项所述的方法,其特征在于,所述根据所述待关闭文件的文件未来访问计数确定是否需要立即关闭所述待关闭文件,包括:当所述待关闭文件的文件未来访问计数从1变为0时,立即关闭所述待关闭文件。6.根据权利要求1

4任一项所述的方法,其特征在于,所述根据所述待关闭文件的文件未来访问计数确定是否需要立即关闭所述待关闭文件,包括:当所述待关闭文件的文件未来访问计数从1变为0时,不关闭所述待关闭文件,并将所述待关闭文件的当前打开/关闭状态更新为延时关闭。7.根据权利要求6所述的方法,其特征在于,所述文件打开/关闭历史信息表的记录还包括延时关闭后I/O请求计数,所述方法还包括:当一个文件的文件未来访问计数从1变为0时,将该文件的延时关闭后I/O请求计数设置为0:响应于应用程序发起的异步I/O请求,将所述文件打开/关...

【专利技术属性】
技术研发人员:李锐喆赵彤
申请(专利权)人:北京卡普拉科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1