A:一些概念+ u8 V7 J$ O/ m( R7 s9 G5 Z1 I# d. T9 V
1. Space大概是个假想的队列吧,因为模型没有哪个非运行时的文件里出现过Space的描述。
4 Q$ r6 H) S/ @; C; L 2. 对P_Creation2设置traffic limit应该是无效的,因为P_Creation2里只有一个L_null,产生的
, [, {6 M, p( ], Z$ _新load并不进入P_Creation2。
# E5 B. y, U! ?9 a, c P# \ ~' G9 H* J8 k4 h9 M3 y, K- ~
B:解决你的问题) ]8 C. s Y+ u! m N @" Y; {* c& [
1. 如果你想让P_In2一直是满的,首先要设置P_In2的traffic limit,然后,代码如下:
' u6 Q/ O3 A, F J-------------------------------------------------------------------------
8 w' K j$ W7 w5 E( lbegin model initialization function
7 V6 u1 a5 j$ b create 1 load of L_C2 to P_In2
/ l8 `, @3 p- H) f return true; r9 ]. C9 P6 Q* z
end; v( J+ ~3 d9 d7 G1 F, g4 c
4 I4 t* q2 r& |- m8 A. v
begin P_In2 arriving procedure2 [) {5 j& I& P/ z' p
clone 1 load of L_C2 to P_In2. A. i9 a2 w% {% G
move into Q_F2
5 W$ X% |- j- a. T) V5 {8 m6 e... ...5 E; C& \3 f, u' ~
-------------------------------------------------------------------------
' g* a+ m* e, g3 z) v 如果想让Q_F2满着,就把clone动作拿到第二句。& W* `& u1 N# q" ?& g
6 d' C @8 V, w
2. 其实你想要的应该不是以上那种吧,而是依然以固定时间间隔投放Load,只是遇到没
) Z1 _; e* G) T% t, D: r空间了就暂停下来。这又分两种情况(以下只看P_Creation2):+ D: A' {% B; c, z% {3 D% M" [( T
2.1 每1秒钟检查是否有空间,有就投放(到P_In2或die);不管是否投放了,都再等下1秒钟,如此循环。
8 }3 v8 F$ R/ @5 A" N- O- v* A---------------------------------------------------------------------------
. m9 i# q0 P- Nbegin P_Creation2 arriving procedure
$ b; H1 Z, X( z& D$ u while 1 = 1 do begin
3 l/ v0 r2 I" J3 {) I wait for 1 sec
7 m; l( q4 c+ n- ^6 O8 T# z( J if P_In2 current = P_In2 capacity begin
2 N- n5 R6 p) O8 f. Q2 @6 f create 1 load of load type L_C2 to oneof(2 _In2,8:die)
* e$ X% U& y8 [6 |! P7 E$ l+ y end
5 |" c* g2 M" y, d4 p% q, N8 w end0 t* t1 K4 k$ L+ `+ D& w: h
end5 ~, `& G, m0 Q: G
---------------------------------------------------------------------------
9 ?! ^) R2 m1 o) p8 `" _! H 2.2 每1秒钟检查是否有空间,有就投放;没有的话就等到有,再投放;每次投放Load后开始计时1秒钟,如此循环。7 n7 n' } F/ L( F/ X
---------------------------------------------------------------------------
: e# W; `3 t5 Sbegin P_Creation2 arriving procedure
& K4 B2 ^, l: K. @, ]8 o! h while 1 = 1 do begin, B' w: a& X( l
wait for 1 sec' @2 t) S! c# B- F. J3 k8 M
wait until P_In2 current = P_In2 capacity
" }2 w9 s: V$ W8 [5 w. q create 1 load of load type L_C2 to oneof(2 _In2,8:die)
) P" p. v/ Q' d$ G; o2 S end. Z9 Z' O8 Z! c
end
) K% Q1 G# Z* {4 s3 E---------------------------------------------------------------------------
, I. i0 _& b! L+ D3 h- H2 V 以上是以P_In2为限制。要以Q_F2为限制,直接把P_In2改成Q_F2就可以了,current和capacity属性对于Process和Queue都有效。5 x. q9 p* d. ?4 ? A3 Z4 s/ h- ~
- ?" u" U1 M$ J3 ^5 _7 F
3. 如果要一次产生某个数量的Load把P_In2填满,等到空了再进入,方法也蛮简单,我就不写出来了。 |