A:一些概念6 q+ G; D+ k8 e5 Q/ y5 n6 x( f
1. Space大概是个假想的队列吧,因为模型没有哪个非运行时的文件里出现过Space的描述。. \+ ?% a; u' K* d
2. 对P_Creation2设置traffic limit应该是无效的,因为P_Creation2里只有一个L_null,产生的# p6 d ?( b( i* a1 [' \+ O; H* H% Z
新load并不进入P_Creation2。
! `- n% o+ |5 t( O$ V! n, S
4 z* Q3 n/ k3 s$ DB:解决你的问题
$ S5 @ G- B/ h }5 o1 e& A! z 1. 如果你想让P_In2一直是满的,首先要设置P_In2的traffic limit,然后,代码如下:
2 I6 m* F6 s, U1 K+ E! h4 v* f-------------------------------------------------------------------------
" R! |* ?3 u5 @6 t: K( [$ ^begin model initialization function8 I' M2 ~+ r0 m8 {
create 1 load of L_C2 to P_In2
8 P. M1 x9 b2 X7 E( P return true
`7 X4 C- R6 k7 b/ P; Pend# N) Z: g& G L% m* S, p
3 D& n/ A/ ~! @& q9 `5 Wbegin P_In2 arriving procedure
' K) d6 f% T5 V8 \: S clone 1 load of L_C2 to P_In2+ u) A! P; y: W5 ]6 m; Z0 \
move into Q_F22 ?, A( l7 H+ ]
... ...) L( _; H9 Y0 y+ e
-------------------------------------------------------------------------
# R, P9 P- i$ K/ \5 C 如果想让Q_F2满着,就把clone动作拿到第二句。
2 O1 j3 a6 H4 q! Q
5 Y5 \2 R- j7 W N' i0 ]2 l, O 2. 其实你想要的应该不是以上那种吧,而是依然以固定时间间隔投放Load,只是遇到没
6 |! ?- f, |! x' d空间了就暂停下来。这又分两种情况(以下只看P_Creation2):
l: y/ g4 W* W0 p7 G 2.1 每1秒钟检查是否有空间,有就投放(到P_In2或die);不管是否投放了,都再等下1秒钟,如此循环。
$ j. q7 a% L7 M3 ?4 K2 L4 S---------------------------------------------------------------------------0 Q4 v, u7 `0 L7 h" Q( Q
begin P_Creation2 arriving procedure
" q9 m1 _; ~6 k, F d2 h3 e while 1 = 1 do begin
) e* n9 A8 q/ C/ W1 m8 X wait for 1 sec( f5 e9 |6 [) h" O
if P_In2 current = P_In2 capacity begin& L& d+ z/ g! q
create 1 load of load type L_C2 to oneof(2 _In2,8:die)
/ G9 x4 _+ u' a* b! b end0 Z4 R8 Q' x! A3 e+ O+ _! E2 C
end
+ E4 s8 {# u% |* L i9 B& Nend
" I# R5 \ O2 k3 N$ [---------------------------------------------------------------------------! V/ o2 }/ ]9 G5 d9 B6 s" P
2.2 每1秒钟检查是否有空间,有就投放;没有的话就等到有,再投放;每次投放Load后开始计时1秒钟,如此循环。# G- e2 c8 a3 X
---------------------------------------------------------------------------+ S6 @* {, A$ k
begin P_Creation2 arriving procedure
$ p: f' N& F6 m1 j ]% u6 r9 K# V5 M while 1 = 1 do begin
+ f3 n, e' S6 e+ w5 Z% j# l wait for 1 sec0 h' N: O' E* |: G
wait until P_In2 current = P_In2 capacity
# f* g, |; p, l+ Y% }) L create 1 load of load type L_C2 to oneof(2 _In2,8:die)% R3 x) }0 Q- P0 p% e1 W
end7 _/ V5 K1 A$ ? H2 z
end" O' u B4 \* F1 v/ v# Y4 Q8 Z- K
---------------------------------------------------------------------------
2 c; @* w" v3 d) h/ J 以上是以P_In2为限制。要以Q_F2为限制,直接把P_In2改成Q_F2就可以了,current和capacity属性对于Process和Queue都有效。3 K9 l3 |# M [" `3 _) t- t
2 @3 ]9 `# z8 f$ c$ i" N4 V 3. 如果要一次产生某个数量的Load把P_In2填满,等到空了再进入,方法也蛮简单,我就不写出来了。 |