A:一些概念6 @& q) |$ b6 x! A" ]& S
1. Space大概是个假想的队列吧,因为模型没有哪个非运行时的文件里出现过Space的描述。
$ _4 r4 I/ L4 H: d1 h* p( f 2. 对P_Creation2设置traffic limit应该是无效的,因为P_Creation2里只有一个L_null,产生的
, j2 a( l. }; S3 v新load并不进入P_Creation2。3 @8 A4 a4 e% u* x4 x {& Z
; ]5 m# o. ~ {
B:解决你的问题
, {- J0 J9 a+ b% v! N: S/ p 1. 如果你想让P_In2一直是满的,首先要设置P_In2的traffic limit,然后,代码如下:( D0 f5 V O, A I' U6 k
-------------------------------------------------------------------------
# m: p7 K& D, c( j5 Vbegin model initialization function% p# g; r: ^! j D; r
create 1 load of L_C2 to P_In2
6 B- _0 r, ]% w- y7 t5 p! V. G/ F return true
0 ^, S H* \5 c+ x: c* K8 cend; r- N M8 E B B2 |/ k
- f! `7 s' Y) d ^) s! @4 a
begin P_In2 arriving procedure( M4 `4 o7 X$ @, P
clone 1 load of L_C2 to P_In2 |8 C" q3 w# c; \
move into Q_F2
/ T! J8 L5 e2 q8 A/ M2 R+ s... ...( j0 h3 d' F9 p% ^8 n+ W# s
-------------------------------------------------------------------------- K3 g3 `, C0 }
如果想让Q_F2满着,就把clone动作拿到第二句。
9 t0 {" w7 z( z8 m1 N/ W1 ~: @$ x) `( ]
2. 其实你想要的应该不是以上那种吧,而是依然以固定时间间隔投放Load,只是遇到没
& \ `. K s! N1 t1 R空间了就暂停下来。这又分两种情况(以下只看P_Creation2):. |+ w- D* M- ]2 m# A: Z
2.1 每1秒钟检查是否有空间,有就投放(到P_In2或die);不管是否投放了,都再等下1秒钟,如此循环。- Y6 d2 c0 Z5 S1 i9 ?% J& z! S
---------------------------------------------------------------------------
6 P8 b6 C; E) U$ h5 F4 F2 jbegin P_Creation2 arriving procedure$ Y- u" i6 L: G! ]' ], z4 R6 K
while 1 = 1 do begin1 K/ K# [$ N) m4 i: ?" l2 E
wait for 1 sec
5 X( P) M7 b. { if P_In2 current = P_In2 capacity begin0 Y" E# n% M4 w8 t
create 1 load of load type L_C2 to oneof(2 _In2,8:die)
! p, U. o1 w4 C end
" i: m4 q& v7 N- u! h end
) d: |8 R K+ \' n% Iend4 ]0 `- w2 r; c% w
--------------------------------------------------------------------------- Y0 g- X& H [1 H8 g
2.2 每1秒钟检查是否有空间,有就投放;没有的话就等到有,再投放;每次投放Load后开始计时1秒钟,如此循环。+ c) w* X2 D& N6 A
---------------------------------------------------------------------------
0 g0 p% u6 x0 f# Obegin P_Creation2 arriving procedure& I% r Q) F; z4 z: c% m
while 1 = 1 do begin7 m7 o% G* i% k1 ?) W5 K
wait for 1 sec$ Y* y* B% O2 u+ z' \
wait until P_In2 current = P_In2 capacity# Q+ y7 @+ H' v, s; u; C
create 1 load of load type L_C2 to oneof(2 _In2,8:die): R5 x6 `; }+ K3 w. Q
end9 y% {/ ^/ b. [) I! N
end
9 q7 L4 M1 D/ E2 O- \8 G: m& q% q& N% c---------------------------------------------------------------------------9 h- P8 u/ q7 a. Z4 Q
以上是以P_In2为限制。要以Q_F2为限制,直接把P_In2改成Q_F2就可以了,current和capacity属性对于Process和Queue都有效。
* p& Y; G/ {' v/ w+ _( A2 x+ S* `8 s. z
3. 如果要一次产生某个数量的Load把P_In2填满,等到空了再进入,方法也蛮简单,我就不写出来了。 |