A:一些概念5 L7 P# w0 G+ P( e; M) c. l
1. Space大概是个假想的队列吧,因为模型没有哪个非运行时的文件里出现过Space的描述。
: C2 ^8 ?) F+ O. n" c X& z 2. 对P_Creation2设置traffic limit应该是无效的,因为P_Creation2里只有一个L_null,产生的
: ]! z4 f* l7 X @2 Q新load并不进入P_Creation2。
( z4 t" @+ F8 g5 B% w j7 l) f+ ^0 b1 {, |: u9 k
B:解决你的问题/ K+ J0 a9 R+ U8 I8 _* V
1. 如果你想让P_In2一直是满的,首先要设置P_In2的traffic limit,然后,代码如下:
+ U$ v8 i- e. _$ ~+ _1 b8 i-------------------------------------------------------------------------
! B. X: V7 D! o, ^: i2 d4 N3 bbegin model initialization function
* n/ {0 D3 ~/ X1 H( E! z create 1 load of L_C2 to P_In2/ J) w" v7 u* v
return true
0 @$ ^$ V Q1 e- O7 f' fend
% l3 f0 ?2 C3 f t$ |9 o. v' \7 x) @
begin P_In2 arriving procedure
5 h6 P) d @- b clone 1 load of L_C2 to P_In2
, O* E. K: S1 e* {- u% [ move into Q_F2
7 m0 U( c& N7 z9 v... ...' m& i; ^ M) C4 \" T
-------------------------------------------------------------------------
5 ]/ |! s. j5 _2 K& ]4 N; ? 如果想让Q_F2满着,就把clone动作拿到第二句。& y6 W& E0 K3 [
& a* o% }( }, z8 \
2. 其实你想要的应该不是以上那种吧,而是依然以固定时间间隔投放Load,只是遇到没
8 H* _' e/ D7 G4 a8 ~& p6 l空间了就暂停下来。这又分两种情况(以下只看P_Creation2):9 _/ K% Z1 D! M1 d, }
2.1 每1秒钟检查是否有空间,有就投放(到P_In2或die);不管是否投放了,都再等下1秒钟,如此循环。
& X/ B1 p1 R, o+ s---------------------------------------------------------------------------
1 Z7 E+ I" y8 g+ S1 abegin P_Creation2 arriving procedure/ f! W" j( e# k/ Y- {( s
while 1 = 1 do begin
9 [9 i/ J3 v; N, V wait for 1 sec
6 q8 ~- {! l, f! S: T, ^8 p& v- | if P_In2 current = P_In2 capacity begin
1 f" ?: a. X2 [; k! v/ J4 }) H. D create 1 load of load type L_C2 to oneof(2 _In2,8:die)
& f8 k) ~$ e: t$ F: v: J' k end
. L+ y" u+ ?1 | end
# C, o: B; h# [7 `% q, |end
# q1 S u. f t M& h, L' c9 ~: H* @4 r---------------------------------------------------------------------------/ K: c2 ` @* @4 Z; x1 F o5 l
2.2 每1秒钟检查是否有空间,有就投放;没有的话就等到有,再投放;每次投放Load后开始计时1秒钟,如此循环。
8 @( O3 m' e' X---------------------------------------------------------------------------( Q0 ]" Q) q! D+ O6 W3 c/ L& y
begin P_Creation2 arriving procedure$ a8 W, R' X9 w) A. r: v( {) D
while 1 = 1 do begin/ }# [: M- r9 N* L0 s1 C8 G
wait for 1 sec+ \: y( b5 |9 r% I; x7 w
wait until P_In2 current = P_In2 capacity
$ F0 `# Y% }- P create 1 load of load type L_C2 to oneof(2 _In2,8:die)7 D1 S5 e8 M, s2 t' K3 K9 ?
end; z3 Z# p! p9 u7 R
end Z3 ]6 Y, R6 o# T1 m+ g7 m. r$ [2 B
---------------------------------------------------------------------------9 a5 N9 t [5 |% v9 T
以上是以P_In2为限制。要以Q_F2为限制,直接把P_In2改成Q_F2就可以了,current和capacity属性对于Process和Queue都有效。2 C3 z0 N- R, `7 p1 l: p
3 W. H9 g1 r- O( e9 |9 w& c# d 3. 如果要一次产生某个数量的Load把P_In2填满,等到空了再进入,方法也蛮简单,我就不写出来了。 |