Event Scheduler
NS的离散的事件调度机制。 事件调度机制的主要用途是网络组件模拟包处理时的延迟或计时器。Figure 5 演示每个网络对象使用一个事件调度器。 注意一个网络对象发起一个事件后,这个事件将交给同一个对象(发起者)来处理当到达预定的时间。 网络对象之间的data path 与他们的 event path 不同。实际上, 当数据包从一个网络对象传到另一个发送者sender使用 send(Packet* p) {target_->recv(p)}; 方法并且接收者receiver使用 recv(Packet*, Handler* h = 0) 方法。

Figure 5. Discrete Event Scheduler
NS 有2种事件调度器event schedulers。 real-time 和 非 real-time。 非 real-time 调度器可以使用List, Heap and Calendar这3种工具implementations,尽管他们在逻辑执行上是一样的。产生这个现象是由于向后的兼容性: 一些早期的用户加入的网络组件的实现中可能使用一种特定的调度器,这个调度器并非通过公共的函数得到而是内部使用的。 默认的非 real-time 调度器是 Calendar。 real-time 调度器用于仿真, 允许模拟程序与真实的网络交互。目前还在开发中。下面是选择一个明确的事件调度器的例子:
. . .
set ns [new Simulator]
$ns use-scheduler Heap
. . .
另一个事件调度器的用途是去安排事件, 比如当一个FTP应用程序开始, 当一个模拟结束, 或者在模拟开始前生成模拟场景。一个事件调度器对象含有一个调度函数 at time "string" , 他发起一个特殊的事件叫 AtEvent 在特定的simulation time。 "AtEvent" 实际上是"Event"的子类, 他添加了一个额外的变量去带入被给予的 string。 然而,他被视为普通的事件。 在模拟开始后, 当AtEvent预定的时间到达时, AtEvent被传递到 "AtEvent handler" 处理程序(AtEvent handler只需建立一次并且处理所有的 AtEvent), 并且定义在AtEvent中的 string 中的 OTcl命令开始执行。 下面是在上面例子的基础上加入了一个模拟事件调度的代码。
. . .
set ns [ew Simulator]
$ns use-scheduler Heap
$ns at 300.5 "complete_sim"
. . .
proc complete_sim {} {
. . .
}
上面 at time "string" 是模拟对象(set ns [new Simulator])的一个成员函数。 但是这个模拟对象只是起一个用户界面的作用, 并且实际上他调用网络对象或调度器对象的成员函数去做实际的工作。 下列的是部分名单和简要描述关于模拟对象的成员函数, 这些函数与调度器的成员函数相接应。(Simulator object member functions that interface with scheduler member functions):
Simulator instproc now |
|
# return scheduler's notion of current time |
Simulator instproc at args |
|
# schedule execution of code at specified time |
Simulator instproc at-now args |
|
# schedule execution of code at now |
Simulator instproc after n args |
|
# schedule execution of code after n secs |
Simulator instproc run args |
|
# start scheduler |
Simulator instproc halt |
|
# stop (pause) scheduler |

- 大小: 3.9 KB
分享到:
相关推荐
NULL 博文链接:https://chembo.iteye.com/blog/896941
最后,记得在阅读《NS2快速入门手册》时,结合提供的NS_by_Example.doc文档,它可能包含了具体的示例代码和详细的步骤解释,这对于动手操作和解决问题非常有帮助。通过这样的学习,你将能够熟练运用NS2进行网络仿真...
$ns use-scheduler Heap . . . ``` 事件调度器还允许安排特定事件,如FTP应用启动、模拟结束或者生成模拟场景。`at time "string"`函数会创建一个AtEvent,当到达指定的模拟时间,AtEvent会被传递给"AtEventhandler...
【EventScheduler】是一款专为房间所有者设计的应用程序,它提供了事件调度和管理功能,使得出租过程更加便捷高效。在IT行业中,此类应用通常涉及到多种技术栈和开发工具,其中核心编程语言是Java,这也是本项目的...
SHOW VARIABLES LIKE ‘event_scheduler’;或 SELECT @@event_scheduler;或 SHOW PROCESSLIST;若显示: +—————–+——-+| Variable_name | Value |+—————–+——-+| event_scheduler | OFF |+—————...
The heart of NS's simulation engine is the event scheduler. It handles the chronological order of events, such as packet transmissions, arrivals, and processing. The scheduler ensures that events ...
【NS2初学笔记——非常经典】 NS2(Network Simulator 2)是一个广泛使用的网络模拟器,主要用于研究和分析网络协议、性能和行为。对于初学者来说,掌握NS2的基本概念和思想至关重要。以下是根据标题和描述提炼出的...
要使用 EventScheduler.js,只需使用 dispatch 函数调用 createScheduler 方法: var scheduler = createScheduler(function(topic, message) { // broadcast your message to your topic myEventBus.pub(topic, ...
MySQL中的事件调度器(Event Scheduler)是一个用于在指定时间执行特定任务的功能,它可以周期性地运行SQL语句或语句块,类似于触发器。然而,当事件调度器无法打开mysql.event表时,可能会遇到错误“Event ...
代码如下:ERROR 1577 (HY000): Cannot proceed because system tables used by Event Scheduler were found damaged at server start。 查看手册(5.4. mysql_fix_privilege_tables:升级MySQL系统表),一些MySQL...
1. 创建/修改事件(EVENT) 在MySql中,创建一个新的调度器使用CREATE EVENT,其语法规则如下: CREATE [DEFINER = { user | CURRENT_USER }] EVENT [IF NOT EXISTS] event_name ON SCHEDULE schedule [ON ...
3. **sched_trace流程.docx**:这个文档可能包含调度器跟踪和调试的信息。Linux内核提供了丰富的trace事件,用于分析调度决策的过程。这有助于开发者理解调度器的工作机制并进行性能优化。 4. **sched_avg_and_cpu_...
要使用 EventScheduler.js,只需使用 dispatch 函数调用 createScheduler 方法: var scheduler = createScheduler(function(topic, message) { // broadcast your message to your topic myEventBus.pub...
3. `lib`目录:包含了运行DolphinScheduler所需的所有依赖JAR包,包括SpringBoot框架、数据库驱动、Zookeeper客户端等。 4. `scripts`目录:包含了一些辅助脚本,用于数据库初始化、数据迁移等操作。 5. `webapp`...
### STK Scheduler 使用向导详解 #### 一、引言 本教程旨在引导您熟悉 **STK (System Tool Kit)/Scheduler** 的基本功能与特性。通过本教程的学习,您将能够启动 STK/Scheduler 模块,指定规划周期,定义各种任务...
去掉了 Bryntum scheduler-2.2.10 trial 中的时间限制,恢复了代码,仅供学习使用。
3. **重启DolphinScheduler服务**: - 替换完成后,需要重启DolphinScheduler的服务以使更改生效。 ```bash systemctl restart dolphinscheduler-api systemctl restart dolphinscheduler-master systemctl ...
一、概述 事件调度器是在 MySQL 5.1 中新增的另一个特色功能,可以作为定时任务调度器,取代部分原先只能用操作系统任务调度器才能完成的定时功>能。例如,Linux 中的 crontabe 只能精确到每分钟执行一次,而 MySQL ...