Shinichi Tokunaga
@deepneko
良書らしい。http://www.amazon.com/Principles-Distributed-Programming-Prentice-Hall-International/dp/013711821X
2010-01-05 12:11:12
Shinichi Tokunaga
@deepneko
アトミックについてはアセンブリ言語の1命令から高級言語ソースの1行まで色々考えられると思うが、ここではとりあえず高級言語ソースの1行で考えてよい。
2010-01-05 12:22:45
Shinichi Tokunaga
@deepneko
「インターリーブする」ってのは・・・例えばスレッドT0、T1があって、アトミックな実行文s0、s1があったとすると・・・
2010-01-05 14:40:50
Shinichi Tokunaga
@deepneko
こんな風に各スレッドにおいてs0、s1の順に実行されるっていう制限がある状態で、処理の実行順序が決まること…かな?
2010-01-05 14:48:16
Shinichi Tokunaga
@deepneko
これを公平性という。これはつまり、どのインターリーブでもスレッドの実行文が不公平に除外されることはないことを意味している。
2010-01-05 14:55:27
Shinichi Tokunaga
@deepneko
他のスレッドがクリティカルリージョンを実行中は、スレッドがそのクリティカルリージョンへ入ることを禁止される。
2010-01-05 15:37:04
Shinichi Tokunaga
@deepneko
どのスレッドもクリティカルリージョンへ入っていない場合に、クリティカルリージョンへ入れるスレッドは1つだけである。
2010-01-05 15:37:48
Shinichi Tokunaga
@deepneko
スレッドがクリティカルリージョン外を実行中ならば、他のスレッドがクリティカルリージョンへ入ることを妨げてはならない。
2010-01-05 15:38:38
Shinichi Tokunaga
@deepneko
1. 相互排除条件: あるリソースが同時に取りえる状態が、利用可能、もしくは1スレッドのみが使用中のいずれかである。
2010-01-07 15:44:31
Shinichi Tokunaga
@deepneko
3. プリエンプトなし: スレッドがリソースを獲得した後は、そのリソースを削除できるのは獲得したスレッドが自発的にリソースを解放したときだけ。
2010-01-07 15:46:12