A:一些概念$ c. n' |, y: } F8 \+ F! p# M
1. Space大概是个假想的队列吧,因为模型没有哪个非运行时的文件里出现过Space的描述。
7 S: k) E7 f' D, E+ _/ J4 E 2. 对P_Creation2设置traffic limit应该是无效的,因为P_Creation2里只有一个L_null,产生的
1 ^3 l- t f0 v+ G# q新load并不进入P_Creation2。5 Y& l; k( S. @
: ^6 y8 w3 r( L/ G7 W+ ?4 }- d
B:解决你的问题" ~4 H# r1 L" H3 z5 E
1. 如果你想让P_In2一直是满的,首先要设置P_In2的traffic limit,然后,代码如下:4 R) _. v& Y$ D
-------------------------------------------------------------------------
! l+ U( e* ` h: H0 M6 t5 Cbegin model initialization function# x7 g" Y, K1 P- L, O9 ]" M
create 1 load of L_C2 to P_In2
# c( t$ W5 W S& E X return true# F, {$ ? e* k* O3 Q9 Q; b# [3 m8 L+ O( ^1 m
end5 C# E8 ~9 p+ f4 l, S" e9 R
* N$ g- S! E8 j
begin P_In2 arriving procedure
* R2 W2 a# Y. \. ` clone 1 load of L_C2 to P_In2
4 A7 H7 z! ^, V- a# F6 i move into Q_F2
! G/ w8 j; C( C* o' ^" Y8 ^... ...
, ^, x: X8 ]! Q8 x3 A-------------------------------------------------------------------------; a) h4 z( I+ F( |$ G
如果想让Q_F2满着,就把clone动作拿到第二句。) @7 U9 V" o, x8 Q) q: u& S
: R1 c1 x2 A/ x2 h$ @( {
2. 其实你想要的应该不是以上那种吧,而是依然以固定时间间隔投放Load,只是遇到没
& K a) S& s! J" }空间了就暂停下来。这又分两种情况(以下只看P_Creation2):
" p+ }2 u" O- h 2.1 每1秒钟检查是否有空间,有就投放(到P_In2或die);不管是否投放了,都再等下1秒钟,如此循环。; I, o/ h, i$ ?! O7 p3 N
---------------------------------------------------------------------------0 P+ B |" t5 P2 I$ F' w, {" Y
begin P_Creation2 arriving procedure
; D7 d# c" ~- T ? while 1 = 1 do begin
P( F5 T% ]8 ~& E" I* {1 u wait for 1 sec
/ v4 M3 C0 I- D, f if P_In2 current = P_In2 capacity begin
7 Y& o% D4 R6 S# E1 E create 1 load of load type L_C2 to oneof(2 _In2,8:die)
# C* o4 v9 T) `: v9 X/ Z end
4 \! V6 e% z* v, _ end
6 u' Y$ |/ M U4 Q1 v4 Iend
9 ^# u. n) U" m& _# ~( N6 A* y---------------------------------------------------------------------------' }9 J6 o1 ], d! \1 Z5 ]' } K
2.2 每1秒钟检查是否有空间,有就投放;没有的话就等到有,再投放;每次投放Load后开始计时1秒钟,如此循环。
0 r7 t# |$ m1 u3 F' ^* x: _6 Z---------------------------------------------------------------------------0 S9 R2 p2 y* Z! ^ z& z) K
begin P_Creation2 arriving procedure, T0 e; H2 i% a
while 1 = 1 do begin
0 f2 s8 O" i4 ^. o: W( p wait for 1 sec
" L8 x g( R" g& m8 c: G wait until P_In2 current = P_In2 capacity* Y* z/ z: M' }, e1 z) o
create 1 load of load type L_C2 to oneof(2 _In2,8:die)
* j; r, _6 \- i& R7 N% B end, E0 i9 A: A7 Y& v
end' Q2 s$ [% K0 n" `$ B/ [+ b _* B W6 \ _
---------------------------------------------------------------------------
& j* | `" c. m, {1 `9 g# U8 r+ o 以上是以P_In2为限制。要以Q_F2为限制,直接把P_In2改成Q_F2就可以了,current和capacity属性对于Process和Queue都有效。
L; F5 u; F* G4 t8 z O: w5 i# E) ^4 G1 f+ l w; V; c* a
3. 如果要一次产生某个数量的Load把P_In2填满,等到空了再进入,方法也蛮简单,我就不写出来了。 |