I/O and the court of law
Originally written by
- The first problem is determining - who is the owner of a given I/O?
- Consider these scenarios, and determine who is the owner:
- Task A wrote to a file - into page-cache. Task B then wrote over the
same file-offsets. Data was flushed to disk once
- Task A read from a file. Task B read from the same file
- Task A wrote into a file - into page-cache. Task B read from the file
- from the page-cache.
- So who do we "blame" for the I/O operation - who is the scapegoat?
- The one that happened to "be first to read" for whom disk access
- Anyone, regardless of whether disk I/O was needed or not?
- Split the "blame" between all involved?