KernelTrap has an interview with Nick Piggin, a college student living in Canberra Australia who has been working on an anticipatory I/O scheduler for the Linux kernel.
When a process reads data from a disk, the default “deadline” I/O scheduler can offer poor performance if a streamed write is happening at the same time. The reason is that many read operations require multiple reads, each reporting a result back before the next can be scheduled. Thus, each of these reads has to wait behind a queue of writes, resulting in the aforementioned performance problem. The anticipatory scheduler solves this problem nicely by pausing for a few milliseconds after each read, “anticipating” the next read request. Read the interview for a full explanation.