| 
  • If you are citizen of an European Union member nation, you may not use this service unless you are at least 16 years old.

  • Finally, you can manage your Google Docs, uploads, and email attachments (plus Dropbox and Slack files) in one convenient place. Claim a free account, and in less than 2 minutes, Dokkio (from the makers of PBworks) can automatically organize your content for you.

View
 

Scheduler

Page history last edited by widefox 12 years, 2 months ago

 

 

Kernel Comparison: Linux (2.6.28) versus Windows (Vista SP1)

 

 

Scheduler

Unit

Scheduler (also see Process Management) Linux Windows
basic scheduling unit task thread

 

Features

Scheduler (features) Linux Windows
reentrant Y Y
preemptible user mode Y Y
preemptible kernel mode Y Y

 

Default

Scheduler (default) - also see alternative Linux Windows
default discipline RR, multilevel feedback queue RR, multilevel queue + boost
O(1) scheduler Y Y
priority based Y Y
Real-Time class can be %CPU capped N (default)

Y (RSDL)

Y (MMCSS)
pre-sorted queues Y Y

 

Alternative

Scheduler (alternative) Linux Windows
alternative disciplines available Y N
boot time selection N N
Scheduler (available disciplines)
Borrowed-Virtual-Time (BVT) N

Y (patch)

N
Completely Fair Scheduler (CFS) N

Y (patch)

N
Deadline-Monotonic Scheduling (DMS) N

Y (patch)

N
Deficit Round Robin (DRR) N

Y (patch)

N
Distributed Weighted Round Robin (DWRR) N

Y (patch)

N
Earliest Deadline First (EDF) N

Y (patch)

N
Elastic Round Robin (ERR) N N
fair-share (FSS) N

Y (patch)

N
First In, First Out (FIFO) (or First Come First Served (FCFS)) Y Y
genetic anticipatory N

Y (patch)

N
Highest Response Ratio Next (HRRN or HRN) N N
Last In, First Out (LIFO) (or Last Come First Served LCFS) N N
Least Slack Time (LST) N N
lottery N

Y (patch)

N
multilevel feedback queue Round Robin Y N
multilevel queue + boost Round Robin N Y
proportional share N

Y (patch)

N
Random Scheduling (RSS) N N
Rate Monotonic Scheduling (RMS) N

Y (patch)

N
Really Fair Scheduler (RFS) N

Y (patch)

N
Rotating Staircase Deadline (RSDL) N

Y (patch)

N
Round-Robin (RR) Y N
Shortest Job Next (SJN) (or Shortest Process Next SPN) N N
Shortest Remaining Time (SRT) N N
Staircase (e.g. Cpusched, Nicksched, Zaphod, Spa_ws, EBS) N

Y (patch)

N
Staircase Deadline (SD) N

Y (patch)

N
Statistical Rate Monotonic Scheduling (SRMS) N

Y (patch)

N
two-level N

Y (patch)

N

 

Classes

Scheduler (classes) Linux Windows
scheduling classes 4 2
1. Normal (dynamic) priorities 39 "100-139" 15 "1-15"
2. Real-Time FIFO (fixed) priorities 100 "0-99" 16 "16-31"
3. Real-Time Round Robin (fixed) priorities 100 "0-99" 0
4. Batch (IDLEPRIO) (fixed) 39 "100-139" 0
Normal (dynamic) priority - default "120" "7" (foreground)

"9" (background)

scheduling priorities ranked most favoured->least Low->High High->Low

 

Details

Scheduler (priority dynamism) Linux Windows
priority dynamism - raising priority process does not use up timeslice23 on wakeups
priority dynamism - lowering priority process uses up timeslice23 never
Scheduler (timeslice dynamism)
timeslice vary - automatic (entire range - priority, interactivity) Y N
timeslice vary - manual (user setting, window boost) N Y
timeslice vary - automatic (window boost) N Y
Scheduler (prioritising tweaks)
priority interactive boost/CPU bound cut -5 to +5

+5 (batch)

-
focused window process boost N Y'
focused window process boost - timeslice change - 3x'
i.e. Interactive Process boost Y Y

 

Timeslice

Scheduler (timeslice) Linux Windows
timeslice configurable default Y (compiled) Y'
timeslice configurable default range unlimited (compiled) "Server" or "Client"'
timeslice runtime configurable default N (compiled) Y'

 

Timeslice - Uniprocessor

Scheduler - Uniprocessor (timeslice) Linux Windows
timeslice - range 10ms-200ms' 10ms-120ms (Client)

120ms (Server)'

timeslice - default 100ms' 20ms, 40ms, 60ms (Client)

120ms (Server)'

i.e. process minimum CPU17 4.8%

0% (Batch)

7.7%

 

Timeslice - Multiprocessor

Scheduler - Multiprocessor (timeslice) Linux Windows
timeslice - range 10ms-200ms' 15ms-180ms (Client)

180ms (Server')

timeslice - default 100ms' 30ms, 60ms, 90ms (Client)

180ms (Server)'

 

Multiprocessor Scheduling

Scheduling (Multiprocessor scalability) Linux Windows
queue per processor Y Y
Scheduler (Multiprocessor)
Gang scheduling N

Y (partial Cell)

N
'take' scheduling N N
CPU Partitioning
cpusets Y N

 

Details - Multiprocessor

Scheduler - Multiprocessor/Core (affinity) Linux Windows
scheduler SMP processor affinity Y Y
scheduler NUMA node affinity Y Y
scheduler Core affinity Y Y
scheduler Hyperthread (SMT) affinity Y Y
Scheduler - Multiprocessor/Core (priority)
scheduler favours physical CPU over Hyperthread Y Y
scheduler favours physical CPU over Multicore Y Y
Scheduler - Multiprocessor/Core (load balancing)
scheduler load balancing - initial Y Y
scheduler load balancing - re-balance Y N
scheduler load balancing - priority based (smpnice) Y N
scheduler load balancing period 200ms' -

 

Performance

Scheduler (performance) Linux Windows
scheduling latency (average) 0.009mS' 2mS10'
scheduling latency (worse) 0.3mS' 16mS10'

 

 

<-Prev|Next->

 

Johnathon Weare © Johnny Weare 2009

 

 

 

 

Comments (0)

You don't have permission to comment on this page.