[发明专利]一种离散事件网络模拟环境的时钟同步方法有效
申请号: | 201210051468.4 | 申请日: | 2012-03-01 |
公开(公告)号: | CN102662428A | 公开(公告)日: | 2012-09-12 |
发明(设计)人: | 林思明;王景飞;程学旗;张冬;周洲仪;李金明;王元卓 | 申请(专利权)人: | 中国科学院计算技术研究所 |
主分类号: | G06F1/12 | 分类号: | G06F1/12;G06F9/52 |
代理公司: | 北京泛华伟业知识产权代理有限公司 11280 | 代理人: | 王勇 |
地址: | 100190 北*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 离散 事件 网络 模拟 环境 时钟 同步 方法 | ||
1.一种离散事件网络模拟环境的时钟同步方法,其特征在于,包括下列步骤:
1)某一离散事件发生时,确定离散事件发生时间所对应的虚拟时钟滴答计数值,并将其作为目标计数值发送给内核态程序;所述虚拟时钟滴答计数值用于控制所有接入离散事件网络模拟器的真实软件的定时器的运行;
2)内核态程序以1为步长逐步累加虚拟时钟滴答计数值直至达到所述目标计数值;其中每次虚拟时钟滴答计数值加1时,对于接入离散事件网络模拟器的真实软件,判断所述真实软件的定时器是否超时。
2.根据权利要求1所述的离散事件网络模拟环境的时钟同步方法,其特征在于,所述步骤1)包括下列子步骤:
11)网络模拟器时钟发生跳跃后,向用户态监听程序发送更新虚拟时钟滴答的请求,该请求中携带网络模拟器当前的时钟信息;
12)用户态监听程序在收到更新虚拟时钟滴答的请求后,解析所要更新的虚拟时钟滴答计数值;
13)向内核态程序发送更新虚拟时钟滴答请求,该请求中携带所解析的要更新的虚拟时钟滴答计数值。
3.根据权利要求2所述的离散事件网络模拟环境的时钟同步方法,其特征在于,所述步骤11)中,网络模拟器到用户态程序的命令传输采用网络套接字、内存共享或者proc文件系统的方式实现。
4.根据权利要求2所述的离散事件网络模拟环境的时钟同步方法,其特征在于,所述步骤13)中,用户态程序到内核态程序的命令传输Netlink原始套接字、内存共享或者proc文件系统的方式实现。
5.根据权利要求1所述的离散事件网络模拟环境的时钟同步方法,其特征在于,所述步骤2)包括下列子步骤:
21)内核态程序收到更新虚拟时钟滴答请求后,更新当前虚拟时钟滴答值为所述目标计数值,启动虚拟时钟滴答补齐程序;
22)虚拟时钟滴答补齐程序逐个补齐更新前和更新后的两个虚拟时钟滴答计数值之间的所有虚拟时钟滴答,并为每一个补齐的虚拟时钟滴答处理定时器事件。
6.根据权利要求1所述的离散事件网络模拟环境的时钟同步方法,其特征在于,所述虚拟时钟滴答的创建过程包括下列步骤:
101)在Linux内核中创建记录虚拟时钟滴答的整型变量,用以模拟系统内核中的真实时钟滴答;
102)设置虚拟时钟滴答变量的标识,使得系统能够识别独立于真实时钟滴答的虚拟时钟滴答;
103)设置能够对虚拟时钟滴答变量进行修改的系统调用模块。
7.根据权利要求1所述的离散事件网络模拟环境的时钟同步方法,其特征在于,对真实软件的调用内核的进程进行标记,从而区分出哪些真实软件是所述接入离散事件网络模拟器的真实软件。
8.根据权利要求7所述的离散事件网络模拟环境的时钟同步方法,其特征在于,对真实软件的调用内核的进程进行标记的过程包括下列步骤:
401)创建两个哈希数组,第一哈希数组用于保存没有运行在模拟网络环境的进程号码,第二哈希数组用于保存运行在网络模拟环境的进程号码;
402)通过内核运行过程中的内部变量获取调用内核的进程名称,用于区别标识该进程的运行状态;
403)判断所有运行于操作系统的进程名称,如果该进程名称符合给定的运行于所述离散事件网络模拟器的正则表达式,表示该进程运行在模拟网络环境中,否则表示该进程未运行在模拟网络环境中;
404)将步骤403)中运行在模拟网络环境的进程所匹配的进程号保存到第一哈希数组中,将未运行在模拟网络环境的进程所匹配的进程号保存到第二哈希数组中;
405)当一个进程退出系统时,通过哈希函数计算该进程所对应进程号所在的哈希数组的位置,并则将其删除。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院计算技术研究所,未经中国科学院计算技术研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210051468.4/1.html,转载请声明来源钻瓜专利网。