On a dual queueing system with preemptive priority service discipline

On a dual queueing system with preemptive priority service discipline

European Journal of Operational Research 161 (2005) 224–239 www.elsevier.com/locate/dsw Stochastics and Statistics On a dual queueing system with pr...

349KB Sizes 6 Downloads 114 Views

European Journal of Operational Research 161 (2005) 224–239 www.elsevier.com/locate/dsw

Stochastics and Statistics

On a dual queueing system with preemptive priority service discipline A. Bedford, P. Zeephongsekul

*

Department of Mathematics and Statistics, Royal Melbourne Institute of Technology, RMIT University, City Campus, GPO Box 2476V, Melbourne 3001, Victoria, Australia Received 21 May 2002; accepted 6 June 2003 Available online 13 November 2003

Abstract In this paper, we use matrix–analytic methods to construct a novel queueing model called the dual queue. The dual queue has the additional feature of a priority scheme to assist in congestion control. Detailed structure of the infinitesimal generator matrix is derived and used in the solution process. Using a computational algorithm, which utilises a combination of iterative and elementary matrix techniques, the steady state solution is obtained for all queues with a finite buffer. Finally, we present numerical examples to illustrate the algorithm. Ó 2003 Elsevier B.V. All rights reserved. Keywords: Multi-priority dual queue; Matrix–analytic method; Preemptive priority

1. Introduction The dual queue was designed to improve the performance characteristics for customers in communication networks. Specifically, it was designed to not only improve existing notions of fairness, but also to maximise the number of customers who receive good service. In [10] the new scheduling discipline called the dual queue was proposed and was shown to be superior in many criteria over existing FIFO and fair queueing schemes in a series of packet simulations. This work has recently been extended to include wireless local area networks [19], and with some minor adjustments, the dual queue scheme has again proved superior to existing schemes using simulated packet traffic. Where these two models differ from the one presented in this paper is that we include a class-based priority scheme and discard the time-out criteria used in [10,19]. Much of the exhaustive analysis in the theoretical arena has been on modifications of the basic two finite queues or buffers. For example, length threshold [11], cyclic servers [9], synchronisation queues [20], Bernoulli schedules [13], Bernoulli schedules with switching times [8] and dynamic server assignment [5] are some of the modifications to the basic dual queue model analysed. None of these

*

Corresponding author. Tel.: +61-3-99253224; fax: +61-3-99251748. E-mail address: [email protected] (P. Zeephongsekul).

0377-2217/$ - see front matter Ó 2003 Elsevier B.V. All rights reserved. doi:10.1016/j.ejor.2003.06.024

A. Bedford, P. Zeephongsekul / European Journal of Operational Research 161 (2005) 224–239

225

however, include a priority scheme. Nevertheless, priority schemes have been used throughout many communications models [14], including wireless packet communications [17]. We have shown through extensive simulations in [2,3] that the dual queue with a priority scheduling scheme for multi-classes of customers clearly outperforms multi-classes of customers alone in a single queue for both priority and nonpriority schemes. In the model proposed in this paper, two classes of customers arrive to the dual queueing system as two independent Poisson processes. The class of customers labelled 1 (the high class) has a mean arrival rate k1 and the other class, labelled 2 (the low class), has mean arrival rate k2 . The dual queue is partitioned into the primary queue and secondary queue. There is a single server at the primary queue dispensing an exponentially distributed service time with rate li to class i customers, i ¼ 1, 2. Both queues have finite capacity. The primary queue employs a preemptive priority service discipline where class 1 customers have priority over class 2 customers. When an arriving customer finds the primary queue full, he waits in the secondary queue (provided it isnÕt full) which has no service facility and only serves as a holding queue for the overloaded primary queue. If both queues are full, an arriving customer is lost to the system. In the secondary queue, customers also arrange themselves in order of priority, with class 1 customers ahead of class 2 customers. Once a space is vacant in the primary queue, the head of the line in the secondary queue joins the primary queue. A schematic diagram describing the dual queues is given below in Fig. 1, where Nq is the number in the queue (including one in service), and ci is the capacity of queue i; i ¼ 1, 2. In the sequel, we refer to the system described as a multiple priority dual queue (MPDQ). This system was devised to partition a single ðM1 þ M2 =M=1=c1 Þ into two queues with finite waiting room so some lower class traffic would have an opportunity to pass through the system even with the existence of a higher class customer in the combined system. For example, if the primary queue is full of class 2 customers, then any arriving class 1 customer cannot enter service or enter the primary queue and must wait in the secondary queue until a space becomes vacant in the primary queue. This model brings together the ideas of differentiated classes of customers as proposed in [18] with the improved quality of service of the simple dual queue design. The remarkable ability to solve complicated queueing systems using matrix–analytic methods has been explored in detail in [12,15,16]. Also, many queueing systems are solved using computational recursive algorithms (cf. [1,4,6,7]). In this paper, a combination of the two is used to provide a novel approach to obtaining the solution of the steady-state probabilities to the dual queue discussed above. If the infinitesimal generator can be presented in a block tridiagonal form, then this will, in principle, lead to an explicit solution of the steady-state distribution through simple algorithms. While based on this idea, the steadystate distribution obtained in this paper is not derived in the conventional way. This is due to the fact that

Fig. 1. The multiple priority dual queue.

226

A. Bedford, P. Zeephongsekul / European Journal of Operational Research 161 (2005) 224–239

the states we described for the dual queues do not render the infinitesimal generator into a workable block tridiagonal form. Also, not all submatrices are invertible, specifically the ones representing transitions between the primary and secondary queues. A computational algorithm will be devised which will circumvent these difficulties and produce an approach to solving dual queues of this type in a systematic way. We remark here that the general approach we have adopted is similar to that of [21,22] in their analysis of a single finite capacity queue with non-preemptive priority scheduling. Section 2 describes the states of the MPDQ system and its corresponding infinitesimal generator matrix. We then exhibit the system of vector–matrix linear equations which are required to obtain solution of the steady-state distribution in Section 3. In Section 4, we present a computational algorithm to solve these systems of equations and finally in Section 5, we demonstrate the algorithm by applying it to some examples. In the sequel, Rn refers to the Euclidean space of dimension n and vt refers to the transpose of a vector v. Also, the symbol 1f g denotes the indicator function of the set f g.

2. State space The process describing the states of our MPDQ system is a homogeneous ergodic Markov process which takes values in a state space S. S can be partitioned in two distinct ways, corresponding to the case when the secondary queue is empty and when it is not empty respectively. In the first case, define S1 ¼ fði; jÞ : 0 6 i þ j 6 c1 g where the first number of the pair i ¼ number of customers of class 1 and j ¼ number of customers of class 2. In the second case, define S2 ¼ fði; i0 ; j0 Þ : 0 6 i0 þ j0 6 c2 ; i ¼ 0; 1; . . . ; c1 g where i0 ¼ number of customers of class 1 and j0 ¼ the number of customers of class 2 in the secondary queue. As the primary queue is full, there is no need to state the number of class 2 customers as this is simply given by c1  i. Therefore, the state space is S ¼ S1 [ S2 . The steady-state distribution will be represented as a vector dependent upon the size of each of the two queues. The labelling of the members of the vector is done according to the following lexicographical ordering: i ¼ fði; 0Þ; ði; 1Þ; . . . ; ði; c1  iÞg; i0 ¼ fði; 0; 1Þði; 0; 2Þ; . . . ; ði; 0; c2 Þg; i ¼ 0; 1; 2; . . . ; c1 and for j ¼ 1; 2; . . . ; c2 ij ¼ fði; j; 0Þ; ði; j; 1Þ; . . . ; ði; j; c2  jÞg: The vector is constructed so that its components are ordered using the above labelling scheme, which gives us   pt ¼ pt0 ; pt0;0 ; . . . ; pt0;c2 ; pt1 ; pt1;0 ; . . . ; pt1;c2 ; . . . ; ptc1 ; ptc1 ;0 ; . . . ; ptc1 ;c2 ; 1

2

where pt 2 R2ðc1 þ1Þðc2 þ3c2 þc1 þ2Þ . The components of the above steady-state distribution can be described as follows: pi is the probability vector that is defined when there are no customers present in the secondary queue, whereas pij is the probability vector that is defined when there are customers present in the secondary queue (so the primary queue is full). Any probability that is a component of the first type of vector has general form pi;j and any probability that is a component of the second type of vector has general form pi;i0 ;j0 . Thus, for the primary queue, t

pi ¼ ðpi;0 ; pi;1 ; . . . pi;c1 i Þ 2 Rc1 iþ1 ; and for the secondary queue when j ¼ 0,

i 2 f0; . . . ; c1 g;

A. Bedford, P. Zeephongsekul / European Journal of Operational Research 161 (2005) 224–239

pi;0 ¼ ðpi;0;1 ; pi;0;2 ; . . . ; pi;0;c2 Þt 2 Rc2 ;

227

i 2 f0; . . . ; c1 g;

and when j > 0,  t pi;j ¼ pi;j;0 ; pi;j;1; . . . pi;j;c2 j 2 Rc2 jþ1 ;

i 2 f0; . . . ; c1 g; j 2 f1; . . . ; c2 g:

2.1. Infinitesimal generator matrix A The steady-state distribution pt exists and is obtained by solving the Chapman–Kolmogorov system of equations pt A ¼ 0;

ð1Þ

where 0 is the vector of zeroes of an appropriate dimension and A is the infinitesimal generator matrix of the process. A is a square matrix (refer to 2) of dimension 12 ðc1 þ 1Þðc22 þ 3c2 þ c1 þ 2Þ which is quite large even for a small queue capacity. For example a primary queue of capacity 4 and secondary of capacity 6 will generate a matrix A of dimension 150. From the description of the dual queueing system given, A can be partitioned into submatrices whose detailed structure will be described in detail below. The general structure of A is given by 1 0 K0 P0 0 ... ... 0 BX K P ... ... 0 C 1 1 C B 1 B . .. C . . C B . . . . ... . C . . B 0 C; B ð2Þ A¼B .. .. .. .. C B 0 . 0 C . . . C B . .. C B . A @ . . X K P c1 1

0

c1 1

0

...

Xc1

c1 1

Kc1

where 0

D0

BO B 0;l2 B B B K0 ¼ B B B B B @

M0;k2

M0;k1

D0;0

Q0;k1 D0;1

1 C C C C C C; .. C . C C .. C . R0;c2 1;k1 A

R0;1;k1 .. .

D0;c2 0N

0;k1

B 0 B B B S0;l B 2 P0 ¼ B B B B B @

1

0 0 U0;1;l2

..

.

..

.

..

.

..

.

..

.

U0;c2 ;l2 and, for i ¼ 1; 2; . . . ; c1 ,

C C C C C C C C C C A 0

228

A. Bedford, P. Zeephongsekul / European Journal of Operational Research 161 (2005) 224–239

0

Di

B B BS B i;l1 B B B Ki ¼ B B B B B B @

Mi;k2 Di;0 Ui;1;l1

1

Mi;k1 Qi;k1 Di;1

Ri;1;k1

Ui;2;l1

Di;2 Ui;3;l1

..

.

..

.

..

.

.

..

.

..

C C C C C C C C; C C C C C Ri;c2 1;k1 A

Ui;c2 ;l1 0

Pi;l1 B Yi;l1 B B 0 Xi ¼ B B ... B @



0 Ti;l1 0

..

0

Di;c2

1 C C C C C C A

.

0

0

and 0

Ni;k1 B 0 B Pi ¼ B .. @ .

0 0

..

0

0

1 C C C: A

. 0

All blank areas in the above submatrices are zeroes. Note that as the dual queues may have a combination of mixed odd and even capacities, some of the submatrices are not square matrices and hence noninvertible. Also, some of the submatrices contain only one non-zero element while others are in the familiar tridiagonal form. Incorporating all the state transitions generated by the arrival and departure patterns together with the structures of the MPDQ system, we will describe the above submatrices of A in full detail and fill in the entries of each submatrix with the appropriate rate parameters ki , li , i ¼ 1, 2 and k ¼ k1 þ k2 . 2.1.1. State transitions and detailed structures of submatrices The following detailed descriptions of the submatrices of A are obtained from the assumptions of the MPDQ and they mirror the arrivals to and departures from and between the primary and secondary queues. To begin with, the D matrices will be defined. These are all in tridiagonal form and they are square matrices: 1 0 k k2 . C B C B l2 ðl2 þ kÞ . . C B C B . . C B . . . . l2 C B D0 ¼ B C; .. .. C B C B . k2 . C B C B .. A @ . ðl2 þ kÞ k2 l2 where D0 2 R

ðc1 þ1Þ ðc1 þ1Þ

.

ðl2 þ kÞ

A. Bedford, P. Zeephongsekul / European Journal of Operational Research 161 (2005) 224–239

0 B B B B B Di ¼ B B B B @

ðl1 þ kÞ 0 .. .

0 .. ðl1 þ kÞ . .. 0 . .. .



k2

.. .. ..



0

where Di 2 Rðc1 iþ1Þ ðc1 iþ1Þ , i ¼ 1; 2; . . . ; c1 , 0 k2 0 ðl2 þ kÞ B .. B l2 ðl2 þ kÞ . B B .. B . l2 D0;0 ¼ B B .. .. B . . B B @ 0 where D0;0 2 Rðc2 Þ ðc2 Þ . 0 k2 ðl1 þ kÞ B B 0 ðl1 þ kÞ B B B 0 Di;0 ¼ B .. B . B B @ 0 where Di;0 2 Rðc2 Þ ðc2 Þ , i ¼ 1; 2; . . . ; c1 , 0 k2 ðl2 þ kÞ B B 0 ðl2 þ kÞ B B B 0 D0;j ¼ B .. B . B B @ 0

.. .

.

0

k2

.

k2 . ðl1 þ kÞ 0 ðl1 þ kÞ

and Dc1 ¼ ðl1  kÞ. ..

.

..

.

..

0 .. . .. . .. .

..

.

..

0 .. .

. k2

. ðl2 þ kÞ l2

.. .. ..



.

..

k2 l2 0 .. .

. k2

.

0

. ðl1 þ kÞ 0

0 k2 l1

and Dc1 ;0 ¼ ðl1 Þ. 0 .. . .. . .. .

.. .. ..



1

0

. .

..

0 .. .

. k2

0

. ðl2 þ kÞ k2 0 l2

1 C C C C C C; C C C C A

1 C C C C C C; C C C A

1 C C C C C C; C C C A

where D0;j 2 Rðc2 jþ1Þ ðc2 jþ1Þ , j ¼ 1; 2; . . . ; c2 , and D0;c2 ¼ ðl2 Þ. 1 0 k2 0 0 ðl1 þ kÞ . C B C B 0 ðl1 þ kÞ . . B .. C .. .. .. C B B . C . . 0 . Di;j ¼ B C; .. .. .. C B . k2 . . 0 C B C B .. A @ . ðl1 þ kÞ k2 0 0 l1

C C C C C C; C C C A

229

230

A. Bedford, P. Zeephongsekul / European Journal of Operational Research 161 (2005) 224–239

where Di;j 2 Rðc2 jþ1Þ ðc2 jþ1Þ , i ¼ 1; 2; . . . ; c1 , j ¼ 1; 2; . . . ; c2 , and Dc1 ;c2 ¼ ðl1 Þ. In the above, the matrix Di is the infinitesimal generator corresponding to transitions between states in i whereas Di;j is the infinitesimal generator corresponding to transitions between states in ij. Next we consider all the off-diagonal submatrices. In the following, we will display each of these submatrices. The states between transitions and corresponding instantaneous rates giving rise to these transitions are summarised in the accompanying tables. 0 1 0 0 0 B ... ... . . . ... C ðc1 iþ1Þ ðc2 Þ C Mi;kk ¼ B : @ 0 0 0A 2 R kk 0 0 From

To

Rate

(0; c1 ) (0; c1 ) (i; c1  i) (i; c1  i)

(0; 1; 0) (0; 0; 1) (i; 1; 0) (i; 0; 1)

k1 k2 k1 k2

where i ¼ 1; 2; . . . ; c1 and k ¼ 1, 2; 1 0 .. 0 . 0 k C B 1 .. C .. .. B B0 . C . . C B ðc iþ1Þ ðc1 iÞ .. Ni;k1 ¼ B .. . . : C2R 1 . 0C . B . C B . @ .. 0 k1 A 0 0

ð3Þ

From

To

Rate

(i; j)

(i þ 1; j)

k1

where i ¼ 0; 1; . . . ; c1  1, j ¼ 0; 1; . . . ; c1  i  1; 0 1 0 l1 0 .. C .. .. B B . C 2 Rðc1 iþ1Þ ðc1 iþ2Þ : . Pi;l1 ¼ B 0. . . C @ .. A .. l ... 1 0 0 l1 0

ð4Þ

From

To

Rate

(i; j)

(i  1; j)

l1

where i ¼ 1; . . . ; c1 , j ¼ 0; . . . ; c1  i; 0 1 0 0 l1 B C Yi;l1 ¼ @ ... . . . 0 A 2 Rðc2 Þ ðc1 iþ2Þ : 0



0

ð5Þ

A. Bedford, P. Zeephongsekul / European Journal of Operational Research 161 (2005) 224–239

From

To

Rate

(i; 0; 1)

(i  1; c1  i þ 1)

l1

where i ¼ 1; . . . ; c1 ; 0 0 0 Bl ... B Ti;l1 ¼ B 1 . @0 .. ... 0 0 l1

0

1

C C 2 Rðc2 Þ ðc2 Þ : .. C A . 0

ð6Þ

From

To

Rate

(i; 0; j)

(i  1; 0; j  1)

l1

where i ¼ 1; . . . ; c1 , j ¼ 2; . . . ; c2 ; 0 1 0 0 l2 . B .. . . C B . .. 0 C 2 Rðc2 Þ ðc1 þ1Þ : O0;l2 ¼ B . C @ 0 0 ... A 0



0

231

ð7Þ

0

From

To

Rate

(0; 0; 1)

(0; c1 )

l2

1 0 0 0 k1 C B. . B .. .. ... 0 C C 2 Rðc2 Þ ðc2 Þ ; B Qi;k1 ¼ B C @ k1 A 0 0 0 0 1 0 k1 0 Q0 ¼ @ 0 0 k1 A for c2 ¼ 3: 0 0 0 0

where Q0;k1 ¼

0 0

k1 0

for c2 ¼ 2 and

ð8Þ

From

To

Rate

(i; 0; j)

(i; 1; j)

k1

where i ¼ 0; . . . ; c1 , Similarly, 0 k1 B B0 Ri;j;k1 ¼ B B .. @ . 0 0 k1 B R1;j;k1 ¼ @ 0 0

j ¼ 0; . . . ; c2  1. 0 .. ..

.

0

1

C 0C C 2 Rðc2 jþ1Þ ðc2 jÞ ; C k1 A 0

. 1 0 C k1 A for c2 ¼ 3: 0

where R1;j;k1 ¼

k1 ; for c2 ¼ 2; and 0

232

A. Bedford, P. Zeephongsekul / European Journal of Operational Research 161 (2005) 224–239

From

To

Rate

(i; j; k)

(i; j þ 1; k)

k1

where i ¼ 0; . . . ; c1 , j ¼ 1; . . . ; c2  1, k ¼ 0; . . . ; c2  j  1; 0 1 0 0 lc . B .. . . C B . .. 0 C 2 Rðc2 Þ ðminfc1 ;c1 iþ1gÞ : Si;lc ¼ B . C @ 0 0 ... A 0 0 0

ð9Þ

From

To

Rate

(0; 1; 0) (i; 1; 0)

(1; c1 ) (i; c1  i)

l2 l1

where i ¼ 0; . . . ; c1 , c ¼ 1, 2. Finally, 0 0 0 Bl ... B Ui;1;l1 ¼ B 1 . @0 .. ... 0 0 l1 where



U0;1;l2 ¼ and

0 l2

0

Ui;j;l1

0 0

0

1

C C 2 Rðc2 Þ ðc2 Þ ; .. C A . 0

ð10Þ

for c2 ¼ 2

l1 B0 B ¼B . @ ..

0 l1 .. .

... ... .. .

0 0 .. .

1 0 0C C ðc jþ1Þ ðminfc2 ;c2 jþ2gÞ ; .. C 2 R 2 .A

0

0

...

l1

0

ð11Þ

ð12Þ

for j P 2: From

To

Rate

(0; j; k) (i; j; k)

(1; j  1; k) (i; j  1; k)

l2 l1

where i ¼ 0; . . . ; c1 , j ¼ 1; . . . ; c2 , k ¼ 0; . . . ; c2  j, c ¼ 1, 2.

3. Linear system of steady state distributions To establish the general technique used later in the computational algorithm, we will first establish the system of linear equations using the generic matrices Ki , Pi and Xi . Let

A. Bedford, P. Zeephongsekul / European Journal of Operational Research 161 (2005) 224–239

  ati ¼ pti ; pti;0 ; pti;1 ; . . . ; pti;c2 ;

233

ð13Þ

where i ¼ 0; . . . ; c1 . Therefore pt ¼ ðat0 ; at1 ; . . . ; atc1 Þ and the system (1) can be described by   at0 ; at1 ; . . . ; atc1 A ¼ 0:

ð14Þ

Expanding the above, we obtain the following system of linear equations: 1fi P 1g ðati1 Pi1 Þ þ ati Ki þ 1fi
ð15Þ

where i ¼ 0; . . . ; c1 . From (15) we obtain c1 þ 1 equations in vector–matrix form. Using the detailed structures of the matrices Pi , Ki and Xi displayed in Section 2.1, the system can be further expanded into several equations in matrix–vector form. For example, for i ¼ 0 in (15) we have the following c2 þ 2 vector–matrix equations involving submatrices of K0 and X1 : pt0 D0 þ pt0;0 O0;l2 þ pt1 P1;l1 þ pt1;0 Y1;l1 ¼ 0; pt0 M0;k2 þ pt0;0 D0;0 þ pt1;0 T1;l1 ¼ 0; pt0 M0;k1 þ pt0;0 Q0;k1 þ pt0;1 D0;1 ¼ 0; pt0;i R0;i;k1 þ pt0;iþ1 D0;iþ1 ¼ 0 for i ¼ 1; 2; . . . ; c2  1. Finally, the system must satisfy the normalisation constraint, that is pt e ¼ 1; where e is a vector of 1Õs.

4. Computational algorithm In this section, we develop the computational algorithm which will be used to solve the MPDQ. While the process is quite complicated, the idea is based on the structures given by (15). To illustrate the idea, let us consider a MPDQ system with queue 1 and queue 2 each with capacity 3. The system of generic equations given by (15) gives us at0 K0 þ at1 X1 ¼ 0; at0 P0 þ at1 K1 þ at2 X2 ¼ 0; at1 P1 þ at2 K2 þ at3 X3 ¼ 0; at2 P2 þ at3 K3 ¼ 0: The algorithm is based on solving all probabilities within ac1 first. Once this is achieved, we can immediately solve ac1 1 . So in reference to the above example, we solve all probabilities within a3 and hence can solve all probabilities within a2 using the last equation. Once these two general states are solved we continue back until a1 and a0 are finally solved. As we will see, the algorithm requires more specific manipulations than the broad outline given. To simplify the process, we will define each stage of the process either by the state of ai that is being solved, or by a sub-stage that may work across the states. Firstly we define some commonly recurring constants: ai;j ¼

li ; lj þ k

vi;j ¼

ki lj þ k

and

qi ¼

ki where k ¼ k1 þ k2 ; i; j 2 f1; 2g: li

234

A. Bedford, P. Zeephongsekul / European Journal of Operational Research 161 (2005) 224–239

4.1. ac1 stage In this stage, we solve for all probabilities within ac1 . We begin with this stage by initially setting pc1 ;c2 1;0 ¼ 1. Within ac1 there is almost no dependence upon states outside of ac1 , except for the transition from (c1  1, 0) to (c1 , 0) with rate k1 , hence this is the simplest place to begin. Using this initial value, we immediately obtain pc1 ;c2 ¼ ðpc1 ;c2 ;0 Þ ¼ ðq1 Þ:

ð16Þ

We can now find all pc1 ;j;0 and pc1 ;0 using 1 1fj>0g pc1 ;j;0 þ 1fj¼0g pc1 ;0 ¼ v1 1;1 pc1 ;jþ1;0  q1 pc1 ;jþ2;0 ;

ð17Þ

starting with j ¼ c2  2 and progressing down to 0. With the pc1 ;j;0 states solved in (16) and (17), we can use them to find all pc1 ;i , where i ¼ 0; 1; . . . ; c2 . This is accomplished by solving the following equation recursively: pc1 ;i;j ¼ 1fi1g pc1 ;i;j1 Þ þ 1fi>0g v1;1 pc1 ;i1;j  k2 pc1 ;i;j1 þ q1 pc1; i1;j : þ 1fi¼c2 jg l1

ð18Þ

In (18), we begin by setting j ¼ 1. This is incremented by 1 up to c2  1 after we obtain pc1 ;i;j for i ¼ 0; 1; . . . ; c2  j. Then simply substitute pc1 ;c2 j;j into pc1 ;c2 j1;j of the previous equation and simplify. In this way continue down finally obtaining solution for pc1 ;0;j . After which we forward solve for all pc1 ;i;j for i ¼ 1; . . . ; c2  j. To finish this stage, pc1 ;0;c2 ¼

k2 pc ;0;c 1 : l1 1 2

ð19Þ

The next step in the procedure is the preliminary stage to working back through the A matrix down the partitions. We solve for pi;0 , where i ¼ 0; . . . ; c1  1 using the following equation:   1 1fi¼c1 1g piþ1;1;0 þ 1fi1g ðq2 p0;j 2 Þ þ 1fj ¼1g þ 1fj >1g a2;2 p0;j 1  1 p1;j 1 : l2 l2 Now, for i ¼ i , i  1; . . . ; 1,

  pi;j ¼ v2;1 pi;j 1 þ v1;1 pi1;j þ a1;1 1fi¼i g ðpi;1;0 þ piþ1;0;1 Þ þ 1fi
ð21Þ

where pi1;j , pi;j 1 are solved. Now simply substitute p1;j into p2;j and so on, and we end up with pi ;1 in terms of pi ;1;0 . Label this solution (A). Next, for j ¼ 1; . . . ; c2 , pi ;j;0 ¼ v1;1 ð1fj¼1g pi ;c1 i þ 1fc2 >j>1g pi ;j1;0 Þ þ 1fj¼c2 g q1 pi ;j1;0 þ 1fj
ð22Þ

A. Bedford, P. Zeephongsekul / European Journal of Operational Research 161 (2005) 224–239

235

So back substitute pi ;c2 ;0 into pi ;c2 1;0 and so on we again obtain pc1 1;1 in terms of pc1 1;1;0 . Label this solution (B). Using the results from (21) and (22), we have a solution for pc1 1;1;0 . This is obtained by substituting (B) into (A). Going back with this solution we forward solve for pi ;1;0 ; pi ;2;0 ; . . . ; pi ;c2 ;0 from (22) and pi ;j ; pi 1;j ; . . . ; p1;j from (21). Now we use a nested loop to solve the rest of the states. For the nesting, we initialise by setting k ¼ 1. We increment after completion through the j stages, then k, then i. First set j ¼ 0, i ¼ i : Step 2 For j ¼ 0; 1; . . . ; c2  k; (and if k ¼ c2 ), i ¼ i ; pi;j;k ¼ 1fjj>0Þ[ððc2 >k>1Þ\j¼0Þg pi;j;k1 Þ þ 1fj¼c2 k[k¼c2 g

k2 pi;j;k1 þ 1fj¼0\kj>0Þg v1;1 þ 1fk
ð23Þ

Now it is simply a case of substituting in (23) pi;0;k into pi;1;k and so on, ending up with the final substitution into pi;j;k . Then by back substitution, we obtain solutions for pi;0;k up to pi;j;k . This is one cycle of this step. Return to Step 2 adding one to k, stopping on completion of k ¼ c2 . After this looping process, we check if i < c1  1. If this is the case, we then calculate across for the rest of the primary queue space for an immediate solution. So for j ¼ 2; . . . ; c1  i ; pi;j ¼ v1;1 pi1;j þ a1;1 piþ1;j þ v2;1 pi;j1 :

ð24Þ

Now i ¼ i  1; j ¼ j þ 1 returning to Step 1, stopping when i ¼ 2 is complete. In this way, we solve the states pi , where i ¼ 2; . . . ; c1  1, and pi;j , where i ¼ 2; . . . ; c1  1, j ¼ 0; . . . ; c2 . 4.3. ai , i ¼ 0; 1 stage The solution process for the final two partitions of the A matrix requires some substantial adjustments to those undertaken in the previous stage. Due to the structure of the dual queue the final stages of the algorithm are further complicated by the second class customer. The departure of a class 2 customer is now possible outside of the tridiagonal, making the solution process a little more complicated than in prior steps. To assist in simplifying the solution process, we first need the use of the following simplification. For any dual queueing system, ( j2 k1 ðv Þ p0;1;0 ; j ¼ c2 ; p0;j;0 ¼ l2 1;2j1 ð25Þ ðv1;2 Þ p0;1;0 ; j ¼ 2; . . . ; c2  1: To solve within the last two partitions, we need some preliminary substitution. Within the first partition we have p0;c1 ¼ v1 1;2 p0;1;0 ; p1;c1 1 ¼ a1 2;1 p0;c1 1 

ð26Þ l2 k2 p0;c1  p0;c1 2 : l1 l1

ð27Þ

In (27) it should be noted that p0;c1 1 and p0;c1 2 are already solved. Label this Result 1. Next we obtain p0;1;0 ¼ 

k1 l1 l p0;c1 1 þ a1 p1;1;0  1 p2;0;1 : 2;1 p1;c1 1  q2 p1;c1 2  l2 l2 l2

ð28Þ

Now substitute Result 1 into (28), and simplify, noting that p0;c1 1 ; p0;c1 2 ; p1;c1 2 and p2;0;1 are already solved, and label this Result 2. We now have p0;1;0 in terms of p1;1;0 .

236

A. Bedford, P. Zeephongsekul / European Journal of Operational Research 161 (2005) 224–239

Next we obtain using state (1,1,0) p1;1;0 ¼ a2;1 v1;2 p0;1;0 þ v1;1 p1;c1 1 þ a1;1 p1;2;0 :

ð29Þ

Substitute Result 1 into (29) for p1;c1 1 and simplify, calling this Result 3. Now we need to do some looping. Begin with j equalling c2 in p1;j;0 ¼ 1fj
ð30Þ

continuing down to 2. Notice that the term p0;jþ1;0 can be simplified in each equation using (25). From this construction, we substitute p1;c2 ;0 into p1;c2 1;0 , and so on, down to p1;2;0 . This final substitution will contain p1;2;0 in terms of p1;1;0 and p0;1;0 : Label this equation Result 4. Now we need to bring together all our results. We have three equations and three unknowns, so, by substituting Result 4 into Result 3, then this into Result 2, we obtain the solution for p1;2;0 , p1;1;0 , and p0;1;0 . Now by back substitution into (30), we solve p1;j;0 , where j ¼ 1; . . . ; c2 . From (27), we then obtain p1;c1 1 : Finally we obtain p0;c1 as p0;c1 ¼ v1 1;2 p0;1;0 :

ð31Þ

Next, we need some looping to create a solution using p0;0;1 . So we begin with j ¼ 1 p0;j;1 ¼ v1;2 p0;j1;1 þ v2;2 p0;j;0

ð32Þ

and generate equations up to j ¼ c2  1. Each equation again can be simplified for p0;j;0 using (25). Substitute p0;1;1 into p0;2;1 , and so on, finally obtaining p0;c2 1;1 in terms of p0;c2 2;1 . Then back substituting each equation will have the desired p0;j;1 in terms of p0;0;1 . We will need this simplification to assist us in obtaining relationships in the next loop. We begin it with j ¼ c2  1 p1;j;1 ¼ 1fj
ð33Þ

and continue down to j ¼ 1. Similarly to (32), substitute p1;c2 1;1 into p1;c2 2;1 , and so on, down to p1;1;1 : In each equation, we can use the simplifications of p0;j;1 in terms of p0;0;1 from (32), and the solutions already obtained for p1;j;0 to end up with p1;1;1 in terms of p1;0;1 and p0;0;1 : Now to draw together these findings. We have for state (1,0,1) p1;0;1 ¼ a1;1 p1;1;1 þ a2;1 p0;1;1 þ v2;1 p1;c1 1 þ a1;1 p2;0;2 :

ð34Þ

By substituting for p1;1;1 using (33), and for p0;1;1 using (32), we obtain p1;0;1 in terms of p0;0;1 . Label this Result 5. Now to complete the simplifications, p0;0;1 ¼ a1 2;2 p0;c1  q2 p0;c1 1 

l1 p1;0;1 l2

ð35Þ

and substituting in Result 5 we solve p1;0;1 and then p0;0;1 . Now we can back substitute to obtain p1;j;1 ; where j ¼ 1; . . . ; c2  1 from (33) and p0;j;1 where j ¼ 1; . . . ; c2  1 from (32). Using the same principles at those used to derive the last equations, we apply nested looping to solve the remaining vectors. We initialise the outer loop setting k ¼ 2 and j ¼ 1, k1 p0;j;k ¼ p0;j;k1 ð1fc2 k>1g v2;2 þ 1fc2 k¼1g q2 Þ þ p0;j1;k 1fc2 k>1g v1;2 þ 1fc2 k¼1g ð36Þ l2 continuing up until j ¼ c2  k. Similarly, we now start from j ¼ c2  k to obtain

A. Bedford, P. Zeephongsekul / European Journal of Operational Research 161 (2005) 224–239

237

k2 p1;j;k ¼ 1fj
ð37Þ

continuing down to j ¼ 1. Next we simplify p1;0;k ¼ a1;1 p1;1;k þ a2;1 p0;1;k þ v2;1 p1;0;k1 þ a1;1 p2;0;kþ1 :

ð38Þ

Using (37) we substitute p1;c2 k;k into p1;c2 k1;k , and so on, we end up with p1;0;k in terms of p0;0;k . Label this Result 6. Substituting Result 6 into l1 p0;0;k ¼ 1fk¼2g ðq2 Þp0;c1 þ 1fk>2g ðq2 Þp0;0;k2 þ a1 p1;0;k ð39Þ 2;2 p0;0;k1  l2 we obtain p0;0;k . Now we back substitute through (36)–(38) to end up with solutions for p1;0;k ; p1;1;k ; . . . ; p1;c2 k;k ; p0;1;k ; p0;2;k ; . . . ; p0;c2 k;k . We now return to (36), add one to k, and stopping when the k ¼ c2  1 loops are complete. We then solve p0;0;c2 ¼ q2 p0;0;c2 1 :

ð40Þ

Hence we have now solved pi , where i ¼ 0; 1, and pi;j , where i ¼ 0; 1, j ¼ 0; . . . ; c2 . Finally, normalising all the probabilities obtained completes the computational algorithm.

5. Numerical examples The algorithm given in the previous sections was used to obtain the steady state probabilities for two small dual queueing systems with c1 ¼ c2 ¼ 2 and c1 ¼ 5, c2 ¼ 3 under various arrivals and service rates. We use the following performance statistics to compare between the performances of these systems: (i) The utilisation, or probability of finding a busy server, pB ¼ 1  p0;0 :

ð41Þ

(ii) The probability of finding only class 1 customers in the system, p1 ¼

c1 X

pi;0 þ

i¼1

c2 X

pc1 ;j;0 :

ð42Þ

j¼1

(iii) The probability of finding only class 2 customers in the system, p2 ¼

c1 X

p0;j þ

c2 X

j¼1

p0;0;k :

ð43Þ

k¼1

(iv) The probability of an empty secondary queue, pQ2 ¼0 ¼

c1 X c1 X i¼0

pi;j :

(v) The probability that a potential customer is lost to the system, X ploss ¼ pi;j;k : jþk¼c2

ð44Þ

j¼0

ð45Þ

238

A. Bedford, P. Zeephongsekul / European Journal of Operational Research 161 (2005) 224–239

Table 1 Comparison of performance characteristics between the MPDQ and a single preemptive priority finite buffer queue Model

k1

k2

l1 ¼ 1, l2 ¼ 2, c1 ¼ 2, c2 ¼ 2 MPDQ 1 2 SINGLE

q

pB

p1

p2

pQ2 ¼0

ploss

2

0.9539 0.9349

0.0180 0.0254

0.6209 0.6958

0.2505

0.1290 0.3456

MPDQ SINGLE

0.8

1.6

1.6

0.9207 0.8907

0.0283 0.0390

0.6171 0.6254

0.3312

0.1468 0.2651

MPDQ SINGLE

0.3

0.6

0.6

0.5844 0.5368

0.0880 0.0981

0.3778 0.2945

0.7659

0.1272 0.0445

MPDQ SINGLE

0.1

0.2

0.2

0.2079 0.1989

0.0709 0.0717

0.1228 0.1

0.9742

0.0308 0.0020

MPDQ SINGLE

2

1

2.5

0.9753 0.9466

0.0543 0.1174

0.1310 0.4744

0.1684

0.0993 0.3347

MPDQ SINGLE

1.6

0.8

2

0.9581 0.9151

0.0754 0.1529

0.2255 0.4104

0.2063

0.1021 0.2786

MPDQ SINGLE

0.6

0.3

0.75

0.6811 0.6272

0.2226 0.2602

0.1952 0.1637

0.6731

0.1462 0.0714

MPDQ SINGLE

0.2

0.1

0.25

0.2580 0.2478

0.1612 0.1634

0.0707 0.0504

0.9642

0.0447 0.0035

Table 2 Performance characteristics for the MPDQ with capacity Eight k1

k2

l1 ¼ 5, l2 ¼ 4, c1 ¼ 5, c2 ¼ 3 1 2 0.8 1.6 0.3 0.6 0.1 0.2 2 1 1.6 0.8 0.6 0.3 0.2 0.1

q

pB

p1

p2

pQ2 ¼0

ploss

0.7 0.56 0.21 0.07 0.65 0.52 0.195 0.065

0.7476 0.5979 0.2111 0.07 0.6671 0.5291 0.1951 0.065

0.04 0.0535 0.0444 0.0182 0.1497 0.1680 0.1019 0.0381

0.5223 0.4265 0.151 0.05 0.2598 0.2055 0.075 0.025

0.7791 0.9053 0.9989 1 0.9001 0.9691 0.9999 1

0.0581 0.0207 0.0001 0 0.0219 0.0055 0 0

The results are summarised in Tables 1 and 2 below. Here, the traffic intensity q ¼ lk11 þ lk22 . We have also included in Table 1 the corresponding statistics for the single preemptive queues with the same parameters and capacity. Notice the improvement in loss and utilisation in models with high traffic intensity using the dual queues as opposed to the single queues.

6. Conclusion In this paper, we have introduced the MPDQ with preemptive priority service scheme. This type of queueing system has been shown here, and in other works [2,3], to outperform single queueing systems for multi-classes of customers. Through a judicious labeling of the states of the system, we are able to provide a new recursive algorithm for solving the linear system of equations governing the steady-state probabilities. Even though the algorithm is intricate at several stages of the process, a framework is provided on how a

A. Bedford, P. Zeephongsekul / European Journal of Operational Research 161 (2005) 224–239

239

complex system can be solved using computer codes capable of matrix algebra. We then provide two numerical examples and compare performances using some performance statistics. For future research the non-preemptive case shall be investigated and compared with this system.

References [1] G. Balbo, S. Bruell, S. Ghanta, Modelling priority schemes, in: Proceedings of ACM Sigmetrics Conference on Measurement and Modeling of Computer Systems, vol. 13 (2), 1985, pp. 15–26. [2] A. Bedford, P. Zeephongsekul, Simulation studies of waiting time approximation for the multi- priority dual queue (MPDQ) with finite waiting room and non-preemptive scheduling, in: V.V. Kluev, N.E. Mastorakis (Eds.), Topics in Applied and Theoretical Mathematics and Computer Science, WSEAS Press, 2001, pp. 220–225. [3] A. Bedford, P. Zeephongsekul, Simulation studies on the performance characteristics of multi-priority dual queue (MPDQ) with finite waiting room and non-preemptive scheduling, in: V.V. Kluev, N.E. Mastorakis (Eds.), Topics in Applied and Theoretical Mathematics and Computer Science, WSEAS Press, 2001, pp. 226–231. [4] S. Bruell, G. Balbo, Computational Algorithms for Closed Queueing Networks, Elsevier, Amsterdam, 1980. [5] O. Boxma, D. Dwon, Dynamic server assignment in a two-queue model, European Journal of Operational Research 103 (1997) 595–609. [6] I. Cidon, M. Sidi, Recursive computation of steady-state probabilities in priority queues, Operations Research Letters 9 (4) (1990) 249–256. [7] I. Cidon, A. Khamisy, M. Sidi, Analysis of packet loss processes in high-speed networks, IEEE Transactions on Information Theory IT-39 (1993) 98–108. [8] W. Feng, M. Kowada, K. Adachi, A two-queue model with Bernoulli service schedule and switching Times, Queueing Systems 30 (1998) 405–434. [9] F. Hartanto, H. Sirisena, K. Pawlikowski, Protective buffer policies at ATM switches, IEEE Conference on Communications 2 (1995) 960–964. [10] D. Hayes, M. Rumsewicz, L. Andrew, Quality of service driven packet scheduling disciplines for real-time applications: Looking beyond fairness, IEEE Infocom (1999) 405–412. [11] J. Jang, S. Shim, B. Shin, Analysis of DQLT scheduling for an ATM multiplexer, IEEE Communications Letters 1 (1997) 175– 177. [12] G. Latouche, V. Ramaswami, Introduction to Matrix Analytic Methods in Stochastic Modeling, ASA-SIAM, Philadelphia, 1999. [13] D. Lee, Analysis of a two-queue model with Bernoulli schedules, Journal of Applied Probability 34 (1997) 176–191. [14] R. Morris, Priority queuing networks, Bell System Technical Journal 60 (8) (1981) 1745–1769. [15] M. Neuts, Structures Stochastic Matrices of M/G/1 Type and their Applications, Marcel Dekker, New York, 1989. [16] M. Neuts, Matrix-Geometric Solutions in Stochastic Models, An Algorithmic Approach, Johns Hopkins University Press, Baltimore, MD, 1981. [17] M. Ogawa, T.Sueoka, T. Hattori, Priority based wireless packet communication with admission and throughput control, in: Proceedings of VTC2000, Tokyo, Japan, 2000, pp. 370–374. [18] A. Odlyzko, Paris metro pricing for the Internet, in: Proceedings of ACM Conference on Electronic Commerce, 1999, pp. 140– 147. [19] R. Ranasinghe, L. Andrew, D. Hayes, D. Everitt, Scheduling disciplines for multimedia WLANs: Embedded round robin and wireless dual queue, in: Proceedings of the IEEE International Conference on Communications, Helsinki, Finland, 2001, pp. 1243–1248. [20] M. Takahashi, H. Osawa, T. Fujisawa, On a synchronization queue with two finite buffers, Queueing Systems 36 (2000) 107–123. [21] D. Wagner, U. Krieger, Analysis of a finite buffer with non-preemptive priority scheduling, Communications in Statistics– Stochastic Models 15 (1999) 345–365. [22] D. Wagner, Waiting times of a finite-capacity multi-server model with non-preemptive priorities, European Journal of Operational Research 102 (1997) 227–241.