Opnet的一点总结

1、建模机制——分层建模
低 -> 高,进程模型,节点模型,网络模型。
2、网络模型,网络域对应着项目编辑器和链路编辑器:对整个网络的框架进行设计。
     节点模型,节点域对应着节点编辑器:各个节点内部进行具体的设计。
     进程模型,进程域对应着进程编辑器(难点):实现每个模块的功能。


另外,还有包格式编辑器(设计包)和探针编辑器(统计),ICI编辑器(调试信息)。
3、流程:
包格式 -> 链路模型 -> 节点模型 -> 构建网络模型 -> 运行仿真
调试 -> 结果 -> 分析
4、对象、属性、模型属性、属性提升、衍生模型。


各域介绍
5、网络域——定义了通信网的拓扑结构。
6、节点域——用来对通信设备进行建模,诸如路由器、网桥、工作站和终端等。
节点编译器:只需要配置一组内部参数就可以了。(通过module来表现)
7、进程域——3种链接互联:packet streams、statistic wires、logical associations
packet——packet 传送格式化的信息。
statistic——传送简单的信号,一般用一个module用来检测其他module
logical——用来确认module之间的绑定。
8、process 基于process model,在process editor中定义。任何时刻只能有一个process处于执行状态。Proto-C基于状态转移图(STD)来描述process model。
9、关于STD的一系列扩展。
状态变量(counter/routing tables/与性能相关的statistics/需要转发的message)
状态执行(修改状态信息,创建或接受消息,更新发送消息、统计数据,设置计时器)
转移条件(涉及中断属性以及装填变量的组合)
转移执行(转移时定义的一些通用操作)
10、自带模块:进程模块(processor),队列模块(queue),发射机和接收机。其中收发机已经被预定义,只需编写属性。queue中还包括子队列。
11、进程驱动原理(Interrupt来了,进入active,完成进入blocked)
12、变量区分。
全局变量:在某一进程中声明,其他进程若要调用就需要extern进行外部声明:比如时钟。
状态变量:该进程被调用就存在,别的进程不能直接访问它。如:节点的统计变量。
临时变量:它不需要再进程的两次调用之间保持不变。
13、进程间数据共享。
a、module memory同模块共享内存:
通过op_pro_modmem_install()和op_pro_modmem_access()访问。内存的分配一般通过op_prg_meme_alloc()在header中来完成。
b、父子共享内存。
这种内存属于私有。在child process由op_pro_create()产生时由op_prg_mem_alloc()分配。通过op_pro_parmem_access()访问。通过op_pro_invoke()通知对方对共享内存进行修改。
c、参数共享内存。
将内存地址作为 op_pro_invoke()的参数传给别的进程用以通信,通过op_pro_argmem_access()来完成访问。
14、进程中输入输出流。
input stream:packet到达,stream interrupt -> process -> op_intrpt_strm()来获取stream的index -> op_pk_get()和index获取packets ,op_strm_pksize()获取packet的数量。
output stream: op_pk_send();op_pk_send_delayed();op_pk_send_forced();op_pk_send_quiet()。
15、进程中的状态图。
a、强制、非强制。
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值