top page > computer > programming > algorithm > lock > infinite_regress.html
更新日:
文責: 重城良国

ロックの問題点: 無限後退

ロックの無限後退という問題

ある資源の使用をアトミックに行うために、「使用中」を示す印をつけるとする。しかしその「使用中を示す印」もまたある種の資源である。よって「使用中を示す印」の使用もアトミックに使用する必要がある。そのためには「使用中を示す印」が使用中であるという印をつける必要がある。そして、その「『使用中を示す印』の使用中を示す印」もまた資源であり...

最小のアトミックな操作

一番下のところで、値のチェックとその変更とがアトミックになるような操作が必要になる。何にもないところに突然アトミックな操作を作り出すことはできない。「ロック」という方法は小さなアトミックな操作を使って、大きなアトミックな操作を作るということだ。つまり「ロック」はアトミック性を作り出すのではなく、アトミック性を拡大する方法である。基盤となるアトミックな操作が必要になる。

どんな条件が必要か

状態のチェックと状態の変更の間に他の操作が入り込まないこと。

ディレクトリの作成

上記の条件を満たす操作に「ディレクトリの作成」がある。この場合、「ディレクトリの存在の確認」と「ディレクトリの作成」とが同時にできれば良いわけだ。ディレクトリを作成しようとしたとき、もしもディレクトリが存在しなければ、ディレクトリが作成される。そうでなければエラーが返される。ディレクトリの存在の確認と、その作成のアトミック性はOS自体が保証する。

参考: bayashi.net: ファイルロックについて

正当なCSSです! HTML5 Powered with CSS3 / styling, and Semantics