A:一些概念4 u1 t! A+ s$ q0 { _/ a0 o6 W
1. Space大概是个假想的队列吧,因为模型没有哪个非运行时的文件里出现过Space的描述。6 _, j! O+ R& @4 R ~9 P
2. 对P_Creation2设置traffic limit应该是无效的,因为P_Creation2里只有一个L_null,产生的/ G& P! L' [, U z) ~
新load并不进入P_Creation2。
& U$ v) f6 M7 ^& ~
1 S; T+ l; c1 a2 c" yB:解决你的问题. Y _! p( X" @7 u/ g0 b
1. 如果你想让P_In2一直是满的,首先要设置P_In2的traffic limit,然后,代码如下:& z4 @& Y. M7 o1 C. i
-------------------------------------------------------------------------
: n$ @% ~) U2 h& n0 P' Hbegin model initialization function
3 T b: S" p8 }7 \/ ]( n+ J8 g create 1 load of L_C2 to P_In2
4 j8 D& e) y% S return true
" @6 z$ G( ^! [end
1 T2 ?: C& Y. D
. i& _$ E8 k, x5 o" ]( K3 J, Wbegin P_In2 arriving procedure
, f! [9 `! {0 \$ y7 G Q clone 1 load of L_C2 to P_In2 M+ q# h- w" }/ r s! z
move into Q_F2
$ j+ n8 Y7 x1 _& i9 P3 E$ d... ...$ g" ~( y% a- w$ _ \ c! `
-------------------------------------------------------------------------; W0 {9 E2 @0 j k$ r1 S' S& |
如果想让Q_F2满着,就把clone动作拿到第二句。
* a7 n- A& y1 f1 x8 @
- r6 T8 W* g% J) ] [' ` 2. 其实你想要的应该不是以上那种吧,而是依然以固定时间间隔投放Load,只是遇到没: U, u. T& j/ {: A* Y
空间了就暂停下来。这又分两种情况(以下只看P_Creation2):; Y" `4 u$ H {( G; [6 ]
2.1 每1秒钟检查是否有空间,有就投放(到P_In2或die);不管是否投放了,都再等下1秒钟,如此循环。
Q5 i# [4 L g---------------------------------------------------------------------------
4 {. X5 |1 w0 M2 o% v! bbegin P_Creation2 arriving procedure4 {5 R$ |. t5 K% N% _4 j
while 1 = 1 do begin
7 K( W3 i& Y, {& ] wait for 1 sec8 w- d1 h" G0 v3 R% x6 Y
if P_In2 current = P_In2 capacity begin
T/ Q( w, V; ? create 1 load of load type L_C2 to oneof(2 _In2,8:die)
7 d1 @7 b1 j4 c# r end
- Q! g: M) S. r0 \& }& _9 d end
: a7 N' |2 h7 yend
% P7 M- v/ p/ P9 L0 B7 Z, b---------------------------------------------------------------------------
+ L1 G7 |# s6 H+ @$ s$ j" P 2.2 每1秒钟检查是否有空间,有就投放;没有的话就等到有,再投放;每次投放Load后开始计时1秒钟,如此循环。
7 w5 q7 r; r! c8 S---------------------------------------------------------------------------# q9 I7 Q# M+ L
begin P_Creation2 arriving procedure
# E/ [( K" M4 N2 `& C6 v: v, ? while 1 = 1 do begin8 q7 _! ^$ K. v, W
wait for 1 sec2 F9 W- V7 B1 L# |
wait until P_In2 current = P_In2 capacity7 L' f$ f2 I c% j. Y
create 1 load of load type L_C2 to oneof(2 _In2,8:die)# ~( Q5 a4 q5 M( q K
end6 |2 i' V% {% D+ ]7 z% s
end/ G! M7 P9 t- l A$ S7 b0 J1 S1 y ^
---------------------------------------------------------------------------
9 e, A: r q, L f) W# s 以上是以P_In2为限制。要以Q_F2为限制,直接把P_In2改成Q_F2就可以了,current和capacity属性对于Process和Queue都有效。
. B; C! q$ o J+ g. H
G9 X! k! o6 C) }" f) ~6 S* @ 3. 如果要一次产生某个数量的Load把P_In2填满,等到空了再进入,方法也蛮简单,我就不写出来了。 |