Kernel Comparison: Linux (2.6.22) versus Windows (Vista)

Scheduler

Unit

Scheduler (also see Process Management) Linux Windows
basic scheduling unittaskthread

Features

Scheduler (features) Linux Windows
reentrantYY
preemptible user modeYY
preemptible kernel modeYY

Default

Scheduler (default) - also see alternative Linux Windows
default disciplineRR, multilevel feedback queueRR, multilevel queue + boost
O(1) schedulerYY
priority basedYY
Real-Time class can be %CPU cappedN (default)
Y (RSDL)
Y (MMCSS)
pre-sorted queuesYY

Alternative

Scheduler (alternative) Linux Windows
alternative disciplines availableYN
boot time selectionNN
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)NN
fair-share (FSS)N
Y (patch)
N
First In, First Out (FIFO) (or First Come First Served (FCFS))YY
genetic anticipatoryN
Y (patch)
N
Highest Response Ratio Next (HRRN or HRN)NN
Last In, First Out (LIFO) (or Last Come First Served LCFS)NN
Least Slack Time (LST)NN
lotteryN
Y (patch)
N
multilevel feedback queue Round RobinYN
multilevel queue + boost Round RobinNY
proportional shareN
Y (patch)
N
Random Scheduling (RSS)NN
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)YN
Shortest Job Next (SJN) (or Shortest Process Next SPN)NN
Shortest Remaining Time (SRT)NN
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-levelN
Y (patch)
N

Classes

Scheduler (classes) Linux Windows
scheduling classes42
1. Normal (dynamic) priorities39 "100-139"15 "1-15"
2. Real-Time FIFO (fixed) priorities100 "0-99"16 "16-31"
3. Real-Time Round Robin (fixed) priorities100 "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->leastLow->HighHigh->Low

Details

Scheduler (priority dynamism) Linux Windows
priority dynamism - raising priorityprocess does not use up timeslice23on wakeups
priority dynamism - lowering priorityprocess uses up timeslice23never
Scheduler (timeslice dynamism)
timeslice vary - automatic (entire range - priority, interactivity)YN
timeslice vary - manual (user setting, window boost)NY
timeslice vary - automatic (window boost)NY
Scheduler (prioritising tweaks)
priority interactive boost/CPU bound cut-5 to +5
+5 (batch)
-
focused window process boostNY'
focused window process boost - timeslice change-3x'
i.e. Interactive Process boostYY

Timeslice

Scheduler (timeslice) Linux Windows
timeslice configurable defaultY (compiled)Y'
timeslice configurable default rangeunlimited (compiled)"Server" or "Client"'
timeslice runtime configurable defaultN (compiled)Y'

Timeslice - Uniprocessor

Scheduler - Uniprocessor (timeslice) Linux Windows
timeslice - range10ms-200ms'10ms-120ms (Client)
120ms (Server)'
timeslice - default100ms'20ms, 40ms, 60ms (Client)
120ms (Server)'
i.e. process minimum CPU174.8%
0% (Batch)
7.7%

Timeslice - Multiprocessor

Scheduler - Multiprocessor (timeslice) Linux Windows
timeslice - range10ms-200ms'15ms-180ms (Client)
180ms (Server')
timeslice - default100ms'30ms, 60ms, 90ms (Client)
180ms (Server)'

Multiprocessor Scheduling

Scheduling (Multiprocessor scalability) Linux Windows
queue per processorYY
Scheduler (Multiprocessor)
Gang schedulingN
Y (partial Cell)
N
'take' schedulingNN
CPU Partitioning
cpusetsYN

Details - Multiprocessor

Scheduler - Multiprocessor/Core (affinity) Linux Windows
scheduler SMP processor affinityYY
scheduler NUMA node affinityYY
scheduler Core affinityYY
scheduler Hyperthread (SMT) affinityYY
Scheduler - Multiprocessor/Core (priority)
scheduler favours physical CPU over HyperthreadYY
scheduler favours physical CPU over MulticoreYY
Scheduler - Multiprocessor/Core (load balancing)
scheduler load balancing - initialYY
scheduler load balancing - re-balanceYN
scheduler load balancing - priority based (smpnice)YN
scheduler load balancing period200ms'-

Performance

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

<-Prev|Next->

Johnathon Weare © Johnny Weare 2007
Widefox - the Vertical Tab Firefox




Page Information

  • 8 months ago [history]
  • View page source
  • You're not logged in
  • No tags yet learn more

Wiki Information

Recent PBwiki Blog Posts