A:一些概念0 o- v+ x' H' ]& N- `, y6 b g
1. Space大概是个假想的队列吧,因为模型没有哪个非运行时的文件里出现过Space的描述。
) P5 ^7 [ F! d ~8 f7 e 2. 对P_Creation2设置traffic limit应该是无效的,因为P_Creation2里只有一个L_null,产生的 k0 x/ Q$ l5 }6 v" Y! Z6 N; o. H0 L1 s
新load并不进入P_Creation2。# L3 H% w8 ^5 M: R8 U: e9 E: i) T
8 c, N, S' w% g
B:解决你的问题5 O$ |3 O! F' Z4 u- {
1. 如果你想让P_In2一直是满的,首先要设置P_In2的traffic limit,然后,代码如下:
. w* Y+ H9 I* v2 e2 q/ j# E-------------------------------------------------------------------------
+ j4 B$ t: v/ l" k) ?% ?4 Ybegin model initialization function
7 y8 W K8 q/ @3 u. m0 I* T create 1 load of L_C2 to P_In2
' T* M6 h% V; S) u% u- L return true
3 R. D/ q, i* K" S) tend
+ {& y1 l) d( @ l; M! O8 N) o) W' S/ @: Z/ q5 U6 {
begin P_In2 arriving procedure
* u, a$ V0 k$ r clone 1 load of L_C2 to P_In2
; f" V! _0 J3 e) `6 K" a, B7 A' K move into Q_F2
! c9 B" ~0 b& Y: G... ...$ U5 X$ m* L5 }9 U0 \8 M( T( o
-------------------------------------------------------------------------/ s4 _. g$ `# q0 f
如果想让Q_F2满着,就把clone动作拿到第二句。
5 u1 ?5 B) v) q' `, h/ x3 K- a% F
2. 其实你想要的应该不是以上那种吧,而是依然以固定时间间隔投放Load,只是遇到没" O( y4 m Z N# H6 D& v
空间了就暂停下来。这又分两种情况(以下只看P_Creation2):' M8 I: B1 A* m( B- Y
2.1 每1秒钟检查是否有空间,有就投放(到P_In2或die);不管是否投放了,都再等下1秒钟,如此循环。
5 ?- O% l- b" ~% L---------------------------------------------------------------------------2 G5 |: ]- G0 w0 u' }4 j
begin P_Creation2 arriving procedure5 \4 |) p. T n% J# T- y- m+ ~ A
while 1 = 1 do begin: }, m( K- n* H3 {, X8 C! K4 m
wait for 1 sec @0 t' ] A$ W) `3 l" j
if P_In2 current = P_In2 capacity begin
- |/ h- \* p6 o( v+ `* \ v create 1 load of load type L_C2 to oneof(2 _In2,8:die)
/ r( @# o9 J7 ?* @* F end
% n1 C2 f' g. |5 Y end
( d8 A3 p( K/ _$ A: s+ M0 Dend X, w0 w3 i/ ]$ O
---------------------------------------------------------------------------
5 F# Q" q; ]9 r5 @ 2.2 每1秒钟检查是否有空间,有就投放;没有的话就等到有,再投放;每次投放Load后开始计时1秒钟,如此循环。0 u- Q) D; p) m0 E& Q) C+ v
--------------------------------------------------------------------------- Q7 W$ y8 }$ ^- z3 M7 h! S
begin P_Creation2 arriving procedure
- j# L$ k. G+ l$ A7 w) } while 1 = 1 do begin$ L0 i; Q' n! T! ]0 L1 L
wait for 1 sec0 |; f5 x7 j# `- z) l1 E
wait until P_In2 current = P_In2 capacity
6 z! B' s; m$ @: G7 W create 1 load of load type L_C2 to oneof(2 _In2,8:die), q- X& F9 E8 }! P
end% V0 R U/ S, m
end1 [& j( Z' u% y g
---------------------------------------------------------------------------
' R" V3 g; U1 P- B 以上是以P_In2为限制。要以Q_F2为限制,直接把P_In2改成Q_F2就可以了,current和capacity属性对于Process和Queue都有效。
! s1 V. c. l% Z$ s; T2 M; s( `, b9 D- l* d3 A9 {' F3 t2 |- O
3. 如果要一次产生某个数量的Load把P_In2填满,等到空了再进入,方法也蛮简单,我就不写出来了。 |