
| Scheduler (also see Process Management) | Linux | Windows |
| basic scheduling unit | task | thread |
| Scheduler (features) | Linux | Windows |
| reentrant | Y | Y |
| preemptible user mode | Y | Y |
| preemptible kernel mode | Y | Y |
| 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 |
| 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 |
| 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 |
| 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 |
| 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' |
| 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% |
| Scheduler - Multiprocessor (timeslice) | Linux | Windows |
| timeslice - range | 10ms-200ms' | 15ms-180ms (Client) 180ms (Server') |
| timeslice - default | 100ms' | 30ms, 60ms, 90ms (Client) 180ms (Server)' |
| 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 |
| 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' | - |
| Scheduler (performance) | Linux | Windows |
| scheduling latency (average) | 0.009mS' | 2mS10' |
| scheduling latency (worse) | 0.3mS' | 16mS10' |
Johnathon Weare © Johnny Weare 2007
Widefox - the Vertical Tab Firefox
Page Information
|
Wiki Information |
Recent PBwiki Blog Posts |