排他制御
ダブルブッキングしないようにするよ
同時に使われるとマズい(おかしくなる)ものに組み込むよ
実際のやり方は、いろいろあるよ
簡単に書くよ
排他制御(読:ハイタセイギョ)とは
ダブルブッキングしないように制御すること。
もう少し具体的に書くと
「はーい。そんなに一度に相手できないからね~。順番に並んで1人ずつ使ってね~」を実現する仕組みのこと
です。
言い方を変えると
「誰かが使っているときは他の人は使っちゃダメだよ!」を実現する仕組みのこと
です。
詳しく書くよ
サクっと一言で説明すると
ダブルブッキングしないようにすること
が「排他制御」です。
同時に使われるとマズい(おかしくなる)ものに組み込む仕組みで、1つの物を同時に使わせないための工夫です。
例えば、そうですね。
ピヨ太君は、個人で運営しているピヨピヨタクシーの運転手さんです。
おっと、ピヨ子さんがピヨピヨタクシーに乗り込みました。
これで、ピヨピヨタクシーは、お客さまを乗せている状態です。
ピヨ子さんを目的地に送り届けます。
おっと、ピヨ子さんを目的地に送り届ける途中で、ピヨ太ママが乗りこんできました。
これは、ちょっと困ったことになりますね。
ピヨ子さんは「さっさと私を送り届けなさいよ!」と文句を言うでしょう。
ピヨ太ママも「寄り道しないでよ!」と文句を言うかもしれません。
そもそもの話として、タクシーに乗せられるお客さまは1組だけです。
2組以上乗せたら、トラブルの元になります。
そこでピヨ太君は、お客さまを乗せたら「実車」マークを表示することにしました。
お客さまを乗せていないときは「空車」マークを表示します。
「実車」マークを表示しているときは、ピヨピヨタクシーは売り切れ中です。
他の人は乗せられません。
「空車」マークを表示しているときは、ピヨピヨタクシーはヒマヒマ状態です。
お客様ウェルカムです。
「実車」マークと「空車」マークでルール付けすることによって、ピヨピヨタクシーのダブルブッキング、2組以上のお客さまが同時にピヨピヨタクシーを利用することはなくなりました。
めでたし、めでたし。
このような
ダブルブッキングするとマズいものに対して、ダブルブッキングしないための仕組みを組み込む
のが排他制御です。
今回の例で言えば「実車」マークと「空車」マークを使ったルール付けですね。
もう少し、パソコンに近い例も挙げておきましょう。
ピヨ太君が、とあるファイルに文章を書いています。
おっと、これは大変です。
ピヨ太君が文章を書いている中、ピヨ子さんも同じファイルに文章を書きました。
そうすると、ファイルの中身はどうなるでしょう?
可能性としては
1.最初に書いていたピヨ太君の書いた内容が残る
2.後から書いたピヨ子さんの書いた内容が残る
3.2人の書いた内容がごちゃまぜになる
のどれかでしょうか。
いずれにせよ望ましい状態ではなさそうです。
このような事態を避けるには「誰かがファイルに書いているときは他の人は書いちゃダメ」というルールと、それを実現するための仕組みが必要です。
例えば、そうですね。
ピヨ太君がファイルに書いているときは「ピヨ太が書き込み中」というメモを置いておくことにしましょう。
そうすれば、メモを見たピヨ子さんは「ピヨ太が使ってるのね。また後にしましょ」と判断できます。
これで、誰も不機嫌になることなく、ファイルに文章を書けますね。
これも排他制御です。
今度の例で言えば「書き込みしている人の名前を書いたメモを置いておく」ですね。
排他制御は、主に複数の人やプログラムで共有されるデータを扱うときに必要です。
みんなで、ワー!と押しかけるとおかしなことになる物に対して「はい、1人ずつ順番に使おうね~」と紳士的に行動するための仕組みです。
なお、排他制御を実現するための仕組みは、いろいろ あります。
「排他制御」という名前の具体的な仕組みがあるわけでは ありません。
「ダブルブッキングしないための仕組み」全般を「排他制御」と呼んでいます。
一言でまとめるよ
まぁ「排他制御」って単語が出てきたら「ダブルブッキングしないようにするんだな~」と お考えください。






