预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共18页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

(19)中华人民共和国国家知识产权局(12)发明专利申请(10)申请公布号CN114356598A(43)申请公布日2022.04.15(21)申请号202111643026.4(22)申请日2021.12.29(71)申请人山东浪潮科学研究院有限公司地址250101山东省济南市高新区浪潮路1036号浪潮科技园(72)发明人刘刚(74)专利代理机构北京路浩知识产权代理有限公司11002代理人张睿(51)Int.Cl.G06F9/54(2006.01)G06F12/06(2006.01)权利要求书2页说明书13页附图2页(54)发明名称Linux内核态与用户态的数据交互方法及装置(57)摘要本发明提供一种Linux内核态与用户态的数据交互方法及装置,其中,该方法包括:接收第一目标程序的读操作;读操作,用于读取第一虚拟地址的数据;响应于读操作,从第一虚拟地址对应的环形缓冲队列中的目标物理地址读取数据;其中,目标物理地址的数据,是基于第二目标程序对第二虚拟地址的写操作写入的;第二虚拟地址与目标物理地址对应;在第一目标程序来自内核态的情况下,第二目标程序来自用户态;在第一目标程序来自用户态的情况下,第二目标程序来自内核态。本发明提供的Linux内核态与用户态的数据交互方法及装置,以共享内存为数据载体,以环形队列完成交互控制,能实现零拷贝、高效易用的、真正的内核态与用户态间的数据交互。CN114356598ACN114356598A权利要求书1/2页1.一种Linux内核态与用户态的数据交互方法,其特征在于,包括:接收第一目标程序的读操作;所述读操作,用于读取第一虚拟地址的数据;响应于所述读操作,从所述第一虚拟地址对应的环形缓冲队列中的目标物理地址读取数据;其中,所述目标物理地址的数据,是基于第二目标程序对第二虚拟地址的写操作写入的;所述第二虚拟地址与所述目标物理地址对应;在所述第一目标程序来自内核态的情况下,所述第二目标程序来自用户态;在所述第一目标程序来自用户态的情况下,所述第二目标程序来自内核态。2.根据权利要求1所述的Linux内核态与用户态的数据交互方法,其特征在于,所述接收第一目标程序的读操作之前,还包括:接收所述第二目标程序的写操作;所述写操作,用于向所述第二虚拟地址写入数据;响应于所述写操作,将所述数据写入所述目标物理地址。3.根据权利要求2所述的Linux内核态与用户态的数据交互方法,其特征在于,所述接收所述第二目标程序的写操作之前,还包括:在目标态下基于共享内存的物理地址,创建所述环形缓冲队列。4.根据权利要求3所述的Linux内核态与用户态的数据交互方法,其特征在于,所述在目标态下基于共享内存的物理地址,创建所述环形缓冲队列之前,还包括:在目标态下基于内存分配函数,申请所述共享内存,获取所述共享内存的物理地址;其中,所述共享内存的物理地址连续。5.根据权利要求3所述的Linux内核态与用户态的数据交互方法,其特征在于,在目标态下基于共享内存的物理地址,创建所述环形缓冲队列,具体包括:基于内存映射文件的方法,获取所述共享内存的物理地址对应的虚拟地址;基于所述共享内存的物理地址对应的虚拟地址,创建所述环形缓冲队列。6.一种Linux内核态与用户态的数据交互装置,其特征在于,包括:第一接收模块,用于接收第一目标程序的读操作;所述读操作,用于读取第一虚拟地址的数据;数据读取单元,用于响应于所述读操作,从所述第一虚拟地址对应的环形缓冲队列中的目标物理地址读取数据;其中,所述目标物理地址的数据,是基于第二目标程序对第二虚拟地址的写操作写入的;所述第二虚拟地址与所述目标物理地址对应;在所述第一目标程序来自内核态的情况下,所述第二目标程序来自用户态;在所述第一目标程序来自用户态的情况下,所述第二目标程序来自内核态。7.根据权利要求6所述的Linux内核态与用户态的数据交互装置,其特征在于,还包括:第二接收模块,用于接收所述第二目标程序的写操作;所述写操作,用于向所述第二虚拟地址写入数据;数据写入单元,用于响应于所述写操作,将所述数据写入所述目标物理地址。8.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至5任一项所述Linux内核态与用户态的数据交互方法的步骤。2CN114356598A权利要求书2/2页9.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述Linux内核态与用户态的数据交互方法的步骤。10.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述Linux内核态与用户态的数据交互方法的步骤。3CN11