CN115733904A - 文件操作方法及装置 - Google Patents
文件操作方法及装置 Download PDFInfo
- Publication number
- CN115733904A CN115733904A CN202211550432.0A CN202211550432A CN115733904A CN 115733904 A CN115733904 A CN 115733904A CN 202211550432 A CN202211550432 A CN 202211550432A CN 115733904 A CN115733904 A CN 115733904A
- Authority
- CN
- China
- Prior art keywords
- file
- file operation
- operation request
- server
- message
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 73
- 238000004891 communication Methods 0.000 claims abstract description 57
- 238000004458 analytical method Methods 0.000 claims abstract description 48
- 238000012545 processing Methods 0.000 claims description 34
- 230000015654 memory Effects 0.000 claims description 29
- 230000004044 response Effects 0.000 claims description 29
- 230000000977 initiatory effect Effects 0.000 claims description 7
- 238000012795 verification Methods 0.000 claims description 6
- 230000008569 process Effects 0.000 description 15
- 238000004590 computer program Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 12
- 230000005540 biological transmission Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000011017 operating method Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000000903 blocking effect Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000005538 encapsulation Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 238000007792 addition Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000001427 coherent effect Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种文件操作方法及装置,涉及通信技术领域。该文件操作方法应用于多核设备,该文件操作方法包括:接收第一文件操作请求,其中,所述第一文件操作请求由目标应用程序发起;调用与所述第一文件操作请求匹配的文件操作接口,经过基于锁与优先级的程序控制,将所述第一文件操作请求发往协议解析控制器,以使所述协议解析控制器将所述第一文件操作请求按照预设协议进行封装,生成第一报文,并将所述第一报文通过核间通信缓存发往服务器。根据本申请实施例,能够基于多核设备实现高实时性且轻量化的嵌入式核间远程文件操作,解决了部分CPU核心无法直接操作存储介质进行文件管理的问题。
Description
技术领域
本申请涉及通信技术领域,尤其涉及一种文件操作方法及装置。
背景技术
对于嵌入式异构多核设备而言,在设备中各个内核的正常运行过程中,往往需要对存储在底层磁盘中的文件进行操作管理,例如文件读取、文件写入以及删除文件等。
然而,目前有部分中央处理器(CPU,Central Processing Unit Processor)核心无法直接操作存储介质,需要一种远程文件系统来实现文件的保存和读取。现有的远程文件系统实现中多为基于网络,且实现中依赖大量复杂的通信协议栈,并不满足嵌入式异构多核设备中轻量化,高实时性的要求。
发明内容
本申请实施例提供一种文件操作方法及装置,能够实现多核设备高实时性且轻量化的嵌入式核间远程文件操作,解决了部分CPU核心无法直接操作存储介质进行文件管理的问题。
第一方面,本申请实施例提供一种文件操作方法,应用于多核设备,该文件操作方法包括:
接收第一文件操作请求,其中,第一文件操作请求由目标应用程序发起;
调用与第一文件操作请求匹配的文件操作接口,经过基于锁与优先级的程序控制,将第一文件操作请求发往协议解析控制器,以使协议解析控制器将第一文件操作请求按照预设协议进行封装,生成第一报文,并将第一报文通过核间通信缓存发往服务器。
在一些可能的实施方式中,将第一报文通过核间通信缓存发往服务器,包括:
将第一报文通过核间共享内存发往服务器。
在一些可能的实施方式中,调用与第一文件操作请求匹配的文件操作接口,经过基于锁与优先级的程序控制,将第一文件操作请求发往协议解析控制器,包括:
在同时接收到N个应用程序发起的多个文件操作请求的情况下,调用与第一文件操作请求匹配的文件操作接口,并基于N个应用程序的预设优先级,向第一文件操作请求分配锁资源;
将分配锁资源后的第一文件操作请求发往协议解析控制器;
其中,N个应用程序中包括目标应用程序,多个文件操作请求中包括第一文件操作请求,目标应用程序的预设优先级在N个应用程序中最高。
在一些可能的实施方式中,将第一报文通过核间通信缓存发往服务器之后,该文件操作方法还包括:
接收服务器发送的与目标文件关联的目标文件描述符;目标文件为第一文件操作请求所请求操作的文件;
将第二文件操作请求发往协议解析控制器,以使协议解析控制器将第二文件操作请求按照预设协议进行封装,生成第二报文,并将二报文通过核间通信缓存发往服务器;其中,第二操作请求中包括目标文件描述符;第二操作请求用于请求对目标文件执行第二操作;
服务器在接收到由第二报文后,基于目标文件描述符,确定目标文件,并对目标文件执行第二操作。
在一些可能的实施方式中,第一文件操作请求用于请求对目标文件执行第一操作;服务器预先与多核设备的底层文件系统建立通信;在将第一报文通过核间通信缓存发往服务器之后,该文件操作方法还包括:
服务器根据第一报文,通过控制底层文件系统对目标文件执行第一操作。
在一些可能的实施方式中,第一文件操作请求中包括目标应用程序所在的客户端的标识信息;服务器根据第一报文,通过控制底层文件系统对目标文件执行第一操作,包括:
服务器根据客户端的标识信息,对客户端的文件操作权限进行校验,并在客户端的文件操作权限校验通过的情况下,通过控制底层文件系统对目标文件执行第一操作。
在一些可能的实施方式中,在将第一报文通过核间通信缓存发往服务器之后,该文件操作方法还包括:
协议解析控制器若在预设时间段内接收到服务器发送的应答报文,则对应答报文进行检测,并在检测到应答报文与第一报文不匹配的情况下,将应答报文进行丢弃;以及,
若在预设时间段内未接收到服务器发送的应答报文,则向目标应用程序返回第一文件操作请求的处理失败结果。
在一些可能的实施方式中,在将第一文件操作请求发往协议解析控制器之前,该文件操作方法还包括:
在检测到服务器处于非空闲状态的情况下,将第一文件操作请求进行缓存;以及,在检测到服务器恢复空闲状态的情况下,根据目标应用程序的预设优先级和第一文件操作请求的发起时间,对缓存的第一文件操作请求进行处理,以使第一文件操作请求发往协议解析控制器。
在一些可能的实施方式中,第一报文的报文协议格式采用type字段、length字段,和value字段的字段组合形式;
其中,type字段填充消息类型,length字段填充内容长度,value字段填充第一报文传递的载荷。
第二方面,本申请实施例提供一种文件操作装置,应用于多核设备,该文件操作装置包括:
第一接收模块,用于接收第一文件操作请求,其中,第一文件操作请求由目标应用程序发起;
第一处理模块,用于调用与第一文件操作请求匹配的第一文件操作接口,经过基于锁与优先级的程序控制,将第一文件操作请求发往协议解析控制器,以使协议解析控制器将第一文件操作请求按照预设协议进行封装,生成第一报文,并将第一报文通过核间通信缓存发往服务器。
第三方面,本申请实施例提供了一种文件操作设备,该文件操作设备包括:
处理器以及存储有计算机程序指令的存储器;
所述处理器执行所述计算机程序指令时实现如上述本申请实施例中任意一项提供的文件操作方法。
第四方面,本申请实施例提供了一种计算机存储介质,该计算机可读存储介质上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现如上述本申请实施例中任意一项提供的文件操作方法。
第五方面,本申请实施例提供了一种计算机程序产品,计算机程序产品中的指令由电子设备的处理器执行时,使得所述电子设备执行如上述本申请实施例中任意一项提供的文件操作方法。
本申请实施例的文件操作方法及装置,通过接收目标应用程序发起的第一文件操作请求,再调用与第一文件操作请求匹配的文件操作接口,经过基于锁与优先级的程序控制,将第一文件操作请求发往协议解析控制器,以使协议解析控制器将第一文件操作请求按照预设协议进行封装,生成第一报文,并将第一报文通过核间通信缓存发往服务器,本申请实施例提供的一种文件操作方法及装置,相较于现有基于网络和通信协议栈的远程文件系统,通过设置上述系列文件请求处理步骤,能够有效实现嵌入式异构多核设备的高实时性且轻量化的嵌入式核间远程文件操作,从而解决了部分CPU核心无法直接操作存储介质进行文件管理的问题。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单的介绍,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一实施例提供的文件操作方法的流程示意图;
图2为本申请实施例提供的文件操作方法的一个整体实施例的流程示意图;
图3是本申请一实施例提供的文件操作装置的结构示意图;
图4是本申请一实施例提供的文件操作设备的结构示意图。
具体实施方式
下面将详细描述本申请的各个方面的特征和示例性实施例,为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及具体实施例,对本申请进行进一步详细描述。应理解,此处所描述的具体实施例仅意在解释本申请,而不是限定本申请。对于本领域技术人员来说,本申请可以在不需要这些具体细节中的一些细节的情况下实施。下面对实施例的描述仅仅是为了通过示出本申请的示例来提供对本申请更好的理解。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本申请中,嵌入式异构多核设备可以由一个服务器和一个或多个客户端组成,服务器和客户端具体可以为嵌入式异构多核设备中的各个核心,一个服务器可以向多个客户端提供服务。
如背景技术部分所述,目前有部分CPU核心无法直接操作存储介质,需要利用远程文件系统来实现文件的保存和读取,而现有的远程文件系统实现中多为基于网络,且实现中依赖大量复杂的通信协议栈,并不满足嵌入式异构多核设备中轻量化,高实时性的要求。
基于此,为了解决现有技术问题,本申请实施例提供了一种文件操作方法及装置。应注意,本申请提供的实施例并不用来限制本申请公开的范围。
下面首先对本申请实施例所提供的文件操作方法进行介绍。
图1示出了本申请一实施例提供的文件操作方法的流程示意图。该文件操作方法应用于多核设备,该多核设备具体可以为嵌入式异构多核设备,该多核设备中可以包括服务器和客户端。如图1所示,该应用于客户端的文件操作方法包括以下步骤:
S110,接收第一文件操作请求,其中,第一文件操作请求由目标应用程序发起;
S120,调用与第一文件操作请求匹配的文件操作接口,经过基于锁与优先级的程序控制,将第一文件操作请求发往协议解析控制器,以使协议解析控制器将第一文件操作请求按照预设协议进行封装,生成第一报文,并将第一报文通过核间通信缓存发往服务器。
本申请实施例的文件操作方法,通过接收目标应用程序发起的第一文件操作请求,再调用与第一文件操作请求匹配的文件操作接口,经过基于锁与优先级的程序控制,将第一文件操作请求发往协议解析控制器,以使协议解析控制器将第一文件操作请求按照预设协议进行封装,生成第一报文,并将第一报文通过核间通信缓存发往服务器,本申请实施例提供的一种文件操作方法,相较于现有基于网络和通信协议栈的远程文件系统,通过设置上述系列文件请求处理步骤,能够有效实现嵌入式异构多核设备的高实时性且轻量化的嵌入式核间远程文件操作,从而解决了部分CPU核心无法直接操作存储介质进行文件管理的问题。
下面对上述步骤110至120的具体实现方式进行详细介绍。
在S110中,具体实现时,该步骤具体可以由多核设备中的客户端执行。
客户端中可以包括多个应用程序,相关用户可以通过客户端上的目标应用程序发起第一文件操作请求,如此,客户端得以接收到该目标应用程序的发起第一文件操作请求。
上述第一文件操作请求具体可以用于请求对目标文件执行第一操作,上述第一操作可以例如目标文件的打开操作、写入操作或者删除操作等,本申请对此不做具体限制。
需要说明,在实际文件操作场景中,上述第一文件操作请求中具体可以包括目标文件的文件信息和第一操作信息。
上述文件信息可以为但不限于目标文件的文件名称、文件目录以及文件大小等信息中的至少一项,上述第一操作信息具体可以用于表征对于目标文件所需执行的操作内容,例如,打开文件,文件内容读取、写入,文件删除等,本申请对此不做具体限制。
在S120中,具体实现时,该步骤具体可以由多核设备中的客户端执行。具体地,调用与第一文件操作请求匹配的文件操作接口,经过基于锁与优先级的程序控制,将第一文件操作请求发往协议解析控制器,以使协议解析控制器将第一文件操作请求按照预设协议进行封装,生成第一报文,并将第一报文通过核间通信缓存发往服务器。
本实施例中,客户端可以包括多种文件及目录操作接口,该多种文件及目标操作接口可以是由文件系统提供,有利于为文件操作提供统一标准及规范,从而有效提高了嵌入式异构多核设备中客户端的文件操作效率。
上述文件接口的类型具体可以包括但不限于文件系统资源初始化、文件系统资源去初始化、.创建文件、打开文件、读取文件、写入文件、移动文件、重命名文件、复制文件、删除文件、获取文件大小、关闭文件等中的至少一项。
具体实现时,客户端在接收到目标应用程序发起的第一文件操作请求之后,可以通过第一文件操作请求中所包括的具体操作内容,调用相匹配的文件操作接口,经过基于锁与优先级的程序控制,将第一文件操作请求发往协议解析控制器。在客户端中,若协议解析控制器接收到第一文件操作请求,则会将该第一文件操作请求按照预设协议进行封装,生成第一报文,并将第一报文通过核间通信缓存发往服务器。
需要补充地是,与客户端对应地,服务器上也可以部署由另一协议解析控制器。这样,在服务器接收到由客户端传输的第一报文后,可以通过其包括的协议解析控制器按照预设协议对该第一报文进行解析,从而得到上述第一文件操作请求。
需要说明,上述核间通信缓存可以是基于相关缓存硬件的核间通信机制实现,本申请对此不做具体限制。
在一些可能的实施方式中,为了能够进一步实现嵌入式异构多核设备的高实时性且轻量化的嵌入式核间远程文件操作,上述将第一报文通过核间通信缓存发往服务器,具体可以包括:
将第一报文通过核间共享内存发往服务器。
上述核间通信缓存具体可以为客户端与服务器之间的共享内存(sharedmemory)。具体地,共享内存是在嵌入式异构多核设备中,可以被不同CPU核心进行访问的大容量内存。共享内存中任何一个缓存的数据被任一CPU核心更新后,其他核心也可以进行相应缓存数据的存取。
具体实现时,当客户端接收到目标应用程序发起的第一文件操作请求之后,可以通过客户端与服务器之间的共享内存,实现客户端与服务器之间的高速核间通信,从而能够进一步实现嵌入式异构多核设备的高实时性且轻量化的嵌入式核间远程文件操作。
本实施例中,上述客户端与服务器之间的共享内存,具体可以基于openAMP开源框架中的RPMsg,使用VirtIO提供共享内存管理实现。
在一些可能的实施方式中,考虑到客户端中可以包括多个应用程序,多个应用程序可能会同时发起相应的文件操作请求。基于此,为了有效提升文件操作过程的效率和线程安全,提高文件操作处理的合理性,上述调用与第一文件操作请求匹配的文件操作接口,经过基于锁与优先级的程序控制,将第一文件操作请求发往协议解析控制器,包括:
在同时接收到N个应用程序发起的多个文件操作请求的情况下,调用与第一文件操作请求匹配的文件操作接口,并基于N个应用程序的预设优先级,向第一文件操作请求分配锁资源;
将分配锁资源后的第一文件操作请求发往协议解析控制器;
其中,N个应用程序中可以包括目标应用程序,多个文件操作请求中包括第一文件操作请求,目标应用程序的预设优先级在N个应用程序中最高。
如此,在客户端中有N个应用程序同时发起文件操作请求的情况下,即当有多个应用同时需要进行文件操作时,客户端会根据应用程序的优先级分配锁资源,从而保证线程安全及文件操作效率。
而对于无法获取锁的应用程序,本实施例提供三种处理方式。第一种,阻塞方式,应用程序的文件操作请求阻塞并等待其他文件操作请求处理完成,释放锁资源后再运行;第二种,非阻塞方式,直接返回失败;第三种,非阻塞方式,应用程序继续运行,等待其文件操作请求处理完成后通过任务通知(task notify)的方式通知应用程序其文件操作请求的处理结果。
在一些可能的实施方式中,考虑到客户端对文件进行访问操作时往往涉及到对同一文件的连贯性的操作请求,例如,在请求打开文件后往往会需要对文件内容进行读取和写入等。基于此,为了进一步提升服务器与客户端之间的文件操作效率,在上述将第一报文通过核间通信缓存发往服务器之后,该文件操作方法还可以包括:
接收服务器发送的与目标文件关联的目标文件描述符;目标文件为第一文件操作请求所请求操作的文件;
将第二文件操作请求发往协议解析控制器,以使协议解析控制器将第二文件操作请求按照预设协议进行封装,生成第二报文,并将二报文通过核间通信缓存发往服务器;其中,第二操作请求中包括目标文件描述符;第二操作请求用于请求对目标文件执行第二操作;
服务器在接收到由第二报文后,基于目标文件描述符,确定目标文件,并对目标文件执行第二操作。
上述目标文件描述符具体可以为一非负整形的索引值,指向上述目标文件所维护的该客户端打开文件的记录表。
具体实现时,在客户端将第一报文通过核间通信缓存发送至服务器之后,服务器基于接收的第一报文对目标文件执行打开、读取或者创建等操作。在此之后,服务器会为目标文件关联一个独一无二的目标文件描述符,并将此目标文件描述符返回给客户端。
这样,客户端在接收到该目标文件描述符之后,在后续对此目标文件展开读取等相关文件操作时,均可以基于此目标文件描述符生成相应的目标文件的第二文件操作请求。并相应地,将该第二文件操作请求发往协议解析控制器,以使协议解析控制器将第二文件操作请求按照预设协议进行封装生成第二报文,并将二报文通过核间通信缓存发往服务器。
如此,服务器在接收到第二报文之后,可以基于第二报文解析后得到的第二文件操作请求。并且,服务器可以直接利用第二操作请求中的目标文件描述符,迅速地定位出第二文件操作请求所请求操作的目标文件,从而对对目标文件执行第二操作。
本实施例中,由于为目标文件关联了唯一对应的目标文件描述符,使得后续生成的第二操作请求中无须包含其他文件信息等,进一步实现了文件操作过程中所传输信息的轻量级,同时能够有效提升客户端对目标文件展开后续操作的操作效率。
需要补充地是,在其他一些实施方式中,为了实现资源的合理利用,在当客户端与服务器的连接断开时,服务器会相应的会关闭此客户端打开的所有文件,并释放各个文件关联的文件描述符。
在一些可能的实施方式中,为了更为合理解决部分CPU核心无法直接操作存储介质进行文件管理的问题,上述第一文件操作请求可以用于请求对目标文件执行第一操作;服务器可以预先与多核设备的底层文件系统建立通信;在将第一报文通过核间通信缓存发往服务器之后,该文件操作方法还可以包括:
服务器根据第一报文,通过控制底层文件系统对目标文件执行第一操作。
具体地,上述服务器可以预先与多核设备中的底层文件系统建立通信。这样,在服务器接收到客户端发送的第一报文后,服务器可以根据第一报文解析后得到的第一文件操作请求,通过控制底层文件系统来实现对目标文件的第一操作。
这样一来,服务器预先与底层文件系统建立通信,在执行文件操作时具体控制底层文件系统来实现,能够更为合理解决部分CPU核心无法直接操作存储介质进行文件管理的问题,还能够有效保障文件操作环境的安全性。
在一些可能的实施方式中,为了有效保障嵌入式异构多核设备中文件操作的安全性,上述第一文件操作请求中包括目标应用程序所在的客户端的标识信息;服务器根据第一报文,通过控制底层文件系统对目标文件执行第一操作,包括:
服务器根据客户端的标识信息,对客户端的文件操作权限进行校验,并在客户端的文件操作权限校验通过的情况下,通过控制底层文件系统对目标文件执行第一操作。
具体地,服务器在接收到客户端发送的第一操作请求后,通过第一操作请求中的标识信息判断该客户端是否有执行对应请求的权限,即文件操作权限。如果检测到该客户端没有文件操作权限,则可以返回失败,如果客户端的文件操作权限校验通过,则通过控制底层文件系统对目标文件执行第一操作。
在一些可能的实施方式中,为了进一步提升核间文件操作流程整体的合理性,上述在将第一报文通过核间通信缓存发往服务器之后,该文件操作方法还可以包括:
协议解析控制器若在预设时间段内接收到服务器发送的应答报文,则对应答报文进行检测,并在检测到应答报文与第一报文不匹配的情况下,将应答报文进行丢弃;以及,
若在预设时间段内未接收到服务器发送的应答报文,则向目标应用程序返回第一文件操作请求的处理失败结果。
该协议解析控制器可以是基于定时机制设置上述预设时间段,上述预设时间段可以是根据实际核间任务处理速度等进行确定,本申请对此不做具体限制。
具体实现时,客户端中的协议解析控制器除了可以协议封装以及解析之外,该协议解析控制器还可以是对服务器的应答报文进行接收检测。
若在规定的预设时间段内接收到服务器发送的应答报文,则对应答报文进行检测。示例性地,该应答报文可以携带与其应答的报文相关的标识信息,在进行检测时,可以是对其所携带的其所应答的操作请求相关的标识信息是否为前述第一报文的标识信息。
如此,若检测到其所携带的其所应答的操作请求相关的标识信息不为前述第一报文的标识信息,则说明该应答报文与前述第一报文不匹配,其不为第一报文的应答报文,将应答报文进行丢弃。
进一步地,若该协议解析控制器在预设时间段内未接收到服务器发送的应答报文,则说明服务器并未对第一文件操作请求正常处理,此时向目标应用程序反馈第一文件操作请求的处理失败结果。
在一些可能的实施方式中,为了更为合理地实现多核设备中客户端与服务器之间的文件操作请求传输,在将第一文件操作请求发往协议解析控制器之前,该文件操作方法还可以包括:
在检测到服务器处于非空闲状态的情况下,将第一文件操作请求进行缓存;以及,在检测到服务器恢复空闲状态的情况下,根据目标应用程序的预设优先级和第一文件操作请求的发起时间,对缓存的第一文件操作请求进行处理,以使第一文件操作请求发往协议解析控制器。
本实施例中,当与服务器关联的底层文件系统繁忙时,服务器处于非空闲状态,在与服务器关联的底层文件系统处理完当前任务后,服务器则处于空闲状态。
具体实现时,在服务器处于非空闲状态的情况下,服务器可以将自身的非空闲状态以具体状态标识符或者状态字段的形式表征,并通过核间通信缓存传输至客户端。客户端在接收到用于表征服务器的非空闲状态的相关信息后,会将第一文件操作请求进行缓存。
而在服务器处于空闲状态的情况下,服务器可以将自身的空闲状态以具体状态标识符或者状态字段的形式表征,并通过核间通信缓存发送至客户端。客户端在接收到用于表征服务器的空闲状态的相关信息后,根据目标应用程序的预设优先级和第一文件操作请求的发起时间,对缓存的第一文件操作请求进行处理,以使第一文件操作请求发往协议解析控制器。
上述根据目标应用程序的预设优先级和第一文件操作请求的发起时间,对缓存的第一文件操作请求进行处理,具体可以是:由于在服务器处于非空闲状态的情况下,若客户端有多个应用程序发起文件操作请求,则会将多个文件操作请求进行缓存。那么,在服务器恢复空闲状态的情况下,为了避免请求处理混乱,客户端可以根据应用程序的优先级对所缓存的文件操作请求依次进行处理,当优先级相同时按照文件处理请求发起的时间进行先后顺序处理。
需要说明,在其他一些实施方式中,客户端在发送第一文件操作请求之前,也可以是对服务器是否处于空闲状态进行检测。如此,在客户端检测到服务器处于非空闲状态的情况下,将第一文件操作请求进行缓存。在客户端检测到服务器恢复空闲状态的情况下,再对第一文件操作请求进行相关处理。
在一些可能的实施方式中,为了提高有效负载,上述第一报文的报文协议格式具体可以采用type字段、length字段,和value字段的字段组合形式;
其中,type字段填充消息类型,length字段填充内容长度,value字段填充第一报文传递的载荷。
进一步地,可以对上述字段的占用字节进行限制,以进一步提高有效负载,提升核间文件传输的轻量性以及高速性。例如,上述type字段可以限制占用两个字节,length字段可以限制占用两个字节等,本申请对此不做具体限制。
为了便于理解上述实施例提供的文件操作方法,以下以一个具体的整体实施例对上述方法进行说明。图2为本申请实施例提供的文件操作方法的一个整体实施例的流程示意图。
如图2所示,客户端中,对文件的操作请求由客户端的上层应用程序发起,调用与第一文件操作请求匹配的文件操作接口,经过基于锁与优先级的程序控制,将第一文件操作请求发往协议解析控制器,以使协议解析控制器将第一文件操作请求按照预设协议进行封装,生成第一报文,并将第一报文通过核间通信缓存发往服务器。
在本实施例中,若服务器处于非空闲状态,客户端可以将上层应用程序发起的第一文件操作请求进行文件缓存,等待服务器恢复空闲后在执行后续的接口调用、协议封装等步骤。
服务器在通过客户端与服务器之间的核间共享内存接收到第一报文后,先将第一报文按照规定的协议进行解析,得到第一文件操作请求,再基于解析后的文件操作请求对客户端的文件操作权限进行校验,在校验通过的情况下调用底层文件系统接口实现文件操作控制,并将操作请求的处理结果返回客户端。
需要说明,服务器处理结果返回的流程与操作请求的流程相反,但各个步骤发挥作用基本一致,最终,操作请求的处理结果由服务器返回至客户端上层应用程序,从而完成了客户端对磁盘文件的操作。
本整体实施例在多核设备中设置上述系列合理、高效地文件操作流程,能够实现嵌入式异构多核设备的高实时性且轻量化的嵌入式核间远程文件操作,有效解决部分CPU核心无法直接操作存储介质进行文件管理的问题。
基于上述实施例提供的文件操作方法,本申请还提供了与上述文件操作方法相对应的一种文件操作装置,该文件操作装置应用于多核设备,下面通过图3对本申请的文件操作装置进行详细介绍。
图3示出了本申请一实施例提供的文件操作装置的结构示意图。图3示出的文件操作装置300包括:
第一接收模块310,用于接收第一文件操作请求,其中,第一文件操作请求由目标应用程序发起;
第一处理模块320,用于调用与第一文件操作请求匹配的第一文件操作接口,经过基于锁与优先级的程序控制,将第一文件操作请求发往协议解析控制器,以使协议解析控制器将第一文件操作请求按照预设协议进行封装,生成第一报文,并将第一报文通过核间通信缓存发往服务器。
本申请实施例的文件操作装置,通过接收目标应用程序发起的第一文件操作请求,再调用与第一文件操作请求匹配的文件操作接口,经过基于锁与优先级的程序控制,将第一文件操作请求发往协议解析控制器,以使协议解析控制器将第一文件操作请求按照预设协议进行封装,生成第一报文,并将第一报文通过核间通信缓存发往服务器,本申请实施例提供的一种文件操作装置,相较于现有基于网络和通信协议栈的远程文件系统,通过设置上述系列文件请求处理步骤,能够有效实现嵌入式异构多核设备的高实时性且轻量化的嵌入式核间远程文件操作,从而解决了部分CPU核心无法直接操作存储介质进行文件管理的问题。
在一些可能的实施方式中,为了能够进一步实现嵌入式异构多核设备的高实时性且轻量化的嵌入式核间远程文件操作,上述将第一报文通过核间通信缓存发往服务器,具体可以包括:
将第一报文通过核间共享内存发往服务器。
在一些可能的实施方式中,考虑到客户端中可以包括多个应用程序,多个应用程序可能会同时发起相应的文件操作请求。基于此,为了有效提升文件操作过程的效率和线程安全,提高文件操作处理的合理性,上述调用与第一文件操作请求匹配的文件操作接口,经过基于锁与优先级的程序控制,将第一文件操作请求发往协议解析控制器,具体可以包括:
在同时接收到N个应用程序发起的多个文件操作请求的情况下,调用与第一文件操作请求匹配的文件操作接口,并基于N个应用程序的预设优先级,向第一文件操作请求分配锁资源;
将分配锁资源后的第一文件操作请求发往协议解析控制器;
其中,N个应用程序中可以包括目标应用程序,多个文件操作请求中可以包括第一文件操作请求,目标应用程序的预设优先级在N个应用程序中最高。
在一些可能的实施方式中,考虑到客户端对文件进行访问操作时往往涉及到对同一文件的连贯性的操作请求,例如,在请求打开文件后往往会需要对文件内容进行读取和写入等。基于此,为了进一步提升服务器与客户端之间的文件操作效率,将第一报文通过核间通信缓存发往服务器之后,该文件操作装置还可以包括:
第二接收模块,可以用于接收服务器发送的与目标文件关联的目标文件描述符;目标文件为第一文件操作请求所请求操作的文件;
第一发送模块,可以用于将第二文件操作请求发往协议解析控制器,以使协议解析控制器将第二文件操作请求按照预设协议进行封装,生成第二报文,并将二报文通过核间通信缓存发往服务器;其中,第二操作请求中可以包括目标文件描述符;第二操作请求用于请求对目标文件执行第二操作;
第一执行模块,可以用于服务器在接收到由第二报文后,基于目标文件描述符,确定目标文件,并对目标文件执行第二操作。
在一些可能的实施方式中,为了更为合理解决部分CPU核心无法直接操作存储介质进行文件管理的问题,第一文件操作请求可以用于请求对目标文件执行第一操作;服务器预先与多核设备的底层文件系统建立通信;在将第一报文通过核间通信缓存发往服务器之后,该文件操作装置还可以包括:
第二执行模块,可以用于服务器根据第一报文,通过控制底层文件系统对目标文件执行第一操作。
在一些可能的实施方式中,为了有效保障嵌入式异构多核设备中文件操作的安全性,第一文件操作请求中可以包括目标应用程序所在的客户端的标识信息;上述第二执行模块,具体可以包括:
服务器根据客户端的标识信息,对客户端的文件操作权限进行校验,并在客户端的文件操作权限校验通过的情况下,通过控制底层文件系统对目标文件执行第一操作。
在一些可能的实施方式中,为了进一步提升核间文件操作流程整体的合理性,在将第一报文通过核间通信缓存发往服务器之后,该文件操作装置还可以包括:
检测模块,可以用于协议解析控制器若在预设时间段内接收到服务器发送的应答报文,则对应答报文进行检测;
第二处理模块,可以用于在检测到应答报文与第一报文不匹配的情况下,将应答报文进行丢弃;以及,
若在预设时间段内未接收到服务器发送的应答报文,则向目标应用程序返回第一文件操作请求的处理失败结果。
在一些可能的实施方式中,为了更为合理地实现多核设备中客户端与服务器之间的文件操作请求传输,在将第一文件操作请求发往协议解析控制器之前,该文件操作装置还可以包括:
文件缓存模块,可以用于在检测到服务器处于非空闲状态的情况下,将第一文件操作请求进行缓存;以及,在检测到服务器恢复空闲状态的情况下,根据目标应用程序的预设优先级和第一文件操作请求的发起时间,对缓存的第一文件操作请求进行处理,以使第一文件操作请求发往协议解析控制器。
在一些可能的实施方式中,为了提高有效负载,上述第一报文的报文协议格式可以采用type字段、length字段,和value字段的字段组合形式;
其中,type字段填充消息类型,length字段填充内容长度,value字段填充第一报文传递的载荷。
图4是本申请一实施例提供的文件操作设备的结构示意图。
文件操作设备可以包括处理器401以及存储有计算机程序指令的存储器402。
具体地,上述处理器401可以包括中央处理器(CPU),或者特定集成电路(Application Specific Integrated Circuit,ASIC),或者可以被配置成实施本申请实施例的一个或多个集成电路。
存储器402可以包括用于数据或指令的大容量存储器。举例来说而非限制,存储器402可包括硬盘驱动器(Hard Disk Drive,HDD)、软盘驱动器、闪存、光盘、磁光盘、磁带或通用串行总线(Universal Serial Bus,USB)驱动器或者两个或更多个以上这些的组合。在合适的情况下,存储器402可包括可移除或不可移除(或固定)的介质。在合适的情况下,存储器402可在综合网关容灾设备的内部或外部。在特定实施例中,存储器402是非易失性固态存储器。
存储器可包括只读存储器(ROM),随机存取存储器(RAM),磁盘存储介质设备,光存储介质设备,闪存设备,电气、光学或其他物理/有形的存储器存储设备。因此,通常,存储器包括一个或多个编码有包括计算机可执行指令的软件的有形(非暂态)计算机可读存储介质(例如,存储器设备),并且当该软件被执行(例如,由一个或多个处理器)时,其可操作来执行参考根据本公开的一方面的方法所描述的操作。
处理器401通过读取并执行存储器402中存储的计算机程序指令,以实现上述实施例中的任意一种文件操作方法。
在一个示例中,文件操作设备还可包括通信接口403和总线410。其中,如图4所示,处理器401、存储器402、通信接口403通过总线410连接并完成相互间的通信。
通信接口403,主要用于实现本申请实施例中各模块、装置、单元和/或设备之间的通信。
总线410包括硬件、软件或两者,将文件操作设备的部件彼此耦接在一起。举例来说而非限制,总线可包括加速图形端口(AGP)或其他图形总线、增强工业标准架构(EISA)总线、前端总线(FSB)、超传输(HT)互连、工业标准架构(ISA)总线、无限带宽互连、低引脚数(LPC)总线、存储器总线、微信道架构(MCA)总线、外围组件互连(PCI)总线、PCI-Express(PCI-X)总线、串行高级技术附件(SATA)总线、视频电子标准协会局部(VLB)总线或其他合适的总线或者两个或更多个以上这些的组合。在合适的情况下,总线410可包括一个或多个总线。尽管本申请实施例描述和示出了特定的总线,但本申请考虑任何合适的总线或互连。
该文件操作设备执行本申请实施例中的文件操作方法,从而实现图1描述的文件操作方法。
另外,结合上述实施例中的文件操作方法,本申请实施例可提供一种计算机存储介质来实现。该计算机存储介质上存储有计算机程序指令;该计算机程序指令被处理器执行时实现上述实施例中的任意一种文件操作方法。
需要明确的是,本申请并不局限于上文所描述并在图中示出的特定配置和处理。为了简明起见,这里省略了对已知方法的详细描述。在上述实施例中,描述和示出了若干具体的步骤作为示例。但是,本申请的方法过程并不限于所描述和示出的具体步骤,本领域的技术人员可以在领会本申请的精神后,作出各种改变、修改和添加,或者改变步骤之间的顺序。
以上所述的结构框图中所示的功能块可以实现为硬件、软件、固件或者它们的组合。当以硬件方式实现时,其可以例如是电子电路、专用集成电路(ASIC)、适当的固件、插件、功能卡等等。当以软件方式实现时,本申请的元素是被用于执行所需任务的程序或者代码段。程序或者代码段可以存储在机器可读介质中,或者通过载波中携带的数据信号在传输介质或者通信链路上传送。“机器可读介质”可以包括能够存储或传输信息的任何介质。机器可读介质的例子包括电子电路、半导体存储器设备、ROM、闪存、可擦除ROM(EROM)、软盘、CD-ROM、光盘、硬盘、光纤介质、射频(RF)链路,等等。代码段可以经由诸如因特网、内联网等的计算机网络被下载。
还需要说明的是,本申请中提及的示例性实施例,基于一系列的步骤或者装置描述一些方法或系统。但是,本申请不局限于上述步骤的顺序,也就是说,可以按照实施例中提及的顺序执行步骤,也可以不同于实施例中的顺序,或者若干步骤同时执行。
上面参考根据本公开的实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各方面。应当理解,流程图和/或框图中的每个方框以及流程图和/或框图中各方框的组合可以由计算机程序指令实现。这些计算机程序指令可被提供给通用计算机、专用计算机、或其它可编程数据处理装置的处理器,以产生一种机器,使得经由计算机或其它可编程数据处理装置的处理器执行的这些指令使能对流程图和/或框图的一个或多个方框中指定的功能/动作的实现。这种处理器可以是但不限于是通用处理器、专用处理器、特殊应用处理器或者现场可编程逻辑电路。还可理解,框图和/或流程图中的每个方框以及框图和/或流程图中的方框的组合,也可以由执行指定的功能或动作的专用硬件来实现,或可由专用硬件和计算机指令的组合来实现。
以上所述,仅为本申请的具体实施方式,所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、模块和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。应理解,本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。
Claims (10)
1.一种文件操作方法,其特征在于,应用于多核设备,所述方法包括:
接收第一文件操作请求,其中,所述第一文件操作请求由目标应用程序发起;
调用与所述第一文件操作请求匹配的文件操作接口,经过基于锁与优先级的程序控制,将所述第一文件操作请求发往协议解析控制器,以使所述协议解析控制器将所述第一文件操作请求按照预设协议进行封装,生成第一报文,并将所述第一报文通过核间通信缓存发往服务器。
2.根据权利要求1所述的方法,其特征在于,所述将所述第一报文通过核间通信缓存发往服务器,包括:
将所述第一报文通过核间共享内存发往服务器。
3.根据权利要求1所述的方法,其特征在于,所述调用与所述第一文件操作请求匹配的文件操作接口,经过基于锁与优先级的程序控制,将所述第一文件操作请求发往协议解析控制器,包括:
在同时接收到N个应用程序发起的多个文件操作请求的情况下,调用与所述第一文件操作请求匹配的文件操作接口,并基于所述N个应用程序的预设优先级,向所述第一文件操作请求分配锁资源;
将所述分配锁资源后的所述第一文件操作请求发往所述协议解析控制器;
其中,所述N个应用程序中包括所述目标应用程序,所述多个文件操作请求中包括所述第一文件操作请求,所述目标应用程序的预设优先级在所述N个应用程序中最高。
4.根据权利要求1所述的方法,其特征在于,所述将所述第一报文通过核间通信缓存发往服务器之后,所述方法还包括:
接收所述服务器发送的与目标文件关联的目标文件描述符;所述目标文件为所述第一文件操作请求所请求操作的文件;
将第二文件操作请求发往协议解析控制器,以使所述协议解析控制器将所述第二文件操作请求按照预设协议进行封装,生成第二报文,并将所述二报文通过核间通信缓存发往所述服务器;其中,所述第二操作请求中包括所述目标文件描述符;所述第二操作请求用于请求对所述目标文件执行第二操作;
所述服务器在接收到由所述第二报文后,基于所述目标文件描述符,确定所述目标文件,并对所述目标文件执行所述第二操作。
5.根据权利要求1所述的方法,其特征在于,所述第一文件操作请求用于请求对目标文件执行第一操作;所述服务器预先与所述多核设备的底层文件系统建立通信;在所述将所述第一报文通过核间通信缓存发往服务器之后,所述方法还包括:
所述服务器根据所述第一报文,通过控制所述底层文件系统对所述目标文件执行所述第一操作。
6.根据权利要求5所述的方法,其特征在于,所述第一文件操作请求中包括所述目标应用程序所在的客户端的标识信息;所述服务器根据所述第一报文,通过控制所述底层文件系统对所述目标文件执行所述第一操作,包括:
所述服务器根据所述客户端的标识信息,对所述客户端的文件操作权限进行校验,并在所述客户端的文件操作权限校验通过的情况下,通过控制所述底层文件系统对所述目标文件执行所述第一操作。
7.根据权利要求1所述的方法,其特征在于,在所述将所述第一报文通过核间通信缓存发往服务器之后,所述方法还包括:
所述协议解析控制器若在预设时间段内接收到所述服务器发送的应答报文,则对所述应答报文进行检测,并在检测到所述应答报文与所述第一报文不匹配的情况下,将所述应答报文进行丢弃;以及,
若在所述预设时间段内未接收到所述服务器发送的应答报文,则向所述目标应用程序返回所述第一文件操作请求的处理失败结果。
8.根据权利要求1所述的方法,其特征在于,在将所述第一文件操作请求发往协议解析控制器之前,所述方法还包括:
在检测到所述服务器处于非空闲状态的情况下,将所述第一文件操作请求进行缓存;以及,在检测到所述服务器恢复空闲状态的情况下,根据所述目标应用程序的预设优先级和所述第一文件操作请求的发起时间,对所述缓存的所述第一文件操作请求进行处理,以使所述第一文件操作请求发往所述协议解析控制器。
9.根据权利要求1所述的方法,其特征在于,所述第一报文的报文协议格式采用type字段、length字段,和value字段的字段组合形式;
其中,所述type字段填充消息类型,所述length字段填充内容长度,value字段填充所述第一报文传递的载荷。
10.一种文件操作装置,其特征在于,应用于多核设备,所述装置包括:
第一接收模块,用于接收第一文件操作请求,其中,所述第一文件操作请求由目标应用程序发起;
第一处理模块,用于调用与所述第一文件操作请求匹配的第一文件操作接口,经过基于锁与优先级的程序控制,将所述第一文件操作请求发往协议解析控制器,以使所述协议解析控制器将所述第一文件操作请求按照预设协议进行封装,生成第一报文,并将所述第一报文通过核间通信缓存发往服务器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211550432.0A CN115733904A (zh) | 2022-12-05 | 2022-12-05 | 文件操作方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211550432.0A CN115733904A (zh) | 2022-12-05 | 2022-12-05 | 文件操作方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115733904A true CN115733904A (zh) | 2023-03-03 |
Family
ID=85300145
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211550432.0A Pending CN115733904A (zh) | 2022-12-05 | 2022-12-05 | 文件操作方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115733904A (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102055737A (zh) * | 2009-11-04 | 2011-05-11 | 中兴通讯股份有限公司 | 一种远程登陆多核系统硬件线程的方法、装置及系统 |
CN105302489A (zh) * | 2015-10-30 | 2016-02-03 | 致象尔微电子科技(上海)有限公司 | 一种异构多核远程嵌入式存储器系统与方法 |
US20200358779A1 (en) * | 2019-05-07 | 2020-11-12 | Citrix Systems, Inc. | Methods and systems for accessing remotely stored files using virtual applications |
US20210303443A1 (en) * | 2020-03-27 | 2021-09-30 | Loren James MCCONNELL | Method and apparatus for protecting trace data of a remote debug session |
-
2022
- 2022-12-05 CN CN202211550432.0A patent/CN115733904A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102055737A (zh) * | 2009-11-04 | 2011-05-11 | 中兴通讯股份有限公司 | 一种远程登陆多核系统硬件线程的方法、装置及系统 |
CN105302489A (zh) * | 2015-10-30 | 2016-02-03 | 致象尔微电子科技(上海)有限公司 | 一种异构多核远程嵌入式存储器系统与方法 |
US20200358779A1 (en) * | 2019-05-07 | 2020-11-12 | Citrix Systems, Inc. | Methods and systems for accessing remotely stored files using virtual applications |
US20210303443A1 (en) * | 2020-03-27 | 2021-09-30 | Loren James MCCONNELL | Method and apparatus for protecting trace data of a remote debug session |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111580995B (zh) | 基于mqtt异步通信场景下的分布式云平台与物联网智能终端的同步通信方法与系统 | |
US11716264B2 (en) | In situ triggered function as a service within a service mesh | |
CN108023908B (zh) | 数据更新方法、装置及系统 | |
CN109491801B (zh) | 微服务访问调度方法、装置、介质及电子设备 | |
CN108063813B (zh) | 一种集群环境下密码服务网络并行化的方法与系统 | |
CN110958281B (zh) | 基于物联网的数据传输方法及通信装置 | |
CN111966446B (zh) | 一种容器环境下rdma虚拟化方法 | |
CN111459417B (zh) | 一种面向NVMeoF存储网络的无锁传输方法及系统 | |
US20190042339A1 (en) | Techniques for invocation of a function or a service | |
CN102694847B (zh) | 抓取第三方开放平台中用户动态的方法和装置 | |
CN114928579B (zh) | 数据处理方法、装置、计算机设备及存储介质 | |
CN112804289B (zh) | 一种资源同步方法、装置、设备及存储介质 | |
CN114124929A (zh) | 跨网络的数据处理方法和装置 | |
WO2024037629A1 (zh) | 区块链的数据整合方法、装置、计算机设备及存储介质 | |
CN109327321B (zh) | 网络模型业务执行方法、装置、sdn控制器及可读存储介质 | |
CN115562887A (zh) | 基于数据组包的核间数据通信方法、系统、设备及介质 | |
CN112463710A (zh) | 一种基于嵌入式平台的核间通信方法及系统 | |
CN115733904A (zh) | 文件操作方法及装置 | |
CN109284177B (zh) | 一种数据更新方法和装置 | |
CN112711485A (zh) | 一种消息处理方法和装置 | |
CN114595080A (zh) | 数据处理方法、装置、电子设备及计算机可读存储介质 | |
CN115576661A (zh) | 数据处理系统、方法和控制器 | |
CN112422457B (zh) | 报文处理方法、装置和计算机存储介质 | |
CN117742998B (zh) | 一种面向计费采集数据转发的高性能队列方法及系统 | |
CN118368293B (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 | ||
CB02 | Change of applicant information |
Address after: Room 601, Building 4, Jingwei Hengrun R&D Center, No. 2, Huixiang Road, Zhangjiawo Town, Xiqing District, Tianjin, 300380 Applicant after: Jingwei Hengrun (Tianjin) research and Development Co.,Ltd. Address before: Room 308, No.9 Fengze Road, automobile industrial zone, Xiqing District, Tianjin (Zhangjiawo Industrial Zone), 300380 Applicant before: Jingwei Hengrun (Tianjin) research and Development Co.,Ltd. |
|
CB02 | Change of applicant information |