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、强制、非强制。
低 -> 高,进程模型,节点模型,网络模型。
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、强制、非强制。