ImageVerifierCode 换一换
格式:DOCX , 页数:9 ,大小:74.17KB ,
资源ID:9631524      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9631524.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(OPNET入门学习教程二Basic Proess.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

OPNET入门学习教程二Basic Proess.docx

1、OPNET入门学习教程二Basic Proess第二课 Basic Processes在本课中,你学会做以下事情:创建进程和节点模型定义变量,宏(Macros)和过渡运行仿真分析仿真结果这个课程介绍如何建立一个模块,统计它接收的数据包数,然后把这个数字进行制图统计。对于每一个收到的数据包,进程模型递增一个变量并记录变量的值。概念:一个进程模型是一个有限状态机(finite state machine ,FSM),它代表了一个模块的逻辑和行为。一个有限状态机定义了模型的状态和改变状态的标准。OPNET 采用增强的C/C+修改FSM,称为Proto-C(原始C)。使用Proto-C的三种场合:1.

2、 Enter Executive 进入执行 2.Exit Executive 退出执行3.Transition Executive 转移执行模型设计:1. 打开OPNET,选择FileNew.,然后通过下拉菜单选ProcessModel,单击“OK”。2. 点击“Creat State”,在工作区放置3个状态。其中第一个状态会自动设为initial state(带有箭头)。3. 右击initial state,选择“Set name”,修改名称:init,确定。4. 其余2个状态分别命名为idle(空闲)和arrival(到达)。OPNET进程模型里,包括非强制状态(红色)和强制状态(绿色)。

3、非强制状态(红色)是指状态执行完之后,将控制权返回给Simulation Kernel。强制状态(绿色)是指状态执行完之后,立即执行退出操作或者转移到其他状态,并不返回控制权。由于arrival状态需要统计包数,并销毁数据包,然后回到空闲状态,因此,arrival状态应该是一个强制状态。另外,init 状态必须转移到idle状态,因此它也应该是强制状态。1. 右击init 状态,选择Make State Forced。2. 右击arrival 状态,选择Make State Forced。创建状态转移:状态转移分为无条件转移和条件转移(unconditional and conditional

4、)。1. 单击“Create Transition”。2. 先点 init state,后点 idle state。3. 绘制曲线状态转移线,先点 idle state,然后在idle和arrival之间点一下,再点arrival state。右击完成绘制。4. 在idle和arrival之间的状态转移线上右击(先选中,再右击),选择Edit Attributes,在condition的value中输入“ARRIVAL”(一定要大写)。确定。这是就条件转移。5. 点击 Create Transition,绘制从arrival到idle的转移。6. 绘制从idle到它自己的转移。右击完成绘制。7

5、. 右击 idle 到它自己的状态转移线,选择Edit Attributes。8. 修改condition的value为“default”(小写),确定。下面定义ARRIVAL宏:1. 点击“Edit Header Block”。打开edit pad。2. 输入:#define ARRIVAL (op_intrpt_type () = OPC_INTRPT_STRM)3. 点击关闭,保存。下面声明两个变量:一个用于存储数据包计数,另一个用于“handle”局部统计分析数据包。1. 点击Edit State Variables。2. 输入:Type Name Comments int pk_co

6、unt Counts total packets Stathandle pk_cnt_stathandle Statistic to record packet count 3. 点击OK,保存,关闭。统计量是用于后面的数据分析,在进程模型中是需要声明的。4. 选择InterfaceLocal Statistics。5. 在Stat Name处输入packet count。后面自动设为Single和N/A。6. 单击Desc.(Description),输入Number of packets received,并保存。7. 单击OK。创建状态执行:1. 双击init状态的上半部分,进入Ente

7、r Executives。2. 要初始化pk_count和pk_cnt_stathandle,输入:pk_count = 0;pk_cnt_stathandle = op_stat_reg (packet count, OPC_STAT_INDEX_NONE, OPC_STAT_LOCAL); 3. 关闭,保存。上面pk_count和pk_cnt_stathandle变量是你定义的状态变量,但op_stat_reg()函数是一个仿真内核程序(组)。OPNET内包括了几百个内核函数可供调用。每个状态下面的数字表示状态执行“Enter/Exit”操作的指令行数。例如init状态开始是0/0,现在是

8、3/0。可以在空白处右击,选择显示/隐藏行计数。对arrival状态的设置:1. 双击arrival状态的上半部分。2. 要增加数据包计数,输入:+pk_count;3. 要丢弃得到的数据包,输入: op_pk_destroy (op_pk_get (op_intrpt_strm ();4. 对数据包的统计记录,输入: op_stat_write (pk_cnt_stathandle, pk_count);5. 保存,退出。上面这些基本内核程序的调用,可参考Help Essential Kernel Procedures。很有用的! KPs是Kernel Procedures的缩写。编辑进程接

9、口:1. 选择Interfaces ProcessInterfaces。2. 将begsim intrpt的Initial Value改为enabled。(产生中断)3. 将endsim intrpt, failure intrpts, intrpt interval, recovery intrpts, 和super priority的Initial Value设为disabled。4. 将priority的Initial Value设为0。5. 将所有参数的Status属性改为hidden。6. 保存,退出。编译模型:(每个进程模型在使用前都必须进行编译)1. 点击编译进程模型。2. 保存

10、,命名为 _packet_count。3. 关闭编译状态对话框。4. 关闭进程编辑器。建立网络和节点模型建立节点模型:1. 选择File New.,然后选 Node Model,确定。2. 点击Create Processor,创建3个节点。3. 点击Create Packet Stream,建立如下连接:4. 右击p_0,Edit Attributes,修改名字为src1,修改process model为simple_source。确定。5. 右击p_1,Edit Attributes,修改名字为count,修改process model为_packet_count。确定。6. 右击p_2,

11、Edit Attributes,修改名字为src2,修改process model为simple_source。在Packet Interarrival Time属性栏的位置右击,选择Promote(提升) Attribute to Higher Level。确定。1. 选择Interfaces Node Statistics。2. 点击Orig.Name,选择count.packet count,然后点Promote。3. 把Prom.Name改为 node packet count。4. 把Desc. 改为Number of packets received at the node lev

12、el。关闭窗口。保存。5. 选择File Save,命名为_packet_count。(节点和进程的名字可以相同,但后缀名不同)。6. 关闭节点编辑器。创建网络:1. 新建项目,项目名_packet_count,场景constant。Quit。2. 打开对象面板,进入图标视图,点击Configure Palette.3. 点击clear,点击右边的Node Models,设置_packet_count的Status为included。保存为_packet_count。4. 放置_packet_count节点,关闭对象面板。5. 右击节点,选择Choose Individual DES Stat

13、istics。下面将:创建一个包内的节点流量(动画节点动画)动画。指定节点包计数统计收集(节点统计节点的数据包数)。指定节点包计数统计动画(animation)。6. 选择Animations Node Animation。再选择Node Statistics node packet count。7. 右击Node Statistics node packet count,选择Record Statistic Animation。确定,关闭窗口。8. 右击节点,Edit Attributes,点击src2.Packet Interarrival Time的value为promoted。确保Di

14、stribution为constant,Mean outcome为1.0。确定,保存。仿真配置:1. 选择DES Configure/Run Discrete Event Simulation.2. 设置:Duration: 100 secondsSeed: 1471Values per statistic: 1003. 展开Outputs,Animation。点击2D,再确保Send animation to history file被选中。点击Apply。再点Cancel,关闭Configure/Run DES对话框,不进行仿真。下面新建一个场景进行对比:1. 选择Scenarios Du

15、plicate Scenario.(复制场景)。2. 命名新场景exponential,点击OK。3. 右击节点,Edit Attributes。点击src2.Packet Interarrival Time的value栏,打开对话框。4. 在Distribution name中选择exponential,确保Mean outcome是1.0。确定,确定。保存项目_packet_count。运行仿真:1. 在管理场景对话框中,可以同时运行两个仿真。选择Edit Preferences,确保Network Simulation Repositories是(),如果不是,就删除所有内容。确定。2.

16、 选择Scenarios Manage Scenarios.,把两个Results都改为。3. 确定,运行仿真。完成后,关闭DES Execution Manager。分析结果:1. 在项目编辑器中查看结果,如果要切换场景的话,选择Scenarios Switch To Scenario exponential.2. 右击node_0,View Results,打开Results Browser。3. 选择Object Statistics node_0 node packet count。点Show。4. 在20s到1min之间,可以选择一个方框进行放大。可以查看细节。5. 关闭图表,del

17、ete。6. 在Results Browser中,在Results for:中找到Current Project。7. 要切换到constant场景,点击_packet_count exponential,然后选择_packet_count constant,显示Object Statistics node_0 nodepacketcount。可以放大查看。8. 在图表上右击,选择Draw Style Discrete。显示离散图。离散图形显示了仿真内核(Simulation Kernel)每秒发送2个数据包,但分别计数。该图也表明了仿真核基于事件运行的性质。同时发生的事件(每秒钟到达多个包)

18、造成仿真核提前了仿真时间一次,但调用packet_count两次。而且,packet_count进程每次被调用时都递增一次数据包统计数。9. 关闭图表,delete。关闭Results Browser。1. DES Play 2D Animation。2. 要查看包的动画,Windows Animation Viewer top.node_0 packet flow.3. 退出动画查看,File Exit。4. 要查看constant场景的动画,先切换场景,Scenarios Switch to Scenario constant,然后DES Play 2D Animation。5. 退出动画查看器。您现在已经完成了“Basic Process”的学习。你应该对通过创建用户进程模型来控制节点行为有一个很好的理解。下一课学习分组交换Packet Switching,探讨分组交换网络。

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

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