「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典イメージぴよ画像「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典

カウンティングセマフォ

pointこの用語のポイント

pointセマフォだよ

point最大同時アクセス数が「2」以上のやつだよ

pointバイナリセマフォじゃないやつだよ

スポンサーリンク

簡単に書くよ

カウンティングセマフォ(英:counting semaphore)とは

セマフォ(排他制御の話で出てくる仕組みで「あと何人の人が使えるよ」を表した数字)の分類のひとつ
であり

同時に使える人の数が「2」以上になっているセマフォのこと
です。


image piyo

詳しく書くよ

順番に見ていきましょう。
まずは予備知識として「排他制御」と「セマフォ」について説明します。
「そんなの説明されなくても知ってるよ!」な人は適当に読み飛ばしてください。

排他制御は「ダブルブッキングしないようにすること」です。
同時に使われるとマズい(おかしくなる)ものに組み込む仕組みで、1つの物を同時に使わせないための工夫です。

カウンティングセマフォ

セマフォは「『あと何人の人が使えるよ』を表した数字」です。
ちょっと小難しい言い方をすると

共有資源に対するアクセス可能な数を示す値

です。
資源にアクセスする度にセマフォの値を増減することで、排他制御を実現します。

例えば、そうですね。

ピヨ太君が握手会を開催することにしました。

カウンティングセマフォ2

ピヨ太君には左手と右手があります。
両手を使えば、同時に2人の人と握手できます。

そこで、ピヨ太君のマネージャは「ピヨ太握手可能人数:残り2名」と黒板に書きました。

カウンティングセマフォ3

さてさて、握手会の始まりです。
サクラとして雇われたピヨ子さんが握手をしに来ました。

カウンティングセマフォ4

ピヨ太君はピヨ子さんと握手をしています。
ピヨ太君の片手がピヨ子さんとの握手に使われています。

ピヨ太君は片手のみ空いている状態です。
あと1人の人と握手できます。
ピヨ太君のマネージャは「ピヨ太握手可能人数:残り1名」と黒板の内容を書き換えました。

カウンティングセマフォ5

おっと、また誰か握手をしに来たようです。
今度は、冷やかしでやってきたアクマ君でした。

カウンティングセマフォ6

ピヨ太君は、ピヨ子さんと握手している手とは逆の手で、アクマ君と握手をします。
これでピヨ太君の両手はふさがりました。
ピヨ太君のマネージャは「ピヨ太握手可能人数:残り0名」と黒板の内容を書き換えます。

カウンティングセマフォ7

おっと、またまた誰か握手をしにやってきました。
今度はピヨ太ママがやってきたようです。
ピヨ太君、意外と人気者ですね。

カウンティングセマフォ8

でも、残念。
今は「ピヨ太握手可能人数:残り0名」です。

仕方がないので、ピヨ太ママには待っていてもらいます。

カウンティングセマフォ9

おっと、ピヨ子さんが空気を読んだようです。
ピヨ太ママが待っているのを察して、帰って行きました。

カウンティングセマフォ10

ピヨ子さんが帰ったので、ピヨ太君の片手が空きました。
ピヨ太君のマネージャは「ピヨ太握手可能人数:残り1名」と黒板の内容を書き換えます。

カウンティングセマフォ11

そういえば、ピヨ太ママが待っていましたね。
早速ピヨ太ママが握手をしました。
ピヨ太君のマネージャは「ピヨ太握手可能人数:残り0名」と黒板の内容を書き換えます。

カウンティングセマフォ12

このお話に登場した黒板の内容

ピヨ太握手可能人数:残り○名

がセマフォです。

セマフォは「あと何人使えますよ」を表す数値です。
誰かが使い始めたら、値から「1」引きます。
使い終わったら「1」足します。

セマフォの値が0になったら、そいつはもういっぱいいっぱいです。
それ以上の人数で使うのはダブルブッキングになってしまいます。
そこで、セマフォの値が0の場合は、誰かが使い終わって1以上に戻るのを待ちます。

このような仕組みで排他制御を実現するのがセマフォです。

以上を踏まえて

「あと何人の人が使えるよ」の最大値が「2」以上に設定されているセマフォ

が「カウンティングセマフォ」です。
計数セマフォ」や「ゼネラルセマフォ」とも呼ばれます。

カウンティングセマフォ13

セマフォには「あと何人の人が使えるよ」の最大値が「1」に設定されているセマフォがあります。
値に「0」か「1」しか取らないセマフォです。
そんなセマフォを「バイナリセマフォ」と呼んだりします。

カウンティングセマフォ14

「カウンティングセマフォ」という呼び名は「バイナリセマフォ」と対比されるためにある呼び名です……多分。


image piyo2

一言でまとめるよ

まぁ「カウンティングセマフォ」って単語が出てきたら「最大同時アクセス数が『2』以上のセマフォ(排他制御の話で出てくる仕組みで「あと何人の人が使えるよ」を表した数字)なんだな~」と お考えください。

一番上に戻るよ
スポンサーリンク
書籍画像019
書籍画像037

おまけ

■訳してみるよ

「counting(カウンティング)」は「count(カウント)」+「ing」です。
「count(カウント)」の意味は「数える」とか「計算する」とかです。
「semaphore(セマフォ)」の意味は「手旗信号」とか「信号装置」とかです。
ただし、今回はIT用語の「セマフォ」を指しています。
何となく くっつけると

数を数えるセマフォ

となります。


■検索してみる?




書籍画像
わわわ説明術コラム
宣伝だよ
「分かった!」と思わせる説明の技術 知識ゼロの相手にも伝わるようになる本【Audible】
つくって、壊して、直して学ぶ Kubernetes入門
「技術書」の読書術 達人が教える選び方・読み方・情報発信&共有のコツとテクニック