2009年3月16日星期一

(48)Opnet下关于进程的仿真--Processes

Opnet的三层模型中,Process位于最低层,是最为复杂的部分。充分理理Process层的相关处理机制对理解Opnet具有举足轻重的作用。
1. 几个重要概念
  • FSM:finite state machine,有穷状态机,这是描述逻辑和行为的单元,一个FSM定义了模型的状态和状态转换的标准;FSM使用状态states和转换transitions来确定模型可以采取什么行动来响应一个事件;
  • 状态State: 模块(module)的一种形态,或一种现状;
  • 转换Transition: 在响应一个事件时状态的转变;
  • Proto-C: 在FSM的每个部分,我们可以插入C/C++代码,这是Opnet的一个特殊功能,被称为Proto-C. Proto-C主要可以用在三个地方:Enter Executive(当模块进入某个状态,代码被执行),Exit Executive(当模块离开某个状态,代码被执行),Transition Executive(当响应某个特殊事件时,代码被执行)。
  • passes control:控制权转移,当一个事件对某个模块产生作用时,仿真内核通过中断把控制权移交给该模块的模型进程,该进程于是响应相应的事件,改变状态并执行相关代码,然后,把控制权交回给仿真内核。下一次请求到来后,进程模块检测到状态的变化后,响应新事件,并再把控制权移交回给内核。
  • unforced state非强迫状态,非强迫状态在执行完进入程序(enter executives)后,把控制权移交给仿真内核,一般用红色表示;
  • foced state强迫状态:强迫状态在执行完后不移交控制权,而是直接执行离开程序(exit executives)并转换到下一状态。一般用绿色表示;

以包计数Packet counting为例,一个包计数进程包括三个状态:initializing state初始状态, idle state空闲状态(即Wait), and arrival state到达(即Process)状态。这三种状态之间,可能相互转换transition,一共有三种transitions:initialization-to-idle初始状态到空闲态, idle-to-arrival空闲态到到达态, arrival-to-idle到达态到空闲态。

2. 操作指引

  1. File > New... select Process Model, > OK;
  2. Click the Create State tool button,在打开的窗口中,单击Create State按钮,并在工作区放下三个State;
  3. 为三个状态命名init, idle, arrival,注意,第一个状态带有一个黑色的箭头,表示它是第一个,所以,必须把它指定为init.
  4. (如上所述)把init和arrival改为强制状态(绿色),右击,选择make state foced.
  5. 在三个状态之间建立transitions:点击Create Transition工具按钮,连接两个状态就可以建立了;
  6. 把idle到arrival之间的转换设为有条件转换condition,即只有当数据包达到时才转换状态:右击,选择Edit attributes, 在condition右边输入ARRIVAL(全部大写);
  7. 用上面的方法再创建两个transitions:一个由arrival to idle, 另一个从idle出来,再指回idle,并设置后个的属性condition为default(小写);

(有点累了,明天go on)

没有评论:

发表评论

欢迎就文章所述观点、问题发表看法和留言。
请勿发表任何有关政治、宗教、成人等敏感性评论,勿发表带有人身攻击性、骂人、脏话等,博主有权删除任何评论,见谅!谢谢!