« All posts

Sans-I/O: The Costs of Decoupling a Protocol from Its I/O Model

The Sans-I/O approach explores the implications of decoupling a protocol from its I/O model, highlighting benefits in testability and memory management alongside potential drawbacks.

Disagreements between I/O models regarding buffer ownership have significant architectural implications for engineers. Readiness-based I/O allows applications to manage memory, while completion-based I/O requires kernel management of memory. The Sans-I/O approach enables the protocol to make decisions without performing I/O, enhancing testability. However, it introduces drawbacks, such as making every suspension point an explicit state, which complicates the code.