免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1352 | 回复: 0
打印 上一主题 下一主题

NS2模拟器Simulator [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-04-04 09:54 |只看该作者 |倒序浏览
以下内容基本上均可以在NS2手册中找到,现在记录于此,以便复习。
Simulator的init过程中有如下代码:
$self create_packetformat
$self use-scheduler Calendar
$self set nullAgent_ [new Agent/Null]
也就是说在创建一个新的模拟对象时,它将初始化包格式,创建一个默认的调度器和创建一个“空代理“,其作用是将接受被丢弃的包或者是作为目的地接受那些没有被计算或者记录的包。
现在的模拟器有四种调度器,每种由不同的数据结构实现:
. 一种简单的链表(a simple linked-list)
. 堆(heap)
. 时间队列(calendar queue)
. 实时类型(real-time)
与拓扑结构无关的模拟方法清单:
. Simulator instproc now                             ;
. Simulator instproc at args                         ;
. Simulator instproc cancel args                     ;
. Simulator instproc run args                        ;
. Simulator instproc halt                            ;
. Simulator instproc flush-trace                     ;
. Simulator instproc create-trace type files src dst ;
. Simulator instproc create-packetformat             ;
这些过程对应的C++中的实现在command中,比如最常用的at,在command中有如下代码:
        if (strcmp(argv[1], "at") == 0 ||
            strcmp(argv[1], "cancel") == 0) {
            Event* p = lookup(STRTOUID(argv[2]));
            if (p != 0) {
                /*XXX make sure it really is an atevent*/
                cancel(p);
                AtEvent* ae = (AtEvent*)p;
                delete ae;
            }
这里涉及到事件,事件的定义如下:
class Event {
public:
    Event* next_;        /* event list */
    Event* prev_;
    Handler* handler_;    /* handler to call when event ready */
    double time_;        /* time at which event is ready */
    scheduler_uid_t uid_;    /* unique ID */
    Event() : time_(0), uid_(0) {}
};
可见一个事件定义了其就绪时间与调用事件的句柄。
               
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u3/94142/showart_1890108.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP