Processor sharing

From Wikipedia, the free encyclopedia
Jump to: navigation, search

Processor sharing or egalitarian processor sharing is a service policy where the customers, clients or jobs are all served simultaneously, each receiving an equal fraction of the service capacity available. In such a system all jobs start service immediately (there is no queueing).

The processor sharing algorithm "emerged as an idealisation of round-robin scheduling algorithms in time-shared computer systems."[1][2]

Queueing theory[edit]

A single server queue operating subject to Poisson arrivals (such as an M/M/1 queue or M/G/1 queue) with a processor sharing discipline has a geometric stationary distribution.[1]

The sojourn time jobs experience has no closed form solution, even in an M/M/1 queue.[3]

Generalized processor sharing[edit]

Generalized processor sharing is a multi-class adaptation of the policy which shares service capacity according to positive weight factors to all non-empty job classes at the node, irrespective of the number of jobs of each class present. Often it is assumed that the jobs within a class form a queue and that queue is served on a first-come, first-served basis, but this assumption is not necessary for many GPS applications.[1]

In processor scheduling, generalized processor sharing is "an idealized scheduling algorithm that achieves perfect fairness. All practical schedulers approximate GPS and use it as a reference to measure fairness."[4]

Multilevel processor sharing[edit]

In multilevel processor sharing a finite set of thresholds are defined and jobs partitioned according to how much service they have received. The lowest level (containing jobs which have received the least service) has the highest priority and higher levels monotonically decreasing priorities. Within each level an internal discipline is used.[1]


  1. ^ a b c d Aalto, S.; Ayesta, U.; Borst, S.; Misra, V.; Núñez-Queija, R. (2007). "Beyond processor sharing" (PDF). ACM SIGMETRICS Performance Evaluation Review 34 (4): 36. doi:10.1145/1243401.1243409. 
  2. ^ Kleinrock, L. (1967). "Time-shared Systems: A theoretical treatment" (PDF). Journal of the ACM 14 (2): 242. doi:10.1145/321386.321388. 
  3. ^ Borst, S.; Núñez-Queija, R.; Zwart, B. (2006). "Sojourn time asymptotics in processor-sharing queues" (PDF). Queueing Systems 53: 31. doi:10.1007/s11134-006-7585-9. 
  4. ^ Li, T.; Baumberger, D.; Hahn, S. (2009). "Efficient and scalable multiprocessor fair scheduling using distributed weighted round-robin" (PDF). ACM SIGPLAN Notices 44 (4): 65. doi:10.1145/1594835.1504188.