Jump to content
Wikipedia The Free Encyclopedia

I/O scheduling

From Wikipedia, the free encyclopedia
Arbiter for mass storage access in an operating system
For process scheduling, see Scheduling (computing). For process management, see Process management (computing).
This article needs additional citations for verification . Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.
Find sources: "I/O scheduling" – news · newspapers · books · scholar · JSTOR
(February 2013) (Learn how and when to remove this message)
The position of I/O schedulers (center) within various layers of the Linux kernel's storage stack.[1]

Input/output (I/O) scheduling is the method that computer operating systems use to decide in which order I/O operations will be submitted to storage volumes. I/O scheduling is sometimes called disk scheduling.

Purpose

[edit ]

I/O scheduling usually has to work with hard disk drives that have long access times for requests placed far away from the current position of the disk head (this operation is called a seek). To minimize the effect this has on system performance, most I/O schedulers implement a variant of the elevator algorithm that reorders the incoming randomly ordered requests so the associated data would be accessed with minimal head movement.

I/O schedulers can have many purposes depending on the goals; common purposes include the following

  • To minimize time wasted by hard disk seeks
  • To prioritize a certain processes' I/O requests
  • To give a share of the disk bandwidth to each running process
  • To guarantee that certain requests will be issued before a particular deadline

Disciplines

[edit ]

Common scheduling disciplines include the following:

  • Random scheduling (RSS)
  • First In, First Out (FIFO), also known as First Come First Served (FCFS)
  • Last In, First Out (LIFO)
  • Shortest seek first, also known as Shortest Seek / Service Time First (SSTF)
  • Elevator algorithm, also known as SCAN (including its variants, C-SCAN, LOOK, and C-LOOK)
  • N-Step-SCAN SCAN of N records at a time
  • FSCAN, N-Step-SCAN where N equals queue size at start of the SCAN cycle
  • mClock scheduler[2]
  • In Linux kernel:
    • anticipatory (until 2.6.32)
    • noop (until 4.20) 🠊 none (since 4.11)
    • deadline (until 4.20) 🠊 mq-deadline (since 4.11)
    • cfq (Completely Fair Queuing) (until 4.20) 🠊 bfq (Budget Fair Queueing) (since 4.12)[3] [4]
    • kyber (since 4.12)[5] [6]

See also

[edit ]

References

[edit ]
  1. ^ Werner Fischer; Georg Schönberger (2015年06月01日). "Linux Storage Stack Diagram". Thomas-Krenn.AG. Retrieved 2015年06月08日.
  2. ^ "mClock: Handling Throughput Variability for Hypervisor IO Scheduling". VMware Inc. Archived from the original on 2014年01月23日. Retrieved 2015年07月12日.
  3. ^ "Budget Fair Queueing I/O Scheduler". Archived from the original on 2014年03月11日. Retrieved 2017年04月25日.
  4. ^ "BFQ I/O Scheduler Queued For Linux 4.12 - Phoronix". www.phoronix.com.
  5. ^ "blk-mq: Kyber multiqueue I/O scheduler [LWN.net]". lwn.net. 14 Apr 2017. Retrieved 2019年07月19日.
  6. ^ "BFQ I/O Scheduler Lands Along With New Kyber Scheduler - Phoronix". www.phoronix.com. 1 May 2017.

Further reading

[edit ]
[edit ]

AltStyle によって変換されたページ (->オリジナル) /