A:一些概念0 E- i! F; u; T% c8 F) H* p$ j
1. Space大概是个假想的队列吧,因为模型没有哪个非运行时的文件里出现过Space的描述。6 e* J! k' x, X: f4 M8 }8 @0 R
2. 对P_Creation2设置traffic limit应该是无效的,因为P_Creation2里只有一个L_null,产生的; k" Y$ C3 {: B7 |) ]
新load并不进入P_Creation2。4 p3 u/ ]$ r. ~: c4 @( N- L
/ K% T8 A" I, I2 M
B:解决你的问题, W" ?) j- \' p$ T- t- }
1. 如果你想让P_In2一直是满的,首先要设置P_In2的traffic limit,然后,代码如下: T5 h/ w1 `1 E% H/ A5 X* G# F! H
-------------------------------------------------------------------------
; v5 D/ G$ w* {1 K9 B3 f0 obegin model initialization function- i$ I4 y) p( f1 N* N
create 1 load of L_C2 to P_In2
' q( |4 [7 q" I, V1 O2 q1 h7 W return true: g% l# v, v" | C" [. y( z" h
end
5 ]1 {, E! f) ]: y0 W q- m$ ^# H% }+ O. |/ v6 H% I
begin P_In2 arriving procedure
0 G) N: ^4 m& D2 c clone 1 load of L_C2 to P_In2( @+ q1 j+ o+ {1 G$ X
move into Q_F2
' K5 ]8 i& y4 A; L... ...
* j( _" N! k! ]0 I& G-------------------------------------------------------------------------4 y: q F1 y& N% D2 e, g
如果想让Q_F2满着,就把clone动作拿到第二句。0 r; ], ~% F' w% c) t) y
3 j Q9 G7 P! x; t7 O8 m 2. 其实你想要的应该不是以上那种吧,而是依然以固定时间间隔投放Load,只是遇到没, \" ^9 J- W: D" a* F
空间了就暂停下来。这又分两种情况(以下只看P_Creation2):
8 S2 I# k: g5 b7 I. { 2.1 每1秒钟检查是否有空间,有就投放(到P_In2或die);不管是否投放了,都再等下1秒钟,如此循环。( u! F. H# @- p8 `
---------------------------------------------------------------------------
) k8 h( l+ N! L8 K `begin P_Creation2 arriving procedure# e6 O" F$ {# d& E3 E- T
while 1 = 1 do begin# A2 F8 ^- ~3 I7 ?4 j
wait for 1 sec
8 u! L0 C4 v% S' k& D if P_In2 current = P_In2 capacity begin
% `+ }$ e+ S' m/ R create 1 load of load type L_C2 to oneof(2 _In2,8:die)
: Q- }/ o8 y4 l9 X3 p5 Q. B: V4 @/ n end4 \ P/ U' C( G% E+ e+ H9 T
end: Y' O/ q h3 D4 y6 V& X
end" h1 w# }% K3 [% `8 a" F" D
---------------------------------------------------------------------------
f+ U/ N i3 \$ ` 2.2 每1秒钟检查是否有空间,有就投放;没有的话就等到有,再投放;每次投放Load后开始计时1秒钟,如此循环。( e' }3 C% X5 L' z9 ^% j
---------------------------------------------------------------------------
z2 t8 ~7 J4 z* R* obegin P_Creation2 arriving procedure
' A2 u* y! ]; c# E" n0 O$ ] while 1 = 1 do begin
4 N" I+ `) f# d9 w/ c6 g& z wait for 1 sec
, @* q j5 g2 H1 d. s" y; e wait until P_In2 current = P_In2 capacity
8 H, Z% P8 s# V E( v create 1 load of load type L_C2 to oneof(2 _In2,8:die)6 i' R4 f. i. X
end) c" `- M9 F& h% K2 D/ s+ k
end
+ r; q( K# M& e# E" g---------------------------------------------------------------------------3 k+ w% y3 H6 s( Z% c: D
以上是以P_In2为限制。要以Q_F2为限制,直接把P_In2改成Q_F2就可以了,current和capacity属性对于Process和Queue都有效。( `" I$ R) B$ v3 y0 S
* A& r' C& ~4 F8 {# @( y6 |' K' H 3. 如果要一次产生某个数量的Load把P_In2填满,等到空了再进入,方法也蛮简单,我就不写出来了。 |