[发明专利]一种通信方法、装置及可读存储介质,一种文件系统在审
申请号: | 202010693121.4 | 申请日: | 2020-07-17 |
公开(公告)号: | CN111813579A | 公开(公告)日: | 2020-10-23 |
发明(设计)人: | 李养兆;仇锋利 | 申请(专利权)人: | 济南浪潮数据技术有限公司 |
主分类号: | G06F9/54 | 分类号: | G06F9/54;G06F9/50;G06F3/06 |
代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 王云晓 |
地址: | 250101 山东省济南市高新区*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 通信 方法 装置 可读 存储 介质 文件系统 | ||
1.一种通信方法,其特征在于,应用于内核态模块,包括:
接收应用进程发送的待处理IO请求;
获取所述内核态模块对应的第一队列的锁;
若获取到所述锁,则将所述待处理IO请求添加至所述第一队列的尾部,并修改所述第一队列的第一尾部指针,以便用户态模块按照所述第一尾部指针从所述第一队列中读取所述待处理IO请求并进行处理,将获得的处理结果添加至所述内核态模块对应的第二队列的尾部,并修改所述第二队列的第二尾部指针;
按照所述第二尾部指针从所述第二队列中读取所述处理结果,并返回所述处理结果至所述应用进程。
2.根据权利要求1所述的通信方法,其特征在于,所述按照所述第二尾部指针从所述第二队列中读取所述处理结果之前,还包括:
调用IOCTL唤醒第二轮询线程,并利用所述第二轮询线程轮询所述第二队列。
3.根据权利要求2所述的通信方法,其特征在于,若所述第二队列为空,则所述第二轮询线程进入休眠状态。
4.根据权利要求1所述的通信方法,其特征在于,还包括:
若未获取到所述锁,则进入锁等待队列,以等待所述锁。
5.根据权利要求1所述的通信方法,其特征在于,所述用户态模块按照所述第一尾部指针从所述第一队列中读取所述待处理IO请求并进行处理之前,还包括:
所述用户态模块调用IOCTL唤醒第一轮询线程,并利用所述第一轮询线程轮询所述第一队列。
6.根据权利要求5所述的通信方法,其特征在于,若所述第一队列为空,则所述第一轮询线程进入休眠状态。
7.一种通信装置,其特征在于,应用于内核态模块,包括:
接收模块,用于接收应用进程发送的待处理IO请求;
获取模块,用于获取所述内核态模块对应的第一队列的锁;
添加模块,用于若获取到所述锁,则将所述待处理IO请求添加至所述第一队列的尾部,并修改所述第一队列的第一尾部指针,以便用户态模块按照所述第一尾部指针从所述第一队列中读取所述待处理IO请求并进行处理,将获得的处理结果添加至所述内核态模块对应的第二队列的尾部,并修改所述第二队列的第二尾部指针;
读取模块,用于按照所述第二尾部指针从所述第二队列中读取所述处理结果,并返回所述处理结果至所述应用进程。
8.一种可读存储介质,其特征在于,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述的通信方法。
9.一种文件系统,其特征在于,包括:内核态模块和用户态模块,其中:
所述内核态模块,用于接收应用进程发送的待处理IO请求;获取所述内核态模块对应的第一队列的锁;若获取到所述锁,则将所述待处理IO请求添加至所述第一队列的尾部,并修改所述第一队列的第一尾部指针;
所述用户态模块,用于按照所述第一尾部指针从所述第一队列中读取所述待处理IO请求并进行处理,将获得的处理结果添加至所述内核态模块对应的第二队列的尾部,并修改所述第二队列的第二尾部指针;
所述内核态模块,还用于按照所述第二尾部指针从所述第二队列中读取所述处理结果,并返回所述处理结果至所述应用进程。
10.根据权利要求9所述的文件系统,其特征在于,所述内核态模块有多个,每个内核态模块对应一个队列组,所述队列组包括所述第一队列和所述第二队列。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于济南浪潮数据技术有限公司,未经济南浪潮数据技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010693121.4/1.html,转载请声明来源钻瓜专利网。