[发明专利]一种基于套接字的异步I/O操作的方法和装置有效
申请号: | 202110441476.9 | 申请日: | 2021-04-23 |
公开(公告)号: | CN113162932B | 公开(公告)日: | 2023-01-06 |
发明(设计)人: | 李江卫;吴少勇;朱明星;华峰 | 申请(专利权)人: | 航天新通科技有限公司 |
主分类号: | H04L69/16 | 分类号: | H04L69/16;G06F13/38 |
代理公司: | 重庆强大凯创专利代理事务所(普通合伙) 50217 | 代理人: | 刘嘉 |
地址: | 401331 重*** | 国省代码: | 重庆;50 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 套接 异步 操作 方法 装置 | ||
本发明涉及网络通信技术领域,具体公开了一种基于套接字的异步I/O操作的方法和装置,方法包括如下步骤:管理套接字创建步骤:创建管理套接字,将其绑定在本地地址上;代理线程创建步骤:创建代理线程,将管理套接字添加到I/O复用函数的读操作控制信息中,并调用I/O复用函数;代理线程运行步骤:管理套接字接收用户的异步操作请求,根据异步操作请求执行相应的动作,然后向用户线程发送消息。采用本发明的技术方案能够提高对操作系统的适应性。
技术领域
本发明涉及网络通信技术领域,特别涉及一种基于套接字的异步I/O操作的方法和装置。
背景技术
常用的两种网络通信模型是阻塞式I/O模型和非阻塞式I/O模型。其主要区别在于当被请求资源得不到满足时的处理策略。阻塞式I/O模型会阻塞调用者线程,直到资源得到满足,被阻塞的线程才能继续执行;而非阻塞式I/O模型则直接返回指示性的错误信息,不会阻塞调用者线程。
在阻塞式I/O模型中,调用者通常另外申请一个线程用于处理I/O操作,否则,整个程序有可能因为等待I/O操作而被阻塞。而非阻塞式I/O虽然不会阻塞调用者线程,但需要调用者选择合适的时机重复执行相同的I/O调用,直到调用成功或者返回非资源就绪性质的失败。
异步I/O结合了上述两种模型的优点,其既不阻塞调用者线程,也无需调用者线程重复发起调用的特性,使其对减少线程数量和提高I/O吞吐量都有很大帮助。故此,通用的Linux和Windows操作系统都提供了异步I/O操作标准接口或者库函数。如Linux的POSIXAIO以及libaio库。但在嵌入式领域,因受限于硬件平台较低的CPU处理能力以及较小的存储空间等因素,操作系统通常并不提供上述异步I/O操作功能。
为了给上述场景提供异步I/O功能,公开号为CN104021196A的中国专利“一种针对System V消息队列的I/O复用方法”提出了一种基于有名管道的I/O复用实现方式。该方法基于命名管道,结合名为WSH的进程以及select/poll/epoll等标准套接字接口函数,除了能解决该专利描述的具体问题外,部分内容可以作为实现异步I/O的手段。
但该方法使用的管道通讯方式,很多实时嵌入式操作系统并不提供支持,如市场份额居前两位的FreeRTOS和μC/OS。这就使得该方法的普适性大打折扣。
发明内容
本发明提供了一种基于套接字的异步I/O操作的方法和装置,能够提高对操作系统的适应性。
为了解决上述技术问题,本申请提供如下技术方案:
一种基于套接字的异步I/O操作的方法,包括如下步骤:
管理套接字创建步骤:创建管理套接字,将其绑定在本地地址上;
代理线程创建步骤:创建代理线程,将管理套接字添加到I/O复用函数的读操作控制信息中,并调用I/O复用函数;
代理线程运行步骤:管理套接字接收用户的异步操作请求,根据异步操作请求执行相应的动作,然后向用户线程发送消息。
基础方案原理及有益效果如下:
通常只有Windows,Linux等通用的操作系统提供异步I/O接口,而嵌入式系统中广泛使用的如FreeRTOS,uCOS等并不提供这样的接口,使得FreeRTOS,uCOS等系统不具备异步I/O操作功能。本方案通过创建管理套接字和代理线程,利用管理套接字和代理线程的配合,实现了异步I/O操作,摆脱了对操作系统异步I/O操作标准接口的依赖,只要系统中包含网络功能,就可创建管理套接字和代理线程,方便实现异步I/O操作,具有更好的适应性。除此之外,使用管理套接字提供控制接口,还具有逻辑统一,控制简单的特点。
进一步,所述代理线程运行步骤具体包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于航天新通科技有限公司,未经航天新通科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110441476.9/2.html,转载请声明来源钻瓜专利网。