[发明专利]阻塞式事件通知方法及装置有效

专利信息
申请号: 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所述的阻塞式事件通知方法,其特征在于,所述内核态接口为内核态事件聚合通知等待接口。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于清华大学,未经清华大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/202210146335.9/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top