# I/O Techniques ## Official Documentation - **Linux Kernel Documentation on I/O Schedulers** - [Link](https://www.kernel.org/doc/html/latest/block/index.html#io-schedulers) - **Microsoft Docs on I/O Completion Ports** - [Link](https://learn.microsoft.com/en-us/windows/win32/fileio/i-o-completion-ports) - **FreeBSD Handbook: I/O Scheduling** - [Link](https://docs.freebsd.org/en/books/handbook/disks/#disks-virtual) ## Research Papers - **"Improving I/O Performance through Adaptive Caching and Prefetching" by Ali R. Butt et al. (2005)** - [Link](https://dl.acm.org/doi/10.1145/1060560.1060567) - **"Aerie: Flexible File-System Interfaces to Storage-Class Memory" by Haris Volos et al. (2014)** - [Link](https://dl.acm.org/doi/10.1145/2592798.2592810) ## Additional Online Resources - **IBM Knowledge Center on I/O Scheduling** - [Link](https://www.ibm.com/docs/en/aix/7.2?topic=scheduling-io) - **Oracle Documentation on I/O Management** - [Link](https://docs.oracle.com/cd/E11882_01/server.112/e40540/iodesign.htm) - **Red Hat Customer Portal on Tuning I/O Performance** - [Link](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/monitoring_and_managing_system_status_and_performance/assembly_optimizing-i-o-performance_monitoring-and-managing-system-status-and-performance) ## Books - **"Systems Performance: Enterprise and the Cloud" by Brendan Gregg** - ISBN: 9780133390094 - Provides in-depth coverage of system performance, including various I/O techniques and optimizations. - **"Database Internals: A Deep Dive into How Distributed Data Systems Work" by Alex Petrov** - ISBN: 9781492040347 - Includes detailed discussions on I/O techniques in the context of database systems. - **"High Performance MySQL" by Baron Schwartz et al.** - ISBN: 9781449314286 - While focused on MySQL, this book provides valuable insights into I/O optimization techniques applicable to various systems. ## For Deep Dive into Implementation - **"Understanding the Linux Kernel" by Daniel P. Bovet and Marco Cesati** - ISBN: 9780596005658 - Offers detailed explanations of Linux kernel internals, including I/O scheduling and techniques. - **"Windows Internals, Part 2" by David A. Solomon et al.** - ISBN: 9780735684188 - Provides in-depth coverage of Windows I/O system and advanced techniques. ## Standards - **POSIX.1-2017 (IEEE Std 1003.1-2017)** - This standard defines the interface between operating systems and applications, including I/O operations. - Not freely available, but it's an authoritative source on standardized I/O interfaces. - **T10 SCSI Storage Interfaces** - These standards define the SCSI protocol, which is crucial for many I/O techniques. - Available from the T10 Technical Committee website.