- Anticipatory scheduling
Anticipatory scheduling is an
algorithm for schedulinghard disk input/output . It seeks to increase the efficiency of disk utilization by "anticipating" synchronous read operations."Deceptive idleness" is a situation where a process appears to be finished reading from the disk when it is actually processing data in preparation of the next read operation. This will cause a normal work-conserving
I/O scheduler to switch to servicing I/O from an unrelated process. This situation is detrimental to the throughput of synchronous reads, as it degenerates into a seeking workload. [cite paper|author=Iyer, Sitaram|title=The Effect of Deceptive Idleness on Disk Schedulers|url=http://www.cs.rice.edu/~ssiyer/r/antsched/thesis/|accessdate=2007-05-23] Anticipatory scheduling overcomes deceptive idleness by pausing for a short time (a few milliseconds) after a read operation in "anticipation" of another close-by read requests. [cite mailing list|last=Morton|first=Andrew|authorlink=Andrew Morton (computer programmer)|title=2.5.59-mm5|mailinglist=linux-kernel, linux-mm|date=2003-01-23 |url=http://kerneltrap.org/node/567|accessdate=2007-05-23] Anticipatory scheduling yields significant improvements in disk utilization for some workloads. [cite mailing list|last=Morton|first=Andrew|authorlink=Andrew Morton (computer programmer)|title=IO scheduler benchmarking|mailinglist=linux-kernel|date=2003-02-20 |url=http://kerneltrap.org/node/592|accessdate=2007-05-23 ] In some situations theApache web server may achieve up to 71% more throughput from using anticipatory scheduling. [cite conference|last=Iyer|first=Sitaram|coauthors=Druschel, Peter| title=Anticipatory scheduling: A disk scheduling framework to overcome deceptive idleness in synchronous I/O|url=http://www.cs.rice.edu/~ssiyer/r/antsched/html/|date=2001-06-06 |booktitle=18th ACM Symposium on Operating Systems Principles|accessdate=2007-05-23]The
Linux anticipatory scheduler may reduce performance on disks using TCQ, high performance disks, and hardwareRAID arrays. [cite web|url=http://kernel.org/pub/linux/kernel/people/landley/kdocs/Documentation/block/as-iosched.txt|work=Linux kernel documentation|title=as-iosched.txt|last=Piggin|first=Nick|date=2003-09-13 ] An anticipatory scheduler (AS) was the defaultLinux kernel scheduler between 2.6.0 and 2.6.18, by which time it was replaced by theCFQ scheduler.See also
*
Scheduling (computing) Other I/O schedulers
*
CFQ
* Anticipatory scheduler
*Noop scheduler
*Deadline scheduler References
Wikimedia Foundation. 2010.