---
title: "Queueing theory"
chunk: 3/4
source: "https://en.wikipedia.org/wiki/Queueing_theory"
category: "reference"
tags: "science, encyclopedia"
date_saved: "2026-05-05T03:56:55.531499+00:00"
instance: "kb-cron"
---

M stands for Markov or memoryless, and means arrivals occur according to a Poisson process
D stands for deterministic, and means jobs arriving at the queue require a fixed amount of service
k describes the number of servers at the queueing node (k = 1, 2, 3, ...)
If the node has more jobs than servers, then jobs will queue and wait for service.
The M/G/1 queue was solved by Felix Pollaczek in 1930, a solution later recast in probabilistic terms by Aleksandr Khinchin and now known as the Pollaczek–Khinchine formula.
After the 1940s, queueing theory became an area of research interest to mathematicians. In 1953, David George Kendall solved the GI/M/k queue and introduced the modern notation for queues, now known as Kendall's notation. In 1957, Pollaczek studied the GI/G/1 using an integral equation. John Kingman gave a formula for the mean waiting time in a G/G/1 queue, now known as Kingman's formula.
Leonard Kleinrock worked on the application of queueing theory to message switching in the early 1960s and packet switching in the early 1970s. His initial contribution to this field was his doctoral thesis at the Massachusetts Institute of Technology in 1962, published in book form in 1964. His theoretical work published in the early 1970s underpinned the use of packet switching in the ARPANET, a forerunner to the Internet.
The matrix geometric method and matrix analytic methods have allowed queues with phase-type distributed inter-arrival and service time distributions to be considered.
Systems with coupled orbits are an important part in queueing theory in the application to wireless networks and signal processing.
Modern day application of queueing theory concerns among other things product development where (material) products have a spatiotemporal existence, in the sense that products have a certain volume and a certain duration.
Problems such as performance metrics for the M/G/k queue remain an open problem.

== Service disciplines ==

Various scheduling policies can be used at queueing nodes:

First in, first out
 Also called first-come, first-served (FCFS), this principle states that customers are served one at a time and that the customer that has been waiting the longest is served first.
Last in, first out
This principle also serves customers one at a time, but the customer with the shortest waiting time will be served first. Also known as a stack.
Processor sharing
Service capacity is shared equally between customers.
Priority
Customers with high priority are served first. Priority queues can be of two types: non-preemptive (where a job in service cannot be interrupted) and preemptive (where a job in service can be interrupted by a higher-priority job). No work is lost in either model.
Shortest job first
The next job to be served is the one with the smallest size.
Preemptive shortest job first
The next job to be served is the one with the smallest original size.
Shortest remaining processing time
The next job to serve is the one with the smallest remaining processing requirement.
Service facility
Single server: customers line up and there is only one server
Several parallel servers (single queue): customers line up and there are several servers
Several parallel servers (several queues): there are many counters and customers can decide for which to queue
Unreliable server
Server failures occur according to a stochastic (random) process (usually Poisson) and are followed by setup periods during which the server is unavailable. The interrupted customer remains in the service area until server is fixed.

Customer waiting behavior
Balking: customers decide not to join the queue if it is too long
Jockeying: customers switch between queues if they think they will get served faster by doing so
Reneging: customers leave the queue if they have waited too long for service
Arriving customers not served (either due to the queue having no buffer, or due to balking or reneging by the customer) are also known as dropouts. The average rate of dropouts is a significant parameter describing a queue.

== Queueing networks ==
Queue networks are systems in which multiple queues are connected by customer routing. When a customer is serviced at one node, it can join another node and queue for service, or leave the network.
For networks of m nodes, the state of the system can be described by an m–dimensional vector (x1, x2, ..., xm) where xi represents the number of customers at each node.
The simplest non-trivial networks of queues are called tandem queues. The first significant results in this area were Jackson networks, for which an efficient product-form stationary distribution exists and the mean value analysis (which allows average metrics such as throughput and sojourn times) can be computed. If the total number of customers in the network remains constant, the network is called a closed network and has been shown to also have a product–form stationary distribution by the Gordon–Newell theorem. This result was extended to the BCMP network, where a network with very general service time, regimes, and customer routing is shown to also exhibit a product–form stationary distribution. The normalizing constant can be calculated with the Buzen's algorithm, proposed in 1973.
Networks of customers have also been investigated, such as Kelly networks, where customers of different classes experience different priority levels at different service nodes. Another type of network are G-networks, first proposed by Erol Gelenbe in 1993: these networks do not assume exponential time distributions like the classic Jackson network.

=== Routing algorithms ===

In discrete-time networks where there is a constraint on which service nodes can be active at any time, the max-weight scheduling algorithm chooses a service policy to give optimal throughput in the case that each job visits only a single-person service node. In the more general case where jobs can visit more than one node, backpressure routing gives optimal throughput. A network scheduler must choose a queueing algorithm, which affects the characteristics of the larger network.