Professional Documents
Culture Documents
Queueing
Queueing
Moreno Marzolla
Copyright c 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2016, 2018, 2020 Moreno Marzolla
([email protected]).
This is the first edition of the Queueing package documentation, and is consistent with
version 1.2.7 of the package.
Permission is granted to make and distribute verbatim copies of this manual provided the
copyright notice and this permission notice are preserved on all copies.
Permission is granted to copy and distribute modified versions of this manual under the con-
ditions for verbatim copying, provided that the entire resulting derived work is distributed
under the terms of a permission notice identical to this one.
Permission is granted to copy and distribute translations of this manual into another lan-
guage, under the same conditions as for modified versions.
Portions of this document have been adapted from the octave manual, Copyright c John
W. Eaton.
i
Table of Contents
1 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1 About the Queueing Package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Contributing Guidelines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.3 Acknowledgments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
3 Markov Chains . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.1 Discrete-Time Markov Chains . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.1.1 State occupancy probabilities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.1.2 Birth-death process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.1.3 Expected Number of Visits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.1.4 Time-averaged expected sojourn times . . . . . . . . . . . . . . . . . . . . 15
3.1.5 Mean Time to Absorption . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.1.6 First Passage Times . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.2 Continuous-Time Markov Chains . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.2.1 State occupancy probabilities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.2.2 Birth-Death Process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.2.3 Expected Sojourn Times . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.2.4 Time-Averaged Expected Sojourn Times . . . . . . . . . . . . . . . . . . 22
3.2.5 Mean Time to Absorption . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.2.6 First Passage Times . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
5 Queueing Networks . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
5.1 Introduction to QNs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
5.2 Single Class Models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
5.2.1 Open Networks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
5.2.2 Closed Networks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
5.2.3 Non Product-Form QNs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
5.3 Multiple Class Models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
5.3.1 Open Networks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
5.3.2 Closed Networks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
5.3.3 Mixed Networks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
5.4 Generic Algorithms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
5.5 Bounds Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
5.6 QN Analysis Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
5.6.1 Closed, Single Class Network . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
5.6.2 Open, Single Class Network . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
5.6.3 Closed Multiclass Network/1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
5.6.4 Closed Multiclass Network/2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
5.6.5 Closed Multiclass Network/3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
6 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
Concept Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
Function Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
1
1 Summary
1.3 Acknowledgments
The following people (listed alphabetically) contributed to the queueing package, either
by providing feedback, reporting bugs or contributing code: Philip Carinhas, Phil Col-
bourn, Diego Didona, Yves Durand, Marco Guazzone, Dmitry Kolesnikov, Michele Maz-
zucco, Marco Paolieri.
5
m-files, and then produce the documentation in PDF and HTML format
(doc/queueing.pdf and doc/queueing.html, respectively).
check Running ‘make check’ will execute all tests contained in the m-files. If you
modify the code of any function in the inst/ directory, you should run the
tests to ensure that no errors have been introduced. You are also encouraged to
contribute new tests, especially for functions that are not adequately validated.
clean
distclean
dist The ‘make clean’, ‘make distclean’ and ‘make dist’ commands are used to
clean up the source directory and prepare the distribution archive in compressed
tar format.
indicates that the function supports mixed networks with both open and closed customer
classes.
-os- Open, single-class network: open network with a single class of customers
-om- Open, multiclass network: open network with multiple job classes
The last part of the function name indicates the algorithm implemented by the function.
See Chapter 5 [Queueing Networks], page 35.
-pb PB Bounds
Some deprecated functions may be present in the queueing package; generally, these
are functions that have been renamed, and the old name is kept for a while for backward
compatibility. Deprecated functions are not documented and will be removed in future
releases. Calling a deprecated functions displays a warning message that appears only once
per session. The warning message can be turned off with the command:
octave:1> warning ("off", "qn:deprecated-function");
However, you are strongly recommended to update your code to the new API. To help
catching usages of deprecated functions, you can transform warnings into errors so that
your application stops immediately:
octave:1> warning ("error", "qn:deprecated-function");
Chapter 2: Installation and Getting Started 9
shows the documentation for the qncsmvablo function. Additional information can be
found in the queueing manual, that is available in PDF format in doc/queueing.pdf and
in HTML format in doc/queueing.html.
Many functions have demo blocks showing usage examples. To execute the demos for
the qnclosed function, use the demo command:
We now illustrate a few examples of how the queueing package can be used. More
examples are provided in the manual.
−0.8 0.6 9, 2
n = 3;
p0 = [1 0 0];
P = dtmcbd( [0.3 0.5], [0.5 0.7] );
p = dtmc(P,n,p0)
⇒ p = 0.55300 0.29700 0.15000
Example 3 Compute server utilization, response time, mean number of requests and
throughput of a closed queueing network with N = 4 requests and three M/M/1–FCFS
queues with mean service times S = [1.0, 0.8, 1.4] and average number of visits
V = [1.0, 0.8, 0.8]
10 queueing
3 Markov Chains
Property 1 requires that all probabilities are nonnegative; property 2 requires that the
outgoing transition probabilities from any state i sum to one.
[r err] = dtmcchkP (P) [Function File]
Check whether P is a valid transition probability matrix.
If P is valid, r is the size (number of rows or columns) of P. If P is not a transition
probability matrix, r is set to zero, and err to an appropriate error string.
A DTMC is irreducible if every state can be reached with non-zero probability starting
from every other state.
[r s] = dtmcisir (P) [Function File]
Check if P is irreducible, and identify Strongly Connected Components (SCC) in the
transition graph of the DTMC with transition matrix P.
INPUTS
P(i,j) transition probability from state i to state j. P must be an N × N
stochastic matrix.
OUTPUTS
r 1 if P is irreducible, 0 otherwise (scalar)
s(i) strongly connected component (SCC) that state i belongs to (vector of
length N ). SCCs are numbered 1, 2, . . . . The number of SCCs is max(s).
If the graph is strongly connected, then there is a single SCC and the
predicate all(s == 1) evaluates to true
12 queueing
π(n) = π(0)Pn
(
πP = π
π1T = 1
where 1 is the row vector of ones, and (·)T the transpose operator.
OUTPUTS
p(i) If this function is called with a single argument, p(i) is the steady-state
probability that the system is in state i. If this function is called with
three arguments, p(i) is the probability that the system is in state i after
n transitions, given the probabilities p0(i) that the initial state is i.
EXAMPLE
The following example is from [GrSn97], page 79. Let us consider a maze with nine
rooms, as shown in the following figure
+-----+-----+-----+
| | | |
| 1 2 3 |
| | | |
+- -+- -+- -+
| | | |
| 4 5 6 |
| | | |
+- -+- -+- -+
| | | |
| 7 8 9 |
| | | |
+-----+-----+-----+
A mouse is placed in one of the rooms and can wander around. At each step, the mouse
moves from the current room to a neighboring one with equal probability. For example, if
it is in room 1, it can move to room 2 and 4 with probability 1/2, respectively; if the mouse
is in room 8, it can move to either 7, 5 or 9 with probability 1/3.
The transition probabilities Pi,j from room i to room j can be summarized in the fol-
lowing matrix:
0 1/2 0 1/2 0 0 0 0 0
1/3 0 1/3 0 1/3 0 0 0 0
0 1/2 0 0 0 1/2 0 0 0
1/3 0 0 0 1/3 0 1/3 0 0
P= 0 1/4 0 1/4 0 1/4 0 1/4 0
0 0 1/3 0 1/3 0 0 0 1/3
0 0 0 1/2 0 0 0 1/2 0
0 0 0 0 1/3 0 1/3 0 1/3
0 0 0 0 0 1/2 0 1/2 0
The stationary state occupancy probabilities can then be computed with the following
code:
P = zeros(9,9);
P(1,[2 4] ) = 1/2;
P(2,[1 5 3] ) = 1/3;
P(3,[2 6] ) = 1/2;
P(4,[1 5 7] ) = 1/3;
P(5,[2 4 6 8]) = 1/4;
P(6,[3 5 9] ) = 1/3;
P(7,[4 8] ) = 1/2;
P(8,[7 5 9] ) = 1/3;
P(9,[6 8] ) = 1/2;
p = dtmc(P);
disp(p)
14 queueing
(1 − λ1 ) λ1
µ 1 (1 − µ 1 − λ2 ) λ2
µ 2 (1 − µ 2 − λ3 ) λ3
.. .. ..
. . .
µN −2 (1 − µN −2 − λN −1 ) λN −1
µN −1 (1 − µN −1 )
where π(i) = π(0)Pi is the state occupancy probability after i transitions, and π(0) =
[π1 (0), . . . , πN (0)] are the initial state occupancy probabilities.
If P is absorbing, i.e., the stochastic process eventually enters a state with no outgoing
transitions, then we can compute the expected number of visits until absorption L. To do
so, we first rearrange the states by rewriting P as
Q R
P=
0 I
where the first t states are transient and the last r states are absorbing (t + r = N ). The
matrix N = (I−Q)−1 is called the fundamental matrix ; Ni,j is the expected number of times
the process is in the j-th transient state assuming it started in the i-th transient state. If
we reshape N to the size of P (filling missing entries with zeros), we have that, for absorbing
chains, L = π(0)N.
Chapter 3: Markov Chains 15
t = Nc
B = NR
−1
Z = (I − P + W)
Then, we have that
Zj,j − Zi,j
Mi,j =
πj
According to the definition above, Mi,i = 0. We arbitrarily set Mi,i to the mean recur-
rence time ri for state i, that is the average number of transitions needed to return to state
i starting from it. ri is:
1
ri =
πi
M = dtmcfpt (P) [Function File]
Compute mean first passage times and mean recurrence times for an irreducible
discrete-time Markov chain over the state space {1, . . . , N }.
INPUTS
P(i,j) transition probability from state i to state j. P must be an irreducible
stochastic
PN
matrix, which means that the sum of each row must be 1
( j=1 Pij = 1), and the rank of P must be N .
OUTPUTS
M(i,j) For all 1 ≤ i, j ≤ N , i 6= j, M(i,j) is the average number of transitions
before state j is entered for the first time, starting from state i. M(i,i)
is the mean recurrence time of state i, and represents the average time
needed to return to state i.
18 queueing
REFERENCES
• Grinstead, Charles M.; Snell, J. Laurie (July 1997). Introduction to Probability,
Ch. 11: Markov Chains. American Mathematical Society. ISBN 978-0821807491.
See also: ctmcfpt.
Similarly to the DTMC case, a CTMC is irreducible if every state is eventually reachable
from every other state in finite time.
where exp(Qt) is the matrix exponential of Qt. Under certain conditions, there exists a
stationary state occupancy probability π = limt→+∞ π(t) that is independent from π(0). π
is the solution of the following linear system:
(
πQ = 0
π1T = 1
EXAMPLE
Consider a two-state CTMC where all transition rates between states are equal to 1.
The stationary state occupancy probabilities can be computed as follows:
Q = [ -1 1; ...
1 -1 ];
q = ctmc(Q)
⇒ q = 0.50000 0.50000
20 queueing
−λ1 λ1
µ1
−(µ1 + λ2 ) λ2
µ2 −(µ2 + λ3 ) λ3
.. .. ..
. . .
µN −2 −(µN −2 + λN −1 ) λN −1
µN −1 −µN −1
dL(t)
= L(t)Q + π(0), L(0) = 0
dt
Alternatively, L(t) can also be expressed in integral form as:
Z t
L(t) = π(u)du
0
where π(t) = π(0) exp(Qt) is the state occupancy probability at time t; exp(Qt) is the
matrix exponential of Qt.
If there are absorbing states, we can define the vector of expected sojourn times until
absorption L(∞), where for each transient state i, Li (∞) is the expected total time spent
in state i until absorption, assuming that the system started with given state occupancy
probabilities π(0). Let τ be the set of transient (i.e., non absorbing) states; let Qτ be the
restriction of Q to the transient sub-states only. Similarly, let πτ (0) be the restriction of
the initial state occupancy probability vector π(0) to transient states τ .
The expected time to absorption Lτ (∞) is defined as the solution of the following equa-
tion:
Chapter 3: Markov Chains 21
EXAMPLE
Let us consider a 4-states pure birth continuous process where the transition rate from
state i to state (i + 1) is λi = iλ (i = 1, 2, 3), with λ = 0.5. The following code computes the
expected sojourn time for each state i, given initial occupancy probabilities π0 = [1, 0, 0, 0].
22 queueing
lambda = 0.5;
N = 4;
b = lambda*[1:N-1];
d = zeros(size(b));
Q = ctmcbd(b,d);
t = linspace(0,10,100);
p0 = zeros(1,N); p0(1)=1;
L = zeros(length(t),N);
for i=1:length(t)
L(i,:) = ctmcexps(Q,t(i),p0);
endfor
plot( t, L(:,1), ";State 1;", "linewidth", 2, ...
t, L(:,2), ";State 2;", "linewidth", 2, ...
t, L(:,3), ";State 3;", "linewidth", 2, ...
t, L(:,4), ";State 4;", "linewidth", 2 );
legend("location","northwest"); legend("boxoff");
xlabel("Time");
ylabel("Expected sojourn time");
Q(i,j) Infinitesimal generator matrix. Q(i,j) is the transition rate from state
j, 1 ≤ i, j ≤ N , i 6= j. The matrix Q must also satisfy the
i to state P
condition N j=1 Qi,j = 0
OUTPUTS
M(i) When called with three arguments, M(i) is the expected fraction of the
interval [0, t] spent in state i assuming that the state occupancy proba-
bility at time zero is p. When called with two arguments, M(i) is the
expected fraction of time until absorption spent in state i; in this case
the mean time to absorption is sum(M).
EXAMPLE
Chapter 3: Markov Chains 23
lambda = 0.5;
N = 4;
birth = lambda*linspace(1,N-1,N-1);
death = zeros(1,N-1);
Q = diag(birth,1)+diag(death,-1);
Q -= diag(sum(Q,2));
t = linspace(1e-5,30,100);
p = zeros(1,N); p(1)=1;
M = zeros(length(t),N);
for i=1:length(t)
M(i,:) = ctmctaexps(Q,t(i),p);
endfor
clf;
plot(t, M(:,1), ";State 1;", "linewidth", 2, ...
t, M(:,2), ";State 2;", "linewidth", 2, ...
t, M(:,3), ";State 3;", "linewidth", 2, ...
t, M(:,4), ";State 4 (absorbing);", "linewidth", 2 );
legend("location","east"); legend("boxoff");
xlabel("Time");
ylabel("Time-averaged Expected sojourn time");
EXAMPLE
Let us consider a simple model of redundant disk array. We assume that the array is
made of 5 independent disks and can tolerate up to 2 disk failures without losing data. If
24 queueing
three or more disks break, the array is dead and unrecoverable. We want to estimate the
Mean-Time-To-Failure (MTTF) of the disk array.
We model this system as a 4 states continuous Markov chain with state space {2, 3, 4, 5}.
In state i there are exactly i active (i.e., non failed) disks; state 2 is absorbing. Let µ be the
failure rate of a single disk. The system starts in state 5 (all disks are operational). We use
a pure death process, where the death rate from state i to state (i − 1) is µi, for i = 3, 4, 5).
The MTTF of the disk array is the MTTA of the Markov Chain, and can be computed
as follows:
mu = 0.01;
death = [ 3 4 5 ] * mu;
birth = 0*death;
Q = ctmcbd(birth,death);
t = ctmcmtta(Q,[0 0 0 1])
⇒ t = 78.333
i Initial state.
j Destination state.
OUTPUTS
M(i,j) average time before state j is visited for the first time, starting from state
i. We let M(i,i) = 0.
m m is the average time before state j is visited for the first time, starting
from state i.
See also: ctmcmtta.
25
πk = (1 − ρ)ρk
µ(n) = µ × min(m, n)
INPUTS
lambda Arrival rate (lambda>0).
mu Service rate (mu>lambda).
m Number of servers (m ≥ 1). Default is m=1.
Chapter 4: Single Station Queueing Systems 27
m
!−1
Am X Ak
EB (A, m) =
m! k=0
k!
INPUTS
A Offered load, defined as A = λ/µ where λ is the mean arrival rate and µ
the mean service rate of each individual server (real, A > 0).
m Number of identical servers (integer, m ≥ 1). Default m = 1
OUTPUTS
B The value EB (A, m)
28 queueing
A or m can be vectors, and in this case, the results will be vectors as well.
REFERENCES
• G. Zeng, Two common properties of the Erlang-B function, Erlang-C function,
and Engset blocking function, Mathematical and Computer Modelling, Volume
37, Issues 12-13, June 2003, Pages 1287-1296
See also: erlangc,engset,qsmmm.
m−1
!−1
Am 1 X Ak Am 1
EC (A, m) = +
m! 1 − ρ k=0
k! m! 1 − ρ
and is 0 if n ≤ m.
INPUTS
A Offered load, defined as A = λ/µ where λ is the mean arrival rate and µ
the mean service rate of each individual server (real, A > 0).
m Number of identical servers (integer, m ≥ 1). Default m = 1
n Number of requests (integer, n ≥ 1). Default n = 1
OUTPUTS
B The value Pb (A, m, n)
A, m or n can be vectors, and in this case, the results will be vectors as well.
REFERENCES
• G. Zeng, Two common properties of the Erlang-B function, Erlang-C function,
and Engset blocking function, Mathematical and Computer Modelling, Volume
37, Issues 12-13, June 2003, Pages 1287-1296
See also: erlangb, erlangc.
(1 − a)an
πn =
1 − aK+1
where a = λ/µ.
INPUTS
lambda Arrival rate (lambda>0).
Chapter 4: Single Station Queueing Systems 31
INPUTS
lambda Arrival rate (lambda>0)
mu Service rate (mu>0)
m Number of servers (m ≥ 1)
K Maximum number of requests allowed in the system, including those being
served (K ≥ m)
n Number of requests in the (0 ≤ n ≤ K).
OUTPUTS
U Service center utilization
R Service center response time
Q Average number of requests in the system
X Service center throughput
p0 Steady-state probability that there are no requests in the system.
pK Steady-state probability that there are K requests in the system (i.e.,
probability that the system is full).
pn Steady-state probability that there are n requests in the system (including
those being served).
If this function is called with less than five arguments, lambda, mu, m and K can be
either scalars, or vectors of the same size. In this case, the results will be vectors as
well.
REFERENCES
• G. Bolch, S. Greiner, H. de Meer and K. Trivedi, Queueing Networks and Markov
Chains: Modeling and Performance Evaluation with Computer Science Applica-
tions, Wiley, 1998, Section 6.6
See also: qsmm1,qsmminf,qsmmm.
OUTPUTS
Pm
U Approximate service center utilization, U = λ/( i=1 µi ).
R Approximate service center response time
Q Approximate number of requests in the system
X Approximate system throughput. If the system is ergodic, X = lambda
REFERENCES
• G. Bolch, S. Greiner, H. de Meer and K. Trivedi, Queueing Networks and Markov
Chains: Modeling and Performance Evaluation with Computer Science Applica-
tions, Wiley, 1998
OUTPUTS
lambda, xavg, t2nd can be vectors of the same size. In this case, the results will be
vectors as well.
See also: qsmh1.
34 queueing
where αj is the probability that the request is served at phase j, in which case the
average service rate is µj . After completing service at phase j, for some j, the request
exits the system.
INPUTS
lambda Arrival rate
mu mu(j) is the phase j service rate. The total number of phases m is
length(mu).
alpha alpha(j) is the probability that a request is served at phase j. alpha
must have the same size as mu.
OUTPUTS
U Service center utilization
R Service center response time
Q Average number of requests in the system
X Service center throughput
35
5 Queueing Networks
K
X
Vj = P0,j + Vi Pi,j j = 1, . . . , K
i=1
Chapter 5: Queueing Networks 37
EXAMPLE
Disk1
0.3
2
CPU
FCFS
1
Disk2
PS
3
0.7
FCFS
Figure 5.1: Closed network with a single class of requests
Figure 5.1 shows a closed queueing network with a single class of requests. The network
has three service centers, labeled CPU, Disk1 and Disk2, and is known as a central server
model of a computer system. Requests spend some time at the CPU, which is represented
by a PS (Processor Sharing) node. After that, requests are routed to Disk1 with probability
0.3, and to Disk2 with probability 0.7. Both Disk1 and Disk2 are FCFS nodes.
If we label the servers as CPU=1, Disk1=2, Disk2=3, we can define the routing matrix
as follows:
0 0.3 0.7
P = 1 0 0
1 0 0
The visit ratios V , using station 1 as the reference station, can be computed with:
EXAMPLE
Chapter 5: Queueing Networks 39
Disk1
0.3
2
CPU
FCFS
λ 1
Disk2
PS
3
0.5
0.2 FCFS
0 0.3 0.5
P = 1 0 0
1 0 0
• Arrival rates as well as routing probabilities are independent from the number of nodes
in the network.
• External arrivals and service times at the service centers are exponentially distributed,
and in general can be load-dependent.
• Service discipline at each node is FCFS
We define the joint probability vector π(n1 , . . . , nK ) as the steady-state probability that
there are nk requests at service center k, for all k = 1, . . . , N . Jackson networks have the
property that the joint probability is the product of the marginal probabilities πk :
K
Y
π(n1 , . . . , nK ) = πk (nk )
k=1
where πk (nk ) is the steady-state probability that there are nk requests at service center k.
[U, R, Q, X] = qnos (lambda, S, V) [Function File]
[U, R, Q, X] = qnos (lambda, S, V, m) [Function File]
Analyze open, single class BCMP queueing networks with K service centers.
This function works for a subset of BCMP single-class open networks satisfying the
following properties:
• The allowed service disciplines at network nodes are: FCFS, PS, LCFS-PR, IS
(infinite server);
• Service times are exponentially distributed and load-independent;
• Center k can consist of m(k) ≥ 1 identical servers.
• Routing is load-independent
INPUTS
lambda Overall external arrival rate (lambda>0).
S(k) average service time at center k (S(k)>0).
V(k) average number of visits to center k (V(k) ≥ 0).
m(k) number of servers at center i. If m(k) < 1, enter k is a delay center (IS);
otherwise it is a regular queueing center with m(k) servers. Default is
m(k) = 1 for all k.
OUTPUTS
U(k) If k is a queueing center, U(k) is the utilization of center k. If k is an IS
node, then U(k) is the traffic intensity defined as X(k)*S(k).
R(k) center k average response time.
Q(k) average number of requests at center k.
X(k) center k throughput.
REFERENCES
• G. Bolch, S. Greiner, H. de Meer and K. Trivedi, Queueing Networks and Markov
Chains: Modeling and Performance Evaluation with Computer Science Applica-
tions, Wiley, 1998
Chapter 5: Queueing Networks 41
From the results computed by this function, it is possible to derive other quantities of
interest as follows:
• System
PK
Response Time: The overall system response time can be computed as Rs =
V R
k=1 k k
• Average number of requests: The average number of requests in the system can be
computed as:
K
X
Qavg = Qk
k=1
EXAMPLE
lambda = 3;
V = [16 7 8];
S = [0.01 0.02 0.03];
[U R Q X] = qnos( lambda, S, V );
R_s = dot(R,V) # System response time
N = sum(Q) # Average number in system
a R_s = 1.4062
a N = 4.2186
OUTPUTS
U(k) If k is a FCFS, LCFS-PR or PS node (m(k) ≥ 1), then U(k) is the uti-
lization of center k, 0 ≤ U (k) ≤ 1. If k is an IS node (m(k) < 1), then
U(k) is the traffic intensity defined as X(k)*S(k). In this case the value
of U(k) may be greater than one.
R(k) center k response time. The Residence Time at center k is R(k) * V(k).
The system response time Rsys can be computed either as Rsys = N/Xsys
- Z or as Rsys = dot(R,V)
Q(k) average number of requests at center k. The number of requests in the
system can be computed either as sum(Q), or using the formula N-Xsys*Z.
X(k) center K throughput. The system throughput Xsys can be computed as
Xsys = X(1) / V(1)
G(n) Normalization constants. G(n+1) contains the value of the normalization
constant G(n), n = 0, . . . , N as array indexes in Octave start from 1.
G(n) can be used in conjunction with the BCMP theorem to compute
steady-state probabilities.
NOTES
In presence of load-dependent servers (i.e., if m(k)>1 for some k), the MVA algorithm
is known to be numerically unstable. Generally, this issue manifests itself as negative
values for the response times or utilizations. This is not a problem of the queueing
toolbox, but of the MVA algorithm, and has currently no known solution. This
function prints a warning if numerical problems are detected; the warning can be
disabled with the command warning("off", "qn:numerical-instability").
REFERENCES
• M. Reiser and S. S. Lavenberg, Mean-Value Analysis of Closed Multichain Queu-
ing Networks, Journal of the ACM, vol. 27, n. 2, April 1980, pp. 313–322.
10.1145/322186.322195 (http://doi.acm.org/10.1145/322186.322195)
This implementation is described in R. Jain , The Art of Computer Systems Perfor-
mance Analysis, Wiley, 1991, p. 577. Multi-server nodes are treated according to
G. Bolch, S. Greiner, H. de Meer and K. Trivedi, Queueing Networks and Markov
Chains: Modeling and Performance Evaluation with Computer Science Applications,
Wiley, 1998, Section 8.2.1, "Single Class Queueing Networks".
See also: qncsmvald,qncscmva.
EXAMPLE
S = [ 0.125 0.3 0.2 ];
V = [ 16 10 5 ];
N = 20;
m = ones(1,3);
Z = 4;
[U R Q X] = qncsmva(N,S,V,m,Z);
X_s = X(1)/V(1); # System throughput
R_s = dot(R,V); # System response time
Chapter 5: Queueing Networks 43
According to the BCMP theorem, the state probability of a closed single class queueing
network with K nodes and N requests can be expressed as:
K
1 Y
π(n1 , . . . , nK ) = Fk (nk )
G(N ) k=1
Here π(n1 , . . . , nK ) is the joint probability of having nk requests at node k, for all k =
1, . . . , K; we have that K
P
k=1 nk = N
The convolution algorithms computes the normalization constants G = [G(0), . . . , G(N )]
for single-class, closed networks with N requests. The normalization constants are returned
as vector G=[G(1), ... G(N+1)] where G(i+1) is the value of G(i) (remember that Octave
46 queueing
uses 1-base vectors). The normalization constant can be used to compute all performance
measures of interest (utilization, average response time and so on).
queueing implements the convolution algorithm, in the function qncsconv and
qncsconvld. The first one supports single-station nodes, multiple-station nodes and IS
nodes. The second one supports networks with general load-dependent service centers.
EXAMPLE
The normalization constant G can be used to compute the steady-state probabilities
for a closed single class product-form Queueing Network with K nodes and N requests.
Let n = [n1 , . . . , nK ] be a valid population vector, K
P
k=1 k = N . Then, the steady-state
n
probability p(k) to have n(k) requests at service center k can be computed as:
(Vk Sk )nk
pk (nk ) = (G(N − nk ) − Vk Sk G(N − nk − 1)) , k = 1, . . . , K
G(N )
n = [1 2 0];
N = sum(n); # Total population size
S = [ 1/0.8 1/0.6 1/0.4 ];
m = [ 2 3 1 ];
V = [ 1 .667 .2 ];
[U R Q X G] = qncsconv( N, S, V, m );
p = [0 0 0]; # initialize p
# Compute the probability to have n(k) jobs at service center k
for k=1:3
p(k) = (V(k)*S(k))^n(k) / G(N+1) * ...
(G(N-n(k)+1) - V(k)*S(k)*G(N-n(k)) );
printf("Prob( n(%d) = %d )=%f\n", k, n(k), p(k) );
endfor
a Prob( n(1) = 1 ) = 0.17975
a Prob( n(2) = 2 ) = 0.48404
a Prob( n(3) = 0 ) = 0.52779
(recall that G(N+1) represents G(N ), since in Octave array indices start at one).
[U, R, Q, X] = (lambda, S, C, P)
qnmarkov [Function File]
[U, R, Q, X] = (lambda, S, C, P, m)
qnmarkov [Function File]
[U, R, Q, X] = (N, S, C, P)
qnmarkov [Function File]
[U, R, Q, X] = (N, S, C, P, m)
qnmarkov [Function File]
Compute utilization, response time, average queue length and throughput for open
or closed queueing networks with finite capacity and a single class of requests. Block-
ing type is Repetitive-Service (RS). This function explicitly generates and solve the
underlying Markov chain, and thus might require a large amount of memory.
More specifically, networks which can me analyzed by this function have the following
properties:
• There exists only a single class of customers.
• The network has K service centers. Center k ∈ {1, . . . , K} has mk > 0 servers,
and has a total (finite) capacity of Ck ≥ mk which includes both buffer space
and servers. The buffer space at service center k is therefore Ck − mk .
• The network can be open, with external arrival rate to center k equal to λk , or
closed with fixed population size N . For closed networks, the population size N
must be strictly less than the network capacity: N < K
P
k=1 Ck .
• Average service times are load-independent.
• Pi,j is the probability that requests completing execution at center i are trans-
ferred to center j, i 6= j. For open networks, a request may leave the system
from any node i with probability 1 − K
P
P
j=1 i,j .
• Blocking type is Repetitive-Service (RS). Service center j is saturated if the
number of requests is equal to its capacity Cj . Under the RS blocking discipline,
a request completing service at center i which is being transferred to a saturated
server j is put back at the end of the queue of i and will receive service again.
Center i then processes the next request in queue. External arrivals to a saturated
servers are dropped.
INPUTS
lambda(k)
N If the first argument is a vector lambda, it is considered to be the external
arrival rate lambda(k) ≥ 0 to service center k of an open network. If the
first argument is a scalar, it is considered as the population size N of
a closed network; in this case N must be strictly less than the network
capacity: N < sum(C).
S(k) average service time at service center k
50 queueing
C(k) capacity of service center k. The capacity includes both the buffer and
server space m(k). Thus the buffer space is C(k)-m(k).
P(i,j) transition probability from service center i to service center j.
m(k) number of servers at service center k. Note that m(k) ≥ C(k) for each
k. If m is omitted, all service centers are assumed to have a single server
(m(k) = 1 for all k).
OUTPUTS
U(k) center k utilization.
R(k) response time on service center k.
Q(k) average number of customers in the service center k, including the request
in service.
X(k) throughput of service center k.
NOTES
The space complexity of this implementation is O( K 2
Q
k=1 (Ck + 1) ). The time com-
plexity is dominated by the time needed to solve a linear system with K
Q
k=1 (Ck + 1)
unknowns.
Model Outputs
Uc,k Utilization of service center k by class c requests. The utilization is defined as
the fraction of time in which the resource is busy (i.e., the server is processing
requests). If center k is a single-server or multiserver node, then 0 ≤ Uc,k ≤ 1.
If center k is an infinite server node (delay center), then Uc,k denotes the traffic
intensity and is defined as Uc,k = Xc,k Sc,k ; in this case the utilization may be
greater than one.
Rc,k Average response time experienced by class c requests on service center k. The
average response time is defined as the average time between the arrival of a
customer in the queue, and the completion of service.
Qc,k Average number of class c requests on service center k. This includes both the
requests in the queue, and the request being served.
Xc,k Throughput of service center k for class c requests. The throughput is defined
as the rate of completion of class c requests.
It is possible to define aggregate performance measures as follows:
PC
Uk Utilization of service center k: Uk = c=1 Uc,k
PK
Rc System response time for class c requests: Rc = k=1 Rc,k Vc,k
PK
Qc Average number of class c requests in the system: Qc = k=1 Qc,k
Xc Class c throughput: Xc = Xc,k /Vc,k for any k for which Vc,k 6= 0
For closed networks, we can define the visit ratios Vs,j for class s customers at service
center j as follows:
X K
C X
Vs,j = Vr,i Pr,i,s,j , s = 1, . . . , C, j = 1, . . . , K
r=1 i=1
Vs,rs = 1, s = 1, . . . , C
where rs is the class s reference station. Similarly to single class models, the traffic equation
for closed multiclass networks can be solved up to multiplicative constants unless we choose
one reference station for each closed class and set its visit ratio to 1.
For open networks the traffic equations are as follows:
C X
X K
Vs,j = P0,s,j + Vr,i Pr,i,s,j s = 1, . . . , C, j = 1, . . . , K
r=1 i=1
where P0,s,j is the probability that an external arrival goes to service center j as a class-
s request.
P P
If λs,j is the external arrival rate of class s requests to service center j, and
λ = s j λs,j is the overall external arrival rate, then P0,s,j = λs,j /λ.
INPUTS
P(r,i,s,j)
probability that a class r request which completed service at center i is
routed to center j as a class s request. Class switching is allowed.
r(c) index of class c reference station, r(c) ∈ {1, . . . , K}, 1 ≤ c ≤ C. The class
c visit count to server r(c) (V(c,r(c))) is conventionally set to 1. The
reference station serves two purposes: (i) its throughput is assumed to be
the system throughput, and (ii) a job returning to the reference station
is assumed to have completed one cycle. Default is to consider station 1
as the reference station for all classes.
OUTPUTS
V(c,i) number of visits of class c requests at center i.
ch(c) chain number that class c belongs to. Different classes can belong to the
same chain. Chains are numbered sequentially starting from 1 (1, 2, . . . ).
The total number of chains is max(ch).
V = qnomvisits (P, lambda) [Function File]
Compute the visit ratios to the service centers of an open multiclass network with K
service centers and C customer classes.
INPUTS
P(r,i,s,j)
probability that a class r request which completed service at center i is
routed to center j as a class s request. Class switching is supported.
lambda(r,i)
external arrival rate of class r requests to center i.
OUTPUTS
V(r,i) visit ratio of class r requests at center i.
S(c,k) mean service time of class c customers on the service center k (S(c,k)>0).
For FCFS nodes, mean service times must be class-independent.
V(c,k) visit ratio of class c customers to service center k (V(c,k) ≥ 0 ). If you
pass this argument, class switching is not allowed
P(r,i,s,j)
probability that a class r job completing service at center i is routed
to center j as a class s job. If you pass argument P, class switching is
allowed; however, all servers must be fixed-rate or infinite-server nodes
(m(k) ≤ 1 for all k).
m(k) number of servers at center k. If m(k) < 1, enter k is a delay center (IS);
otherwise it is a regular queueing center with m(k) servers. Default is
m(k) = 1 for all k.
OUTPUTS
U(c,k) If k is a queueing center, then U(c,k) is the class c utilization of center
k. If k is an IS node, then U(c,k) is the class c traffic intensity defined
as X(c,k)*S(c,k).
R(c,k) class c response time at center k. The system response time for class c
requests can be computed as dot(R, V, 2).
Q(c,k) average number of class c requests at center k. The average number of
class c requests in the system Qc can be computed as Qc = sum(Q, 2)
X(c,k) class c throughput at center k.
NOTES
If the function call specifies the visit ratios V, class switching is not allowed. If
the function call specifies the routing probability matrix P, then class switching is
allowed; however, all nodes are restricted to be fixed rate servers or delay centers:
multiple-server and general load-dependent centers are not supported. Note that the
meaning of parameter lambda is different from one case to the other (see below).
REFERENCES
• Edward D. Lazowska, John Zahorjan, G. Scott Graham, and Kenneth C. Sevcik,
Quantitative System Performance: Computer System Analysis Using Queueing
Network Models, Prentice Hall, 1984. http://www.cs.washington.edu/homes/
lazowska/qsp/. In particular, see section 7.4.1 ("Open Model Solution Tech-
niques").
See also: qnopen,qnos,qnomvisits.
PC
• c=1 Mc = k
In other words, a k-mix is an allocation of k requests to C classes such that the
number of requests assigned to class c does not exceed the maximum value N(c).
pop mix is a matrix with C columns, such that each row represents a valid mix.
INPUTS
k Size of the requested mix (scalar, k ≥ 0).
N(c) number of class c requests (k ≤ sum(N)).
OUTPUTS
pop_mix(i,c)
number of class c requests in the i-th population mix. The number of
mixes is rows(pop_mix).
If you are interested in the number of k-mixes only, you can use the funcion qnmvapop.
REFERENCES
• Herb Schwetman, Implementing the Mean Value Algorithm for the Solution
of Queueing Network Models, Technical Report 80-355 (http: / / docs . lib .
purdue.edu/cstech/286/), Department of Computer Sciences, Purdue Univer-
sity, revised February 15, 1982.
P
The slightly different problem of enumerating all tuples k1 , . . . , kN such that i ki = k
and ki ≥ 0, for a given k ≥ 0 has been described in S. Santini, Computing the Indices
for a Complex Summation, unpublished report, available at http://arantxa.ii.
uam.es/~ssantini/writing/notes/s668_summation.pdf
See also: qncmnpop.
EXAMPLE
Let us consider a multiclass network with C = 2 customer classes; the maximum number
of class 1 requests is 2, and the maximum number of class 2 requests is 3. How is it possible
to allocate 3 requests to the two classes so that the maximum number of requests per class
is not exceeded?
N = [2 3];
mix = qncmpopmix(3, N)
a mix = [ [2 1] [1 2] [0 3] ]
OUTPUTS
H(r,k) is the number of k mixes that can be constructed allocating k customers
to the first r classes.
REFERENCES
• Zahorjan, J. and Wong, E. The solution of separable queueing network models
using mean value analysis. SIGMETRICS Perform. Eval. Rev. 10, 3 (Sep.
1981), 80-85. DOI 10.1145/1010629.805477 (http://doi.acm.org/10.1145/
1010629.805477)
See also: qncmmva,qncmpopmix.
[U, R, Q, X] = (N, S )
qncmmva [Function File]
[U, R, Q, X] = (N, S, V)
qncmmva [Function File]
[U, R, Q, X] = (N, S, V, m)
qncmmva [Function File]
[U, R, Q, X] = (N, S, V, m, Z)
qncmmva [Function File]
[U, R, Q, X] = (N, S, P)
qncmmva [Function File]
[U, R, Q, X] = (N, S, P, r)
qncmmva [Function File]
[U, R, Q, X] = (N, S, P, r, m)
qncmmva [Function File]
Compute steady-state performance measures for closed, multiclass queueing networks
using the Mean Value Analysys (MVA) algorithm.
Queueing policies at service centers can be any of the following:
FCFS (First-Come-First-Served) customers are served in order of arrival; mul-
tiple servers are allowed. For this kind of queueing discipline, average
service times must be class-independent.
PS (Processor Sharing) customers are served in parallel by a single server,
each customer receiving an equal share of the service rate.
LCFS-PR (Last-Come-First-Served, Preemptive Resume) customers are served in
reverse order of arrival by a single server and the last arrival preempts
the customer in service who will later resume service at the point of
interruption.
IS (Infinite Server) customers are delayed independently of other customers
at the service center (there is effectively an infinite number of servers).
INPUTS
N(c) number of class c requests; N(c) ≥ 0. If class c has no requests (N(c)
== 0), then for all k, this function returns U(c,k) = R(c,k) = Q(c,k) =
X(c,k) = 0
S(c,k) mean service time for class c requests at center k (S(c,k) ≥ 0). If the
service time at center k is class-dependent, then center k is assumed
to be of type −/G/1–PS (Processor Sharing). If center k is a FCFS
node (m(k)>1), then the service times must be class-independent, i.e., all
classes must have the same service time.
V(c,k) average number of visits of class c requests at center k; V(c,k) ≥ 0,
default is 1. If you pass this argument, class switching is not allowed
56 queueing
P(r,i,s,j)
probability that a class r request completing service at center i is routed
to center j as a class s request; the reference stations for each class are
specified with the paramter r. If you pass argument P, class switching is
allowed; however, you can not specify any external delay (i.e., Z must be
zero) and all servers must be fixed-rate or infinite-server nodes (m(k) ≤
1 for all k).
r(c) reference station for class c. If omitted, station 1 is the reference station
for all classes. See qncmvisits.
m(k) If m(k)<1, then center k is assumed to be a delay center (IS node −/G/∞).
If m(k)==1, then service center k is a regular queueing center (M/M/1–
FCFS, −/G/1–LCFS-PR or −/G/1–PS). Finally, if m(k)>1, center k is
a M/M/m–FCFS center with m(k) identical servers. Default is m(k)=1
for each k.
Z(c) class c external delay (think time); Z(c) ≥ 0. Default is 0. This parame-
ter can not be used if you pass a routing matrix as the second parameter
of qncmmva.
OUTPUTS
U(c,k) If k is a FCFS, LCFS-PR or PS node (m(k) ≥ 1), then U(c,k) is the
class c utilization at center k, 0 ≤ U (c, k) ≤ 1. If k is an IS node, then
U(c,k) is the class c traffic intensity at center k, defined as U(c,k) =
X(c,k)*S(c,k). In this case the value of U(c,k) may be greater than
one.
R(c,k) class c response time at center k. The class c residence time at center k
is R(c,k) * C(c,k). The total class c system response time is dot(R, V,
2).
Q(c,k) average number of class c requests at center k. The total number of
requests at center k is sum(Q(:,k)). The total number of class c requests
in the system is sum(Q(c,:)).
X(c,k) class c throughput at center k. The class c throughput can be computed
as X(c,1) / V(c,1).
NOTES
If the function call specifies the visit ratios V, then class switching is not allowed. If
the function call specifies the routing probability matrix P, then class switching is
allowed; however, in this case all nodes are restricted to be fixed rate servers or delay
centers: multiple-server and general load-dependent centers are not supported.
In presence of load-dependent servers (e.g., if m(i)>1 for some i), the MVA algorithm
is known to be numerically unstable. Generally this problem shows up as negative
values for the computed response times or utilizations. This is not a problem with
the queueing package, but with the MVA algorithm; as such, there is no known
workaround at the moment (aoart from using a different solution technique, if avail-
able). This function prints a warning if it detects numerical problems; you can disable
the warning with the command warning("off", "qn:numerical-instability").
Chapter 5: Queueing Networks 57
[U, R, Q, X] = (N, S, V)
qncmmvabs [Function File]
[U, R, Q, X] = (N, S, V, m)
qncmmvabs [Function File]
[U, R, Q, X] = (N, S, V, m, Z)
qncmmvabs [Function File]
[U, R, Q, X] = (N, S, V, m, Z, tol)
qncmmvabs [Function File]
[U, R, Q, X] = (N, S, V, m, Z, tol, iter_max)
qncmmvabs [Function File]
Approximate Mean Value Analysis (MVA) for closed, multiclass queueing networks
with K service centers and C customer classes.
This implementation uses Bard and Schweitzer approximation. It is based on the
assumption that the queue length at service center k with population set N − 1c is
approximated with
n−1
Qk (N − 1c ) ≈ Qk (N)
n
where N is a valid population
P
mix, N − 1c is the population mix N with one class c
customer removed, and n = c Nc is the total number of requests.
This implementation works for networks with infinite server (IS) and single-server
nodes only.
INPUTS
N(c) number of class c requests in the system (N(c) ≥ 0).
S(c,k) mean service time for class c customers at center k (S(c,k) ≥ 0).
V(c,k) average number of visits of class c requests to center k (V(c,k) ≥ 0).
58 queueing
m(k) number of servers at center k. If m(k) < 1, then the service center k
is assumed to be a delay center (IS). If m(k) == 1, service center k is
a regular queueing center (FCFS, LCFS-PR or PS) with a single server
node. If omitted, each service center has a single server. Note that
multiple server nodes are not supported.
Z(c) class c external delay (Z ≥ 0). Default is 0.
tol Stopping tolerance (tol>0). The algorithm stops if the queue length
computed on two subsequent iterations are less than tol. Default is 10−5 .
iter_max Maximum number of iterations (iter_max>0. The function aborts if con-
vergenge is not reached within the maximum number of iterations. De-
fault is 100.
OUTPUTS
U(c,k) If k is a FCFS, LCFS-PR or PS node, then U(c,k) is the utilization of
class c requests on service center k. If k is an IS node, then U(c,k) is the
class c traffic intensity at device k, defined as U(c,k) = X(c)*S(c,k)
R(c,k) response time of class c requests at service center k.
Q(c,k) average number of class c requests at service center k.
X(c,k) class c throughput at service center k.
REFERENCES
• Y. Bard, Some Extensions to Multiclass Queueing Network Analysis, proc. 4th
Int. Symp. on Modelling and Performance Evaluation of Computer Systems,
Feb 1979, pp. 51–62.
• P. Schweitzer, Approximate Analysis of Multiclass Closed Networks of Queues,
Proc. Int. Conf. on Stochastic Control and Optimization, jun 1979, pp. 25–29.
This implementation is based on Edward D. Lazowska, John Zahorjan, G. Scott Gra-
ham, and Kenneth C. Sevcik, Quantitative System Performance: Computer System
Analysis Using Queueing Network Models, Prentice Hall, 1984. http://www.cs.
washington.edu/homes/lazowska/qsp/. In particular, see section 7.4.2.2 ("Ap-
proximate Solution Techniques"). This implementation is slightly different from the
one described above, as it computes the average response times R instead of the
residence times.
See also: qncmmva.
If the network is made of open or closed classes only, then this function calls qnom or
qncmmva respectively, and prints a warning message.
INPUTS
lambda(c)
N(c) For each customer chain c:
• if c is a closed chain, then N(c)>0 is the number of class c requests
and lambda(c) must be zero;
• If c is an open chain, lambda(c)>0 is the arrival rate of class c re-
quests and N(c) must be zero;
S(c,k) mean class c service time at center k, S(c,k) ≥ 0. For FCFS nodes,
service times must be class-independent.
OUTPUTS
REFERENCES
• Edward D. Lazowska, John Zahorjan, G. Scott Graham, and Kenneth C. Sevcik,
Quantitative System Performance: Computer System Analysis Using Queueing
Network Models, Prentice Hall, 1984. http://www.cs.washington.edu/homes/
lazowska/qsp/. In particular, see section 7.4.3 ("Mixed Model Solution Tech-
niques"). Note that in this function we compute the mean response time R
instead of the mean residence time as in the reference.
• Herb Schwetman, Implementing the Mean Value Algorithm for the Solution of
Queueing Network Models, Technical Report CSD-TR-355 (http://docs.lib.
purdue.edu/cstech/286/), Department of Computer Sciences, Purdue Univer-
sity, revised Feb 15, 1982.
After the network has been defined, it is possible to solve it using qnsolve.
• Node 2 is a −/G/1–PS node, with service times S1,2 = 0.4 for class 1, and S2,2 = 0.6
for class 2 requests;
• Node 3 is a −/G/∞ node (delay center), with service times S1,3 = 1 and S2,3 = 2 for
class 1 and 2 respectively.
After defining the per-class visit count V such that V(c,k) is the visit count of class c
requests to service center k. We can define and solve the model as follows:
EXAMPLE
P = [0 0.3 0.7; 1 0 0; 1 0 0]; # Transition probability matrix
S = [1 0.6 0.2]; # Average service times
m = ones(size(S)); # All centers are single-server
Z = 2; # External delay
N = 15; # Maximum population to consider
V = qncsvisits(P); # Compute number of visits
X_bsb_lower = X_bsb_upper = X_ab_lower = X_ab_upper = X_mva = zeros(1,N);
for n=1:N
[X_bsb_lower(n) X_bsb_upper(n)] = qncsbsb(n, S, V, m, Z);
[X_ab_lower(n) X_ab_upper(n)] = qncsaba(n, S, V, m, Z);
[U R Q X] = qnclosed( n, S, V, m, Z );
Chapter 5: Queueing Networks 63
X_mva(n) = X(1)/V(1);
endfor
close all;
plot(1:N, X_ab_lower,"g;Asymptotic Bounds;", ...
1:N, X_bsb_lower,"k;Balanced System Bounds;", ...
1:N, X_mva,"b;MVA;", "linewidth", 2, ...
1:N, X_bsb_upper,"k", 1:N, X_ab_upper,"g" );
axis([1,N,0,1]); legend("location","southeast"); legend("boxoff");
xlabel("Number of Requests n"); ylabel("System Throughput X(n)");
OUTPUTS
Xl
Xu Lower and upper bounds on the system throughput.
Rl
Ru Lower and upper bounds on the system response time.
N(c) number of class c requests in the system (vector of length C, N(c) ≥ 0).
D(c, k) class c service demand at center k (C × K matrix, D(c,k) ≥ 0).
S(c, k) mean service time of class c requests at center k (C × K matrix, S(c,k)
≥ 0).
V(c,k) average number of visits of class c requests to center k (C × K matrix,
V(c,k) ≥ 0).
m(k) number of servers at center k (if m is a scalar, all centers have that
number of servers). If m(k) < 1, center k is a delay center (IS); if m(k)
= 1, center k is a M/M/1-FCFS server. This function does not support
multiple-server nodes. Default is 1.
Z(c) class c external delay (vector of length C, Z(c) ≥ 0). Default is 0.
OUTPUTS
Xl(c)
Xu(c) Lower and upper bounds for class c throughput.
Rl(c)
Ru(c) Lower and upper bounds for class c response time.
REFERENCES
• Edward D. Lazowska, John Zahorjan, G. Scott Graham, and Kenneth C. Sevcik,
Quantitative System Performance: Computer System Analysis Using Queueing
Network Models, Prentice Hall, 1984. http://www.cs.washington.edu/homes/
lazowska/qsp/. In particular, see section 5.2 ("Asymptotic Bounds").
REFERENCES
• Edward D. Lazowska, John Zahorjan, G. Scott Graham, and Kenneth C. Sevcik,
Quantitative System Performance: Computer System Analysis Using Queueing
Network Models, Prentice Hall, 1984. http://www.cs.washington.edu/homes/
lazowska/qsp/. In particular, see section 5.4 ("Balanced Systems Bounds").
See also: qncmbsb.
REFERENCES
• Teemu Kerola, The Composite Bound Method (CBM) for Computing Through-
put Bounds in Multiple Class Environments, Performance Evaluation Vol. 6,
Issue 1, March 1986, DOI 10.1016/0166-5316(86)90002-7 (http: / / dx . doi .
org / 10 . 1016 / 0166-5316(86)90002-7). Also available as Technical Report
CSD-TR-475 (http://docs.lib.purdue.edu/cstech/395/), Department of
Computer Sciences, Purdue University, mar 13, 1984 (Revised Aug 27, 1984).
[Xl, Xu, Rl, Ru] = (N, D )
qncspb [Function File]
[Xl, Xu, Rl, Ru] = (N, S, V )
qncspb [Function File]
[Xl, Xu, Rl, Ru] = (N, S, V, m )
qncspb [Function File]
[Xl, Xu, Rl, Ru] = (N, S, V, m, Z )
qncspb [Function File]
Compute PB Bounds (C. H. Hsieh and S. Lam, 1987) for single-class, closed networks
with K service centers.
INPUTS
number of requests in the system (scalar, N > 0).
D(k) service demand of service center k (D(k) ≥ 0).
S(k) mean service time at center k (S(k) ≥ 0).
V(k) visit ratio to center k (V(k) ≥ 0).
m(k) number of servers at center k. This function only supports M/M/1
queues, therefore m must be ones(size(S)).
Z external delay (think time, Z ≥ 0). Default 0.
OUTPUTS
Xl
Xu Lower and upper bounds on the system throughput.
Rl
Ru Lower and upper bounds on the system response time.
REFERENCES
• C. H. Hsieh and S. Lam, Two classes of performance bounds for closed queue-
ing networks, Performance Evaluation, Vol. 7 Issue 1, pp. 3–30, February
1987, DOI 10.1016/0166-5316(87)90054-X (http: / / dx . doi . org / 10 . 1016 /
0166-5316(87)90054-X). Also available as Technical Report TR-85-09 (ftp://
ftp.cs.utexas.edu/pub/techreports/tr85-09.pdf), Department of Com-
puter Science, University of Texas at Austin, June 1985
This function implements the non-iterative variant described in G. Casale, R. R.
Muntz, G. Serazzi, Geometric Bounds: a Non-Iterative Analysis Technique for Closed
Queueing Networks, IEEE Transactions on Computers, 57(6):780-794, June 2008.
See also: qncsaba, qbcsbsb, qncsgb.
[Xl, Xu, Rl, Ru, Ql, Qu] = qncsgb (N, D) [Function File]
[Xl, Xu, Rl, Ru, Ql, Qu] = qncsgb (N, S, V) [Function File]
[Xl, Xu, Rl, Ru, Ql, Qu] = qncsgb (N, S, V, m) [Function File]
Chapter 5: Queueing Networks 69
[Xl, Xu, Rl, Ru, Ql, Qu] = qncsgb (N, S, V, m, Z) [Function File]
Compute Geometric Bounds (GB) on system throughput, system response time and
server queue lenghts for closed, single-class networks with K service centers and N
requests.
INPUTS
N number of requests in the system (scalar, N > 0).
D(k) service demand of service center k (vector of length K, D(k) ≥ 0).
S(k) mean service time at center k (vector of length K, S(k) ≥ 0).
V(k) visit ratio to center k (vector of length K, V(k) ≥ 0).
m(k) number of servers at center k. This function only supports M/M/1
queues, therefore m must be ones(size(S)).
Z external delay (think time, Z ≥ 0, scalar). Default is 0.
OUTPUTS
Xl
Xu Lower and upper bound on the system throughput. If Z>0, these bounds
are computed using Geometric Square-root Bounds (GSB). If Z==0, these
bounds are computed using Geometric Bounds (GB)
Rl
Ru Lower and upper bound on the system response time. These bounds are
derived from Xl and Xu using Little’s Law: Rl = N / Xu - Z, Ru = N / Xl
-Z
Ql(k)
Qu(k) lower and upper bounds of center K queue length.
REFERENCES
• G. Casale, R. R. Muntz, G. Serazzi, Geometric Bounds: a Non-Iterative
Analysis Technique for Closed Queueing Networks, IEEE Transactions on
Computers, 57(6):780-794, June 2008. 10.1109/TC.2008.37 (http: / / doi .
ieeecomputersociety.org/10.1109/TC.2008.37)
In this implementation we set X + and X − as the upper and lower Asymptotic Bounds
as computed by the qncsab function, respectively.
0 0.3 0.7
P = 1 0 0
1 0 0
The network above can be analyzed with the qnclosed function see [doc-qnclosed],
page 62. qnclosed requires the following parameters:
N Number of requests in the network (since we are considering a closed network,
the number of requests is fixed)
S Array of average service times at the centers: S(k) is the average service time
at center k.
V Array of visit ratios: V(k) is the average number of visits to center k.
We can compute Vk from the routing probability matrix Pi,j using the qncsvisits
function see [doc-qncsvisits], page 37. Therefore, we can analyze the network for a given
population size N (e.g., N = 10) as follows:
N = 10;
S = [1 2 0.8];
P = [0 0.3 0.7; 1 0 0; 1 0 0];
V = qncsvisits(P);
[U R Q X] = qnclosed( N, S, V )
⇒ U = 0.99139 0.59483 0.55518
⇒ R = 7.4360 4.7531 1.7500
⇒ Q = 7.3719 1.4136 1.2144
⇒ X = 0.99139 0.29742 0.69397
The output of qnclosed includes the vectors of utilizations Uk at center k, response time
Rk , average number of customers Qk and throughput Xk . In our example, the throughput
of center 1 is X1 = 0.99139, and the average number of requests in center 3 is Q3 = 1.2144.
The utilization of center 1 is U1 = 0.99139, which is the highest among the service centers.
Thus, center 1 is the bottleneck device.
This network can also be analyzed with the qnsolve function see [doc-qnsolve], page 60.
qnsolve can handle open, closed or mixed networks, and allows the network to be described
in a very flexible way. First, let Q1, Q2 and Q3 be the variables describing the service
centers. Each variable is instantiated with the qnmknode function.
Q1 = qnmknode( "m/m/m-fcfs", 1 );
Q2 = qnmknode( "m/m/m-fcfs", 2 );
Q3 = qnmknode( "m/m/m-fcfs", 0.8 );
The first parameter of qnmknode is a string describing the type of the node;
"m/m/m-fcfs" denotes a M/M/m–FCFS center (this parameter is case-insensitive). The
second parameter gives the average service time. An optional third parameter can be used
to specify the number m of service centers. If omitted, it is assumed m = 1 (single-server
node).
Chapter 5: Queueing Networks 71
0 0.3 0.5
P = 1 0 0
1 0 0
In this network, requests can leave the system from center 1 with probability 1 − (0.3 +
0.5) = 0.2. We suppose that external jobs arrive at center 1 with rate λ1 = 0.15; there are
no arrivals at centers 2 and 3.
Similarly to closed networks, we first compute the visit counts Vk to center k, k = 1, 2, 3.
We use the qnosvisits function as follows:
P = [0 0.3 0.5; 1 0 0; 1 0 0];
lambda = [0.15 0 0];
V = qnosvisits(P, lambda)
⇒ V = 5.00000 1.50000 2.50000
where lambda(k) is the arrival rate at center k, and P is the routing matrix. Assuming
the same service times as in the previous example, the network can be analyzed with the
qnopen function see [doc-qnopen], page 63, as follows:
S = [1 2 0.8];
[U R Q X] = qnopen( sum(lambda), S, V )
⇒ U = 0.75000 0.45000 0.30000
⇒ R = 4.0000 3.6364 1.1429
⇒ Q = 3.00000 0.81818 0.42857
⇒ X = 0.75000 0.22500 0.37500
The first parameter of the qnopen function is the (scalar) aggregate arrival rate.
Again, it is possible to use the qnsolve high-level function:
Q1 = qnmknode( "m/m/m-fcfs", 1 );
Q2 = qnmknode( "m/m/m-fcfs", 2 );
Q3 = qnmknode( "m/m/m-fcfs", 0.8 );
lambda = [0.15 0 0];
[U R Q X] = qnsolve( "open", sum(lambda), { Q1, Q2, Q3 }, V )
⇒ U = 0.75000 0.45000 0.30000
⇒ R = 4.0000 3.6364 1.1429
⇒ Q = 3.00000 0.81818 0.42857
⇒ X = 0.75000 0.22500 0.37500
72 queueing
APL
1
IS SYS
3
IMS PS
IS
Figure 5.3
Servers 1 and 2 (labeled APL and IMS, respectively) are infinite server nodes; server
3 (labeled SYS ) is Processor Sharing (PS). Mean service times are given in the following
table:
R =
Q =
X =
4
Web Server 2
1 5
3
6
Class 2
Class 1
The qncmmva(pop, S, V) function invocation uses the multiclass MVA algorithm to com-
pute per-class utilizations Uc,k , response times Rc,k , mean queue lengths Qc,k and through-
puts Xc,k at each service center k, given a population vector pop, mean service times S
and visit ratios V. Since we are given the service demands Dc,k = Sc,k Vc,k , but function
qncmmva requires separate service times and visit ratios, we set the service times equal to
the demands, and all visit ratios equal to one. Overall class and system throughputs and
response times can also be computed:
dot(X,Y) computes the dot product of two vectors. R(1,:) is the first rowPof matrix R
and V(1,:) is the first row of matrix V, so dot(R(1,:), V(1,:)) computes k R1,k V1,k .
Chapter 5: Queueing Networks 75
0.015
Throughput
0.01
0.005
Class 1 Class 2 System
0
0 0.2 0.4 0.6 0.8 1
8000
Response Time
6000
4000
2000
Class 1 Class 2 System
0
0 0.2 0.4 0.6 0.8 1
Class 1 population mix
Figure 5.5: Throughput and Response Times as a function of the population mix
We can also compute the system power Φ = X/R, which defines how efficiently resources
are being used: high values of Φ denote the desirable situation of high throughput and low
response time. Figure 5.6 shows Φ as a function of β1 . We observe a “plateau” of the
global system power, corresponding to values of β1 which approximately lie between 0.3
and 0.7. The per-class power exhibits an interesting (although not completely surprising)
pattern, where the class with higher population exhibits worst efficiency as it produces
higher contention on the resources.
76 queueing
3e-06
2.5e-06
Power
2e-06
1.5e-06
1e-06
5e-07
0 0.2 0.4 0.6 0.8 1
Class 1 population mix
Class 1
I/O
.2 .7
2
CPU .3 FCFS
1
I/O
PS
.2 3
.1 .5 FCFS
Class 2
The system consists of three devices and two job classes. The CPU node is a PS server,
while the two nodes labeled I/O are FCFS. Class 1 mean service time at the CPU is 0.01;
class 2 mean service time at the CPU is 0.05. The mean service time at node 2 is 0.1, and
is class-independent. Similarly, the mean service time at node 3 is 0.07. Jobs in class 1
leave the CPU and join class 2 with probability 0.1; jobs of class 2 leave the CPU and join
class 1 with probability 0.2. There are N = 3 jobs, which are initially allocated to class 1.
However, note that since class switching is allowed, the total number of jobs in each class
does not remain constant; however the total number of jobs does.
C = 2; K = 3;
S = [.01 .07 .10; ...
.05 .07 .10 ];
P = zeros(C,K,C,K);
P(1,1,1,2) = .7; P(1,1,1,3) = .2; P(1,1,2,1) = .1;
P(2,1,2,2) = .3; P(2,1,2,3) = .5; P(2,1,1,1) = .2;
P(1,2,1,1) = P(2,2,2,1) = 1;
P(1,3,1,1) = P(2,3,2,1) = 1;
N = [3 0];
[U R Q X] = qncmmva(N, S, P)
⇒
U =
R =
Q =
X =
6 References
[Aky88] Ian F. Akyildiz, Mean Value Analysis for Blocking Queueing Networks, IEEE
Transactions on Software Engineering, vol. 14, n. 2, april 1988, pp. 418–428.
DOI 10.1109/32.4663 (http://dx.doi.org/10.1109/32.4663)
[Bar79] Y. Bard, Some Extensions to Multiclass Queueing Network Analysis, proc. 4th
Int. Symp. on Modelling and Performance Evaluation of Computer Systems,
feb. 1979, pp. 51–62.
[BCMP75] F. Baskett, K. Mani Chandy, R. R. Muntz, and F. G. Palacios. 1975. Open,
Closed, and Mixed Networks of Queues with Different Classes of Customers. J.
ACM 22, 2 (April 1975), 248260, DOI 10.1145/321879.321887 (http://doi.
acm.org/10.1145/321879.321887)
[BGMT98]
G. Bolch, S. Greiner, H. de Meer and K. Trivedi, Queueing Networks and
Markov Chains: Modeling and Performance Evaluation with Computer Science
Applications, Wiley, 1998.
[Buz73] J. P. Buzen, Computational Algorithms for Closed Queueing Networks with Ex-
ponential Servers, Communications of the ACM, volume 16, number 9, septem-
ber 1973, pp. 527–531. DOI 10.1145/362342.362345 (http://doi.acm.org/
10.1145/362342.362345)
[C08] G. Casale, A note on stable flow-equivalent aggregation in closed
networks. Queueing Syst. Theory Appl., 60:193-202, December 2008,
DOI 10.1007/s11134-008-9093-6 (http: / / dx . doi . org / 10 . 1007 /
s11134-008-9093-6)
[CMS08] G. Casale, R. R. Muntz, G. Serazzi, Geometric Bounds: a Non-Iterative Anal-
ysis Technique for Closed Queueing Networks, IEEE Transactions on Com-
puters, 57(6):780-794, June 2008. DOI 10.1109/TC.2008.37 (http: / / doi .
ieeecomputersociety.org/10.1109/TC.2008.37)
[GrSn97] C. M. Grinstead, J. L. Snell, (July 1997). Introduction to Probability.
American Mathematical Society. ISBN 978-0821807491; this excellent
textbook is available in PDF format (http://www.dartmouth.edu/~chance/
teaching_aids / books_articles / probability_book / amsbook . mac . pdf)
and can be used under the terms of the GNU Free Documentation License
(FDL) (http://www.gnu.org/copyleft/fdl.html)
[Jac04] J. R. Jackson, Jobshop-Like Queueing Systems, Vol. 50, No. 12, Ten Most
Influential Titles of "Management Science’s" First Fifty Years (Dec., 2004),
pp. 1796-1802, available online (http://www.jstor.org/stable/30046149)
[Jai91] R. Jain, The Art of Computer Systems Performance Analysis, Wiley, 1991, p.
577.
[HsLa87] C. H. Hsieh and S. Lam, Two classes of performance bounds for closed queueing
networks, PEVA, vol. 7, n. 1, pp. 3–30, 1987
80 queueing
[Ker84] T. Kerola, The Composite Bound Method (CBM) for Computing Through-
put Bounds in Multiple Class Environments, Performance Evaluation, Vol. 6
Isue 1, March 1986, DOI 10.1016/0166-5316(86)90002-7 (http: / / dx . doi .
org / 10 . 1016 / 0166-5316(86)90002-7); also available as Technical Report
CSD-TR-475 (http://docs.lib.purdue.edu/cstech/395/), Department of
Computer Sciences, Purdue University, mar 13, 1984 (Revised aug 27, 1984).
[LZGS84] E. D. Lazowska, J. Zahorjan, G. Scott Graham, and K. C. Sevcik, Quantita-
tive System Performance: Computer System Analysis Using Queueing Network
Models, Prentice Hall, 1984. available online (http://www.cs.washington.
edu/homes/lazowska/qsp/).
[ReKo76] M. Reiser, H. Kobayashi, On The Convolution Algorithm for Separable Queue-
ing Networks, In Proceedings of the 1976 ACM SIGMETRICS Conference on
Computer Performance Modeling Measurement and Evaluation (Cambridge,
Massachusetts, United States, March 29–31, 1976). SIGMETRICS ’76. ACM,
New York, NY, pp. 109–117. DOI 10.1145/800200.806187 (http://doi.acm.
org/10.1145/800200.806187)
[ReLa80] M. Reiser and S. S. Lavenberg, Mean-Value Analysis of Closed Multichain
Queuing Networks, Journal of the ACM, vol. 27, n. 2, April 1980, pp. 313–322.
DOI 10.1145/322186.322195 (http://doi.acm.org/10.1145/322186.322195)
[Sch79] P. Schweitzer, Approximate Analysis of Multiclass Closed Networks of Queues,
Proc. Int. Conf. on Stochastic Control and Optimization, jun 1979, pp. 2529
[Sch80] H. D. Schwetman, Testing Network-of-Queues Software, Technical Report
CSD-TR 330 (http://docs.lib.purdue.edu/cstech/259/), Department of
computer Sciences, Purdue University, 1980
[Sch81] H. D. Schwetman, Some Computational Aspects of Queueing Network Models,
Technical Report CSD-TR-354 (http://docs.lib.purdue.edu/cstech/285/
), Department of Computer Sciences, Purdue University, feb, 1981 (revised).
[Sch82] H. D. Schwetman, Implementing the Mean Value Algorithm for the Solution
of Queueing Network Models, Technical Report CSD-TR-355 (http://docs.
lib.purdue.edu/cstech/286/), Department of Computer Sciences, Purdue
University, feb 15, 1982.
[Sch84] T. Kerola, H. D. Schwetman, Performance Bounds for Multiclass Models,
Technical Report CSD-TR-479 (http://docs.lib.purdue.edu/cstech/399/
), Department of Computer Sciences, Purdue University, 1984.
[Tij03] H. C. Tijms, A first course in stochastic models, John Wiley and Sons, 2003,
ISBN 0471498807, ISBN 9780471498803, DOI 10.1002/047001363X (http://
dx.doi.org/10.1002/047001363X)
[ZaWo81] J. Zahorjan and E. Wong, The solution of separable queueing network models
using mean value analysis. SIGMETRICS Perform. Eval. Rev. 10, 3 (Sep.
1981), 80-85. DOI 10.1145/1010629.805477 (http://doi.acm.org/10.1145/
1010629.805477)
[Zeng03] G. Zeng, Two common properties of the erlang-B function, erlang-C
function, and Engset blocking function, Mathematical and Computer
Chapter 6: References 81
Modelling, Volume 37, Issues 12-13, June 2003, Pages 1287-1296 DOI
10.1016/S0895-7177(03)90040-9 (http: / / dx . doi . org / 10 . 1016 /
S0895-7177(03)90040-9)
83
Preamble
The GNU General Public License is a free, copyleft license for software and other kinds of
works.
The licenses for most software and other practical works are designed to take away your
freedom to share and change the works. By contrast, the GNU General Public License is
intended to guarantee your freedom to share and change all versions of a program—to make
sure it remains free software for all its users. We, the Free Software Foundation, use the
GNU General Public License for most of our software; it applies also to any other work
released this way by its authors. You can apply it to your programs, too.
When we speak of free software, we are referring to freedom, not price. Our General
Public Licenses are designed to make sure that you have the freedom to distribute copies
of free software (and charge for them if you wish), that you receive source code or can get
it if you want it, that you can change the software or use pieces of it in new free programs,
and that you know you can do these things.
To protect your rights, we need to prevent others from denying you these rights or asking
you to surrender the rights. Therefore, you have certain responsibilities if you distribute
copies of the software, or if you modify it: responsibilities to respect the freedom of others.
For example, if you distribute copies of such a program, whether gratis or for a fee, you
must pass on to the recipients the same freedoms that you received. You must make sure
that they, too, receive or can get the source code. And you must show them these terms so
they know their rights.
Developers that use the GNU GPL protect your rights with two steps: (1) assert copy-
right on the software, and (2) offer you this License giving you legal permission to copy,
distribute and/or modify it.
For the developers’ and authors’ protection, the GPL clearly explains that there is no
warranty for this free software. For both users’ and authors’ sake, the GPL requires that
modified versions be marked as changed, so that their problems will not be attributed
erroneously to authors of previous versions.
Some devices are designed to deny users access to install or run modified versions of the
software inside them, although the manufacturer can do so. This is fundamentally incom-
patible with the aim of protecting users’ freedom to change the software. The systematic
pattern of such abuse occurs in the area of products for individuals to use, which is pre-
cisely where it is most unacceptable. Therefore, we have designed this version of the GPL
to prohibit the practice for those products. If such problems arise substantially in other
domains, we stand ready to extend this provision to those domains in future versions of the
GPL, as needed to protect the freedom of users.
84 queueing
Finally, every program is threatened constantly by software patents. States should not
allow patents to restrict development and use of software on general-purpose computers, but
in those that do, we wish to avoid the special danger that patents applied to a free program
could make it effectively proprietary. To prevent this, the GPL assures that patents cannot
be used to render the program non-free.
The precise terms and conditions for copying, distribution and modification follow.
The “System Libraries” of an executable work include anything, other than the work as
a whole, that (a) is included in the normal form of packaging a Major Component, but
which is not part of that Major Component, and (b) serves only to enable use of the
work with that Major Component, or to implement a Standard Interface for which an
implementation is available to the public in source code form. A “Major Component”,
in this context, means a major essential component (kernel, window system, and so
on) of the specific operating system (if any) on which the executable work runs, or a
compiler used to produce the work, or an object code interpreter used to run it.
The “Corresponding Source” for a work in object code form means all the source code
needed to generate, install, and (for an executable work) run the object code and to
modify the work, including scripts to control those activities. However, it does not
include the work’s System Libraries, or general-purpose tools or generally available
free programs which are used unmodified in performing those activities but which are
not part of the work. For example, Corresponding Source includes interface definition
files associated with source files for the work, and the source code for shared libraries
and dynamically linked subprograms that the work is specifically designed to require,
such as by intimate data communication or control flow between those subprograms
and other parts of the work.
The Corresponding Source need not include anything that users can regenerate auto-
matically from other parts of the Corresponding Source.
The Corresponding Source for a work in source code form is that same work.
2. Basic Permissions.
All rights granted under this License are granted for the term of copyright on the
Program, and are irrevocable provided the stated conditions are met. This License ex-
plicitly affirms your unlimited permission to run the unmodified Program. The output
from running a covered work is covered by this License only if the output, given its
content, constitutes a covered work. This License acknowledges your rights of fair use
or other equivalent, as provided by copyright law.
You may make, run and propagate covered works that you do not convey, without
conditions so long as your license otherwise remains in force. You may convey covered
works to others for the sole purpose of having them make modifications exclusively
for you, or provide you with facilities for running those works, provided that you
comply with the terms of this License in conveying all material for which you do not
control copyright. Those thus making or running the covered works for you must do
so exclusively on your behalf, under your direction and control, on terms that prohibit
them from making any copies of your copyrighted material outside their relationship
with you.
Conveying under any other circumstances is permitted solely under the conditions
stated below. Sublicensing is not allowed; section 10 makes it unnecessary.
3. Protecting Users’ Legal Rights From Anti-Circumvention Law.
No covered work shall be deemed part of an effective technological measure under
any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty
adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention
of such measures.
86 queueing
When you convey a covered work, you waive any legal power to forbid circumvention of
technological measures to the extent such circumvention is effected by exercising rights
under this License with respect to the covered work, and you disclaim any intention
to limit operation or modification of the work as a means of enforcing, against the
work’s users, your or third parties’ legal rights to forbid circumvention of technological
measures.
4. Conveying Verbatim Copies.
You may convey verbatim copies of the Program’s source code as you receive it, in any
medium, provided that you conspicuously and appropriately publish on each copy an
appropriate copyright notice; keep intact all notices stating that this License and any
non-permissive terms added in accord with section 7 apply to the code; keep intact all
notices of the absence of any warranty; and give all recipients a copy of this License
along with the Program.
You may charge any price or no price for each copy that you convey, and you may offer
support or warranty protection for a fee.
5. Conveying Modified Source Versions.
You may convey a work based on the Program, or the modifications to produce it from
the Program, in the form of source code under the terms of section 4, provided that
you also meet all of these conditions:
a. The work must carry prominent notices stating that you modified it, and giving a
relevant date.
b. The work must carry prominent notices stating that it is released under this Li-
cense and any conditions added under section 7. This requirement modifies the
requirement in section 4 to “keep intact all notices”.
c. You must license the entire work, as a whole, under this License to anyone who
comes into possession of a copy. This License will therefore apply, along with any
applicable section 7 additional terms, to the whole of the work, and all its parts,
regardless of how they are packaged. This License gives no permission to license
the work in any other way, but it does not invalidate such permission if you have
separately received it.
d. If the work has interactive user interfaces, each must display Appropriate Legal
Notices; however, if the Program has interactive interfaces that do not display
Appropriate Legal Notices, your work need not make them do so.
A compilation of a covered work with other separate and independent works, which
are not by their nature extensions of the covered work, and which are not combined
with it such as to form a larger program, in or on a volume of a storage or distribution
medium, is called an “aggregate” if the compilation and its resulting copyright are
not used to limit the access or legal rights of the compilation’s users beyond what the
individual works permit. Inclusion of a covered work in an aggregate does not cause
this License to apply to the other parts of the aggregate.
6. Conveying Non-Source Forms.
You may convey a covered work in object code form under the terms of sections 4 and
5, provided that you also convey the machine-readable Corresponding Source under
the terms of this License, in one of these ways:
Appendix A: GNU GENERAL PUBLIC LICENSE 87
a. Convey the object code in, or embodied in, a physical product (including a phys-
ical distribution medium), accompanied by the Corresponding Source fixed on a
durable physical medium customarily used for software interchange.
b. Convey the object code in, or embodied in, a physical product (including a physi-
cal distribution medium), accompanied by a written offer, valid for at least three
years and valid for as long as you offer spare parts or customer support for that
product model, to give anyone who possesses the object code either (1) a copy of
the Corresponding Source for all the software in the product that is covered by this
License, on a durable physical medium customarily used for software interchange,
for a price no more than your reasonable cost of physically performing this con-
veying of source, or (2) access to copy the Corresponding Source from a network
server at no charge.
c. Convey individual copies of the object code with a copy of the written offer to
provide the Corresponding Source. This alternative is allowed only occasionally
and noncommercially, and only if you received the object code with such an offer,
in accord with subsection 6b.
d. Convey the object code by offering access from a designated place (gratis or for
a charge), and offer equivalent access to the Corresponding Source in the same
way through the same place at no further charge. You need not require recipients
to copy the Corresponding Source along with the object code. If the place to
copy the object code is a network server, the Corresponding Source may be on
a different server (operated by you or a third party) that supports equivalent
copying facilities, provided you maintain clear directions next to the object code
saying where to find the Corresponding Source. Regardless of what server hosts
the Corresponding Source, you remain obligated to ensure that it is available for
as long as needed to satisfy these requirements.
e. Convey the object code using peer-to-peer transmission, provided you inform other
peers where the object code and Corresponding Source of the work are being offered
to the general public at no charge under subsection 6d.
A separable portion of the object code, whose source code is excluded from the Cor-
responding Source as a System Library, need not be included in conveying the object
code work.
A “User Product” is either (1) a “consumer product”, which means any tangible per-
sonal property which is normally used for personal, family, or household purposes, or
(2) anything designed or sold for incorporation into a dwelling. In determining whether
a product is a consumer product, doubtful cases shall be resolved in favor of coverage.
For a particular product received by a particular user, “normally used” refers to a
typical or common use of that class of product, regardless of the status of the par-
ticular user or of the way in which the particular user actually uses, or expects or is
expected to use, the product. A product is a consumer product regardless of whether
the product has substantial commercial, industrial or non-consumer uses, unless such
uses represent the only significant mode of use of the product.
“Installation Information” for a User Product means any methods, procedures, autho-
rization keys, or other information required to install and execute modified versions of a
covered work in that User Product from a modified version of its Corresponding Source.
88 queueing
The information must suffice to ensure that the continued functioning of the modified
object code is in no case prevented or interfered with solely because modification has
been made.
If you convey an object code work under this section in, or with, or specifically for
use in, a User Product, and the conveying occurs as part of a transaction in which
the right of possession and use of the User Product is transferred to the recipient in
perpetuity or for a fixed term (regardless of how the transaction is characterized),
the Corresponding Source conveyed under this section must be accompanied by the
Installation Information. But this requirement does not apply if neither you nor any
third party retains the ability to install modified object code on the User Product (for
example, the work has been installed in ROM).
The requirement to provide Installation Information does not include a requirement
to continue to provide support service, warranty, or updates for a work that has been
modified or installed by the recipient, or for the User Product in which it has been
modified or installed. Access to a network may be denied when the modification itself
materially and adversely affects the operation of the network or violates the rules and
protocols for communication across the network.
Corresponding Source conveyed, and Installation Information provided, in accord with
this section must be in a format that is publicly documented (and with an implementa-
tion available to the public in source code form), and must require no special password
or key for unpacking, reading or copying.
7. Additional Terms.
“Additional permissions” are terms that supplement the terms of this License by mak-
ing exceptions from one or more of its conditions. Additional permissions that are
applicable to the entire Program shall be treated as though they were included in this
License, to the extent that they are valid under applicable law. If additional permis-
sions apply only to part of the Program, that part may be used separately under those
permissions, but the entire Program remains governed by this License without regard
to the additional permissions.
When you convey a copy of a covered work, you may at your option remove any
additional permissions from that copy, or from any part of it. (Additional permissions
may be written to require their own removal in certain cases when you modify the
work.) You may place additional permissions on material, added by you to a covered
work, for which you have or can give appropriate copyright permission.
Notwithstanding any other provision of this License, for material you add to a covered
work, you may (if authorized by the copyright holders of that material) supplement
the terms of this License with terms:
a. Disclaiming warranty or limiting liability differently from the terms of sections 15
and 16 of this License; or
b. Requiring preservation of specified reasonable legal notices or author attributions
in that material or in the Appropriate Legal Notices displayed by works containing
it; or
c. Prohibiting misrepresentation of the origin of that material, or requiring that mod-
ified versions of such material be marked in reasonable ways as different from the
original version; or
Appendix A: GNU GENERAL PUBLIC LICENSE 89
d. Limiting the use for publicity purposes of names of licensors or authors of the
material; or
e. Declining to grant rights under trademark law for use of some trade names, trade-
marks, or service marks; or
f. Requiring indemnification of licensors and authors of that material by anyone who
conveys the material (or modified versions of it) with contractual assumptions
of liability to the recipient, for any liability that these contractual assumptions
directly impose on those licensors and authors.
All other non-permissive additional terms are considered “further restrictions” within
the meaning of section 10. If the Program as you received it, or any part of it, con-
tains a notice stating that it is governed by this License along with a term that is a
further restriction, you may remove that term. If a license document contains a further
restriction but permits relicensing or conveying under this License, you may add to a
covered work material governed by the terms of that license document, provided that
the further restriction does not survive such relicensing or conveying.
If you add terms to a covered work in accord with this section, you must place, in the
relevant source files, a statement of the additional terms that apply to those files, or a
notice indicating where to find the applicable terms.
Additional terms, permissive or non-permissive, may be stated in the form of a sep-
arately written license, or stated as exceptions; the above requirements apply either
way.
8. Termination.
You may not propagate or modify a covered work except as expressly provided un-
der this License. Any attempt otherwise to propagate or modify it is void, and will
automatically terminate your rights under this License (including any patent licenses
granted under the third paragraph of section 11).
However, if you cease all violation of this License, then your license from a particular
copyright holder is reinstated (a) provisionally, unless and until the copyright holder
explicitly and finally terminates your license, and (b) permanently, if the copyright
holder fails to notify you of the violation by some reasonable means prior to 60 days
after the cessation.
Moreover, your license from a particular copyright holder is reinstated permanently if
the copyright holder notifies you of the violation by some reasonable means, this is the
first time you have received notice of violation of this License (for any work) from that
copyright holder, and you cure the violation prior to 30 days after your receipt of the
notice.
Termination of your rights under this section does not terminate the licenses of parties
who have received copies or rights from you under this License. If your rights have
been terminated and not permanently reinstated, you do not qualify to receive new
licenses for the same material under section 10.
9. Acceptance Not Required for Having Copies.
You are not required to accept this License in order to receive or run a copy of the
Program. Ancillary propagation of a covered work occurring solely as a consequence of
using peer-to-peer transmission to receive a copy likewise does not require acceptance.
90 queueing
However, nothing other than this License grants you permission to propagate or modify
any covered work. These actions infringe copyright if you do not accept this License.
Therefore, by modifying or propagating a covered work, you indicate your acceptance
of this License to do so.
10. Automatic Licensing of Downstream Recipients.
Each time you convey a covered work, the recipient automatically receives a license
from the original licensors, to run, modify and propagate that work, subject to this
License. You are not responsible for enforcing compliance by third parties with this
License.
An “entity transaction” is a transaction transferring control of an organization, or
substantially all assets of one, or subdividing an organization, or merging organizations.
If propagation of a covered work results from an entity transaction, each party to that
transaction who receives a copy of the work also receives whatever licenses to the work
the party’s predecessor in interest had or could give under the previous paragraph, plus
a right to possession of the Corresponding Source of the work from the predecessor in
interest, if the predecessor has it or can get it with reasonable efforts.
You may not impose any further restrictions on the exercise of the rights granted or
affirmed under this License. For example, you may not impose a license fee, royalty, or
other charge for exercise of rights granted under this License, and you may not initiate
litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent
claim is infringed by making, using, selling, offering for sale, or importing the Program
or any portion of it.
11. Patents.
A “contributor” is a copyright holder who authorizes use under this License of the
Program or a work on which the Program is based. The work thus licensed is called
the contributor’s “contributor version”.
A contributor’s “essential patent claims” are all patent claims owned or controlled by
the contributor, whether already acquired or hereafter acquired, that would be infringed
by some manner, permitted by this License, of making, using, or selling its contributor
version, but do not include claims that would be infringed only as a consequence of
further modification of the contributor version. For purposes of this definition, “con-
trol” includes the right to grant patent sublicenses in a manner consistent with the
requirements of this License.
Each contributor grants you a non-exclusive, worldwide, royalty-free patent license
under the contributor’s essential patent claims, to make, use, sell, offer for sale, import
and otherwise run, modify and propagate the contents of its contributor version.
In the following three paragraphs, a “patent license” is any express agreement or com-
mitment, however denominated, not to enforce a patent (such as an express permission
to practice a patent or covenant not to sue for patent infringement). To “grant” such
a patent license to a party means to make such an agreement or commitment not to
enforce a patent against the party.
If you convey a covered work, knowingly relying on a patent license, and the Corre-
sponding Source of the work is not available for anyone to copy, free of charge and under
the terms of this License, through a publicly available network server or other readily
accessible means, then you must either (1) cause the Corresponding Source to be so
Appendix A: GNU GENERAL PUBLIC LICENSE 91
available, or (2) arrange to deprive yourself of the benefit of the patent license for this
particular work, or (3) arrange, in a manner consistent with the requirements of this
License, to extend the patent license to downstream recipients. “Knowingly relying”
means you have actual knowledge that, but for the patent license, your conveying the
covered work in a country, or your recipient’s use of the covered work in a country,
would infringe one or more identifiable patents in that country that you have reason
to believe are valid.
If, pursuant to or in connection with a single transaction or arrangement, you convey,
or propagate by procuring conveyance of, a covered work, and grant a patent license
to some of the parties receiving the covered work authorizing them to use, propagate,
modify or convey a specific copy of the covered work, then the patent license you grant
is automatically extended to all recipients of the covered work and works based on it.
A patent license is “discriminatory” if it does not include within the scope of its cover-
age, prohibits the exercise of, or is conditioned on the non-exercise of one or more of the
rights that are specifically granted under this License. You may not convey a covered
work if you are a party to an arrangement with a third party that is in the business of
distributing software, under which you make payment to the third party based on the
extent of your activity of conveying the work, and under which the third party grants,
to any of the parties who would receive the covered work from you, a discriminatory
patent license (a) in connection with copies of the covered work conveyed by you (or
copies made from those copies), or (b) primarily for and in connection with specific
products or compilations that contain the covered work, unless you entered into that
arrangement, or that patent license was granted, prior to 28 March 2007.
Nothing in this License shall be construed as excluding or limiting any implied license or
other defenses to infringement that may otherwise be available to you under applicable
patent law.
12. No Surrender of Others’ Freedom.
If conditions are imposed on you (whether by court order, agreement or otherwise) that
contradict the conditions of this License, they do not excuse you from the conditions
of this License. If you cannot convey a covered work so as to satisfy simultaneously
your obligations under this License and any other pertinent obligations, then as a
consequence you may not convey it at all. For example, if you agree to terms that
obligate you to collect a royalty for further conveying from those to whom you convey
the Program, the only way you could satisfy both those terms and this License would
be to refrain entirely from conveying the Program.
13. Use with the GNU Affero General Public License.
Notwithstanding any other provision of this License, you have permission to link or
combine any covered work with a work licensed under version 3 of the GNU Affero
General Public License into a single combined work, and to convey the resulting work.
The terms of this License will continue to apply to the part which is the covered work,
but the special requirements of the GNU Affero General Public License, section 13,
concerning interaction through a network will apply to the combination as such.
14. Revised Versions of this License.
92 queueing
The Free Software Foundation may publish revised and/or new versions of the GNU
General Public License from time to time. Such new versions will be similar in spirit
to the present version, but may differ in detail to address new problems or concerns.
Each version is given a distinguishing version number. If the Program specifies that
a certain numbered version of the GNU General Public License “or any later version”
applies to it, you have the option of following the terms and conditions either of that
numbered version or of any later version published by the Free Software Foundation.
If the Program does not specify a version number of the GNU General Public License,
you may choose any version ever published by the Free Software Foundation.
If the Program specifies that a proxy can decide which future versions of the GNU
General Public License can be used, that proxy’s public statement of acceptance of a
version permanently authorizes you to choose that version for the Program.
Later license versions may give you additional or different permissions. However, no
additional obligations are imposed on any author or copyright holder as a result of your
choosing to follow a later version.
15. Disclaimer of Warranty.
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PER-
MITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN
WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE
THE PROGRAM “AS IS” WITHOUT WARRANTY OF ANY KIND, EITHER EX-
PRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE
OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFEC-
TIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR
CORRECTION.
16. Limitation of Liability.
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO
MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE
LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, IN-
CIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR
INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO
LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUS-
TAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM
TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR
OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAM-
AGES.
17. Interpretation of Sections 15 and 16.
If the disclaimer of warranty and limitation of liability provided above cannot be given
local legal effect according to their terms, reviewing courts shall apply local law that
most closely approximates an absolute waiver of all civil liability in connection with
the Program, unless a warranty or assumption of liability accompanies a copy of the
Program in return for a fee.
Appendix A: GNU GENERAL PUBLIC LICENSE 93
You should have received a copy of the GNU General Public License
along with this program. If not, see http://www.gnu.org/licenses/.
Also add information on how to contact you by electronic and paper mail.
If the program does terminal interaction, make it output a short notice like this when it
starts in an interactive mode:
program Copyright (C) year name of author
This program comes with ABSOLUTELY NO WARRANTY; for details type ‘show w’.
This is free software, and you are welcome to redistribute it
under certain conditions; type ‘show c’ for details.
The hypothetical commands ‘show w’ and ‘show c’ should show the appropriate parts of
the General Public License. Of course, your program’s commands might be different; for a
GUI interface, you would use an “about box”.
You should also get your employer (if you work as a programmer) or school, if any, to
sign a “copyright disclaimer” for the program, if necessary. For more information on this,
and how to apply and follow the GNU GPL, see http://www.gnu.org/licenses/.
The GNU General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may consider it more
useful to permit linking proprietary applications with the library. If this is what you want
to do, use the GNU Lesser General Public License instead of this License. But first, please
read http://www.gnu.org/philosophy/why-not-lgpl.html.
95
Concept Index
A E
absorption probabilities, DTMC . . . . . . . . . . . . . . . . 16 Engset loss formula . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
approximate MVA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 Erlang-B formula . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
asymmetric M/M/m system . . . . . . . . . . . . . . . . . . . 32 Erlang-C formula . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
asymptotic bounds . . . . . . . . . . . . . . . . . . . . . . . . . 64, 65 expected sojourn time, CTMC . . . . . . . . . . . . . . . . . 21
average number of customers . . . . . . . . . . . . . . . 36, 51 expected sojourn times, DTMC . . . . . . . . . . . . . . . . 15
average number of visits . . . . . . . . . . . . . . . . . . . . 36, 50 external arrival rate . . . . . . . . . . . . . . . . . . . . . . . . 36, 50
F
B FCFS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
balanced system bounds . . . . . . . . . . . . . . . . . . . . 66, 67 first passage times . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
BCMP network . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 first passage times, CTMC . . . . . . . . . . . . . . . . . . . . . 24
birth-death process, CTMC . . . . . . . . . . . . . . . . . . . . 20 First-Come-First-Served. . . . . . . . . . . . . . . . . . . . . . . . 35
birth-death process, DTMC . . . . . . . . . . . . . . . . . . . . 14 fundamental matrix . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
blocking queueing network . . . . . . . . . . . . . . . . . . 48, 49
bounds, asymptotic . . . . . . . . . . . . . . . . . . . . . 63, 64, 65
bounds, balanced system . . . . . . . . . . . . . . . . . . . 66, 67
G
bounds, composite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 geometric bounds . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
bounds, geometric . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
bounds, PB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
I
infinite server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Infinite Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
C irreducible Markov chain . . . . . . . . . . . . . . . . . . . 11, 18
closed multiclass network . . . . . . . . . . . . . . . . . . . 65, 67 IS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
closed network . . . . . . . . . . . . . . . . . . . . . . . . . . 47, 65, 69
closed network, approximate analysis . . . . . . . . . . . 44
closed network, finite capacity . . . . . . . . . . . . . . 48, 49
L
closed network, multiple classes . . 53, 54, 55, 57, 62 Last-Come-First-Served Preemptive Resume . . . . 35
closed network, single class . . 41, 43, 44, 46, 49, 62, LCFS-PR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
64, 66, 68 load-dependent service center . . . . . . . . . . . . . . . 43, 47
CMVA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
composite bounds . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
conditional MVA (CMVA) . . . . . . . . . . . . . . . . . . . . . 44 M
continuous time Markov chain. . . 18, 19, 20, 21, 22, M/G/1 system. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
23, 24 M/Hm /1 system . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
convolution algorithm . . . . . . . . . . . . . . . . . . . . . . 46, 47 M/M/1 system . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
copyright . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 M/M/1/K system . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
CTMC . . . . . . . . . . . . . . . . . . . 18, 19, 20, 21, 22, 23, 24 M/M/inf system . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
M/M/m system . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
M/M/m/K system . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Markov chain, continuous time . . 18, 19, 20, 21, 22,
D 23, 24
delay center . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 Markov chain, discrete time . . 11, 12, 14, 15, 16, 17
deprecated functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 Markov chain, state occupancy probabilities . . . . 19
discrete time Markov chain . . 11, 12, 14, 15, 16, 17 Markov chain, stationary probabilities . . . . . . . . . . 12
Markov chain, transient probabilities . . . . . . . . . . . 12
DTMC . . . . . . . . . . . . . . . . . . . . . . 11, 12, 14, 15, 16, 17
mean recurrence times . . . . . . . . . . . . . . . . . . . . . . . . . 17
mean time to absorption, CTMC . . . . . . . . . . . . . . . 23
mean time to absorption, DTMC . . . . . . . . . . . . . . . 16
Mean Value Analysis, conditional (CMVA) . . . . . 44
Mean Value Analysys (MVA). . . . . . . . 41, 43, 55, 58
96 queueing
Function Index
C qncmvisits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
ctmc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 qncsaba . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
ctmcbd. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 qncsbsb . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
ctmcchkQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 qncscmva . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
ctmcexps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 qncsconv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
ctmcfpt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
qncsconvld . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
ctmcisir . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
ctmcmtta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 qncsgb. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
ctmctaexps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 qncsmva . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
qncsmvaap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
qncsmvablo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
D qncsmvald . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
dtmc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 qncspb. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
dtmcbd. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 qncsvisits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
dtmcchkP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
qnmarkov . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
dtmcexps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
dtmcfpt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 qnmix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
dtmcisir . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 qnmknode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
dtmcmtta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 qnom . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
dtmctaexps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 qnomaba . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
qnomvisits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
qnopen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
E qnos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
engset. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
qnosaba . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
erlangb . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
erlangc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 qnosbsb . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
qnosvisits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
qnsolve . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
Q qsammm. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
qnclosed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 qsmg1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
qncmaba . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 qsmh1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
qncmbsb . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 qsmm1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
qncmcb. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
qsmm1k. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
qncmmva . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
qncmmvabs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 qsmminf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
qncmnpop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 qsmmm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
qncmpopmix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 qsmmmk. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31