I/Oスケジューリング

Linuxカーネルのストレージスタックのさまざまな層におけるI/Oスケジューラ(中央)の位置。 [1]

入出力I/Oスケジューリングは、コンピュータのオペレーティングシステムがストレージボリュームにI/O操作を送信する順序を決定するために使用する方法です。I/Oスケジューリングは、ディスクスケジューリングと呼ばれることもあります。

目的

I/Oスケジューリングは通常、ハードディスクドライブで動作し、ディスクヘッドの現在の位置から遠く離れた場所にあるリクエスト(この操作はシークと呼ばれます)へのアクセスに長い時間がかかります。システムパフォーマンスへの影響を最小限に抑えるため、ほとんどのI/Oスケジューラはエレベーターアルゴリズムの一種を実装しています。このアルゴリズムは、 ランダムに順序付けられた受信リクエストを並べ替えることで、最小限のヘッド移動で関連データにアクセスできるようにします。

I/Oスケジューラは目的に応じてさまざまな目的を持つことができます。一般的な目的は次のとおりです。

  • ハードディスクのシークによる無駄な時間を最小限に抑える
  • 特定のプロセスのI/O要求を優先する
  • 実行中の各プロセスにディスク帯域幅を割り当てる
  • 特定の期限前に特定のリクエストが発行されることを保証するため

分野

一般的なスケジュール管理の分野には次のようなものがあります。

参照

参考文献

  1. ^ ヴェルナー・フィッシャー;ゲオルグ・シェーンベルガー (2015-06-01)。 「Linux ストレージ スタック図」。 Thomas-Krenn.AG 2015 年 6 月 8 日に取得
  2. ^ 「mClock: ハイパーバイザーIOスケジューリングにおけるスループット変動への対応」VMware Inc. 2014年1月23日時点のオリジナルよりアーカイブ2015年7月12日閲覧。
  3. ^ 「Budget Fair Queueing I/O Scheduler」。2014年3月11日時点のオリジナルよりアーカイブ2017年4月25日閲覧。
  4. ^ 「BFQ I/O スケジューラが Linux 4.12 でキューに追加されました - Phoronix」。www.phoronix.com
  5. ^ "blk-mq: Kyber マルチキュー I/O スケジューラ [LWN.net]". lwn.net . 2017年4月14日. 2019年7月19日閲覧
  6. ^ 「BFQ I/Oスケジューラが新しいKyberスケジューラとともに登場 - Phoronix」www.phoronix.com 2017年5月1日。

さらに読む

  • Linuxカーネルドキュメント: ブロックサブシステム
  • Linux I/O スケジューラ(Ubuntu Wiki より)
  • 『オペレーティングシステム:3つの簡単なピース』、Remzi H. Arpaci-Dusseau、Andrea C. Arpaci-Dusseau著。Arpaci-Dusseau Books、2014年。関連章:ハードディスクドライブ
  • Love, R. (2005). Linuxカーネル開発, Novell Press. ISBN 0-672-32720-1
  • オペレーティング システム: 内部と設計原則、第 7 版、William Stallings 著。
  • ウィキメディア・コモンズのI/Oスケジューリング関連メディア
「https://en.wikipedia.org/w/index.php?title=I/O_scheduling&oldid=1300993315#Disciplines」より取得