テキストの39ページ
ドライバは、個別のデバイスを管理するOSの中のコードの欠片である。
ドライバは、デバイスのための割り込みハンドラを供給し、デバイスに仕事を行わせ、デバイスに割り込みを生成させる。
他にも色いろある。
ドライバのコードは、それが管理するデバイスと共に協調して実行されるため、書くにはトリッキーになりがちである。
さらに、ドライバはデバイスのインターフェイスを理解しなければならず(例えばそのデバイスのI/Oポートは何用なのか等)、そのインターフェイスは複雑になりがちで、十分な資料が無かったりする。
ディスクドライバは、xv6の中でいい例となっている。
ディスクドライバは、ディスクからもしくはディスクへデータをコピーする。
ディスクのハードウェアは、伝統的にディスク上のデータを、番号が付けられた512バイトのブロック(セクタと呼ばれる)の並びとして提供する。
セクタ0は、最初の512バイトで、セクタ1は次の512バイトで、その後も続く。
ディスクのセクタを表現するため、OSはひとつのセクタに対応する構造体を持っている。
この構造体に保持されたデータは、しばしばディスクと同期していない。
ディスクからの読み込みがまだ完了してなかったり(ディスクはそのための処理を行なっているが、セクタの内容をまだ返していない)、もしくは更新されてるのにまだ書きこまれていなかったりする。
ドライバは、その構造体がディスクと同期してないとき、xv6がそのせいで混乱するような事がないことを確実にしなければならない。
ドライバの概要についてです。
特に難しいところはないですね。
次の節でディスクドライバを例にとってコードを見ていくみたいです。
最近のコメント
名前
しゅごい
Jane Doe
FYI Avoid Annoying Unexpe…
Jane Doe
ご存じとは思いますが、whileには、”~の間”と…
peta_okechan
針金みたいなパーツを引っ張ると外れます。 他の方の…
虎徹ファン交換
虎徹の標準ファンを外す際に、どのようにして外されま…
花粉症対策2019 – 日曜研究室
[…] 花粉症対策についてはこれまで次の記事を書いてきました。https://…
花粉症対策2019 – 日曜研究室
[…] 花粉症対策についてはこれまで次の記事を書いてきました。https://…
花粉症対策2019 – 日曜研究室
[…] 花粉症対策についてはこれまで次の記事を書いてきました。https://…
花粉症対策2019 – 日曜研究室
[…] 花粉症対策についてはこれまで次の記事を書いてきました。https://…
花粉症対策2019 – 日曜研究室
[…] 花粉症対策についてはこれまで次の記事を書いてきました。https://…