# Scheduling1

- Outline
- Scheduling
- Components:

Decides Server order

manage queue

**Why do we need one?**- What can scheduling disciplines do?
**Requirements of a scheduling discipline**- Ease of implementation
- Fairness

Fairness is global, scheduling(congestion avoidance) is local.

- Notion of Fairness
**Fundamental choices**

Work-conserving and non-work-conserving

Degree of aggregation

- Scheduling disciplines

FIFO & other disciplines(SPT, SRPT), the performance among them

(SRPT process the remaining time, which means if I’m processing a package which still needs 5 min, then comes a package which only need 1 min, then I go to process the new package)

- The Conservation Law

scheduling is independent of the packet service time

[latex]\sum ρ_iq_i=constant[/latex]

[latex]ρ_i[/latex] mean utilization of connection i and [latex]q_i[/latex] mean waiting time of connection i

The average delay with FIFO is a tight lower bound for

work conserving and service time independent scheduling

disciplines

- Fairness

Jain’s index use equal share as the

objective:

[latex]f=\frac{(\sum_{i=1}^{N}x_i)^2}{(n\sum_{i=1}^{N}x_i^2)}[/latex]

- Max-Min Fairness
**General Process Sharing (GPS)**

Conceptually, GPS serves packets as if they are

in separate logical queues, visiting each nonempty

queues in turn.

Generalized processor sharing assumes that traffic is fluid (infinitesimal packet sizes), and can be arbitrarily split.

How to emulate GPS as fair as possible, also efficient

- (Weighted) round robin

Different weights, fixed packet size

Different weights, variable size packets：normalize weights by mean packet size

Problems:

- With variable size packets and different weights,

need to know mean packet size in advance - Can be unfair for long periods of time