第8章ストレージデバイス
HDDからのデータ転送の流れ
デバイスドライバがデータの読み書きに必要な情報をHDDに渡す。(セクタ番号、セクタの数、アクセスの種類など)
スイングアームを動かすこととプラッタを回転させることによってアクセスする必要のあるセクタ上に磁気ヘッドの位置を合わせる。
データを読み書きする。
読み出すの場合はHDDの読み出し処理が完了する。
HDDの性能特性
一度のアクセスで複数セクタのデータを読み出せる。
連続していない複数のセクタのデータの読み出しを行うと磁気ヘッドの軌跡が長くなる。
ランダムアクセスはシーケンシャルアクセスよりも性能が悪く、特にI/Oサイズが小さい場合の性能は酷くなる。(I/Oサイズが大きいとプログラム全体の待ち時間が減るためスループット性能が上がる。)
I/Oスケジューラ
ブロックデバイスへのI/O要求を一定期間溜めて、マージとソートを行ってからブロックデバイスへのI/O要求を行うことでI/O性能を高める。
先読み
ストレージデバイスの領域にアクセスした時、その直後にそれに続く領域にアクセスする可能性が高いと推測し事前に先読みすることで読み出しの省略ができる。