[发明专利]一种基于JVM的磁盘直接I/O访问的方法有效
申请号: | 201710112761.X | 申请日: | 2017-02-28 |
公开(公告)号: | CN106909441B | 公开(公告)日: | 2020-10-02 |
发明(设计)人: | 陈涛;褚一帆 | 申请(专利权)人: | 焦点科技股份有限公司 |
主分类号: | G06F9/455 | 分类号: | G06F9/455 |
代理公司: | 南京瑞弘专利商标事务所(普通合伙) 32249 | 代理人: | 陈建和 |
地址: | 210003 江苏省南京市高新*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 一种基于JVM的磁盘直接I/O访问方法,配置提供文件操作函数的API层、屏蔽操作系统文件系统访问差异的适配层、支持多种类编程语言转换的语言转换层、执行访问磁盘操作的直接调用I/O层,实现支持任何一种操作语言能跨越操作系统的页面高速缓存,获得直接操纵磁盘文件的能力;步骤1:调用API层的文件打开函数,传入文件操作指令中的文件路径名,返回文件句柄fd;步骤2:调用API层的文件读取函数或文件写入函数,提供传入文件句柄fd、文件偏移量等参数;步骤3:适配层读取当前运行的操作系统的配置信息,并根据配置信息判断该操作系统的类型,利用JVM的功能特性,调用预存在语言转换层中与操作系统对应的语言转换函数,使文件操作指令能在当前操作系统内执行。 | ||
搜索关键词: | 一种 基于 jvm 磁盘 直接 访问 方法 | ||
【主权项】:
一种基于JVM的磁盘直接I/O访问方法,其特征在于,配置提供文件操作函数的API层、屏蔽操作系统文件系统访问差异的适配层、支持多种类编程语言转换的语言转换层、执行访问磁盘操作的直接调用I/O层,实现支持任何一种操作语言能跨越操作系统的页面高速缓存,获得直接操纵磁盘文件的能力;在物理磁盘之上,基于系统架构层原始的结构,包括API层、适配层、语言转换层和直接调用I/O层,在相应的层结构上构建文件操作接口函数、文件操作指令语言转换接口函数、及直接访问磁盘接口函数;层结构部署完毕后,写入数据请求,并根据请求内容直接访问磁盘,步骤包括:步骤1:调用API层的文件打开函数,传入文件操作指令中的文件路径名等参数,返回文件句柄fd;所述文件句柄是指操作系统为每一个文件分配的唯一标识,文件操作指令能通过文件句柄操作文件;在创建文件操作时,通过设置操作系统使用文件直接I/O访问的属性,使操作系统具备文件直接I/O访问能力;步骤2:调用API层的文件读取函数或文件写入函数,提供传入文件句柄fd、文件偏移量offset、长度len、内存缓冲区buffer的参数;步骤3:适配层读取当前运行的操作系统的配置信息,并根据配置信息判断该操作系统的类型,进而通过利用JVM的功能特性,调用预存在语言转换层中与操作系统对应的语言转换函数,将文件操作函数转换为当前操作系统能识别的语言,使文件操作指令能在当前操作系统内执行;若不能根据当前运行的操作系统,找到相匹配的语言转换函数,则提示“不支持本操作系统”的错误标识;步骤4:经语言转换层后的文件操作指令直接对磁盘进行操作:通过提前在磁盘区内设置文件操作指令对应的文件指针,并根据文件偏移量offset,将文件指针移动至距离文件开始位置为文件偏移量offset的地方;同时,提前在内存缓冲区中设置文件指针,并根据文件偏移量offset,将文件指针移动至距离文件开始位置为文件偏移量offset的地方;步骤5:根据文件操作指令的内容,判定文件是读操作还是写操作,并按照文件内容所占字节数读取或写入相应数据量的数据;若文件操作是读操作,则从磁盘区内文件指针当前位置开始,读取字节数为len的磁盘数据,传至内存缓存区中;若文件操作是写操作,则从内存缓冲区内文件指针当前位置开始,读取字节数为len的缓冲数据,传至硬盘区中;步骤6:文件读操作或写操作结束后,调用API层的关闭文件接口函数,传入文件句柄fd,关闭文件。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于焦点科技股份有限公司,未经焦点科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201710112761.X/,转载请声明来源钻瓜专利网。