A:一些概念
. w! N' i# a' n 1. Space大概是个假想的队列吧,因为模型没有哪个非运行时的文件里出现过Space的描述。7 w- ?, ]7 H! n" Y0 X# m
2. 对P_Creation2设置traffic limit应该是无效的,因为P_Creation2里只有一个L_null,产生的
/ F/ n& ? f. ^2 q# f \& {: k& \( |# Y新load并不进入P_Creation2。+ z7 d. j3 ?, q0 Q% a) R; k4 y
5 n$ r" {2 Z; s) L$ x( v2 R; ^2 P
B:解决你的问题
, [$ M3 d' J# \* I 1. 如果你想让P_In2一直是满的,首先要设置P_In2的traffic limit,然后,代码如下:: i* ?3 ~# V$ A' m" `
-------------------------------------------------------------------------
8 H$ ^0 p8 l* F' {$ p3 ~5 [: rbegin model initialization function
9 x( K3 n7 Z# N( i! d( G0 j create 1 load of L_C2 to P_In2
3 s+ P8 S) J2 v, h1 f8 O return true" f5 `% f, C! O8 @) k
end2 b# b/ C! f! H" `/ p' c- K$ J: t# m
3 b/ D; g6 e0 G0 K+ sbegin P_In2 arriving procedure5 F- x1 O) }7 `( r5 n2 G
clone 1 load of L_C2 to P_In24 @! _' z2 P8 `* Y
move into Q_F2# F- e1 i2 x- I+ V0 ^
... ...
. a0 P1 V0 I0 j% n4 t: p8 q' w. g-------------------------------------------------------------------------6 b' G8 j g* g# o# g
如果想让Q_F2满着,就把clone动作拿到第二句。
% O, c5 M+ x' g6 g, i |1 k. s# |, b/ n% {, o* c: O, b% X: w! o; `
2. 其实你想要的应该不是以上那种吧,而是依然以固定时间间隔投放Load,只是遇到没
1 ` v: @; L V) k2 E空间了就暂停下来。这又分两种情况(以下只看P_Creation2):/ s. `0 y7 e; x! s0 u5 M
2.1 每1秒钟检查是否有空间,有就投放(到P_In2或die);不管是否投放了,都再等下1秒钟,如此循环。
9 H4 t# F+ i' E4 l9 C---------------------------------------------------------------------------$ b9 _9 B w9 s+ N
begin P_Creation2 arriving procedure
6 P4 }" i1 e( t5 M5 f4 \ while 1 = 1 do begin
& B$ G7 w- m/ t8 `5 V7 |0 u wait for 1 sec
: O+ @+ u" m; H if P_In2 current = P_In2 capacity begin
* w: Q; N5 X/ Q0 s create 1 load of load type L_C2 to oneof(2 _In2,8:die)8 q2 @# d6 U' R; ^. a' ?
end7 C) I0 n5 D% M; P: z& U, U) l
end7 t, X, r2 P$ o O3 c
end
' y4 ?) V" z8 h' z: K8 b7 l2 n& v1 V---------------------------------------------------------------------------1 O: g& h: ~; k; ?
2.2 每1秒钟检查是否有空间,有就投放;没有的话就等到有,再投放;每次投放Load后开始计时1秒钟,如此循环。: p. ^5 T" L J! x/ H# r' a
---------------------------------------------------------------------------
) _( I+ n6 M$ T+ A8 F6 Tbegin P_Creation2 arriving procedure
: l- q1 k. n- T, k' G while 1 = 1 do begin2 i; K, \$ m" ]3 A1 w
wait for 1 sec5 P9 X0 [" [5 r4 q/ y8 l
wait until P_In2 current = P_In2 capacity
( X2 ^3 M/ B. E& H: `1 D create 1 load of load type L_C2 to oneof(2 _In2,8:die)/ F R5 O" }% c+ o! D0 _
end: I' Y# |) `) j. }) ?& s- u- V$ o
end
! j0 g' [5 W8 H* Z g---------------------------------------------------------------------------
2 j/ z( | X9 i0 x: {+ g 以上是以P_In2为限制。要以Q_F2为限制,直接把P_In2改成Q_F2就可以了,current和capacity属性对于Process和Queue都有效。3 @9 b+ p; u' b9 R, I
: h0 x' q# x0 P
3. 如果要一次产生某个数量的Load把P_In2填满,等到空了再进入,方法也蛮简单,我就不写出来了。 |