| |
IO
Page history
last edited
by widefox 3 years, 2 months ago
Kernel Comparison: Linux (2.6.28) versus Windows (Vista SP1)

I/O
I/O General
| I/O Management (general) |
Linux |
Windows |
| centred around |
inode |
file object |
| layered I/O model |
N |
Y |
| generic file descriptors (pipes and network connections that act like files) |
Y |
N |
| wake-one socket semantics (#512, #512) |
Y |
Y |
Default I/O Scheduler
| I/O Scheduler (default) |
Linux |
Windows |
| default discipline |
CFQ |
SCAN? |
| i.e. I/O priority based |
Y |
Y |
Alternative I/O Scheduler
| I/O Scheduler (alternative) |
Linux |
Windows |
| alternative discipline available |
Y |
N |
| alternative discipline selected at boot |
Y |
N |
| alternative discipline selected at runtime |
Y |
N |
| alternative discipline assignable per device |
Y |
N |
| I/O Scheduler (available disciplines) |
| anticipatory |
Y |
N |
| Completely Fair Queuing (CFQ) |
Y |
N |
| Deadline |
Y |
N |
| Elevator algorithm (SCAN) |
N |
Y? |
| Elevator algorithm variants (C-SCAN, LOOK, C-LOOK, FSCAN) |
N |
N |
| First In, First Out (FIFO) (or First Come First Served (FCFS)) |
N |
N |
| Highest Response Ratio Next (HRRN) |
N |
N |
| Last In, First Out (LIFO) |
N |
N |
| N-Step-SCAN |
N |
N |
| Random Scheduling (RSS) |
N |
N |
| requested merge FIFO (NOOP) |
Y |
N |
| Shortest Seek / Service Time First (SSTF) (shortest seek first) |
N |
N |
| Stochastic Fair Queuing (SFQ) |
N |
N |
I/O Performance
| I/O Management (performance) |
Linux |
Windows |
| zero-copy file sending |
Y |
Y |
Vectored I/O
| I/O Management (vectored) |
Linux |
Windows |
| Scatter/Gather DMA |
Y |
Y |
| vectored I/O support (#501, #502) |
Y |
Y |
| asynchronous vectored I/O support (#501, #502) |
Y |
Y |
Asynchronous I/O
| I/O Management (asynchronous) |
Linux |
Windows |
| asynchronous I/O support (#502, #502) |
Y |
Y |
| asynchronous I/O support - general system (#512, #512) |
N |
Y |
| asynchronous I/O support - system (#512, #512) |
AIO (or epoll) |
completion ports |
| asynchronous I/O cancellation |
Y |
Y |
I/O Priority
| I/O Priority |
Linux |
Windows |
| I/O priority based on thread priority - default |
Y |
Y |
| I/O priority - user control (read, write) (#43, #44) |
Y |
Y |
I/O Priority - read
| I/O Priority - read |
Linux |
Windows |
| I/O priority (#43, #44) |
Y |
Y |
| I/O timeslice or packet (#43, #44) |
timeslice |
packet |
| I/O bandwidth reservation (#43, #44) |
N |
Y |
| I/O priority - scheduling class levels - realtime (IOPRIO_CLASS_RT, -) (#43, #44) |
8 ("0-7") |
0 |
| I/O priority - scheduling class levels - best effort (IOPRIO_CLASS_BE, default) (#43, #44) |
8 ("0-7") |
5 (4 used) (5 "Critical",- "High",3 "Normal",2 "Low",1 "Very low") |
| I/O priority - scheduling class levels - idle (IOPRIO_CLASS_IDLE, -) (#43, #44) |
1 |
0 |
| I/O priority - best effort - default |
"0" |
3 ("Normal") |
I/O Priority - write
| I/O Priority - write |
Linux |
Windows |
| I/O priority (#43, #44) |
N |
Y |
| I/O timeslice or packet (#43, #44) |
timeslice |
packet |
| I/O bandwidth reservation (#43, #44) |
N |
Y |
| I/O priority - scheduling class levels - realtime (IOPRIO_CLASS_RT, -) (#43, #44) |
8 (0 used) ("0-7") |
0 |
| I/O priority - scheduling class levels - best effort (IOPRIO_CLASS_BE, default) (#43, #44) |
8 (0 used) ("0-7") |
5 (4 used) (5 "Critical",4 "High" (not used),3 "Normal",2 "Low",1 "Very low") |
| I/O priority - scheduling class levels - idle (IOPRIO_CLASS_IDLE, -) (#43, #44) |
1 (0 used) |
0 |
| I/O priority - best effort - default |
"0" |
3 ("Normal") |
<-Prev|Next->
Johnathon Weare © Johnny Weare 2009
IO
|
|
Tip: To turn text into a link, highlight the text, then click on a page or file from the list above.
|
|
|
Comments (0)
You don't have permission to comment on this page.