C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 40 を表示中)
■20492 / )  Re[47]: ディレクトリの排他アクセス
□投稿者/ れい (646回)-(2008/06/11(Wed) 10:15:51)
No20484 (NyaRuRu さん) に返信
> 今回の件とは直接関係ないかもしれませんが,/usr/src/linux/Documentation/filesystems/directory-locking とかおもしろいですね.

OS内部、ファイルシステムの話ですね。

WinDDKのsrc/filesys/fastfatを見ればわかりますが、
per-inodeのロックをFCBのロックに、
per-filesystemのロックをVCBのロックに対応付けると
大体同じような仕組みになってますよね。

ちょっと違うのはファイルの作成です。
Windowsでは作成時にはボリューム全体をロックしますが、
Linuxはinodeの存在が保証されてるのでディレクトリのロックで大丈夫。

そんな感じでWindowsの方がロックの粒度は荒い。
なのにFSのパフォーマンスはWindowsの方が一般に高いらしいですね。

NyaRuRuさんが示してくれた資料のような感じに
具体的に「デッドロックを防ぐため」とかいう理由があって、
理論的にFindFirstFileが良い実装である、見たいな資料があるといいんですが。

今のところ理由は3つ。

1 歴史的経緯
2 ロックの粒度
3 ディレクトリとファイルの違いをあえて意識させたい

もし本当なら3に一番思想が含まれるので一番重要だと思うのですが。
ネタ好きさんの話だけでは私にはちょっと納得いかないです。

設計者の小言とか、どこかに資料落ちてないかなぁ。
返信 編集キー/


管理者用

- Child Tree -