一种复合多进程多线程的多网络并发动态仿真方法

文档序号:8415459阅读:407来源:国知局
一种复合多进程多线程的多网络并发动态仿真方法
【技术领域】
[0001]本发明属于仿真领域,尤其是涉及一种复合多进程多线程的多网络并发动态仿真方法。
【背景技术】
[0002]随着移动通信技术的快速发展,与之相应的仿真技术也是由协议级静态仿真发展为系统级动态仿真,由于系统级动态仿真涉及到大量的计算和背景网络中业务结点的处理,仿真时间、仿真效率成为了动态仿真系统的瓶颈。为了消除这个瓶颈,充分利用多核处理器及其日趋成熟的硬件体系,可以采用并发架构来充分挖掘处理器潜力,来提高仿真系统的稳定性以及仿真效率,缩短动态网络仿真时间。
[0003]并发架构的实现通常有两种途径:采用多进程并发模式,多线程并发模式。上述两种实现模式都可以解决逻辑并发性、物理并行性等问题,相较于采用单进程单线程串行实现模式,上述的两种途径能够显著提高仿真系统的运行效率,这也是一般动态仿真系统所采用的实现方式。倘若只采用单一的并发模式存在一定的局限性,多进程的优点是进程之间的地址空间相互独立,不存在相互干扰,当某个进程崩溃后,其他进程不受影响,但是缺点是信息交换复杂,系统管理开销大、耗时长。多线程恰巧与多进程相反,由于共享进程系统资源,信息交换简单,系统开销小,因此使得多线程之间相关性强,稳定性差,当一个线程的故障就会导致整个进程的崩溃,多进程和多线程各有优劣。同时目前的动态仿真系统也只能实现对单个样本网络的动态仿真。

【发明内容】

[0004]针对现有技术中的多样本网络并发动态仿真时系统稳定性差且不高效的问题,考虑到多网络动态仿真系统中多个样本网络之间的相对独立性,力求每个样本网络动态仿真时稳定,所以采用多进程来实现。要求缩短单个网络仿真的时间、提高仿真效率则采用多线程来实现。为了达到上述稳定性与高效率的目的,所以本发明采用复合多进程多线程并发模式,该模式能够在获得效率提升的同时减低系统开销。其实质原理就是采用多进程的并发处理与多线程的协调处理机制,解决单个样本网络动态仿真在仿真效率上面的瓶颈,同时实现对多个样本网络并发动态仿真。本发明的技术方案如下:一种复合多进程多线程的多网络并发动态仿真方法,其包括以下步骤:
[0005]101、在客户端Client_*,*表示客户端的编号,当客户端Client_*通过TCP/IP协议向服务端发起连接请求时,服务端的系统服务管理进程模块监听到该连接请求后,设置于客户端Client_*的接口适配器将客户端Client_*的各种连接请求消息转换为内部统一的请求消息 UNI_REQ,其格式:User_ID,User_Name,User_PW,Port_No,其中 User_ID 表不用户编号,User_Name表示用户名,User_PW表示用户密码,Port_No表示自定义通信端口号;
[0006]102、所述服务端的系统服务管理进程模块接收了请求消息UNI_REQ后,服务端的系统服务管理进程模块调用Parametei^Resolve参数解析O自定义函数将其解析出与该请求消息对应的客户端的相关参数,鉴定客户端是否有连接服务端的权限;然后调用多样本网络分离模块,创建子进程,并传入User_ID、Port_No参数,同时系统服务管理进程还管理一个动态生成的单链表,该单链表存储的是已经处于动态仿真状态的样本网络所对应的User_ID,该单链表确定了系统服务器管理进程是否为Client_*的连接创建新的子进程;
[0007]103、多样本网络分离模块建立好子线程后,动态仿真开始,子线程从数据库读取与步骤102存入的User_ID相匹配的网络拓扑信息,然后初始化样本网络。子进程调用PthreacLcreate O,预先创建四个处理线程,分别对应网络仿真模块。通信模块、网络评估模块、业务结点管理模块,其中网络仿真模块用于模拟现实环境的通信过程,包括业务发起模块,干扰模块,接纳控制模块,功控模块,动态信道分配模块,分组调度模块;通信模块:用于服务端和Client_*通过socket信息交互;网络评估模块:用于输出统计量并对网络质量进行评估,该模块实时监控样本网络中背景流量的变化,包括系统负载,接通率与掉线率,RSCP统计分析,全网速率统计,采用数据库完成与Client_*端的交互;业务结点管理模块:用于遍历业务队列,检查业务结点是否失效,如果失效则从队列中将该结点删除。线程之间采用互斥锁与条件变量相结合的混合通信机制,完成动态仿真。
[0008]进一步的,步骤103中业务结点管理模块的节点删除和添加的具体步骤为:当新增基站时,首先修改基站增标志位Flag_a为该基站的编号NodeB_No,Flag_a默认值为_1,业务结点管理线程一旦监测到标志位改变,然后到线程队列中去寻找一个空闲的线程去全权负责该基站所对应的业务结点队列的管理并把Flag_a置为-1 ;当删除基站时,首先修改基站删标志位Flag_d为该基站的编号NodeB_No,Flag_d默认值为_1,业务结点管理线程一旦监测到标志位变改变,然后回收线程,并将该基站下面的业务结点队列所占用的内存资源释放并把Flag_d置为-1。
[0009]进一步的,步骤102中的子进程之间通信采用SMA共享内存域模型,该SMA共享内存域模型分为两部分,一是固定大小的内存块组成的带切换网络终端链表,并对表中的每个块进行编号;另一个是HashTable,用来存放块编号。
[0010]本发明的优点及有益效果如下:
[0011]本发明采用复合多进程多线程并发模式,该模式能够在获得效率提升的同时减低系统开销。其实质原理就是采用多进程的并发处理与多线程的协调处理机制,解决单个样本网络动态仿真在仿真效率上面的瓶颈,同时实现对多个样本网络并发动态仿真。针对单个样本网络的背景流量中语音业务结点和数据业务结点的数量同虚拟基站的数量以及业务发起的频率成正比。本发明采用线程池来处理。针对单样本网络中每一个基站生成的业务结点队列都分配一个线程来单独处理,在效率上与使用单线程对整个样本网络的业务结点队列处理的方法有成倍的提升。
【附图说明】
[0012]图1是本发明多进程多线程多网络并发动态仿真模型图;
[0013]图2为本发明中UNI_REQ格式图;
[0014]图3为本发明中多进程之间通信SMA模型图;
[0015]图4为本发明中删除因子计算示意图;
[0016]图5为本发明中单网络多线程并发处理模型图;
[0017]图6为本发明中动态仿真流程图;
[0018]图7为本发明中业务结点管理线程工作示意图;
[0019]图8为本发明中业务结点管理线程工作流程图;
[0020]图9为本发明中背景网络中多线程服务于多基站业务队列示意图。
【具体实施方式】
[0021]以下结合附图,对本发明作进一步说明:
[0022]图1多进程多线程多网络并发动态仿真模型中可以看出,Client_*客户端的网元通过TCP/IP协议发起连接的时候,被服务端的系统服务管理进程监听到,并接受接口适配器将外部的各种消息转换为内部统一的请求消息(NUI_REQ)如图2,其格式:User_ID,User_Name, User_PW,Port_No等主要参数。User_ID主要是为了多网络之间的区分,User_Name, User_PW主要是服务端用于鉴权操作,Port_No自定义通信端口号,主要是当多网络并发仿真时,实现某个正在运行的样本网络与之对应的前端信息交互。
[0023]在服务端有一个系统服务管理进程,该进程具有监听,鉴权,网络仿真进程管理,服务器维护等功能。系统服务器管理进程在服务端进入不断循环监听来自客户端的连接操作请求状态,当系统服务器管理进程接收到来自客户端的UNI_REQ之后调用Parameter_ResolveO自定义函数将其解析出相关参数。获取USer_Name,User_PW并到数据库中匹配,鉴定客户端是否有连接服务端的权限,如果匹配成功说明权限无误,同时系统服务管理进程还管理一个动态生成的单链表,这个单链表存储的是已经处于动态仿真状态的网络所对应的User_ID,这个链表确定了系统服务器管理进程是否为Client_*的连接创建新的子进程,比如User_ID为001,为首次连接服务端并申请仿真,系统服务管理进程首先检查单链表,如果不存在User_ID为001的块号就动态分配内存块保存该信息,并将001内存块添加到单链表尾部同时为其创建子进程,否则不予创建。然后调用多样本网络分离模块中fork O +execlp O,为相应的用户创建子进程,并传入User_ID、和Port_No等参数。
[0024]每个样本网络对应一个子进程,当多个样本网络并发仿真时,且网络距离较近,存在背景流量中的虚拟UE由一个网络切换到另外一个网络的可能性,虚拟UE的众多属性包含UE_ID,坐标信息,终端状态,绑定的运动模型,发射功率以及当时所拥有的业务类型等整合生成统一消息(UNMSG),当虚拟UE在多个网络之间切换时,那么统一消息(UNMSG)则会在多个样本网络子进程之间传递,故而存在进程之间通信。虚拟UE的移动具有随机性,可能存在某一个虚拟UE会在多个样本网络(进程)间反复切换。所以进程间的数据交换也是频繁的,将占用大量的系统开销。为了减少这部分的CPU消耗,需要尽量减少数据在内存的拷贝。
[0025]本发明的进程之间通信采
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1