2009年9月4日金曜日

ディスクとファイルにおけるアクセスの違い

ディスクとファイルは明らかに違うので、それを比較する方がおかしいと思う人も多いだろう。
ここでいう、ディスクは仮想ディスクであり、ファイルで実現されたもののことだ。
仮想ディスクは特定の形式のファイルであるが、ここでは形式だけでなくそのアクセス方法に注目して違いを論じる。
実はこれは失敗談でもある。あるシステムを設計しているとき、その違いを意識せずに同じように設計したところ、後で再設計するはめになった。
ファイル、それもオープンされたファイルはファイルポインタで指定された場所を中心にアクセスされる。基本的にファイルポインタは一つであり、それゆえに逐次アクセスとなる。それを並行アクセスしなければならないときには、かなり工夫を要する。
一方、ディスクはCPUやDMAなど複数の手段で並行にアクセスされることを想定したデバイスであるから、本質的に並行アクセスである。ファイルがseekとread/writeを分割しているのに対して、ディスクではseekとread/writeは不可分だ。
この単純なことに気付かずファイルのようなディスクを設計してしまったことがあった。3世代前の設計の話だ。

0 件のコメント: