买专利,只认龙图腾
首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】基于容器线程管理技术的大规模网络节点拟真方法_西安电子科技大学_202210692183.2 

申请/专利权人:西安电子科技大学

申请日:2022-06-17

公开(公告)日:2024-04-16

公开(公告)号:CN115098220B

主分类号:G06F9/455

分类号:G06F9/455;G06F9/54;G06F9/448;G06F9/50;H04L41/14

优先权:

专利状态码:有效-授权

法律状态:2024.04.16#授权;2022.10.14#实质审查的生效;2022.09.23#公开

摘要:本发明公开了一种基于容器线程管理技术的大规模网络节点拟真方法,主要解决现有技术在大规模网络场景下创建过多线程的问题。其主要实现步骤为:调度网络拟真场景内所有节点;节点通过空闲线程管理队列管理其动态线程,并为其动态线程设置有限状态机和函数指针;源节点将其发送队列注册到接收节点,并通知接收节点分配一个用于接收处理发送队列的接收处理线程;发送线程与接收处理线程通过检查发送队列的状态动态调整接收处理线程数量。本发明减少创建过多线程产生的系统开销,降低了多线程处理队列的并发控制开销,可用于提高节点拟真效率,提高拟真系统整体吞吐量。

主权项:1.一种基于容器线程管理技术的大规模网络节点拟真方法,其特征在于:多线程为同一个发送队列并发出队与入队分组、根据任务动态分配与管理线程、根据发送队列的分组流强度动态调整接收处理线程数量;该拟真方法的具体步骤包括如下:步骤1,调度网络拟真场景内所有节点:在宿主机中创建与网络拟真场景中网络节点一一对应的容器,拷贝所有节点的可执行文件到容器中,加载并执行可执行文件;步骤2,创建所有节点的共享内存区:在宿主机的共享内存目录中创建内存映射文件作为共享内存区,并将此内存映射文件映射到所有节点的地址空间;步骤3,多线程通过发送队列进行多输入-多输出分组流的传输:步骤3.1,每个节点在共享内存上创建发送队列,并为该节点发送队列设置一个尾索引和一个头索引,头索引指向的队列单元是分组出队位置,尾索引指向的队列单元是分组入队位置;步骤3.2,当多个线程同时向一个发送队列入队时,均通过原子操作确定入队索引值;前一个执行原子操作的线程在将被请求入队的发送队列尾索引值,作为该线程的入队索引值的同时,将该发送队列尾索引值加1,后一个执行原子操作的线程将前一个线程更新过的发送队列尾索引作为该线程的入队索引值,以此类推,每一个后执行的线程入队索引值均比前一个线程的入队索引值大1,并通过其入队索引值入队分组到发送队列;步骤3.3,当多个线程同时从一个发送队列出队时,均通过原子操作确定出队索引值;前一个执行原子操作的线程在将被请求出队的发送队列头索引值,作为该线程的出队索引值的同时,将该发送队列头索引值加1,后一个执行原子操作的线程将前一个线程更新过的发送队列头索引作为该线程的出队索引值,以此类推,每一个后执行的线程出队索引值均比前一个线程的出队索引值大1,并通过其出队索引值从发送队列出队分组;步骤4,根据任务动态分配与管理线程:步骤4.1,每个节点创建一个用于管理动态线程的空闲线程管理队列,通过该节点空闲线程管理队列保存节点所有动态线程的线程号、线程状态和函数指针;步骤4.2,每个节点通过为该节点动态线程设置有限状态机,在为该节点动态线程分配任务后,使其进入任务执行状态,在该节点动态线程执行完任务后,阻塞该动态线程,使其进入空闲状态;步骤4.3,每个节点设置一个其处于空闲状态的动态线程的最大数量,管理该节点处于空闲状态的动态线程的数量始终小于该最大数量;该节点提前创建好对应数量的处于空闲状态的动态线程,并保存其信息到该节点空闲线程管理队列;当有该节点负责处理的新任务到达时,该节点将该任务分配给该节点的一个处于空闲状态的动态线程;当该节点所有动态线程的状态均为任务执行状态时,该节点新创建一个处于空闲状态的动态线程;当该节点通过空闲线程管理队列检查到处于空闲状态的动态线程数量大于空闲状态的动态线程最大数量时,该节点销毁多余的空闲状态动态线程;步骤5,接收节点接收处理一个或多个源节点发送队列中的分组:步骤5.1,每个节点创建一个用于保存该节点需要接收处理的一个或多个源节点的发送队列信息的注册表,发送队列信息具体包括已注册的发送队列数量、标记发送队列唯一序号的发送队列号以及标记发送队列的分组入队时刻的发送队列更新时间;源节点在通过其发送队列发送分组前,将该源节点发送队列信息保存到接收节点的注册表,向接收节点注册发送队列;步骤5.2,一个或多个源节点在向接收节点注册其发送队列后,通知接收节点从该接收节点的空闲线程管理队列中获取一个用于接收处理该源节点发送队列的接收处理线程;步骤5.3,接收节点的接收处理线程通过轮询接收节点注册表中一个或多个源节点的发送队列号,查询到接收节点需要接收处理的一个或多个发送队列,并从各发送队列中接收处理分组;步骤6,根据发送队列的分组流强度动态调整接收处理线程数量:步骤6.1,源节点在发送队列拥塞时通知接收节点调度更多的接收处理线程;步骤6.2,接收节点设置一个用于判断发送队列的分组流是否中断的队列中断阈值,并在检查发送队列为空时,将该发送队列的更新时间与当前时间进行对比,若当前时间与发送队列更新时间的差值大于队列中断阈值,则注销注册表中此发送队列的信息,不再从该发送队列接收处理分组;步骤6.3,接收节点的接收处理线程在轮询注册表接收所有发送队列时,若检查所有发送队列均为空,则判定接收节点的其他接收处理线程已提前轮询处理完所有发送队列,接收节点的接收处理线程数量过多,并将自身回收到空闲线程管理队列。

全文数据:

权利要求:

百度查询: 西安电子科技大学 基于容器线程管理技术的大规模网络节点拟真方法

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。