[发明专利]阻塞式事件通知方法及装置有效
申请号: | 202210146335.9 | 申请日: | 2022-02-17 |
公开(公告)号: | CN114697194B | 公开(公告)日: | 2023-07-14 |
发明(设计)人: | 李丹;李峻峰 | 申请(专利权)人: | 清华大学 |
主分类号: | H04L41/0654 | 分类号: | H04L41/0654;H04L69/30;H04L69/16;H04L9/40;G06F11/30 |
代理公司: | 北京路浩知识产权代理有限公司 11002 | 代理人: | 谢志超 |
地址: | 100084 北*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 阻塞 事件 通知 方法 装置 | ||
1.一种阻塞式事件通知方法,其特征在于,包括:
根据应用程序发起的第一接口调用请求,向接口兴趣队列中添加待监听文件,并将为网络套接字的待监听文件添加至用户态协议栈的监听队列中,所述第一接口调用请求为对第一用户态接口的调用请求,所述第一用户态接口为用户态事件聚合通知控制接口;
根据应用程序发起的第二接口调用请求,判断所述接口兴趣队列中是否有网络套接字,在所述接口兴趣队列中有网络套接字,且所述用户态协议栈的监听队列中待监听文件无待通知事件时,创建先入先出队列;其中,所述第二接口调用请求为对第二用户态接口的调用请求,所述第二用户态接口为用户态事件聚合通知等待接口,所述先入先出队列中无待通知事件;
对所述先入先出队列进行监听,根据监听结果,使应用程序进入阻塞状态或唤醒状态;
在应用程序进入唤醒状态时,向应用程序发送待通知事件;
向接口兴趣队列中添加待监听文件,并确定待监听文件的监听队列的步骤,具体包括:
确定应用程序调用第一用户态接口;
将所述待监听文件的文件描述符添加至所述接口兴趣队列中;
判断所述待监听文件是否为网络套接字;
若是,则将所述待监听文件的文件描述符添加至用户态协议栈的监听队列中;
若否,则将所述待监听文件的文件描述符添加至内核的监听队列中。
2.根据权利要求1所述的阻塞式事件通知方法,其特征在于,对所述先入先出队列进行监听,根据监听结果,使应用程序进入阻塞状态或唤醒状态,包括:
通过内核态接口监听所述先入先出队列;
若所述先入先出队列无待通知事件,则通过所述内核态接口使应用程序进入阻塞状态;
若所述用户态协议栈的监听队列中所述待监听文件有待通知事件,则改变所述先入先出队列的当前状态,以向操作系统内核发出结束阻塞指令;
所述操作系统内核用于通过所述内核态接口接收所述结束阻塞指令,根据所述结束阻塞指令使应用程序结束阻塞并进入唤醒状态。
3.根据权利要求1所述的阻塞式事件通知方法,其特征在于,向接口兴趣队列中添加待监听文件之后,还包括:
将为非网络套接字的待监听文件添加至内核的监听队列中。
4.根据权利要求3所述的阻塞式事件通知方法,其特征在于,还包括:
根据应用程序发起的第二接口调用请求,判断所述接口兴趣队列中是否有网络套接字,在所述接口兴趣队列中无网络套接字,且所述内核的监听队列中所述待监听文件无待通知事件时,通过内核态接口使应用程序进入阻塞状态。
5.根据权利要求4所述的阻塞式事件通知方法,其特征在于,在所述接口兴趣队列中无网络套接字,且所述内核的监听队列中所述待监听文件无待通知事件时,通过内核态接口使应用程序进入阻塞状态之后,还包括:
若所述内核的监听队列中所述待监听文件有待通知事件,则通过所述内核态接口唤醒应用程序;
向应用程序发送所述待通知事件。
6.根据权利要求2、4或5所述的阻塞式事件通知方法,其特征在于,所述内核态接口为内核态事件聚合通知等待接口。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于清华大学,未经清华大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210146335.9/1.html,转载请声明来源钻瓜专利网。