|
IO
Page history
last edited
by widefox 15 years, 8 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.