一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

用户态程序的处理方法和装置、存储介质及处理器与流程

2022-07-02 14:56:22 来源:中国专利 TAG:


1.本发明涉及云服务器技术领域,具体而言,涉及一种用户态程序的处理方法和装置、存储介质及处理器。


背景技术:

2.目前随着软硬件融合技术的成熟,越来越多的企业通过云服务器实现公司业务的运转,对于企业购买的云服务器(也可以称为主机)往往希望只包括内核态功能模块,而对于用户态程序则设置到卸载卡上,因为这样的做法可以使得主机的计算节点的开销降低,提高主机的运行速度。用户态程序被卸载到卸载卡后,需要对通信接口进行改写,才能够正常调用内核态功能模块来完成业务运转,现有技术中采用syscall(系统调用)远程代理的方式来实现,但是syscall远程代理需要理解各个调用的参数信息,由于调用参数十分复杂,完整理解非常困难,所以采用syscall远程代理存在效率比较低的问题。
3.针对上述的问题,目前尚未提出有效的解决方案。


技术实现要素:

4.本发明实施例提供了一种用户态程序的处理方法和装置、存储介质及处理器,以至少解决由于采用syscall远程代理的方式实现用户态程序的业务正常运转导致效率较低的技术问题。
5.根据本发明实施例的一个方面,提供了一种用户态程序的处理方法,包括:所述用户态程序通过所述第一通讯模块和所述第二通讯模块,获取主机侧的文件描述符,其中,所述主机侧的文件描述符是所述用户态程序需要调用的内核态功能模块对应的标识;所述用户态程序通过所述第二通讯模块构建本地文件描述符,并构建所述本地文件描述符与所述主机侧的文件描述符之间的映射关系;所述用户态程序通过所述本地文件描述符与所述主机侧的文件描述符调用所述内核态功能模块,以使所述用户态程序响应ioctl请求。
6.进一步地,所述用户态程序通过所述第一通讯模块和所述第二通讯模块,获取主机侧的文件描述符之前,所述方法还包括:对所述第一通讯模块和所述第二通讯模块进行处理,以使所述第一通讯模块和所述第二通讯模块实现互相标识。
7.进一步地,对所述第一通讯模块和所述第二通讯模块进行处理,以使所述第一通讯模块和所述第二通讯模块实现互相标识,包括:所述用户态程序控制所述第二通讯模块生成所述用户态程序对应的共享密钥验证码;将所述共享密钥验证码发送至所述第一通讯模块,其中,在所述第一通讯模块中生成所述共享密钥验证码对应的目标代理进程,并返回第一标识至所述第二通讯模块,所述目标代理进程用于实现所述用户态程序调用所述内核态功能模块,所述第一标识表征所述第一通讯模块已生成所述目标代理进程;在所述第二通讯模块接收到所述第一标识的情况下,则确认所述第一通讯模块和所述第二通讯模块已实现互相标识。
8.进一步地,在所述用户态程序通过所述第一通讯模块和所述第二通讯模块,获取
主机侧的文件描述符之前,所述方法还包括:将所述内核态功能模块在所述第一通讯模块进行注册,得到所述内核态功能模块对应的主机侧的文件描述符。
9.进一步地,所述用户态程序通过所述第一通讯模块和所述第二通讯模块,获取主机侧的文件描述符,包括:所述用户态程序控制所述第二通讯模块发送第二标识至所述第一通讯模块,其中,在所述第一通讯模块接收所述第二标识的情况下,将所述用户态程序需要调用的内核态功能模块对应的主机侧的文件描述符返回至所述第二通讯模块;接收所述主机侧的文件描述符。
10.进一步地,所述用户态程序通过所述本地文件描述符与所述主机侧的文件描述符调用所述内核态功能模块,以使所述用户态程序响应ioctl请求,包括:所述用户态程序发送ioctl请求至所述本地文件描述符;所述本地文件描述符响应所述ioctl请求,并将所述ioctl请求封装成预设格式的命令标识;所述第二通讯模将所述命令标识发送至所述第一通讯模块,其中,通过所述第一通讯模块生成的目标代理进程将所述命令标识解析为启动指令,并将所述启动指令发送至所述主机侧的文件描述符,所述目标代理进程用于实现所述用户态程序调用所述内核态功能模块;所述主机侧的文件描述符依据所述启动指令启动所述内核态功能模块,以使所述用户态程序调用所述内核态功能模块完成所述ioctl请求。
11.进一步地,在所述用户态程序通过所述本地文件描述符与所述主机侧的文件描述符调用所述内核态功能模块,以使所述用户态程序响应ioctl请求之后,所述方法还包括:所述第二通讯模块监听所述用户态程序状态;若所述用户态程序处于已完成所述ioctl请求状态,则所述第二通讯模块发送第三标识至所述第一通讯模块,其中,所述第三标识表征所述用户态程序已完成业务运转,在所述第一通讯模块接收到所述第三标识的情况下,发送关闭指令至所述主机侧的文件描述符;所述主机侧的文件描述符依据所述关闭指令关闭所述内核态功能模块。
12.根据本发明实施例的一个方面,提供了一种用户态程序的处理系统,包括:主机,其中,所述主机至少包括一个或多个内核态功能模块;卸载卡,其中,所述卸载卡至少包括一个或多个用户态程序,所述用户态程序调用所述内核态功能模块以使所述用户态程序响应ioctl请求;第一通讯模块,其中,所述第一通讯模块设置在所述主机上;第二通讯模块,其中,所述第二通讯模块设置在所述卸载卡上,通过所述第一通讯模块和所述第二通讯模块获取主机侧的文件描述符,通过所述第二通讯模块构建本地文件描述符,并构建所述本地文件描述符与所述主机侧的文件描述符之间的映射关系,所述用户态程序通过所述本地文件描述符与所述主机侧的文件描述符调用所述内核态功能模块,以使所述用户态程序响应ioctl请求。
13.根据本发明实施例的另一方面,还提供了一种用户态程序的处理装置,包括:获取单元,用于所述用户态程序通过所述第一通讯模块和所述第二通讯模块,获取主机侧的文件描述符,其中,所述主机侧的文件描述符是所述用户态程序需要调用的内核态功能模块对应的标识;构建单元,用于所述用户态程序通过所述第二通讯模块构建本地文件描述符,并构建所述本地文件描述符与所述主机侧的文件描述符之间的映射关系;调用单元,用于所述用户态程序通过所述本地文件描述符与所述主机侧的文件描述符调用所述内核态功能模块,以使所述用户态程序响应ioctl请求。
14.进一步地,所述装置还包括:处理单元,用于所述用户态程序通过所述第一通讯模
块和所述第二通讯模块,获取主机侧的文件描述符之前,对所述第一通讯模块和所述第二通讯模块进行处理,以使所述第一通讯模块和所述第二通讯模块实现互相标识。
15.进一步地,所述处理单元包括:生成模块,用于所述用户态程序控制所述第二通讯模块生成所述用户态程序对应的共享密钥验证码;第一发送模块,用于将所述共享密钥验证码发送至所述第一通讯模块,其中,在所述第一通讯模块中生成所述共享密钥验证码对应的目标代理进程,并返回第一标识至所述第二通讯模块,所述目标代理进程用于实现所述用户态程序调用所述内核态功能模块,所述第一标识表征所述第一通讯模块已生成所述目标代理进程;确认模块,用于在所述第二通讯模块接收到所述第一标识的情况下,则确认所述第一通讯模块和所述第二通讯模块已实现互相标识。
16.进一步地,所述装置还包括:注册单元,用于在所述用户态程序通过所述第一通讯模块和所述第二通讯模块,获取主机侧的文件描述符之前,将所述内核态功能模块在所述第一通讯模块进行注册,得到所述内核态功能模块对应的主机侧的文件描述符。
17.进一步地,所述获取单元包括:第二发送模块,用于所述用户态程序控制所述第二通讯模块发送第二标识至所述第一通讯模块,其中,在所述第一通讯模块接收所述第二标识的情况下,将所述用户态程序需要调用的内核态功能模块对应的主机侧的文件描述符返回至所述第二通讯模块;接收模块,用于接收所述主机侧的文件描述符。
18.进一步地,所述调用单元包括:第三发送模块,用于所述用户态程序发送ioctl请求至所述本地文件描述符;处理模块,用于所述本地文件描述符响应所述ioctl请求,并将所述ioctl请求封装成预设格式的命令标识;第四发送模块,用于所述第二通讯模将所述命令标识发送至所述第一通讯模块,其中,通过所述第一通讯模块生成的目标代理进程将所述命令标识解析为启动指令,并将所述启动指令发送至所述主机侧的文件描述符,所述目标代理进程用于实现所述用户态程序调用所述内核态功能模块;启动模块,用于所述主机侧的文件描述符依据所述启动指令启动所述内核态功能模块,以使所述用户态程序调用所述内核态功能模块完成所述ioctl请求。
19.进一步地,所述装置还包括:监听单元,用于在所述用户态程序通过所述本地文件描述符与所述主机侧的文件描述符调用所述内核态功能模块,以使所述用户态程序响应ioctl请求之后,所述第二通讯模块监听所述用户态程序状态;发送单元,用于若所述用户态程序处于已完成所述ioctl请求状态,则所述第二通讯模块发送第三标识至所述第一通讯模块,其中,所述第三标识表征所述用户态程序已完成业务运转,在所述第一通讯模块接收到所述第三标识的情况下,发送关闭指令至所述主机侧的文件描述符;关闭单元,用于所述主机侧的文件描述符依据所述关闭指令关闭所述内核态功能模块。
20.根据本发明实施例的另一方面,还提供了一种计算机可读存储介质,所述存储介质存储程序,其中,在所述程序运行时控制所述存储介质所在设备执行上述任意一项所述的用户态程序的处理方法。
21.根据本发明实施例的另一方面,还提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行上述任意一项所述的用户态程序的处理方法。
22.在本发明实施例中,采用在主机和卸载卡上分别设置通讯模块的方式,通过通讯模块用户态程序获取主机侧的文件描述符,生成本地文件描述符,并建立主机侧的文件描述符与本地文件描述符之间的映射关系,用户态程序通过本地文件描述符与主机侧的文件
描述符,达到了调用内核态功能模块实现业务运转的目的,从而实现了提高效率的技术效果,进而解决了由于采用syscall远程代理的方式实现用户态程序的业务正常运转导致效率较低的技术问题。
附图说明
23.此处所说明的附图用来提供对本发明的进一步理解,构成本技术的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
24.图1是根据本发明实施例的计算机终端的硬件结构框图;
25.图2是根据本发明实施例一提供的用户态程序的处理方法的流程图;
26.图3是根据本发明实施例三提供的用户态程序的处理装置的示意图;
27.图4是根据本发明实施例的一种可选的计算机终端的结构框图。
具体实施方式
28.为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
29.需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
30.实施例1
31.根据本发明实施例,还提供了一种用户态程序的处理方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
32.本技术实施例一所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。图1展示出了一种用于实现用户态程序的处理方法的计算机终端(或移动设备)的硬件结构框图。如图1所示,计算机终端10(或移动设备10)可以包括一个或多个(图中采用102a、102b,
……
,102n来示出)处理器(处理器可以包括但不限于微处理器mcu或可编程逻辑器件fpga等的处理装置)、用于存储数据的存储器104、以及用于通信功能的传输模块106。除此以外,还可以包括:显示器、输入/输出接口(i/o接口)、通用串行总线(usb)端口(可以作为bus总线的端口中的一个端口被包括)、网络接口、电源和/或相机。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算机终端10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配
置。
33.应当注意到的是上述一个或多个处理器和/或其他数据处理电路在本文中通常可以被称为“数据处理电路”。该数据处理电路可以全部或部分的体现为软件、硬件、固件或其他任意组合。此外,数据处理电路可为单个独立的处理模块,或全部或部分的结合到计算机终端10(或移动设备)中的其他元件中的任意一个内。如本技术实施例中所涉及到的,该数据处理电路作为一种处理器控制(例如与接口连接的可变电阻终端路径的选择)。
34.存储器104可用于存储应用软件的软件程序以及模块,如本发明实施例中的用户态程序的处理方法对应的程序指令/数据存储装置,处理器通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的用户态程序的处理方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
35.传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端10的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(network interface controller,nic),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(radio frequency,rf)模块,其用于通过无线方式与互联网进行通讯。
36.显示器可以例如触摸屏式的液晶显示器(lcd),该液晶显示器可使得用户能够与计算机终端10(或移动设备)的用户界面进行交互。
37.在上述运行环境下,本技术提供了如图2所示的用户态程序的处理方法。图2是根据本发明实施例一的用户态程序的处理方法的流程图。
38.步骤s201,用户态程序通过第一通讯模块和第二通讯模块,获取主机侧的文件描述符,其中,主机侧的文件描述符是用户态程序需要调用的内核态功能模块对应的标识。
39.具体地,为了用户态程序能够正常调用内核态功能模块,首先在主机和卸载卡上分别设置第一通讯模块和第二通讯模块。在主机上包括多个内核态功能模块,在卸载卡上包括多个用户态程序。每一个用户态程序都需要通过第一通讯模块和第二通讯模块获取需要调用的内核态功能模块对应的主机侧的文件描述符。需要说明的是,一个用户态程序可能需要调用多个内核态功能模块实习业务的运转。例如,主机上包括内核态功能模块1,内核态功能模块2,内核态功能模块3和内核态功能模块4;卸载卡上包括用户态程序1和用户态程序2。用户态程序1需要调用内核态功能模块1和内核态功能模块2实现业务运转,那么用户态程序1通过第一通讯模块和第二通讯模块获取内核态功能模块1和内核态功能模块2对应的主机侧的文件描述符1和主机侧的文件描述符2。通过主机侧的文件描述符(file descriptor,fd)实现对内核态功能模块的操作。
40.步骤s202,用户态程序通过第二通讯模块构建本地文件描述符,并构建本地文件描述符与主机侧的文件描述符之间的映射关系。
41.具体地,用户态程序在获取到主机侧的fd后,通过第二通讯模块构建本地fd,并且构建主机侧的fd和本地fd一一对应关系。例如,用户态程序1获取到主机侧的fd1和主机侧的fd2,通讯模块构建本地fd1和本地fd2。构建映射关系为本地fd1对应主机侧的fd1,本地
fd2对应主机侧的fd2。
42.步骤s203,用户态程序通过本地文件描述符与主机侧的文件描述符调用内核态功能模块,以使用户态程序响应ioctl请求。
43.具体地,用户态程序通过主机侧的fd和本地fd准确调用对应的内核态功能模块,实现业务运转,也就是说完成ioctl请求。
44.综上所述,通过通信模块,将主机侧的fd与本地fd关联,就可以实现用户态程序调用内核态功能模块完成业务运转,避免改写调用接口信息,进而解决了由于采用syscall远程代理的方式实现用户态程序的业务正常运转导致效率较低的技术问题。
45.可选地,在本发明实施例一提供的用户态程序的处理方法中,用户态程序通过第一通讯模块和第二通讯模块,获取主机侧的文件描述符之前,该方法还包括:对第一通讯模块和第二通讯模块进行处理,以使第一通讯模块和第二通讯模块实现互相标识。
46.具体地,在用户态程序获取主机侧的文件描述符之前,需要对第一通讯模块和第二通信模块进行处理使得第一通讯模块和第二通讯模块互相标识。只有第一通讯模块和第二通讯模块之间互相标识,用户态程序才能够通过通讯模块准确得到主机侧的文件描述符。
47.可选地,在本发明实施例一提供的用户态程序的处理方法中,对第一通讯模块和第二通讯模块进行处理,以使第一通讯模块和第二通讯模块实现互相标识,包括:用户态程序控制第二通讯模块生成用户态程序对应的共享密钥验证码;将共享密钥验证码发送至第一通讯模块,其中,在第一通讯模块中生成共享密钥验证码对应的目标代理进程,并返回第一标识至第二通讯模块,目标代理进程用于实现用户态程序调用内核态功能模块,第一标识表征第一通讯模块已生成目标代理进程;在第二通讯模块接收到第一标识的情况下,则确认第一通讯模块和第二通讯模块已实现互相标识。
48.具体地,第一通讯模块和第二通讯模块互相标识包括:用户态程序控制第二通讯模块生成用户态程序对应的共享密钥验证码(也可以说共享key),并将这一共享key发送至第一通讯模块,第一通讯模块根据接收到的共享key生成对应的目标代理进程,然后第一通讯模块发送已生成目标代理进程的标识(即上述第一标识)至第二通讯模块。第二通讯模块接收到上述标识,则表明两个通讯模块已完成互相标识。通过上述步骤,实现了第一通讯模块和第二通讯模块之间的互相标识,并为后续准确获取主机侧的文件描述符做准备。
49.可选地,在本发明实施例一提供的用户态程序的处理方法中,在用户态程序通过第一通讯模块和第二通讯模块,获取主机侧的文件描述符之前,该方法还包括:将内核态功能模块在第一通讯模块进行注册,得到内核态功能模块对应的主机侧的文件描述符。
50.具体地,每一个内核态功能模块都需要在第一通讯模块进行注册工作,以便后续用户态程序可以通过第一通讯模块得到内核态功能模块对应的主机侧的描述符。
51.可选地,在本发明实施例一提供的用户态程序的处理方法中,用户态程序通过第一通讯模块和第二通讯模块,获取主机侧的文件描述符,包括:用户态程序控制第二通讯模块发送第二标识至第一通讯模块,其中,在第一通讯模块接收第二标识的情况下,将用户态程序需要调用的内核态功能模块对应的主机侧的文件描述符返回至第二通讯模块;接收主机侧的文件描述符。
52.具体地,用户态程序通过第二通讯模块发送第二标识到第一通信模块,第二通讯
模块接收到第二标识之后,将用户态程序需要调用的内核态功能模块对应的主机侧的文件描述符返回至第二通讯模块。通过上述步骤,用户态程序能够准确得到主机侧的文件描述符。
53.可选地,在本发明实施例一提供的用户态程序的处理方法中,用户态程序通过本地文件描述符与主机侧的文件描述符调用内核态功能模块,以使用户态程序响应ioctl请求,包括:用户态程序发送ioctl请求至本地文件描述符;本地文件描述符响应ioctl请求,并将ioctl请求封装成预设格式的命令标识;第二通讯模将命令标识发送至第一通讯模块,其中,通过第一通讯模块生成的目标代理进程将命令标识解析为启动指令,并将启动指令发送至主机侧的文件描述符,目标代理进程用于实现用户态程序调用内核态功能模块;主机侧的文件描述符依据启动指令启动内核态功能模块,以使用户态程序调用内核态功能模块完成ioctl请求。
54.具体地,用户态程序通过本地文件描述符与主机侧的文件描述符调用对应的内核态功能模块响应ioctl请求包括:首先用户态程序发送执行任务的请求(即上述的ioctl请求)到本地文件描述符,本地描述符将执行任务的请求封装处理成预设格式的命令标识,第二通讯模块将上述的命令标识发送给第一通讯模块,第一通讯模块接收到命令标识后立刻将命令标识解析为启动指令,并将上述启动指令发送至主机侧的文件描述符,主机侧的文件描述符将对应的内核态功能模块启动,这样用户态程序就可以调用该内核态功能模块完成业务运转。通过上述步骤,用户态程序只需要发送执行任务的请求,就可以实现调用内核态功能模块。
55.可选地,在本发明实施例一提供的用户态程序的处理方法中,在用户态程序通过本地文件描述符与主机侧的文件描述符调用内核态功能模块,以使用户态程序响应ioctl请求之后,该方法还包括:第二通讯模块监听用户态程序状态;若用户态程序处于已完成ioctl请求状态,则第二通讯模块发送第三标识至第一通讯模块,其中,第三标识表征用户态程序已完成业务运转,在第一通讯模块接收到第三标识的情况下,发送关闭指令至主机侧的文件描述符;主机侧的文件描述符依据关闭指令关闭内核态功能模块。
56.具体地,第二通讯模块会监听用户态程序的状态,当第二通讯模块监听到用户态程序处于已完成ioctl请求状态,也就是执行完业务的状态后,发送第三标识至第一通讯模块,第一通讯模块发送关闭指令至主机侧的文件描述符,主机侧的文件描述符关闭对应的内核态功能模块。在用户态程序完成业务后及时关闭对应的内核态功能模块,避免内核态功能模块长时处于待机状态,减少不必要的资源浪费问题。
57.综上,在本发明实施例一提供的用户态程序的处理方法中,用户态程序通过第一通讯模块和第二通讯模块,获取主机侧的文件描述符,其中,主机侧的文件描述符是用户态程序需要调用的内核态功能模块对应的标识;用户态程序通过第二通讯模块构建本地文件描述符,并构建本地文件描述符与主机侧的文件描述符之间的映射关系;用户态程序通过本地文件描述符与主机侧的文件描述符调用内核态功能模块,以使用户态程序响应ioctl请求,解决了由于采用syscall远程代理的方式实现用户态程序的业务正常运转导致效率较低的技术问题。通过两个通信模块,将主机侧的文件描述符与本地文件描述符关联,就可以实现用户态程序调用内核态功能模块完成业务运转,避免改写调用接口信息,进而达到了提高效率的问题。
58.需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
59.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例的方法。
60.实施例2
61.根据本发明实施例,还提供了一种用户态程序的处理系统实施例,需要说明的是,上述处理系统可用于执行本技术实施例所提供的用户态程序的处理方法。上述处理系统包括:主机,其中,主机至少包括一个或多个内核态功能模块;卸载卡,其中,卸载卡至少包括一个或多个用户态程序,用户态程序调用内核态功能模块以使用户态程序响应ioctl请求;第一通讯模块,其中,第一通讯模块设置在主机上;第二通讯模块,其中,第二通讯模块设置在卸载卡上,通过第一通讯模块和第二通讯模块获取主机侧的文件描述符,通过第二通讯模块构建本地文件描述符,并构建本地文件描述符与主机侧的文件描述符之间的映射关系,用户态程序通过本地文件描述符与主机侧的文件描述符调用内核态功能模块,以使用户态程序响应ioctl请求。
62.具体地,用户态程序的处理系统包括主机、卸载卡、第一通讯装置和第二通讯装置。为了用户态程序能够正常调用内核态功能模块,在主机和卸载卡上分别设置第一通讯模块和第二通讯模块。在主机上包括一个或多个内核态功能模块,在卸载卡上包括一个或多个用户态程序。用户态程序通过第一通讯模块和第二通讯模块获取主机侧的文件描述符,然后通过第二通讯模块构建本地文件描述符,并构建本地文件描述符与主机侧的文件描述符之间的映射关系,最后用户态程序就能够通过本地文件描述符与主机侧的文件描述符调用对应的内核态功能模块。通过上述的处理系统,可以实现用户态程序调用内核态功能模块来响应ioctl请求,避免改写调用接口信息,提高了业务处理的效率。
63.实施例3
64.根据本发明实施例,还提供了一种用于实施上述用户态程序的处理装置,如图3所示,该装置包括:获取单元301,构建单元302和调用单元303。
65.获取单元301,用于用户态程序通过第一通讯模块和第二通讯模块,获取主机侧的文件描述符,其中,主机侧的文件描述符是用户态程序需要调用的内核态功能模块对应的标识。
66.构建单元302,用于用户态程序通过第二通讯模块构建本地文件描述符,并构建本地文件描述符与主机侧的文件描述符之间的映射关系。
67.调用单元303,用于用户态程序通过本地文件描述符与主机侧的文件描述符调用内核态功能模块,以使用户态程序响应ioctl请求。
68.本发明实施例三提供的用户态程序的处理装置,通过获取单元301用户态程序通过第一通讯模块和第二通讯模块,获取主机侧的文件描述符,其中,主机侧的文件描述符是用户态程序需要调用的内核态功能模块对应的标识。构建单元302用户态程序通过第二通讯模块构建本地文件描述符,并构建本地文件描述符与主机侧的文件描述符之间的映射关系。调用单元303用户态程序通过本地文件描述符与主机侧的文件描述符调用内核态功能模块,以使用户态程序响应ioctl请求,解决了由于采用syscall远程代理的方式实现用户态程序的业务正常运转导致效率较低的技术问题。通过两个通信模块,将主机侧的文件描述符与本地文件描述符关联,就可以实现用户态程序调用内核态功能模块完成业务运转,避免改写调用接口信息,进而达到了提高效率的问题。
69.可选地,在本发明实施例三提供的用户态程序的处理装置中,该装置还包括:处理单元,用于用户态程序通过第一通讯模块和第二通讯模块,获取主机侧的文件描述符之前,对第一通讯模块和第二通讯模块进行处理,以使第一通讯模块和第二通讯模块实现互相标识。
70.可选地,在本发明实施例三提供的用户态程序的处理装置中,处理单元包括:生成模块,用于用户态程序控制第二通讯模块生成用户态程序对应的共享密钥验证码;第一发送模块,用于将共享密钥验证码发送至第一通讯模块,其中,在第一通讯模块中生成共享密钥验证码对应的目标代理进程,并返回第一标识至第二通讯模块,目标代理进程用于实现用户态程序调用内核态功能模块,第一标识表征第一通讯模块已生成目标代理进程;确认模块,用于在第二通讯模块接收到第一标识的情况下,则确认第一通讯模块和第二通讯模块已实现互相标识。
71.可选地,在本发明实施例三提供的用户态程序的处理装置中,该装置还包括:注册单元,用于在用户态程序通过第一通讯模块和第二通讯模块,获取主机侧的文件描述符之前,将内核态功能模块在第一通讯模块进行注册,得到内核态功能模块对应的主机侧的文件描述符。
72.可选地,在本发明实施例三提供的用户态程序的处理装置中,获取单元包括:第二发送模块,用于用户态程序控制第二通讯模块发送第二标识至第一通讯模块,其中,在第一通讯模块接收第二标识的情况下,将用户态程序需要调用的内核态功能模块对应的主机侧的文件描述符返回至第二通讯模块;接收模块,用于接收主机侧的文件描述符。
73.可选地,在本发明实施例三提供的用户态程序的处理装置中,调用单元包括:第三发送模块,用于用户态程序发送ioctl请求至本地文件描述符;处理模块,用于本地文件描述符响应ioctl请求,并将ioctl请求封装成预设格式的命令标识;第四发送模块,用于第二通讯模将命令标识发送至第一通讯模块,其中,通过第一通讯模块生成的目标代理进程将命令标识解析为启动指令,并将启动指令发送至主机侧的文件描述符,目标代理进程用于实现用户态程序调用内核态功能模块;启动模块,用于主机侧的文件描述符依据启动指令启动内核态功能模块,以使用户态程序调用内核态功能模块完成ioctl请求。
74.可选地,在本发明实施例三提供的用户态程序的处理装置中,该装置还包括:监听单元,用于在用户态程序通过本地文件描述符与主机侧的文件描述符调用内核态功能模块,以使用户态程序响应ioctl请求之后,第二通讯模块监听用户态程序状态;发送单元,用于若用户态程序处于已完成ioctl请求状态,则第二通讯模块发送第三标识至第一通讯模
块,其中,第三标识表征用户态程序已完成业务运转,在第一通讯模块接收到第三标识的情况下,发送关闭指令至主机侧的文件描述符;关闭单元,用于主机侧的文件描述符依据关闭指令关闭内核态功能模块。
75.此处需要说明的是,上述的获取单元301,构建单元302和调用单元303对应于实施例1中的步骤s201至步骤s203,两个模块与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例三所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例三提供的计算机终端10中。
76.实施例4
77.本发明的实施例可以提供一种计算机终端,该计算机终端可以是计算机终端群中的任意一个计算机终端设备。可选地,在本实施例中,上述计算机终端也可以替换为移动终端等终端设备。
78.可选地,在本实施例中,上述计算机终端可以位于计算机网络的多个网络设备中的至少一个网络设备。
79.在本实施例中,上述计算机终端可以执行用户态程序的处理方法中以下步骤的程序代码:用户态程序通过第一通讯模块和第二通讯模块,获取主机侧的文件描述符,其中,主机侧的文件描述符是用户态程序需要调用的内核态功能模块对应的标识;用户态程序通过第二通讯模块构建本地文件描述符,并构建本地文件描述符与主机侧的文件描述符之间的映射关系;用户态程序通过本地文件描述符与主机侧的文件描述符调用内核态功能模块,以使用户态程序响应ioctl请求。
80.上述计算机终端还可以执行用户态程序的处理方法中以下步骤的程序代码:对第一通讯模块和第二通讯模块进行处理,以使第一通讯模块和第二通讯模块实现互相标识。
81.上述计算机终端还可以执行用户态程序的处理方法中以下步骤的程序代码:对第一通讯模块和第二通讯模块进行处理,以使第一通讯模块和第二通讯模块实现互相标识,包括:用户态程序控制第二通讯模块生成用户态程序对应的共享密钥验证码;将共享密钥验证码发送至第一通讯模块,其中,在第一通讯模块中生成共享密钥验证码对应的目标代理进程,并返回第一标识至第二通讯模块,目标代理进程用于实现用户态程序调用内核态功能模块,第一标识表征第一通讯模块已生成目标代理进程;在第二通讯模块接收到第一标识的情况下,则确认第一通讯模块和第二通讯模块已实现互相标识。
82.上述计算机终端还可以执行用户态程序的处理方法中以下步骤的程序代码:将内核态功能模块在第一通讯模块进行注册,得到内核态功能模块对应的主机侧的文件描述符。
83.上述计算机终端还可以执行用户态程序的处理方法中以下步骤的程序代码:用户态程序通过第一通讯模块和第二通讯模块,获取主机侧的文件描述符,包括:用户态程序控制第二通讯模块发送第二标识至第一通讯模块,其中,在第一通讯模块接收第二标识的情况下,将用户态程序需要调用的内核态功能模块对应的主机侧的文件描述符返回至第二通讯模块;接收主机侧的文件描述符。
84.上述计算机终端还可以执行用户态程序的处理方法中以下步骤的程序代码:用户态程序通过本地文件描述符与主机侧的文件描述符调用内核态功能模块,以使用户态程序响应ioctl请求,包括:用户态程序发送ioctl请求至本地文件描述符;本地文件描述符响应
ioctl请求,并将ioctl请求封装成预设格式的命令标识;第二通讯模将命令标识发送至第一通讯模块,其中,通过第一通讯模块生成的目标代理进程将命令标识解析为启动指令,并将启动指令发送至主机侧的文件描述符,目标代理进程用于实现用户态程序调用内核态功能模块;主机侧的文件描述符依据启动指令启动内核态功能模块,以使用户态程序调用内核态功能模块完成ioctl请求。
85.上述计算机终端还可以执行用户态程序的处理方法中以下步骤的程序代码:第二通讯模块监听用户态程序状态;若用户态程序处于已完成ioctl请求状态,则第二通讯模块发送第三标识至第一通讯模块,其中,第三标识表征用户态程序已完成ioctl请求,在第一通讯模块接收到第三标识的情况下,发送关闭指令至主机侧的文件描述符;主机侧的文件描述符依据关闭指令关闭内核态功能模块。
86.图4是根据本发明实施例的一种计算机终端的结构框图。如图4所示,该计算机终端10可以包括:一个或多个(图中仅示出一个)处理器、存储器。
87.其中,存储器可用于存储软件程序以及模块,如本发明实施例中的用户态程序的处理方法和装置对应的程序指令/模块,处理器通过运行存储在存储器内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的用户态程序的处理方法。存储器可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
88.处理器可以通过传输装置调用存储器存储的信息及应用程序,以执行下述步骤:用户态程序通过第一通讯模块和第二通讯模块,获取主机侧的文件描述符,其中,主机侧的文件描述符是用户态程序需要调用的内核态功能模块对应的标识;用户态程序通过第二通讯模块构建本地文件描述符,并构建本地文件描述符与主机侧的文件描述符之间的映射关系;用户态程序通过本地文件描述符与主机侧的文件描述符调用内核态功能模块,以使用户态程序响应ioctl请求。
89.上述处理器还可以执行如下步骤的程序代码:对第一通讯模块和第二通讯模块进行处理,以使第一通讯模块和第二通讯模块实现互相标识。
90.上述处理器还可以执行如下步骤的程序代码:用户态程序控制第二通讯模块生成用户态程序对应的共享密钥验证码;将共享密钥验证码发送至第一通讯模块,其中,在第一通讯模块中生成共享密钥验证码对应的目标代理进程,并返回第一标识至第二通讯模块,目标代理进程用于实现用户态程序调用内核态功能模块,第一标识表征第一通讯模块已生成目标代理进程;在第二通讯模块接收到第一标识的情况下,则确认第一通讯模块和第二通讯模块已实现互相标识。
91.上述处理器还可以执行如下步骤的程序代码:将内核态功能模块在第一通讯模块进行注册,得到内核态功能模块对应的主机侧的文件描述符。
92.上述处理器还可以执行如下步骤的程序代码:用户态程序控制第二通讯模块发送第二标识至第一通讯模块,其中,在第一通讯模块接收第二标识的情况下,将用户态程序需要调用的内核态功能模块对应的主机侧的文件描述符返回至第二通讯模块;接收主机侧的文件描述符。
93.上述处理器还可以执行如下步骤的程序代码:用户态程序发送ioctl请求至本地文件描述符;本地文件描述符响应ioctl请求,并将ioctl请求封装成预设格式的命令标识;第二通讯模将命令标识发送至第一通讯模块,其中,通过第一通讯模块生成的目标代理进程将命令标识解析为启动指令,并将启动指令发送至主机侧的文件描述符,目标代理进程用于实现用户态程序调用内核态功能模块;主机侧的文件描述符依据启动指令启动内核态功能模块,以使用户态程序调用内核态功能模块完成ioctl请求。
94.上述处理器还可以执行如下步骤的程序代码:第二通讯模块监听用户态程序状态;若用户态程序处于已完成ioctl请求状态,则第二通讯模块发送第三标识至第一通讯模块,其中,第三标识表征用户态程序已完成ioctl请求,在第一通讯模块接收到第三标识的情况下,发送关闭指令至主机侧的文件描述符;主机侧的文件描述符依据关闭指令关闭内核态功能模块。
95.采用本发明实施例,提供了一种用户态程序的处理方法,采用在主机和卸载卡上分别设置通讯模块的方式,通过通讯模块用户态程序获取主机侧的文件描述符,生成本地文件描述符,并建立主机侧的文件描述符与本地文件描述符之间的映射关系,用户态程序通过本地文件描述符与主机侧的文件描述符,达到了调用内核态功能模块使用户态程序响应ioctl请求的目的,从而实现了提高效率的技术效果,进而解决了由于采用syscall远程代理的方式实现用户态程序的业务正常运转导致效率较低的技术问题。
96.本领域普通技术人员可以理解,图4所示的结构仅为示意,计算机终端也可以是智能手机(如android手机、ios手机等)、平板电脑、掌声电脑以及移动互联网设备(mobile internet devices,mid)、pad等终端设备。图4并不对上述电子装置的结构造成限定。例如,计算机终端10还可包括比图4中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图4所示不同的配置。
97.本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(read-only memory,rom)、随机存取器(random access memory,ram)、磁盘或光盘等。
98.本发明的实施例还提供了一种计算机可读存储介质。可选地,在本实施例中,上述存储介质可以用于保存上述实施例三所提供的用户态程序的处理方法所执行的程序代码。
99.可选地,在本实施例中,上述存储介质可以位于计算机网络中计算机终端群中的任意一个计算机终端中,或者位于移动终端群中的任意一个移动终端中。
100.可选地,在本实施例中,上述存储介质被设置为存储用于执行以下步骤的程序代码:用户态程序通过第一通讯模块和第二通讯模块,获取主机侧的文件描述符,其中,主机侧的文件描述符是用户态程序需要调用的内核态功能模块对应的标识;用户态程序通过第二通讯模块构建本地文件描述符,并构建本地文件描述符与主机侧的文件描述符之间的映射关系;用户态程序通过本地文件描述符与主机侧的文件描述符调用内核态功能模块,以使用户态程序响应ioctl请求。
101.上述存储介质还被设置为存储用于执行以下步骤的程序代码:对第一通讯模块和第二通讯模块进行处理,以使第一通讯模块和第二通讯模块实现互相标识。
102.上述存储介质还被设置为存储用于执行以下步骤的程序代码:用户态程序控制第
二通讯模块生成用户态程序对应的共享密钥验证码;将共享密钥验证码发送至第一通讯模块,其中,在第一通讯模块中生成共享密钥验证码对应的目标代理进程,并返回第一标识至第二通讯模块,目标代理进程用于实现用户态程序调用内核态功能模块,第一标识表征第一通讯模块已生成目标代理进程;在第二通讯模块接收到第一标识的情况下,则确认第一通讯模块和第二通讯模块已实现互相标识。上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
103.上述存储介质还被设置为存储用于执行以下步骤的程序代码:将内核态功能模块在第一通讯模块进行注册,得到内核态功能模块对应的主机侧的文件描述符。
104.上述存储介质还被设置为存储用于执行以下步骤的程序代码:用户态程序控制第二通讯模块发送第二标识至第一通讯模块,其中,在第一通讯模块接收第二标识的情况下,将用户态程序需要调用的内核态功能模块对应的主机侧的文件描述符返回至第二通讯模块;接收主机侧的文件描述符。
105.上述存储介质还被设置为存储用于执行以下步骤的程序代码:用户态程序发送ioctl请求至本地文件描述符;本地文件描述符响应ioctl请求,并将ioctl请求封装成预设格式的命令标识;第二通讯模将命令标识发送至第一通讯模块,其中,通过第一通讯模块生成的目标代理进程将命令标识解析为启动指令,并将启动指令发送至主机侧的文件描述符,目标代理进程用于实现用户态程序调用内核态功能模块;主机侧的文件描述符依据启动指令启动内核态功能模块,以使用户态程序调用内核态功能模块完成ioctl请求。
106.上述存储介质还被设置为存储用于执行以下步骤的程序代码:第二通讯模块监听用户态程序状态;若用户态程序处于已完成ioctl请求状态,则第二通讯模块发送第三标识至第一通讯模块,其中,第三标识表征用户态程序已完成ioctl请求,在第一通讯模块接收到第三标识的情况下,发送关闭指令至主机侧的文件描述符;主机侧的文件描述符依据关闭指令关闭内核态功能模块。
107.在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
108.在本技术所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
109.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
110.另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
111.所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用
时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
112.以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献