7.6 書きこみ から7章の最後まで読みました。

遅延書き込みはバッファにデータはいれておくが後でそのバッファを使おうとした時にデバイスに書き込みに行くという動作をすることは分かりました。が、今一つその心が理解できません。

今すぐデバイスに書かなくてもよいからバッファにデータを入れただけでとりあえず先に進む、ただしいつまでも書かないわけにもいかないからそれはバッファを別目的で使うタイミングということにしてそれまでにどれだけ時間が経過しても構わないということなのかな。一定間隔で強制的にデバイスへの書き込みもしているからそれで良いということか・・すごく適当な感じがしますが確かにそれで問題ないんでしょうね。

RAW入出力のところはハードに近いパラメータ設定事項が多くてそこは良く分かりませんでしたが全体の流れは理解できました。

一旦7章はこれで終わりとして次は8章のブロックデバイスドライバに行きます。10章まで読めば一旦全体を読んだことになります。やっと遠くにゴールが見えてきた感じです。
7.5 読み込み の節を読みました。今さらですが、ブロックデバイスを先読みする意味をちゃんと理解していなかったことに気付きました。

先読みしてバッファに入れてはおくがそのバッファは即解放してしまうため使う前に上書きされて先読みが無駄になるかもしれないがそれで構わないというスタンスなのですね。

何となく先読みしたバッファは必ず有効利用されるような感覚でいたのでどうやってそれが実現できるのか疑問に思っていました。

このような勘違いはまだまだ潜んでいそうです。
FreeBSD本の読書会に初参加しました。

今回はNFSの章で、設計や実装については何も知りませんでしたが、以前運用管理という面で接していたのでとっつきやすかったです。

運用管理をしていたころNFSは妙に多種のデーモンが起動されていて不思議でしたが、ステートレスにして耐障害性を向上させつつ不足する機能を別デーモンで補っているためと理解できました。これが良い設計なのか、既に存在したデーモンは活用しようというUNIX流なのか、単なる成り行きでそうなっただけかは分かりませんが。

NFSがステートレスであるという話は良く聞きますがその意味が今一ピンと来ていませんでした。要は1回のリモートプロシジャコール単体でサーバーは何をすればよいかが分かるということなのですね。NFSで使われるリモートプロシジャコールにreadやwriteはありますがopenやcloseがないことがそれを物語っています。

FreeBSD本は分厚く重たいので、今回読みそうな範囲だけデジカメで撮ってPCで表示しながら勉強会に参加しました。同じように撮ってもなぜかピンボケになったりして難しかったですが十分実用になりました。次回はもっと見やすく撮りたいです。