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

  • Social distancing? Try a better way to work remotely on your online files. Dokkio, a new product from PBworks, can help your team find, organize, and collaborate on your Drive, Gmail, Dropbox, Box, and Slack files. Sign up for free.

View
 

Scheduler

Page history last edited by widefox 11 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.