A:一些概念9 X' S/ Y- d4 o$ ]$ {
1. Space大概是个假想的队列吧,因为模型没有哪个非运行时的文件里出现过Space的描述。
' F: q: E, F- P# \" m0 m 2. 对P_Creation2设置traffic limit应该是无效的,因为P_Creation2里只有一个L_null,产生的0 M& J( Q$ J4 t( L; R% {
新load并不进入P_Creation2。) H5 t/ G! G7 i k' F* _
4 x7 r- @+ S* H# O6 ~
B:解决你的问题) d4 _/ f! x3 }4 M
1. 如果你想让P_In2一直是满的,首先要设置P_In2的traffic limit,然后,代码如下:
; R/ z; a u1 }: [4 @) J; O-------------------------------------------------------------------------( Z# x. f" P# {9 h5 G
begin model initialization function
0 J. Q6 | \+ _ create 1 load of L_C2 to P_In2
, Z1 w0 l( D9 K return true
' z. o2 Y4 S8 U' V; e( Nend
# X$ [1 ~4 A: k( ^# x0 Z1 k+ s
5 s* C3 C! ^& I7 Bbegin P_In2 arriving procedure
8 w+ L5 ~1 ~# {* a* |: h clone 1 load of L_C2 to P_In2* M( h; G/ h6 O3 R1 {( z
move into Q_F2" E) z- R' j6 o1 x& U
... ...
# `" A. L( @/ c3 _& ^. ]-------------------------------------------------------------------------+ S) _3 f$ D6 E. g) ?" f; t" W
如果想让Q_F2满着,就把clone动作拿到第二句。
5 e1 _$ b, T1 y# W9 D @& a! |
$ f% Z* f+ T2 {7 { 2. 其实你想要的应该不是以上那种吧,而是依然以固定时间间隔投放Load,只是遇到没
4 H8 F3 V, i1 o' s# _ `/ e( g; ^空间了就暂停下来。这又分两种情况(以下只看P_Creation2):
& U' ~, N2 D0 v) W0 R" H. B 2.1 每1秒钟检查是否有空间,有就投放(到P_In2或die);不管是否投放了,都再等下1秒钟,如此循环。) T% K' v+ l9 ^# {; v
---------------------------------------------------------------------------
# h5 R' r2 u4 S3 jbegin P_Creation2 arriving procedure
3 ]/ L3 f7 X8 }9 I while 1 = 1 do begin) T3 J3 F4 Z' p8 `6 u( f' v
wait for 1 sec) `% u7 u; X# e, q
if P_In2 current = P_In2 capacity begin
8 b* p* O! ]: R w% ~ create 1 load of load type L_C2 to oneof(2 _In2,8:die). u& B1 v( T, _: b h
end
7 i" U; c# F0 U, Z7 o end# z: m& l2 g! K" y
end
& A; o" @& |: n* E6 E+ X---------------------------------------------------------------------------- I6 C- P# {9 a! N' ~$ U- F
2.2 每1秒钟检查是否有空间,有就投放;没有的话就等到有,再投放;每次投放Load后开始计时1秒钟,如此循环。
. ~5 h: f( H! D2 m/ @8 B+ W8 n+ z---------------------------------------------------------------------------
- D2 j0 ^& t) p9 x2 bbegin P_Creation2 arriving procedure
( V: j! g& y8 I0 ^) _. X8 @' ] while 1 = 1 do begin
! P/ S6 u1 K4 _/ M wait for 1 sec
! }5 ^8 y7 v" R, _ wait until P_In2 current = P_In2 capacity9 n, m6 o8 W3 v/ x" _6 l
create 1 load of load type L_C2 to oneof(2 _In2,8:die)8 V- x% N/ l) p- ~ x' n/ ~* ?
end; Q9 m/ f X3 D) L( v% n, R
end
6 l$ g8 i2 p, h- J---------------------------------------------------------------------------3 n2 \: g; G0 g) h% w
以上是以P_In2为限制。要以Q_F2为限制,直接把P_In2改成Q_F2就可以了,current和capacity属性对于Process和Queue都有效。
& ^' U0 o6 d( C! x! _+ N3 k8 S6 ]: ? t( d! {! N8 |' S6 u
3. 如果要一次产生某个数量的Load把P_In2填满,等到空了再进入,方法也蛮简单,我就不写出来了。 |