CN106909441B - 一种基于jvm的磁盘直接i/o访问的方法 - Google Patents
一种基于jvm的磁盘直接i/o访问的方法 Download PDFInfo
- Publication number
- CN106909441B CN106909441B CN201710112761.XA CN201710112761A CN106909441B CN 106909441 B CN106909441 B CN 106909441B CN 201710112761 A CN201710112761 A CN 201710112761A CN 106909441 B CN106909441 B CN 106909441B
- Authority
- CN
- China
- Prior art keywords
- file
- disk
- layer
- operating system
- direct
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45579—I/O management, e.g. providing access to device drivers or storage
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种基于JVM的磁盘直接I/O访问方法,配置提供文件操作函数的API层、屏蔽操作系统文件系统访问差异的适配层、支持多种类编程语言转换的语言转换层、执行访问磁盘操作的直接调用I/O层,实现支持任何一种操作语言能跨越操作系统的页面高速缓存,获得直接操纵磁盘文件的能力;步骤1:调用API层的文件打开函数,传入文件操作指令中的文件路径名,返回文件句柄fd;步骤2:调用API层的文件读取函数或文件写入函数,提供传入文件句柄fd、文件偏移量等参数;步骤3:适配层读取当前运行的操作系统的配置信息,并根据配置信息判断该操作系统的类型,利用JVM的功能特性,调用预存在语言转换层中与操作系统对应的语言转换函数,使文件操作指令能在当前操作系统内执行。
Description
技术领域
本发明隶属于系统文件输入输出的技术领域,具体涉及一种基于JVM的磁盘直接I/O访问的方法。
背景技术
一般的文件读写操作,都不可避免得使用到操作系统的文件系统的页面高速缓存(Page Cache)。Page Cache具有几个特点:首先,它是操作系统级别的全局内存空间,在所有应用程序间进行空间共享。由于物理内存有限,因此会出现资源争用情况。其次,页面高速缓存由操作系统统一管理,应用程序不能直接控制和干涉Page Cache。这在实际工作中,会带来如下问题:
第一、操作大文件时带来的系统整体性能下降。当读写大文件时,譬如当执行读、写、复制、移动、压缩大文件的操作时,系统会消耗大量的Page Cache,由于物理内存空间有限,导致系统中运行中的其它应用程序锁使用的Page Cache空间被交换出去(swappedout),以释放出足够的Cache空间供其使用。这样一来,其它程序I/O的响应性能急剧下降,甚至会出现长时间无响应的症状,直到文件操作完毕后,才会恢复正常响应。这对于响应性能要求高的服务器程序来说,是不可接受的。譬如在互联网网站的服务端,由于大文件操作过程中该服务器无法在一定时间范围内完成响应,这意味着用户浏览网站的响应时间变长,甚至超时。
第二、数据一致性问题。Cache的维护成本高,应用程序每次写完文件后,实际上是更新了位于Cache中的文件,磁盘上的文件需要等到flush操作后才会刷到磁盘上。若flush之前系统宕机,则会丢失这部分的数据更新。
第三、对底层硬件的控制力弱。传统的基于JVM的应用程序,都无法直接操纵硬件磁盘。虽然Page Cache能够帮助程序提高I/O效率,但这对自缓存(Self-Caching)程序来说却是个障碍。自缓存程序自身维护一套数据从硬件磁盘到内存间的映射关系,它的缓存一致性维护机制往往是跟自身数据的逻辑结构密切相关,与传统的操作系统Page Cache机制存在着较大差异。但是由于操作系统底层提供的Page Cache机制,横亘在自缓存程序与底层磁盘硬件之间,造成昂贵的内存资源的巨大浪费。
JVM是Java Virtual Machine(Java虚拟机)的缩写,是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。JVM为了保证程序的可移植性,对程序员屏蔽了底层硬件访问细节。程序员只需要编写Java语法的代码,无须关心运行平台的处理器类型和操作系统。由JVM负责解释Java程序,并转换为能够在特定处理器和操作系统上运行的二进制指令。所有的底层硬件访问能力是由JVM提供的,并且JVM封装了一部分接口,通过JDK暴露出API给Java程序员。对于上述磁盘直接IO访问技术,JDK并未提供支持。JDK是Java语言的软件开发工具包,用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境,JAVA工具和JAVA基础的类库。
发明内容
为解决现有技术存在的局限性和不足,本发明的目的是通过利用JVM功能特性,通过配置提供文件操作函数的API层、屏蔽操作系统文件系统访问差异的适配层、支持多种类编程语言转换的语言转换层、执行访问磁盘操作的直接调用I/O层,实现支持任何一种操作语言能跨越操作系统的页面高速缓存,获得直接操纵磁盘文件的能力,从根本上解决因系统宕机而导致的数据丢失问题,也有助于减少对系统全局资源的消耗,利于解决因操作大文件而引发其他程序I/O性能降低的难题。
技术方案如下:一种基于JVM的磁盘直接I/O访问方法,通过利用JVM功能特性,配置提供文件操作函数的API层、屏蔽操作系统文件系统访问差异的适配层、支持多种类编程语言转换的语言转换层、执行访问磁盘操作的直接调用I/O层,实现支持任何一种操作语言能跨越操作系统的页面高速缓存,获得直接操纵磁盘文件的能力;
在物理磁盘之上,基于系统架构层原始的结构,包括API层、适配层、语言转换层和直接调用I/O层,在相应的层结构上构建文件操作接口函数、文件操作指令语言转换接口函数、及直接访问磁盘接口函数;
层结构部署完毕后,写入数据请求,并根据请求内容直接访问磁盘,步骤包括:
步骤1:调用API层的文件打开函数,传入文件操作指令中的文件路径名等参数,返回文件句柄fd;所述文件句柄是指操作系统为每一个文件分配的唯一标识,文件操作指令能通过文件句柄操作文件;在创建文件操作时,通过设置操作系统使用文件直接I/O访问的属性,使操作系统具备文件直接I/O访问能力;
步骤2:调用API层的文件读取函数或文件写入函数,提供传入文件句柄fd、文件偏移量offset、长度len、内存缓冲区buffer的参数;
所述文件偏移量offset是指操作文件中数据的起始位置;
所述长度len是指操作文件中数据的字节数;
所述内存缓冲区buffer:文件读取时,是指用来存放读取数据的内存区域;文件写入时,是指用来存放待写入数据的内存区域;
步骤3:适配层读取当前运行的操作系统的配置信息,并根据配置信息判断该操作系统的类型,进而通过利用JVM的功能特性,调用预存在语言转换层中与操作系统对应的语言转换函数,将文件操作函数转换为当前操作系统能识别的语言,使文件操作指令能在当前操作系统内执行;
特别地,若不能根据当前运行的操作系统,找到相匹配的语言转换函数,则提示“不支持本操作系统”的错误标识;
步骤4:经语言转换层后的文件操作指令直接对磁盘进行操作:通过提前在磁盘区内设置文件操作指令对应的文件指针,并根据文件偏移量offset,将文件指针移动至距离文件开始位置为文件偏移量offset的地方;同时,提前在内存缓冲区中设置文件指针,并根据文件偏移量offset,将文件指针移动至距离文件开始位置为文件偏移量offset的地方;
步骤5:根据文件操作指令的内容,判定文件是读操作还是写操作,并按照文件内容所占字节数读取或写入相应数据量的数据;
若文件操作是读操作,则从磁盘区内文件指针当前位置开始,读取字节数为len的磁盘数据,传至内存缓存区中;
若文件操作是写操作,则从内存缓冲区内文件指针当前位置开始,读取字节数为len的缓冲数据,传至硬盘区中;
步骤6:文件读操作或写操作结束后,调用API层的关闭文件接口函数,传入文件句柄fd,关闭文件。
进一步的,所述API层中构建文件操作指令应用于磁盘直接访问的打开文件接口函数、关闭文件接口函数、读取文件接口函数、写入文件接口函数,提供负责文件的打开、文件的关闭、文件的读和写;接口函数基于JVM语言编写;
所述适配层根据当前运行的操作系统,利用JVM的功能特性,选择适合当前操作系统的语言转换接口函数,使文件操作指令适应于当前操作系统,屏蔽因不同操作系统需要不同操作语言的差异性;
所述语言转换层按照转换后的文件操作语言,提供实现适应于当前操作系统的文件操作函数,用于之后执行具体的磁盘文件直接读写操作;
所述直接调用I/O层按照当前运行的操作系统,提供该操作系统的系统调用,直接访问磁盘。
进一步的,所述API层、适配层、语言转换层及直接调用I/O层,每一个层结构也能是具有相似功能的功能模块。
进一步的,步骤2中所述文件偏移量offset是指文件操作指令操作文件中数据的起始位置;所述长度len是指文件操作指令的操作文件中数据的字节数;所述内存缓冲区buffer:文件读取时,是指用来存放读取数据的内存区域;文件写入时,是指用来存放待写入数据的内存区域。
进一步的,在步骤3中,若不能根据所述当前运行的操作系统,找到相匹配的语言转换函数,则提示“不支持本操作系统”的错误标识。
进一步的,步骤5中,针对所述内存缓冲区的内存地址,应按照操作系统内存分页大小,调整为内存分页大小的整数倍,以保持内存缓冲区与内存分页的对齐。
在步骤5中,针对所述磁盘区读写的字节数,应按照磁盘扇区大小,调整为磁盘扇区大小的整数倍,以保持内存缓冲区与扇区的对齐。
与现有技术相比,有益效果:
(1)本发明利用JVM功能特性,通过配置提供文件操作函数的API层、屏蔽操作系统文件系统访问差异的适配层、支持多种类编程语言转换的语言转换层、执行访问磁盘操作的直接调用I/O层,支持任何一种操作语言能跨越操作系统的页面高速缓存,获得直接操纵磁盘文件的能力,减少对系统全局资源的消耗,有利于解决因操作大文件而引发其他程序I/O性能降低的难题;
(2)本发明中通过直接对磁盘执行写操作,使数据更新不再借助操作系统的页面高速缓存,而是直接持久化入磁盘,从根本上解决因系统宕机而导致的数据丢失问题;
(3)本发明通过配置好的适配层和语言转换层,使包含java在内的基于JVM的编程语言经转换后,均能适用于支持访问操作系统的系统调用,解决因不同操作系统需要不同编程语言而导致重复编程工作;
(4)本发明通过基于系统架构层的原始结构,综合利用JVM功能特性,使构建的文件操作函数能以统一形式的API接口暴露给操作系统,并适应于在不同操作系统内执行磁盘直接I/O访问,实现在各操作系统间的可移植,减少因操作系统差异而导致的人工修改;
附图说明
图1为本发明实施例中基于JVM的磁盘直接I/O访问方法实施结构图
图2为本发明实施例中基于JVM的磁盘直接I/O访问方法实现流程图
图3为本发明实施例中对磁盘直接读写的流程示意图
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下面对本发明实施例中一种基于JVM的磁盘直接I/O访问方法中所涉及的一些术语做简单解释:
所述文件句柄fd是指操作系统为每一个文件分配的唯一标识,文件操作指令能通过文件句柄操作文件;
所述文件偏移量offset是指操作文件中数据的起始位置;
所述长度len是指操作文件中数据的字节数;
所述内存缓冲区buffer:文件读取时,是指用来存放读取数据的内存区域;文件写入时,是指用来存放待写入数据的内存区域。
为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。
基于系统架构层原始的结构,包括API层、适配层、语言转换层和直接调用I/O层,配置本发明需要的层结构,包括:
(1)API层中构建应用于磁盘直接访问的打开文件接口函数、关闭文件接口函数、读取文件接口函数、写入文件接口函数,提供负责文件的打开、文件的关闭、文件的读和写;接口函数基于JVM语言编写;
(2)适配层负责根据当前运行的操作系统,利用JVM的功能特性,选择适合当前操作系统的语言转换接口函数,使文件操作指令适应于当前操作系统,屏蔽因不同操作系统需要不同操作语言的差异性;
(3)语言转换层按照转换后的文件操作语言,提供实现适应于当前操作系统的文件操作函数,用于之后执行具体的磁盘文件直接读写操作;
(4)直接调用I/O层按照当前运行的操作系统,提供该操作系统的系统调用,直接访问磁盘;
图1为本发明实施例中基于JVM的磁盘直接I/O访问方法实施结构图中,
在物理磁盘之上,基于系统架构层原始的结构,包括API层101、适配层102、语言转换层103和直接调用I/O层104,配置本发明需要的层结构,包括:
所述API层101中以基于JVM的编程语言构建打开文件接口函数open、关闭文件接口函数close、读取文件接口函数read、写入文件接口函数write,提供负责文件的打开、文件的关闭、文件的读和写;
其中,所述基于JVM的编程语言包括Java、Scala、Groovy、Clojure等;
API层101内所有文件操作功能函数接口按照如下全限定名方式定义:
(1)Java_java_dio_DFile_open函数:文件打开接口;
(2)Java_java_dio_DFile_close函数:文件关闭接口;
(3)Java_java_dio_DFile_read函数:文件读接口;
(4)Java_java_dio_DFile_write函数:文件写接口;
所述适配层102负责根据当前运行的操作系统,选取适合当前操作系统的语言转换层函数,使文件操作指令能适应于当前操作系统,屏蔽因不同操作系统需要不同操作语言的差异性;
所述语言转换层103提供基于JVM编程语言的适应于不同操作系统的语言转换接口函数;当文件操作指令转换成能适应于操作系统内执行的语言时,语言转换层按照转换后的文件操作语言,提供文件操作的接口函数,实现具体的文件操作;
如下是经转换后适应于Linux系统的文件操作函数:
(1)Java_java_dio_DFile_imp_{Linux}_open函数:文件打开函数;
(2)Java_java_dio_DFile_imp_{Linux}_close函数:文件关闭函数;
(3)Java_java_dio_DFile_imp_{Linux}_read函数:文件读函数;
(4)Java_java_dio_DFile_imp_{Linux}_write函数:文件写函数;
所述直接调用I/O层104按照当前运行的操作系统,提供该操作系统的系统调用功能,直接访问磁盘;
本发明实施例中的操作系统是Linux系统,经层结构部署完毕后,写入数据请求,并根据请求内容直接访问磁盘,图2为本发明实施例中基于JVM的磁盘直接I/O访问方法实现流程图,具体包括:
步骤201:调用API层101的文件打开函数,传入文件路径名等参数,返回文件句柄fd,获取操作文件的标识;
步骤202:设置Linux系统的文件直接I/O访问属性,启动Linux文件直接I/O访问能力;
步骤203:根据读取文件或写入文件的需要,调用API层101中文件读取函数或文件写入函数,提供传入文件句柄fd、文件偏移量offset、长度len、内存缓冲区buffer的参数;
步骤204:适配层102读取当前运行的操作系统的配置信息,并根据配置信息判断该操作系统的类型,进而利用JNI调用预存在语言转换层中与操作系统对应的语言转换函数,将基于JVM语言编写的文件操作函数转换为当前操作系统能识别的语言,使文件操作指令能在当前操作系统内执行;
步骤205:开辟内存缓冲区,语言转换层103利用经语言转换后的文件操作指令直接对磁盘执行读操作或写操作,如图3所示,具体包括:
步骤205-1:获取操作系统的内存分页大小,并调整开辟的内存缓存区的内存地址为内存分页大小的整数倍,保证内存缓冲区与系统内存的对齐;
步骤205-2:获取物理磁盘扇叶大小,调整每次读、写的字节数为物理磁盘扇叶大小的整数倍,保证读取文件数量与物理磁盘扇区的对齐;
步骤205-3:在物理磁盘区和内存缓存区分别设置文件指针,根据文件偏移量offset,在磁盘区中将文件指针移动至距离文件开始位置为文件偏移量offset的地方,在内存缓存区中将文件指针移动至距离文件开始位置为文件偏移量offset的地方;
步骤205-4:若文件操作是读操作,则从磁盘区内文件指针当前位置开始,读取字节数为len的磁盘数据,传至内存缓存区中;
步骤205-5:若文件操作是写操作,则从内存缓冲区内文件指针当前位置开始,读取字节数为len的缓冲数据,传至硬盘区中;
步骤206:文件读操作或写操作结束后,调用API层的关闭文件接口函数,传入文件句柄fd,关闭文件;
所属领域的普通技术人员应当理解:以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (6)
1.一种基于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,关闭文件。
2.根据权利要求1所述的一种基于JVM的磁盘直接I/O访问方法,其特征在于,所述API层中构建文件操作指令应用于磁盘直接访问的打开文件接口函数、关闭文件接口函数、读取文件接口函数、写入文件接口函数,提供负责文件的打开、文件的关闭、文件的读和写;接口函数基于JVM语言编写;
所述适配层根据当前运行的操作系统,利用JVM的功能特性,选择适合当前操作系统的语言转换接口函数,使文件操作指令适应于当前操作系统,屏蔽因不同操作系统需要不同操作语言的差异性;
所述语言转换层按照转换后的文件操作语言,提供实现适应于当前操作系统的文件操作函数,用于之后执行具体的磁盘文件直接读写操作;
所述直接调用I/O层按照当前运行的操作系统,提供该操作系统的系统调用,直接访问磁盘。
3.根据权利要求1所述的一种基于JVM的磁盘直接I/O访问方法,其特征在于,所述API层、适配层、语言转换层及直接调用I/O层,每一个层结构也能是具有相似功能的功能模块。
4.根据权利要求1所述的一种基于JVM的磁盘直接I/O访问方法,其特征在于,步骤2中所述文件偏移量offset是指文件操作指令操作文件中数据的起始位置;所述长度len是指文件操作指令的操作文件中数据的字节数;所述内存缓冲区buffer:文件读取时,是指用来存放读取数据的内存区域;文件写入时,是指用来存放待写入数据的内存区域。
5.根据权利要求1所述的一种基于JVM的磁盘直接I/O访问方法,其特征在于,在步骤5中,针对所述内存缓冲区的内存地址,应按照操作系统内存分页大小,调整为内存分页大小的整数倍,以保持内存缓冲区与内存分页的对齐。
6.根据权利要求1所述的一种基于JVM的磁盘直接I/O访问方法,其特征在于,在步骤5中,针对所述磁盘区读写的字节数,应按照磁盘扇区大小,调整为磁盘扇区大小的整数倍,以保持内存缓冲区与扇区的对齐。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710112761.XA CN106909441B (zh) | 2017-02-28 | 2017-02-28 | 一种基于jvm的磁盘直接i/o访问的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710112761.XA CN106909441B (zh) | 2017-02-28 | 2017-02-28 | 一种基于jvm的磁盘直接i/o访问的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106909441A CN106909441A (zh) | 2017-06-30 |
CN106909441B true CN106909441B (zh) | 2020-10-02 |
Family
ID=59208422
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710112761.XA Active CN106909441B (zh) | 2017-02-28 | 2017-02-28 | 一种基于jvm的磁盘直接i/o访问的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106909441B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109740310B (zh) * | 2018-12-29 | 2024-06-07 | 嘉楠明芯(北京)科技有限公司 | 用于嵌入式操作系统的内核对象访问方法和装置 |
CN110780818B (zh) * | 2019-10-24 | 2023-05-30 | 山东浪潮科学研究院有限公司 | 一种基于量子测控系统软件读取任意数据的文件实现方法 |
CN111198843B (zh) * | 2019-12-19 | 2023-03-28 | 西安交通大学 | 一种基于应用处理器片上总线控制的文件系统写加速方法 |
CN111522536A (zh) * | 2020-04-21 | 2020-08-11 | 艾普阳科技(深圳)有限公司 | 一种编程语言调用的方法及其相关设备 |
CN112286467A (zh) * | 2020-11-23 | 2021-01-29 | 深圳市兴之佳科技有限公司 | 磁盘数据读取方法、装置、计算机设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6032191A (en) * | 1997-10-28 | 2000-02-29 | International Business Machines Corporation | Direct coupling for data transfers |
CN101609393A (zh) * | 2009-07-21 | 2009-12-23 | 北京数帅科技有限公司 | 无lvm的操作系统访问基于lv卷的存储设备的方法 |
CN102236762A (zh) * | 2010-04-30 | 2011-11-09 | 国际商业机器公司 | 用于处理对多租户应用的文件访问的方法和文件代理装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9213562B2 (en) * | 2010-12-17 | 2015-12-15 | Oracle International Corporation | Garbage collection safepoint system using non-blocking asynchronous I/O call to copy data when the garbage collection safepoint is not in progress or is completed |
-
2017
- 2017-02-28 CN CN201710112761.XA patent/CN106909441B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6032191A (en) * | 1997-10-28 | 2000-02-29 | International Business Machines Corporation | Direct coupling for data transfers |
CN101609393A (zh) * | 2009-07-21 | 2009-12-23 | 北京数帅科技有限公司 | 无lvm的操作系统访问基于lv卷的存储设备的方法 |
CN102236762A (zh) * | 2010-04-30 | 2011-11-09 | 国际商业机器公司 | 用于处理对多租户应用的文件访问的方法和文件代理装置 |
Also Published As
Publication number | Publication date |
---|---|
CN106909441A (zh) | 2017-06-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106909441B (zh) | 一种基于jvm的磁盘直接i/o访问的方法 | |
US6907519B2 (en) | Systems and methods for integrating emulated and native code | |
US10158647B2 (en) | Permissive access control for modular reflection | |
US20210096834A1 (en) | Accessing a migrated member in an updated type | |
US10853096B2 (en) | Container-based language runtime loading an isolated method | |
US10922081B2 (en) | Conditional branch frame barrier | |
JP2005182809A (ja) | ストレージ技術抽象化方式におけるファイル内でのファイルシステムの生成 | |
JP2014510343A (ja) | ライブラリーオペレーティングシステムによるアプリケーションの互換性 | |
CN109670299A (zh) | 一种创建Python沙盒环境的方法及电子设备 | |
WO2022148390A1 (zh) | 一种在区块链中部署、更新、调用智能合约的方法 | |
CN112905472A (zh) | 内核调试系统及方法 | |
CN111768183B (zh) | 一种执行智能合约的方法、区块链节点和存储介质 | |
WO2022237590A1 (zh) | 智能合约升级方法及区块链系统 | |
US10120777B1 (en) | Remediating serialization incompatibilities | |
US10802855B2 (en) | Producing an internal representation of a type based on the type's source representation | |
CN114490103A (zh) | 一种操作系统接口调用方法、装置以及电子设备 | |
US10394610B2 (en) | Managing split packages in a module system | |
US11188361B1 (en) | Cross-architecture software distribution using a virtual instruction set architecture | |
KR20190060561A (ko) | 이종 디바이스의 선택적 추상화를 통한 사물 인터넷 어플리케이션의 개발 환경을 통합하는 방법 및 시스템 | |
WO2024103258A1 (zh) | 代码执行方法、装置及设备 | |
US11971817B2 (en) | Managing lifecycles of sets of foreign resources | |
US11803487B2 (en) | Transitioning between thread-confined memory segment views and shared memory segment views | |
US10346225B2 (en) | Synthesized modules for module renaming | |
CN116909652A (zh) | 一种启动WebAssembly程序的方法、计算机设备及存储介质 | |
CN114253523A (zh) | 读取裸设备的方法、装置、计算机设备和介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |