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 |
I/O Scheduler (default) | Linux | Windows |
default discipline | CFQ | SCAN? |
i.e. I/O priority based | Y | Y |
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 Management (performance) | Linux | Windows |
zero-copy file sending | Y | Y |
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 |
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 | 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 | 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 | 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