首页 / 专利库 / 软件 / 命令行界面 / 一种提高系统命令行界面接口的调用效率方法及装置

一种提高系统命令行界面接口的调用效率方法及装置

阅读:310发布:2020-05-17

专利汇可以提供一种提高系统命令行界面接口的调用效率方法及装置专利检索,专利查询,专利分析的服务。并且本 申请 公开了一种提高系统 命令行界面 接口 的调用效率的方法及装置,包括:在 操作系统 的 内核 空间中申请第一内存,然后,将该第一内存通过MMAP映射至用户空间,并以文件的形式提供 访问 第一内存的第一系统命令行界面接口,这样,用户空间上的第一应用程序就利用该第一系统命令行界面接口,访问内核空间上的第一内存,以实现与内核空间的交互。可见,应用程序利用该第一系统命令行界面接口直接访问内核空间中的第一内存,使得应用程序与内核空间之间利用第一内存进行数据交互,从而提高了应用程序与内核空间之间的数据传输性能,进而提高了系统命令行界面接口的调用效率。,下面是一种提高系统命令行界面接口的调用效率方法及装置专利的具体信息内容。

1.一种提高系统命令行界面接口的调用效率方法,其特征在于,所述方法包括:
操作系统内核空间中申请第一内存;
将所述第一内存通过MMAP映射至用户空间,并以文件的形式提供访问所述第一内存的第一系统命令行界面接口;
其中,所述第一系统命令行界面接口,用于被所述用户空间上的第一应用程序进行调用,以访问所述内核空间中的第一内存。
2.根据权利要求1所述的方法,其特征在于,所述第一系统命令行界面接口用于被所述用户空间上的第一应用程序进行调用,以访问所述内核空间中的第一内存,包括:
所述第一系统命令行界面接口,具体用于被所述用户空间上的第一应用程序进行调用,将操作指令的操作码写入所述第一内存中的操作码区段,并将所述操作指令所涉及的发送数据写入所述第一内存中的发送数据区段;
其中,所述发送数据为所述内核空间基于所述操作指令进行处理的数据,所述发送数据具有与所述操作指令对应的数据结构。
3.根据权利要求2所述的方法,其特征在于,所述第一内存还包括内存区间状态区段,所述内存区间状态区段,用于存储所述第一内存当前是否正在写入操作指令的操作码的第一标识、是否完成操作码写入的第二标识、是否执行完毕操作指令的第三标识、所述第一内存中的数据是否被释放的第四标识以及所述第一应用程序的第五标识。
4.根据权利要求3所述的方法,其特征在于,所述第一内存还包括接收数据区段,所述方法还包括:
在根据所述内存区间状态区段中存储的第三标识,确定所述操作指令执行完毕后,利用所述第一系统命令行界面接口将所述接收数据区段中的接收数据发送给所述第一应用程序;
其中,所述接收数据为所述内核空间基于所述操作指令对所述发送数据进行处理后所得到的数据,所述接收数据具有与所述操作指令对应的数据结构。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
轮询所述内存区间状态区段中存储的第二标识;
若所述第二标识表征当前所述操作码写入完成,则基于所述操作指令对所述发送数据进行处理。
6.根据权利要求3至5任一项所述的方法,其特征在于,所述方法还包括:
在所述第一应用程序向所述第一内存写入所述操作指令之前,利用所述内存区间状态区段中存储的第一标识,定所述第一内存。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述操作系统的内存空间中申请第二内存;
将所述第二内存通过MMAP映射至用户空间,并以文件的形式提供访问所述第二内存的第二系统命令行界面接口,以使得所述用户空间上的第二应用程序利用所述第二系统命令行界面接口,访问所述内核空间中的第二内存。
8.根据权利要求1所述的方法,其特征在于,所述第一内存,还可以被所述用户空间中的第三应用程序利用所述第一系统命令行界面接口进行访问。
9.一种提高系统命令行界面接口的调用效率装置,其特征在于,所述装置包括:
第一申请单元,用于在操作系统的内核空间中申请第一内存;
第一映射单元,用于将所述第一内存通过MMAP映射至用户空间,并以文件的形式提供访问所述第一内存的第一系统命令行界面接口;
其中,所述第一系统命令行界面接口,用于被所述用户空间上的第一应用程序进行调用,以访问所述内核空间中的第一内存。
10.根据权利要求9所述的装置,其特征在于,所述装置还包括:
第二申请单元,用于在所述操作系统的内存空间中申请第二内存;
第二映射单元,用于将所述第二内存通过MMAP映射至用户空间,并以文件的形式提供访问所述第二内存的第二系统命令行界面接口;
其中,所述第二系统命令行界面接口,用于被所述用户空间上的第二应用程序进行调用,以访问所述内核空间中的第二内存。

说明书全文

一种提高系统命令行界面接口的调用效率方法及装置

技术领域

[0001] 本申请涉及通信技术领域,特别是涉及一种提高系统命令行界面接口的调用效率的方法及装置。

背景技术

[0002] 随着网络通信技术、高性能运算、大数据存储等技术的高速发展,企业的发展已经越来越离不开IT技术的推动。在越来越多的行业领域中,IT技术之争已经逐渐成为企业创新、提升自身竞争的主要手段。在网络通信技术应用、高性能运算应用、大数据存储技术应用、相关的企业级只能的AIOPS(Algorithmic IT Operations,基于算法的IT运维)以及自动化IT运维等技术中,都涉及海量的系统命令行界面接口调用。在一定情况下,系统命令行界面接口的调用效率越高,则IT系统的使用效率也会更高。因此,系统命令行界面接口的调用效率,直接影响着整个IT系统的使用效率。
[0003] 而现有的调用系统命令行界面接口的方案中,用户空间上的应用程序无法直接访问操作系统内核空间,使得应用程序在与内核空间进行数据交互时,系统命令行界面接口的调用效率通常较低,从而也降低了整个IT系统的使用效率。发明内容
[0004] 本申请实施例所要解决的技术问题是,提供一种提高系统命令行界面接口的调用效率方法及装置,以使得应用程序可以直接访问操作系统的内核空间,提高系统命令行界面接口的调用效率,从而提高整个IT系统的使用效率。
[0005] 第一方面,本申请实施例提供了一种提高系统命令行界面接口的调用效率方法,所述方法包括:
[0006] 在操作系统的内核空间中申请第一内存;
[0007] 将所述第一内存通过MMAP映射至用户空间,并以文件的形式提供访问所述第一内存的第一系统命令行界面接口;
[0008] 其中,所述第一系统命令行界面接口,用于被所述用户空间上的第一应用程序进行调用,以访问所述内核空间中的第一内存。
[0009] 在一些可能的实施方式中,所述第一系统命令行界面接口,用于被所述用户空间上的第一应用程序进行调用,以访问所述内核空间中的第一内存,包括:
[0010] 所述第一系统命令行界面接口,具体用于被所述用户空间上的第一应用程序进行调用,将操作指令的操作码写入所述第一内存中的操作码区段,并将所述操作指令所涉及的发送数据写入所述第一内存中的发送数据区段;
[0011] 其中,所述发送数据为所述内核空间基于所述操作指令进行处理的数据,所述发送数据具有与所述操作指令对应的数据结构。
[0012] 在一些可能的实施方式中,所述第一内存还包括内存区间状态区段,所述内存区间状态区段,用于存储所述第一内存当前是否正在写入操作指令的操作码的第一标识、是否完成操作码写入的第二标识、是否执行完毕操作指令的第三标识、所述第一内存中的数据是否被释放的第四标识以及所述第一应用程序的第五标识。
[0013] 在一些可能的实施方式中,所述第一内存还包括接收数据区段,所述方法还包括:
[0014] 在根据所述内存区间状态区段中存储的第三标识,确定所述操作指令执行完毕后,利用所述第一系统命令行界面接口将所述接收数据区段中的接收数据发送给所述第一应用程序;
[0015] 其中,所述接收数据为所述内核空间基于所述操作指令对所述发送数据进行处理后所得到的数据,所述接收数据具有与所述操作指令对应的数据结构。
[0016] 在一些可能的实施方式中,所述方法还包括:
[0017] 轮询所述内存区间状态区段中存储的第二标识;
[0018] 若所述第二标识表征当前所述操作码写入完成,则基于所述操作指令对所述发送数据进行处理。
[0019] 在一些可能的实施方式中,所述方法还包括:
[0020] 在所述第一应用程序向所述第一内存写入所述操作指令之前,利用所述内存区间状态区段中存储的第一标识,定所述第一内存。
[0021] 在一些可能的实施方式中,所述方法还包括:
[0022] 在所述操作系统的内存空间中申请第二内存;
[0023] 将所述第二内存通过MMAP映射至用户空间,并以文件的形式提供访问所述第二内存的第二系统命令行界面接口,以使得所述用户空间上的第二应用程序利用所述第二系统命令行界面接口,访问所述内核空间中的第二内存。
[0024] 在一些可能的实施方式中,所述第一内存,还可以被所述用户空间中的第三应用程序利用所述第一系统命令行界面接口进行访问。
[0025] 第二方面,本申请实施例还一种提高系统命令行界面接口的调用效率装置,所述装置包括:
[0026] 第一申请单元,用于在操作系统的内核空间中申请第一内存;
[0027] 第一映射单元,用于将所述第一内存通过MMAP映射至用户空间,并以文件的形式提供访问所述第一内存的第一系统命令行界面接口;
[0028] 其中,所述第一系统命令行界面接口,用于被所述用户空间上的第一应用程序进行调用,以访问所述内核空间中的第一内存。
[0029] 在一些可能的实施方式中,所述装置还包括:
[0030] 第二申请单元,用于在所述操作系统的内存空间中申请第二内存;
[0031] 第二映射单元,用于将所述第二内存通过MMAP映射至用户空间,并以文件的形式提供访问所述第二内存的第二系统命令行界面接口;
[0032] 其中,所述第二系统命令行界面接口,用于被所述用户空间上的第二应用程序进行调用,以访问所述内核空间中的第二内存。
[0033] 在一些可能的实施方式中,所述第一系统命令行界面接口,用于被所述用户空间上的第一应用程序进行调用,以访问所述内核空间中的第一内存,包括:
[0034] 所述第一系统命令行界面接口,具体用于被所述用户空间上的第一应用程序进行调用,将操作指令的操作码写入所述第一内存中的操作码区段,并将所述操作指令所涉及的发送数据写入所述第一内存中的发送数据区段;
[0035] 其中,所述发送数据为所述内核空间基于所述操作指令进行处理的数据,所述发送数据具有与所述操作指令对应的数据结构。
[0036] 在一些可能的实施方式中,所述第一内存还包括内存区间状态区段,所述内存区间状态区段,用于存储所述第一内存当前是否正在写入操作指令的操作码的第一标识、是否完成操作码写入的第二标识、是否执行完毕操作指令的第三标识、所述第一内存中的数据是否被释放的第四标识以及所述第一应用程序的第五标识。
[0037] 在一些可能的实施方式中,所述第一内存还包括接收数据区段,所述装置还包括:
[0038] 发送单元,用于在根据所述内存区间状态区段中存储的第三标识,确定所述操作指令执行完毕后,利用所述第一系统命令行界面接口将所述接收数据区段中的接收数据发送给所述第一应用程序;
[0039] 其中,所述接收数据为所述内核空间基于所述操作指令对所述发送数据进行处理后所得到的数据,所述接收数据具有与所述操作指令对应的数据结构。
[0040] 在一些可能的实施方式中,所述装置还包括:
[0041] 轮询单元,用于轮询所述内存区间状态区段中存储的第二标识;
[0042] 处理单元,用于若所述第二标识表征当前所述操作码写入完成,则基于所述操作指令对所述发送数据进行处理。
[0043] 在一些可能的实施方式中,所述装置还包括:
[0044] 锁定单元,用于在所述第一应用程序向所述第一内存写入所述操作指令之前,利用所述内存区间状态区段中存储的第一标识,锁定所述第一内存。
[0045] 在本申请实施例的上述实现方式中,利用在内核空间中申请的内存来提供应用程序与内核空间进行直接交互的系统命令行界面接口,以使得应用程序可以直接访问操作系统的内核空间。具体的,可以在操作系统的内核空间中申请第一内存,然后,将该第一内存通过MMAP映射至用户空间,并以文件的形式提供访问第一内存的第一系统命令行界面接口,这样,用户空间上的第一应用程序就可以利用该第一系统命令行界面接口,访问内核空间上的第一内存,以实现与内核空间的交互。可见,通过将申请的第一内存映射至用户空间,并提供了应用程序访问第一内存的第一系统命令行界面接口,应用程序可以利用该第一系统命令行界面接口直接访问内核空间中的第一内存,使得应用程序与内核空间之间可以利用第一内存进行数据交互,从而提高了应用程序与内核空间之间的数据传输性能,进而提高了系统命令行界面接口的调用效率。附图说明
[0046] 为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
[0047] 图1为本申请实施例中一种提高系统命令行界面接口的调用效率方法流程示意图;
[0048] 图2为第一内存区间划分不同区段的示意图;
[0049] 图3为内存区间状态区段中包含不同标识的示意图;
[0050] 图4为本申请实施例中一种提高系统命令行界面接口的调用效率装置结构示意图。

具体实施方式

[0051] 目前,用户空间上的应用程序在与操作系统的内核空间进行操作指令等数据交互时,基于对内核空间的保护,应用程序通常无法直接对内核空间进行访问。通常情况下,是通过设置额外的交互管理模,以使得应用程序通过该交互管理模块间接实现对内核空间的访问。而这种交互方式,通常会使得应用程序在与内核空间进行数据交互时,系统命令行界面接口的调用效率通常较低,从而降低了整个IT系统的使用效率。
[0052] 为此,本申请实施例提供了一种提高系统命令行界面接口的调用效率方法,利用在内核空间中申请的内存来提供应用程序与内核空间进行直接交互的系统命令行界面接口,以使得应用程序可以直接访问操作系统的内核空间。具体的,可以在操作系统的内核空间中申请第一内存,然后,将该第一内存通过MMAP(Memory Map,一种内存映射文件的方法)映射至用户空间,并以文件的形式提供访问第一内存的第一系统命令行界面接口,这样,用户空间上的第一应用程序就可以利用该第一系统命令行界面接口,访问内核空间上的第一内存,以实现与内核空间的交互。可见,通过将申请的第一内存映射至用户空间,并提供了应用程序访问第一内存的第一系统命令行界面接口,应用程序可以利用该第一系统命令行界面接口直接访问内核空间中的第一内存,使得应用程序与内核空间之间可以利用第一内存进行数据交互,从而提高了应用程序与内核空间之间的数据传输性能,进而提高了系统命令行界面接口的调用效率。
[0053] 为使本申请的上述目的、特征和优点能够更加明显易懂,下面将结合附图对本申请实施例中的各种非限定性实施方式进行示例性说明。显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
[0054] 参阅图1,图1示出了本申请实施例中一种提高系统命令行界面接口的调用效率方法流程示意图,该方法具体可以包括:
[0055] S101:在操作系统的内核空间中申请第一内存。
[0056] 如Linux、Windows系统等操作系统中,通常会将独立于普通的应用程序、并且运行在较高的特权级别上的核心程序软件划分出来,将其驻留在被保护的内存空间上,拥有访问硬件设备的所有权限,则这些被划分出的核心程序软件通常被称为内核空间。
[0057] 与此对应的,普通的应用程序通常是在“用户空间”中运行。即该部分应用程序无法直接访问内核空间和硬件设备,通常是需要额外配置的交互管理模块等媒介来间接对内核空间以及硬件设备的资源进行访问。
[0058] 本实施例中,为了使得用户空间上的第一应用程序可以直接对内核空间进行访问,可以在内核空间中申请一段连续的内存区间,即第一内存,以存储第一应用程序与内核空间进行交互的操作指令等数据。
[0059] S102:将第一内存通过MMAP映射至用户空间,并以文件的形式提供访问第一内存的第一系统命令行界面接口,其中,第一系统命令行界面接口,用于被用户空间上的第一应用程序进行调用,访问内核空间中的第一内存。
[0060] 本实施例中,在内核空间申请第一内存后,还需要将该第一内存映射到用户空间,具体实现时,可以是通过MMAP的方式将第一内存映射至用户空间。这样,用户空间上的应用程序才具有访问内核空间的第一内存的权限。那也就是说,将该第一内存映射至用户空间后,该第一内存即为全局共享内存,成为用户空间上的第一应用程序以及内核空间上的线程均可以访问的共享内存,当第一应用程序与内核空间之间需要进行交互时,第一应用程序所发出的操作指令、待处理数据等数据均可以写入至该第一内存中,这样,内核空间可以基于第一内存所存储的数据进行相应的处理,以完成与第一应用程序的交互。
[0061] 值的注意的是,在第一应用程序仅仅具有访问内核空间第一内存的权限,仍然无法做到对第一内存进行访问,对此,还需要建立第一应用程序访问第一内存的接口。本实施例中,可以以文件的形式提供访问第一内存的第一系统命令行界面接口,这样,第一应用程序可以利用该第一系统命令行界面接口,来实现对第一内存的访问。
[0062] 本实施例中,当第一应用程序可以访问内核空间的第一内存后,第一应用程序可以将与内核空间进行交互的数据,写入该第一内存,具体可以是将第一应用程序发送的操作指令数据、该操作指令所涉及的发送数据写入至第一内存中。其中,该发送数据是指,第一应用程序发送至第一内存中需要由内核空间进行处理的数据。这样,内核空间可以从第一内存中读取第一应用程序发送的数据,基于该操作指令,对发送数据进行相应的处理。
[0063] 为了简化第一应用程序与内核空间的传输内容,在一些可能的实施方式中,可以为第一应用程序与内核空间之间的接口定制私有协议。具体的,可以为每个操作指令定义与其对应的操作码,这样,第一应用程序向内核空间发送的操作指令时,可以利用操作码来替代原有的采用文本形式的操作指令,从而可以简化第一应用程序与内核空间的传输内容。同时,还可以为操作指令所涉及的发送数据定义与操作指令中的操作对应的数据结构,这样,内核空间在接收到第一应用程序发送过来的数据后,可以基于与操作指令中的操作所对应的数据结构,明确该数据的含义,以便于进行相应的处理。
[0064] 进一步的,基于上述定制的私有协议,可以将第一内存划分为不同的区段,包括:操作码区段以及发送数据区段。则,对于第一应用程序发送的数据,可以将该数据中的操作码存储于第一内存中的操作码区段,将该数据中的发送数据存储于第一内存中的发送数据区段,如图2所示。其中,图2中的“Offset 0”以及“Offset A”分别为操作码区段以及发送数据区段的起始地址,地址“Offset 0”至Offset A”之间所对应的内存区段为操作码区段,地址“Offset A”至“Offset B”之间所对应的内存区段为发送数据区段。
[0065] 在一些可能的实施方式中,第一内存中还可以包括内存区间状态区段,可以存储内存区间的各个状态以及第一应用程序的标识。如图2所示,“OffsetC”为内存区间状态区段的起始地址,地址“Offset C”至“Offset D”之间所对应的内存区段为内存区间状态区段。该内存区间状态区段,可以用于存储第一内存当前是否正在写入操作指令的操作码的第一标识、第一内存当前是否完成操作码写入的第二标识、当前是否执行完毕操作指令的第三标识、第一内存当前是否被释放的第四标识以及对第一内存进行访问的第一应用程序的第五标识。
[0066] 其中,第一标识可以标识出第一内存当前是否正在写入操作指令的操作码,如图3所示。作为一种示例,当图3中所示的“Bit 0”字段值为0时,可以标识当前没有操作指令的操作码正在写入第一内存中;而当“Bit 0”字段值为1时,则可以标识出当前正在向第一内存中写入操作指令的操作码。
[0067] 类似的,第二标识可以标识出第一内存当前是否完成操作码写入,如图3所示。作为一种示例,当图3中所示的“Bit 1”字段值为0时,可以标识第一内存当前没有完成操作码写入;而当“Bit 1”字段值为1时,则可以标识出第一内存当前已经完成操作码的写入。
[0068] 第三标识可以标识出内核空间当前是否执行完毕操作指令,如图3所示。作为一种示例,当图3中所示的“Bit 2”字段值为0时,可以标识出内核空间当前没有执行完操作指令;而当“Bit 2”字段值为1时,可以标识出内核空间当前已经执行完操作指令。
[0069] 第四标识可以标识出第一内存中存储的数据是否被释放,如图3所示。作为一种示例,当图3中所示的“Bit 3”字段值为0时,可以标识出第一内存中存储的数据没有被释放;当Bit 3”字段值为1时,可以标识出第一内存中存储的数据已经被释放。
[0070] 第五标识可以标识出当前正在对第一内存进行访问的第一应用程序,可以利用图3中所示的“Bit 4”至“Bit n”的字段值来表示第一应用程序的标识。实际应用中,“Bit n”中n的取值可根据实际情况进行确定。比如,第一内存为基于32位的操作系统中,则n的取值可以为32,若第一内存为基于64位的操作系统中,则n的取值可以为64。当然,也可以是其它大于4的正整数,在此不作限定。
[0071] 本实施例中,在第一应用程序向第一内存发送操作指令之前,可以利用内存区间状态区段中存储的第一标识,来锁定第一内存,以便避免该第一内存被用户空间上的其它应用程序访问。在一种示例中,具体实现时,可以是将图3中所示的“Bit 0”字段值置1,即表征当前第一内存正在处于接收操作指令的操作码状态,这样,内核空间在检测到“Bit 0”字段值为1时,拒绝用户空间上除第一应用程序以外的其它应用程序对第一内存进行访问。
[0072] 在第一应用程序访问第一内存期间,内核空间可以轮询内存区间状态区段中存储的第二标识,若确定该第二标识表征当前第一应用程序发送的操作指令对应的操作码已经写入完成,在可以触发内存区间相应的指令处理程序,通过对操作码进行解析,解析出该操作码对应的操作指令,然后基于该操作指令对发送数据进行相应的处理,得到处理结果,并在得到处理结果后,将内存区间状态区段中存储的第三标识设置为表征操作指令执行完毕的标识。
[0073] 在内核空间得到针对于发送数据的处理结果后,可以由第一内存将该处理结果进行存储。则,在一些可能的实施方式中,第一内存还可以包括接收数据区段,该接收数据区段用于存储针对于发送数据进行处理而得到的处理结果,如图2所示,“Offset B”为接收数据区段的起始地址,地址“Offset B”至“Offset C”之间所对应的内存区段为接收数据区段。在根据内存区间状态区段中存储的第三标识,确定操作指令执行完毕后,可以利用第一系统命令行界面接口将与该操作结果对应的接收数据发送给第一应用程序,以便于第一应用程序能够接收到针对于发送数据进行处理后所得到的处理结果。其中,接收数据为内核空间基于操作指令对发送数据进行处理后所得到的数据;同时,具有与该操作指令中的操作所对应的数据结构,以便于第一应用程序在接收到该数据结构下的接收数据后,能够明确该接收数据的数据含义。
[0074] 实际应用中,可以是由第一应用程序或者内核空间上的轮询程序对第三标识进行轮询,以检测第三标识是否表征为当前已经操作指令已经执行完毕,如确定当前操作指令中执行完毕(如图3中的“Bit 2”的字段值为1),则可以触发将接收数据发送给第一应用程序。
[0075] 需要说明的是,图2所示的对第一内存中各个区段的划分仅用于示例性说明,并不对第一内存的划分方式进行限定;同样的,图3所示的内存区间状态区段也仅作为示例性说明,并不用于对内存区间状态区段的具体实施方式进行限定。
[0076] 实际应用中,为了便于使用,可以将第一系统命令行界面接口与定制的私有协议进行封装,形成简单、易操作的接口工具。进一步的,还可以将该接口工具与用户空间上的第一应用程序进行绑定,在第一应用程序内部实现该接口工具,或者是将该接口工具作为功能模块加入至第一应用程序中。
[0077] 当然,为了尽可能的减少对现有的应用程序的改动,也可以是定义内核扩展接口与应用程序的扩展lib库,以使得第三方的应用程序根据该扩展lib库可以方便的链接到第一系统命令行界面接口中,以实现对第一内存的访问。
[0078] 需要说明的是,本实施例中,还可以将全局共享内存扩充为全局共享内存数组或者链表,即,在内核空间中申请内存时,可以同时申请多个内存,以实现对操作指令的并行处理。下面,以同时申请第一内存以及第二内存为例进行说明:
[0079] 首先,可以在操作系统的内核空间中申请第一内存以及第二内存,在一些实施方式中,该第一内存以及第二内存可以形成一个全局共享内存数组或者链表;然后,分别将第一内存以及第二内存通过MMAP的方式映射至用户空间,并以文件的形式提供访问第一内存的第一系统命令行界面接口,以及提供访问第二内存的第二系统命令行界面接口,以使得用户空间上的第一应用程序可以通过第一系统命令行界面接口访问内核空间上的第一内存,用户空间上的第二应用程序可以通过第二系统命令行界面接口访问内核空间上的第二内存。这样,内核空间可以同时执行第一应用程序写入第一内存的第一操作指令,以及第二应用程序写入第二内存的第二操作指令,从而使得内核空间可以对第一应用程序以及第二应用程序的操作指令进行并行处理,提高数据处理的效率。
[0080] 值得注意的是,并非只有第一应用程序才能通过第一系统命令行界面接口访问第一内存,事实上,用户空间上的其它应用程序,如第三应用程序,也可以通过该第一系统命令行界面接口对第一内存进行。第一内存作为全局共享内存,可以被用户空间上的任意应用程序通过第一系统命令行界面接口进行访问。
[0081] 本实施例中,利用在内核空间中申请的内存来提供应用程序与内核空间进行直接交互的系统命令行界面接口,以使得应用程序可以直接访问操作系统的内核空间。具体的,可以在操作系统的内核空间中申请第一内存,然后,将该第一内存通过MMAP映射至用户空间,并以文件的形式提供访问第一内存的第一系统命令行界面接口,这样,用户空间上的第一应用程序就可以利用该第一系统命令行界面接口,访问内核空间上的第一内存,以实现与内核空间的交互。可见,通过将申请的第一内存映射至用户空间,并提供了应用程序访问第一内存的第一系统命令行界面接口,应用程序可以利用该第一系统命令行界面接口直接访问内核空间中的第一内存,使得应用程序与内核空间之间可以利用第一内存进行数据交互,从而提高了应用程序与内核空间之间的数据传输性能,进而提高了系统命令行界面接口的调用效率。
[0082] 此外,本申请实施例还提供了一种提高系统命令行界面接口的调用效率装置。参见图4,图4示出了本申请实施例中一种提高系统命令行界面接口的调用效率装置的结构示意图,该装置400具体可以包括:
[0083] 第一申请单元401,用于在操作系统的内核空间中申请第一内存;
[0084] 第一映射单元402,用于将所述第一内存通过MMAP映射至用户空间,并以文件的形式提供访问所述第一内存的第一系统命令行界面接口;
[0085] 其中,所述第一系统命令行界面接口,用于被所述用户空间上的第一应用程序进行调用,以访问所述内核空间中的第一内存。
[0086] 在一些可能的实施方式中,所述装置400还包括:
[0087] 第二申请单元,用于在所述操作系统的内存空间中申请第二内存;
[0088] 第二映射单元,用于将所述第二内存通过MMAP映射至用户空间,并以文件的形式提供访问所述第二内存的第二系统命令行界面接口;
[0089] 其中,所述第二系统命令行界面接口,用于被所述用户空间上的第二应用程序进行调用,以访问所述内核空间中的第二内存。
[0090] 在一些可能的实施方式中,所述第一系统命令行界面接口,用于被所述用户空间上的第一应用程序进行调用,以访问所述内核空间中的第一内存,包括:
[0091] 所述第一系统命令行界面接口,具体用于被所述用户空间上的第一应用程序进行调用,将操作指令的操作码写入所述第一内存中的操作码区段,并将所述操作指令所涉及的发送数据写入所述第一内存中的发送数据区段;
[0092] 其中,所述发送数据为所述内核空间基于所述操作指令进行处理的数据,所述发送数据具有与所述操作指令对应的数据结构。
[0093] 在一些可能的实施方式中,所述第一内存还包括内存区间状态区段,所述内存区间状态区段,用于存储所述第一内存当前是否正在写入操作指令的操作码的第一标识、是否完成操作码写入的第二标识、是否执行完毕操作指令的第三标识、所述第一内存中的数据是否被释放的第四标识以及所述第一应用程序的第五标识。
[0094] 在一些可能的实施方式中,所述第一内存还包括接收数据区段,所述装置400还包括:
[0095] 发送单元,用于在根据所述内存区间状态区段中存储的第三标识,确定所述操作指令执行完毕后,利用所述第一系统命令行界面接口将所述接收数据区段中的接收数据发送给所述第一应用程序;
[0096] 其中,所述接收数据为所述内核空间基于所述操作指令对所述发送数据进行处理后所得到的数据,所述接收数据具有与所述操作指令对应的数据结构。
[0097] 在一些可能的实施方式中,所述装置400还包括:
[0098] 轮询单元,用于轮询所述内存区间状态区段中存储的第二标识;
[0099] 处理单元,用于若所述第二标识表征当前所述操作码写入完成,则基于所述操作指令对所述发送数据进行处理。
[0100] 在一些可能的实施方式中,所述装置400还包括:
[0101] 锁定单元,用于在所述第一应用程序向所述第一内存写入所述操作指令之前,利用所述内存区间状态区段中存储的第一标识,锁定所述第一内存。
[0102] 本实施例中,通过将申请的第一内存映射至用户空间,并提供了应用程序访问第一内存的第一系统命令行界面接口,应用程序可以利用该第一系统命令行界面接口直接访问内核空间中的第一内存,使得应用程序与内核空间之间可以利用第一内存进行数据交互,从而提高了应用程序与内核空间之间的数据传输性能,进而提高了系统命令行界面接口的调用效率。
[0103] 本申请实施例中提到的“第一系统命令行接口界面”、“第一内存”、“第一应用程序”、“第一申请单元”等名称中的“第一”只是用来做名字标识,并不代表顺序上的第一。该规则同样适用于“第二”、“第三”等。
[0104] 通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到上述实施例方法中的全部或部分步骤可借助软件加通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如只读存储器(英文:read-only memory,ROM)/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者诸如路由器等网络通信设备)执行本申请各个实施例或者实施例的某些部分所述的方法。
[0105] 本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
[0106] 以上所述仅是本申请示例性的实施方式,并非用于限定本申请的保护范围。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈