惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

IT之家
IT之家
Y
Y Combinator Blog
Stack Overflow Blog
Stack Overflow Blog
Cloudbric
Cloudbric
月光博客
月光博客
I
InfoQ
Recorded Future
Recorded Future
K
Kaspersky official blog
T
Tor Project blog
S
SegmentFault 最新的问题
大猫的无限游戏
大猫的无限游戏
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Hacker News - Newest:
Hacker News - Newest: "LLM"
G
Google Developers Blog
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
C
CERT Recently Published Vulnerability Notes
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Hugging Face - Blog
Hugging Face - Blog
V
Visual Studio Blog
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
GbyAI
GbyAI
Martin Fowler
Martin Fowler
S
Schneier on Security
D
Docker
F
Fortinet All Blogs
博客园 - 三生石上(FineUI控件)
H
Help Net Security
Cyberwarzone
Cyberwarzone
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
博客园 - 叶小钗
C
Cisco Blogs
The GitHub Blog
The GitHub Blog
S
Securelist
Vercel News
Vercel News
NISL@THU
NISL@THU
N
Netflix TechBlog - Medium
Attack and Defense Labs
Attack and Defense Labs
云风的 BLOG
云风的 BLOG
T
Tenable Blog
Engineering at Meta
Engineering at Meta
G
GRAHAM CLULEY
N
News and Events Feed by Topic
S
Security @ Cisco Blogs
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Microsoft Azure Blog
Microsoft Azure Blog
Security Archives - TechRepublic
Security Archives - TechRepublic
aimingoo的专栏
aimingoo的专栏
Microsoft Security Blog
Microsoft Security Blog
C
Check Point Blog
C
Cyber Attacks, Cyber Crime and Cyber Security

博客园 - yijiangchunxue

测试网站和电子书下载网址 一位软件工程师的6年总结(转) 【转】VC调试篇 【转】C++时间函数 在VC++中生成伪随机数祥解 c++产生随机数 2008年全球人均GDP排行 精选最新优秀源码下载网站排行 堆内存和栈内存区别 assert() 函数用法 C/C++笔试题(1) 华为笔试网络题 华为笔试题及解答 华为C/C++笔试题(5) 华为C/C++笔试题(4) 华为C/C++笔试题(3) 华为C/C++笔试题(2) 华为C/C++笔试题(1) malloc/free 和 new /delete 的区别
glomosim仿真的运行过程
yijiangchunxue · 2009-03-05 · via 博客园 - yijiangchunxue

1 glomosim系统启动的入口是.\main\driver.pc文件中的main()函数。main()函数首先调用parsec_main()函数。parsec_main()函数是parsec运行库函数,我们看不到它的源代码。


2 parsec系统的入口是driver实体。parsec系统启动时首先执行driver实体的代码。driver实体首先读取核心配置文件,解
析出仿真场景区域范围、仿真随机数种子、仿真总时间、网络中节点总数等配置信息,随后生成取名为partitionEntityNameGLOMOPartition类型的实体,然后driver实体根据网络节点初始位置配置参数NODE-PLACEMENT的设置值确定各节点的初始位置,保存在消息NodePositionMsg中,接着利用send方法把消息NodePositionMsg发送给GLOMOPartition类型的实体partitionEntityName。此后driver实体将暂停以等待实体partitionEntityName完成初始化后发送过来信息Ready。


3 GLOMOPartition类型的实体partitionEntityName被创建时就立即申请所需内存空间。当接收到driver实体发送过来的消息
NodePositionMsg时,实体partitionEntityName接收到根据消息中的信息更新本区域实体中各节点的初始位置,然后构造全局普通事件堆heapSplayTree,接着针对各节点各层模块调用其初始化函数以完成仿真初始化工作。初始化完成后实体partitionEntityName向driver实体发送信息Ready。


4 实体driver 接收到信息Ready 后得知partitionEntityName已经初始化完毕,所以它向partitionEntityName发送信息
StartSim命令它开始仿真。


5 实体partitionEntityName接收到信息StartSim后即进入仿真事件处理循环。该循环将持续下去直到事件队列为空或设定的仿
真时间已到。每次循环过程中,实体partitionEntityName从全局事件队列中取出队首事件,判断该事件由哪个节点处理,根据该事件的某些属性判断该事件应由哪个层次处理,并把该事件交给目标节点的相应层次的调度模块。该层调度模块进行进一步调度,将事件交给相应节点的具体功能模块进行处理。


6 退出循环后即进入仿真收尾阶段。该阶段中实体partitionEntityName将依次调用各节点的各层模块的收尾函数以将仿真过程
中搜集的统计数据写入本区域实体的仿真数据临时文件中。仿真收尾阶段中,实体partitionEntityName针对每个节点依次调用radio、mac、网络层、传输层和应用层的收尾调度模块。收尾阶段完成后仿真过程结束,至此函数parsec_main()执行完毕,系统重新回到函数main()的控制下。函数main()中parsec_main()后的代码继续执行。