ns2通信网仿真作业2.docx

上传人:b****3 文档编号:2806763 上传时间:2022-11-15 格式:DOCX 页数:14 大小:157.49KB
下载 相关 举报
ns2通信网仿真作业2.docx_第1页
第1页 / 共14页
ns2通信网仿真作业2.docx_第2页
第2页 / 共14页
ns2通信网仿真作业2.docx_第3页
第3页 / 共14页
ns2通信网仿真作业2.docx_第4页
第4页 / 共14页
ns2通信网仿真作业2.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

ns2通信网仿真作业2.docx

《ns2通信网仿真作业2.docx》由会员分享,可在线阅读,更多相关《ns2通信网仿真作业2.docx(14页珍藏版)》请在冰豆网上搜索。

ns2通信网仿真作业2.docx

ns2通信网仿真作业2

《通信网仿真与ns仿真器》作业报告

学院:

计算机学院班级:

10班姓名:

张晓磊学号:

1011041036

专业:

计算机软件与理论

几种排队机模型的性能分析与仿真

1.研究背景介绍

排队的现象,存在于当今世界一切经济之中,如果没有更好的办法配置时间资源.排队就可能是最公平的解决办法。

但是长期以来,人们在服务大厅里办理各项服务业务时,排队等候人数过多,前拥后挤的排队等候,有时排队在一小时以上甚至更久,极大的不方便办理业务的顾客。

而排队机系统的出现极大地改善了服务质量,解决了劳累的排队现象,很好地解决客户在办理业务中所遇到的排队、等候、拥挤和混乱等现象,真正创造舒适、公平、友好的等候环境而提供的服务终端。

基于排队机系统的应用背景,本课题主要研究几种应用于排队机系统的排队机模型,分别是M/M/1计算模型、M/D/1计算模型、D/D/1计算模型,与此同时分别对它们的性能进行分析,最后对3种计算模型在NS2仿真器的辅助下,编写仿真程序进行仿真,来更直观地了解3种计算模型的性能。

2.几种典型的排队机模型性能分析

2.1排队系统的基本组成

一般的排队系统都有三个基本组成部分:

(1)输入过程;

(2)排队规则;(3)服务机构。

(1)输入过程:

输入即指顾客到达排队系统,可能有下列各种不同情况,当然这些情况并不是彼此排斥的。

顾客的总体(称为顾客源)的组成可能是有限的,也可能是无限的。

顾客到来的方式可能是一个一个的,也可能是成批的。

顾客相继到达的间隔时间可以是确定型的,也可以是随机型的。

顾客的到达可以是相互独立的。

就是说,以前的到达情况对以后顾客的到来没有影响,否则就是有关联的。

输入过程可以是平稳的,或称对时间是齐次的,是指描述相继到达的间隔时间分布和所含参数(如期望,方差)都是与时间无关的,否则称为非平稳的。

(2)排队规则:

顾客到达时,如所有服务台都正被占用,在这种情形下顾客可以随即离去,也可以排队等候。

前者称为即时制或损失制,排队等候的称为等待制。

等待制可以采用先到先服务规则;后到先服务规则;随机服务规则;有优先权规则。

(3)服务机构:

(A)服务机构可以没有服务台(服务员),也可以有一个或多个。

(B)在有多个服务台的情形中,它们可以是平行排列、先后排列和混合排列。

(C)服务方式是,可以对单个顾客进行,也可以成批顾客进行。

(D)和输入过程一样,服务时间也分确定型和随机型。

(E)和输入过程一样,服务时间的分布我们总假定是平稳的,即分布的期望值、方差等参数都不受时间的影响。

2.2排队机模型的分类

排队模型按主要特征进行分类。

一般是以相继顾客到达系统的间隔时间分布、服务时间的分布和服务台数目为分类标志。

现代常用的分类方法是英国数学家D.G.肯德尔提出的分类方法,即用肯德尔记号X/Y/Z进行分类。

X处填写相继到达间隔时间的分布;Y处填写服务时间分布;Z处填写并列的服务台数目。

目前典型的排队机模型有M/M/1,M/D/1和D/D/1(其中,M表示到达过程为泊松过程或负指数分布;D表示定长输入)。

其中,D/D/1表示顾客按照确定的时间间隔到达、服务时间为确定的时间间隔和单个服务台的模型;M/D/1表示顾客相继到达的间隔时间为负指数分布、确定的服务时间间隔和单个服务台的模型;M/M/1表示顾客相继到达的时间间隔为负指数分布、服务时间间隔为负指数分布和单个服务台的模型。

2.3M/M/1计算模型

2.3.1标准的M/M/1模型

标准的M/M/1计算模型是指适合下列条件的排队系统:

(1)输入过程:

顾客源是无限的,顾客单个到来,相互独立,一定时间的到达数服从泊松分布,到达过程是平稳的。

(2)排队规则:

单队,且对队长没有限制,先到先服务;

(3)服务机构:

单服务台,各顾客的服务时间是相互独立的,服从相同的负指数分布。

此外,还假定到达间隔时间和服务时间是相互独立的。

2.3.2达到与服务的概率分布

表示顾客平均达到率,

表示服务台平均服务率。

对于泊松流,在时间

内,系统内有

个顾客的概率服务泊松分布:

若顾客流为泊松流时,顾客到达的时间间隔服从负指数分布:

从而可求得到达的时间间隔均值为

;到达时间间隔方差为

在这种计算模型中,由于服务机构只有一个服务台,对一个顾客的服务时间,即忙期内两顾客离开系统的时间间隔,服从参数为

的负指数分布,

为平均服务率,即单位时间内离开系统的顾客平均数。

服务时间的均值和方差为:

综上所述,在M/M/1计算模型中,达到的顾客数服从泊松分布,服务时间服从负指数分布。

2.3.3服务系统的运行指标

1.系统中无顾客的概率

2.平均排队的顾客数

3.系统中的平均顾客数

4.顾客花在排队上的平均等待时间

5.顾客在系统中的平均逗留时间

6.顾客得不到及时服务必须排队等待的概率

7、系统中恰好有n个顾客的概率

此外,还有,平均队长:

系统状态的数学期望(顾客数的期望值)

;平均排队长:

排队顾客数的期望值

;逗留时间分布为

;所以平均逗留时间

;平均排队时间:

;关于

服务强度,反映了服务员忙期所占的比例,同时实际上也是平均服务台数。

指标参数之间的关系:

忙期与闲期,

服务员平均连续忙的时间

;平均连续闲的时间

2.4M/D/1计算模型

M/D/1表示顾客相继到达的间隔时间为负指数分布、确定的服务时间间隔和单个服务台的模型。

它是M/G/1计算模型(G表示一般相互独立的随机分布)的一种特殊情况,即M/G/1模型中服务时间均方差

=0的情况。

表示单位时间顾客的平均达到数;

表示单位时间内的平均服务顾客数,则一个顾客的平均服务时间为

,服务时间的均方差为

在M/G/1计算模型中,达到的顾客数服从泊松分布,服务时间为一般的服务时间。

而作为M/G/1的特殊情况M/D/1计算模型,其达到的顾客数亦服从泊松分布,但服务时间为固定时间。

M/G/1服务系统的运行指标包括:

1.系统中无顾客的概率

2.平均排队的顾客数

3.系统中的平均顾客数

4.顾客花在排队上的平均等待时间

5.系统中顾客的平均逗留时间

6.系统中顾客必须排队等待的概率

7.系统中恰好有n个顾客的概率

2.5D/D/1计算模型

D/D/1计算模型是一种表示顾客按照确定的时间间隔到达、服务时间为确定的时间间隔和单个服务台的模型,它是三个排队模型中最特殊的情况。

值得注意的是D/D/1模型一定要求服务时间为确定的时间。

在D/D/1模型中,用

表示单位时间顾客的平均达到数;

表示单位时间内的平均服务顾客数,则一个顾客的平均服务时间为

,与此同时,如果顾客到达率小于服务率(

),则此时处于无需等待D/D/1队列中。

3.实验仿真结果图

3.1几种排队模型主要的仿真程序

3.1.1M/M/1仿真程序

在M/M/1仿真程序中,我们假设包的到达速率是1packet/s,到达间隔时间服从指数分布,链路的处理速度恒定,定为44000bits/s,包的大小服从指数分布(这样可以代替服务时间的指数分布),分布的参数为44000/(8*u),其中u=1.1packets/s(模拟服务器处理速度)此时参数大致已经设定,贴源码如下:

setns[newSimulator]

settf[openout.trw] 

$nstrace-all$tf

setlambda 1

setmu    1.1

setn1 [$nsnode]

setn2[$nsnode]

setlink[$nssimplex-link$n1 $n244kb0msDropTail]

$nsqueue-limit$n1 $n2 100000

setInterArrivalTime[newRandomVariable/Exponential]

$InterArrivalTimesetavg_[expr 1/$lambda]

setpktSize[newRandomVariable/Exponential]

$pktSizesetavg_[expr44000.0/(8*$mu)]

#将n1定义为src

setsrc[newAgent/UDP]

$nsattach-agent$n1$src

#监听队列

setqmon[$nsmonitor-queue$n1 $n2[openqm.outw]0.1]

$linkqueue-sample-timeout

#定义队列中包的个数,初始化为0

setpktAmount0

procfinish{}{

globalnstf

$nsflush-trace 

close$tf 

exit0 

procsendpacket{}{

globalnssrcInterArrivalTimepktSizepktAmount

settime[$nsnow]

settempTime[$InterArrivalTimevalue]

 $nsat[expr$time+$tempTime]"sendpacket"

settempSize[exprround([$pktSizevalue])]

setbytes$tempSize

#在处理完传进的包后,删除掉一个包,delpacket在下面定义,这里来记录包个数有点问题,这里做法是在当前时刻的$tempSize*8/44000处理完进来包的时间后将包的个数减少1,忽略了等待的过程

  $nsat[expr$time+[expr$tempSize*8/44000]]"delpacket"

#puts"$time$bytes"

$srcsend$bytes

#发送后将包数加一

setpktAmount[expr$pktAmount+1]

puts"$time$pktAmount"}

procdelpacket{}{

globalpktAmount

setpktAmount[expr$pktAmount-1]

}

setsink[newAgent/Null]

$nsattach-agent$n2$sink

$nsconnect$src$sink

$nsat0.0001 "sendpacket"

$nsat 1000.0"finish"

$nsrun

3.1.2M/D/1仿真程序

M/D/1的仿真程序是将M/M/1中的

setpktSize[newRandomVariable/Exponential]

$pktSizesetavg_[expr44000.0/(8*$mu)]代码改成setpktSize5000即可。

3.1.3D/D/1仿真程序

setns[newSimulator]

settracefile1[openout.trw]

$nstrace-all$tracefile1

#OpentheNAMtracefile

setnamfile[openout.namw]

$nsnamtrace-all$namfile

#Definea'finish'procedure

procfinish{}{

globalnstracefile1namfile

$nsflush-trace

close$tracefile1

close$namfile

execnamout.n

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1