A:一些概念% F- H' Z8 }/ ^8 }
1. Space大概是个假想的队列吧,因为模型没有哪个非运行时的文件里出现过Space的描述。
2 q( U @" R9 n- u2 `/ d, D 2. 对P_Creation2设置traffic limit应该是无效的,因为P_Creation2里只有一个L_null,产生的3 C. S4 o0 n6 ^' q
新load并不进入P_Creation2。7 s: D) m( w2 c) k8 v
+ w, T7 {9 ^' O
B:解决你的问题# c# I- e$ H2 b( T8 v
1. 如果你想让P_In2一直是满的,首先要设置P_In2的traffic limit,然后,代码如下:" {1 Y6 z* q- K# \7 u! O' }
-------------------------------------------------------------------------
* q/ r9 h8 n3 d3 D3 d9 fbegin model initialization function9 A9 I5 f) z# i m
create 1 load of L_C2 to P_In21 h" g V, ?- t" N U
return true) V' f9 d* v: r6 ~: |
end
) R8 _1 D, ], r9 _" r& R+ i9 ^
begin P_In2 arriving procedure5 o; S) y, V+ t9 [, p2 l$ N
clone 1 load of L_C2 to P_In2) J \3 ]+ _. ~$ F2 y3 P
move into Q_F2% c9 R; Y6 |' }( e: ?( ` n1 _6 |/ T
... ...7 w6 `# n$ z4 H- `/ I
-------------------------------------------------------------------------
6 [8 I6 H4 Q" u ]: o+ h 如果想让Q_F2满着,就把clone动作拿到第二句。
2 s3 S+ N$ L, M9 |
) L5 N4 r% ^0 {6 e3 M" `& P 2. 其实你想要的应该不是以上那种吧,而是依然以固定时间间隔投放Load,只是遇到没
8 w( H9 o2 l% s. Q; e# M) I0 g空间了就暂停下来。这又分两种情况(以下只看P_Creation2):+ I9 {' \5 r3 |* a( ]
2.1 每1秒钟检查是否有空间,有就投放(到P_In2或die);不管是否投放了,都再等下1秒钟,如此循环。
; ?4 V* B' ^1 u1 s0 w( [7 B' j& Z---------------------------------------------------------------------------
0 X- j9 \7 n9 N! N" ybegin P_Creation2 arriving procedure5 L6 o, y, b, w, |- k9 Y
while 1 = 1 do begin
( j" _- j" l( C) x! O. S# j2 R i wait for 1 sec
8 z {, \8 ] s) j: Q) R4 w. u! C+ Y if P_In2 current = P_In2 capacity begin& k5 I: p9 g$ L3 N5 \, U
create 1 load of load type L_C2 to oneof(2 _In2,8:die)
, E. t! y! O# p9 \ end
: T% g! D! }6 X# z end
5 I/ @/ z- h0 }6 n2 P% k4 X8 Jend
0 [: S3 L2 e6 y$ E$ W---------------------------------------------------------------------------
* t* x0 W7 U Q 2.2 每1秒钟检查是否有空间,有就投放;没有的话就等到有,再投放;每次投放Load后开始计时1秒钟,如此循环。7 V( \: w7 |* f4 t$ i8 W
---------------------------------------------------------------------------- L& `. z2 s- y! Y& H C+ K* F( i( }
begin P_Creation2 arriving procedure
0 ?8 c/ b( m- w7 |$ `# \/ h while 1 = 1 do begin
. k! K0 T" p* `5 A+ ^3 {, e0 } wait for 1 sec
4 ]6 p+ h7 G, h& R1 | wait until P_In2 current = P_In2 capacity2 C7 B$ a1 l& e
create 1 load of load type L_C2 to oneof(2 _In2,8:die)
7 M( x: p, ]9 w9 x( u end1 ~; D* a! ?* v7 {! c2 d
end
0 Y, i6 {" M; A6 }---------------------------------------------------------------------------
* R: |' P9 \4 A U( B) o- _ 以上是以P_In2为限制。要以Q_F2为限制,直接把P_In2改成Q_F2就可以了,current和capacity属性对于Process和Queue都有效。
7 M1 m4 j% g" o! l, |7 u" L' Z5 V, |; m
3. 如果要一次产生某个数量的Load把P_In2填满,等到空了再进入,方法也蛮简单,我就不写出来了。 |