Consider an M/M/ queue with
priority classes, where class
jobs have preemptive priority over class
jobs for
(i.e. class 1 has the highest priority). The behavior of class 1 jobs is
not affected by the jobs of other classes. However, the behavior of
class 2 jobs depends on the number of class 1 jobs in the system.
Specifically, when there are
jobs of class 1,
servers are available for class 2 jobs. Likewise, the behavior of
class
jobs depends on the total number of higher priority (classes
)
jobs for
(when there are
higher priority jobs,
servers are available for class
jobs).
We will study the performance of the preemptive priority queue
in Chapter 4.
Below, we will model the preemptive priority queue as an RFB process.
![]()
(a) Extended RFB process.
Two equivalent QBD processes
|
As we have seen in Section 3.1, when , the
number of jobs in a priority M/M/
queue can be modeled as an FB
process where the background process,
, captures the number of
class 1 jobs (high priority jobs), and the foreground process,
,
captures the number of class 2 jobs (low priority jobs). Here, the
level
of
corresponds to the state with
high priority
jobs. Note that the number of servers available for low priority jobs
(and hence the behavior of
) is determined by the number of high
priority jobs (equivalently, the level of
).
When , the number of jobs in a priority M/M/
queue can be
modeled as an ``extended'' RFB process having
(QBD) processes. In
the ``extended'' RFB process, the transitions in the
-th process
depend on the level of a process,
, that is
equivalent to the
-th process,
(see
Figure 3.15(a)). Here, the only difference between
and
is how levels are defined in these
two processes. Specifically, the level of
corresponds to
the number of class
jobs, while the level of
corresponds to the total number of higher priority (classes
) jobs.
Number of class
![]() ![]()
(a) when there are
![]() ![]()
(b) when there is
![]() ![]() ![]()
(c) when there are
![]() ![]()
(d) when there are ![]() |
Figures 3.15(b)-(c) show two equivalent QBD processes
with different definitions of levels. Figure 3.15(b)
is the 1D Markov chain that is reduced from a 2D Markov chain in the
analysis of an M/M/2 queue with two priority classes (high priority
and middle priority) via DR. (Recall the dimensionality reduction
from Figure 3.3(c) to Figure 3.3(d);
the low priority jobs are replaced by
the middle priority jobs in Figure 3.15(b).) In the QBD process of
Figure 3.15(b), level consists of the
states with
middle priority jobs. Observe that the QBD process
in Figure 3.15(c) is exactly the same as the QBD
process in Figure 3.15(b) except that they have
different layout of states. In the QBD process of
Figure 3.15(b), level 0 and level 1 consist of the
states with 0 and 1 total jobs in the system, respectively. For
, level
consists of states with
total jobs in the system. Since the bottom two rows have states with
high priority jobs, the exact number of high priority jobs is not
known (and hence the total number of jobs is not known, either).
However, note that the QBD process in Figure 3.15(c)
is exactly what we need in the analysis of low priority jobs
in an M/M/2 queue with three priority classes (high, middle, and low).
The behavior of the low priority jobs is determined by whether
there are 0, 1, or
higher priority (high or middle priority) jobs in the system,
and hence by the level of the QBD process in Figure 3.15(c).
In the general case of an M/M/ queue with
priority classes, it
is intuitively easy to see that there is a QBD process
that is equivalent to
such that the level of
corresponds to the total number of higher priority
jobs in the system, since any event (job arrival or completion)
changes the total number of jobs (and hence the level of
) by 1. Since all the transitions are between neighboring
levels, the process is a QBD process. For completeness,
Figure 3.16 shows the Markov chains for the number of
class
jobs conditioned on the number of higher priority (classes
) jobs in the system.