MM1队列仿真

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验一 M/M/1队列仿真
1、实验目的
(1)了解什么是M/M/1队列
(2)利用节点编辑器,创建一个类似的M/M/1队列
(3)在仿真过程中将过滤器应用于数据收集,以及对后期仿真数据的数学研究。

2、实验环境
Windows XP系统
OPNET Modeler 10.0仿真软件
3、实验原理
M/M/1队列是由先进先出(FIFO)的缓冲区组成,数据包到达服从柏松分布。

M/M/1队列的性能优以下几个参数决定:
●数据包到达速率
●数据包大小
●服务容量
下图就是M/M/1队列的模型图1:
图1 M/M/1队列的节点模型图
4、实验步骤
<一> M/ M/1队列节点创建
新建一个工程名为ch04_mm1,场景名MM1的工程,单击“Quit”后退出,以后再设置此网络场景。

在项目编辑器出创建一个node model的场景:执行File >New命令,创建即可。

1 定义数据源模块
(1)在工具栏中单击“Create Processer”按钮,设置一个处理机模块放在工作区中。

(2)编辑其属性,右击选择“Edit Attributes”进行编辑。

设置各个属性如图2:
图2 源模块属性图
其中,设置数据包生成的间隔时间为指数分布;设置Mean Outcome为0.1(数据包到达的平均时间0.1s);改变Packet Size 的属性,Mean time 为9000。

(3)单击“ok”关闭属性对话框,完成属性设置。

2 建立队列模型
(1)创建一个队列(按“Create Queue”按钮即可),再放一个处理及模块在它的左边。

(2)右击队列模块,编辑属性如图3:
图3 队列属性图
模块改名为“queue”,“process model”为acb_fifo;确认service_rate为9600
(3)单击“ok”按钮,完成属性设置,关闭对话框。

3 定义是数据池模块
(1)在创建一个处理及模块放置于队列模块的右边,如图4:
图4 数据池模型的三个节点
(2)右击该模块,编辑其属性,name为sink,“process model”也为“sink”。

(3)单击“ok”完成设置,关闭对话框。

至此,MM1队列设置得到了正确配置,下面在将其连接起来。

4 创建数据波流
(1)在工具栏中,单击“Create Packet Stream”按钮。

(2)建立从Src到Queue和Queue到sink的连接。

如图5
图5 数据池节点模型
(3)执行Interface>Node Interface命令,打开节点接口编辑器,设置将mobile 和satellite的supportde属性改为no,关闭对话框。

(4)保存节点模型,将其名改为ch04_mm1,单击“save”保存。

<二> 创建网络
现在,底层的节点已经设置完成,开始着手在项目编辑器创建网络。

1 创建自定义对象面板
(1)在项目编辑器的工具栏中单击打开对象面板按钮,如6图;
图6 对象编辑器
(2)单击“Configure Palette”,在弹出的对话框中选中“Enable models aggregation”复选项,并单击“clear”按钮,清除所有模型图标。

(3)单击“Node Model”按钮,在弹出的对话框中找到ch04_mm1,将其右边的Status 设置为included,单击“ok”,关闭对话框。

(4)单击“Configure Palette”对话框的“ok”按钮,并保存为名为ch04_mm1_palette的新模板。

从而就建立了ch04_mm1的模块,如图7。

图7 加入ch04_mm1后的对象编辑器
2 创建网络模型
接下来,利用自定义的面板来建立M/M/1模型。

(1)从对象面板中脱一个新建的ch04_mm1_palette节点到工作区。

(2)右击该节点选择Set Name,命名为m_node 。

节点创建完毕,接下来就是仿真及收集统计量。

<三> 参数选择和仿真
首先选择要测量的仿真参数:
1 参数选择
(1)在项目编辑器中右击m_node节点对象,在弹出的菜单中选择“choose individual DES statistic”。

(2)在弹出的对话框中展开Model>queue.subqueue[0]>queue,选中queue size (packets)和queuing delay俩个统计量。

(3)单击“ok”按钮,关闭对话框。

2 运行仿真
现在可以开始OPNET运行仿真了。

(1)在项目编辑器上执行Create>Run Discrete Event Simulation按钮。

(2)将持续时间设置为7小时,Seed为431,Simulation Kernel 为optimized。


图8:
图8 运行仿真属性
(3)单击“Run”,开始仿真。

(4)真结束后,关闭对话框。

<四> 仿真结果的分析
对于小型网络仿真,可以直接在项目编辑器中看仿真结果,这里我们用OPNET 提供的分析工具来看仿真结果。

(1)在项目编辑器中执行File>New命令,在弹出的对话框中选择 Analysis Configuration,单击“ok”按钮。

我们首先关心得是队列延时,所以进行一下操作:
(2)单击工具栏上的“Create Graphic of a
Statistics>m_node>queue>subqueue[0]>queue”,选中“queue delay”旁边的复选项,即选择了queuing delay统计量。

(3)从filters下拉菜单中选择 time average,观察平均延时,如图9:
图9 ch04_mm1的平均延时
除了数据包排队延时外,我们关心的另一个变量是MM1的长度的时间平均。

进行下列步骤:
(1)移开平均延时图像的窗口,但是不要关闭它。

(2)在View Result对话框中取消“queuing delay”旁边的复选项。

(3)选中“queuing size(packets)”旁边的复选项。

(4)在filters下拉式菜单中选择time_average,如图10:
图10 MM1的长度的时间平均
下面再将这两个统计量放在一起进行比较和分析.
(1)关闭现有的View Result对话框。

(2)右击平均延时图形窗口,从弹出的快捷菜单中选择Add Statistics,将弹出一个新的View Result对话框。

(3)在弹出的新的View Result对话框中选择Model Statistics>queue.subqueue[0]>queue>queue size(packets)旁边的复选项。

(4)单击“Add”按钮,则两统计量出现在同一张图上,如图11:
图11 两者的比较图
5、试验结果分析
这个试验主要是对节点编辑器的应用,以及对基本的处理机和队列的理解和应用。

从实验中很容易看到平均队列延时和队列长度的时间平均是相似的,这表明对于该模型,有大量的插入和删除工作在仿真过程中进行。

M/M/1队列的原理数学模型模型:
平均到达速率=1.0/平均间隔时间=1p/1.0s=1.0p/s
平均服务需求:1/u=9000b/s
服务容量:C=9600b/s
平均服务速率:μC=(1/9000)*9600=1.067p/s
平均延时:T=1/(μC-λ)=15s
不难看出,网络延时用理论算出的值和在实验中测出的值完全符合;同样,队列长度也与理论值一样,这说明实验设计完全正确。

相关文档
最新文档