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
目录: Overview , Basics , OTcl: The User Language Simple Simulation Example Event Scheduler Network Components Packet Post Simulation , Trace Analysis Example ...
SHOW VARIABLES LIKE ‘event_scheduler’;或 SELECT @@event_scheduler;或 SHOW PROCESSLIST;若显示: +—————–+——-+| Variable_name | Value |+—————–+——-+| event_scheduler | OFF |+—————...
EventScheduler:EventScheduler应用程序供房间所有者出租
Linux scheduler 笔记。 just backup。
其实这个错误按字面意思就是不能打开mysql.event表,那么就是权限问题导致的。一般mysql也无法运行。 在 本地计算机 无法启动 MySQL 服务。错误 1067: 进程意外终止。 mysql 安装改变数据库路径出现的问题解决方法 ...
要使用 EventScheduler.js,只需使用 dispatch 函数调用 createScheduler 方法: var scheduler = createScheduler(function(topic, message) { // broadcast your message to your topic myEventBus.pub(topic, ...
代码如下: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 ...
要使用 EventScheduler.js,只需使用 dispatch 函数调用 createScheduler 方法: var scheduler = createScheduler(function(topic, message) { // broadcast your message to your topic myEventBus.pub...
一、概述 事件调度器是在 MySQL 5.1 中新增的另一个特色功能,可以作为定时任务调度器,取代部分原先只能用操作系统任务调度器才能完成的定时功>能。例如,Linux 中的 crontabe 只能精确到每分钟执行一次,而 MySQL ...
mysql event scheduler 使用详解,含全局设置、创建event、修改event、删除event及相应的example,测试环境 mysql ver 14.14 distrib 5.7.26
dolphinscheduler 1.3.6 编译镜像,用于编译dolphinscheduler
apache-dolphinscheduler-3.1.4-src.tar.gzapache-dolphinscheduler-3.1.4-src.tar.gzapache-dolphinscheduler-3.1.4-src.tar.gzapache-dolphinscheduler-3.1.4-src.tar.gzapache-dolphinscheduler-3.1.4-src.tar....
去掉了 Bryntum scheduler-2.2.10 trial 中的时间限制,恢复了代码,仅供学习使用。
3-3.新一代大数据调度+-Apache+DolphinScheduler架构演进+&+Roadmap.pdf
Apache DolphinScheduler(apache-dolphinscheduler-3.0.0-beta-1-bin.tar.gz)是一个分布式易扩展的可视化DAG工作流任务调度开源系统。解决数据研发ETL 错综复杂的依赖关系,不能直观监控任务健康状态等问题。...