セマフォ [プログラミング]
セマフォ。
マルチプロセスなプログラムを書いた事がある人なら
だいたい知ってると思いますが、大雑把に言うと
(正直厳密な定義は知りません)マルチプロセス間で共有
しているデータへのアクセスが競合しないように、データに
触るプロセスはデータにアクセスする前に必ずOSから
「セマフォ」を受け取り、それを持っているときだけデータに
アクセスするようにします。そしてデータへのアクセスが終了
したら「セマフォ」をOSに返却します。
という訳で会社のF先輩が書いてくれた「セマフォ」を獲得
したプロセスがcoreを吐いて死亡し、他のプロセスが動けず
デッドロックしている絵です。
「セマフォ」はこの絵の中の丸いキャラがつかんでる物体を
指しているのですが、これを妻に(当時はまだ結婚する前
だったので彼女でしたが)説明した時に、どこで間違えたのか
丸いキャラを「セマフォ」と理解してしまい、それ以来「セマフォ」は
丸いというものになってしまいました。でもって、私の仕事は
ルータのファームウェア開発なんですが、妻は私の仕事を
友人に紹介するとき、「えっと、『ルータ』っていうのを作ってて、
あとは『セマフォ』かな」とか紹介しているそうで、周りの人は
「???」なんだそうです。
セマフォって、日常生活でも普通の会社の業務でも使わない
ですからねー。ルータとセマフォで、「おおっ、ルータのファーム
ウェアのそれもOSにわりかし近しいところのソフトを作って
いるんですね」とか分かる人はあまりいないと思います。
というわけで、「セマフォ」のお話でした。
マルチプロセスなプログラムを書いた事がある人なら
だいたい知ってると思いますが、大雑把に言うと
(正直厳密な定義は知りません)マルチプロセス間で共有
しているデータへのアクセスが競合しないように、データに
触るプロセスはデータにアクセスする前に必ずOSから
「セマフォ」を受け取り、それを持っているときだけデータに
アクセスするようにします。そしてデータへのアクセスが終了
したら「セマフォ」をOSに返却します。
という訳で会社のF先輩が書いてくれた「セマフォ」を獲得
したプロセスがcoreを吐いて死亡し、他のプロセスが動けず
デッドロックしている絵です。
「セマフォ」はこの絵の中の丸いキャラがつかんでる物体を
指しているのですが、これを妻に(当時はまだ結婚する前
だったので彼女でしたが)説明した時に、どこで間違えたのか
丸いキャラを「セマフォ」と理解してしまい、それ以来「セマフォ」は
丸いというものになってしまいました。でもって、私の仕事は
ルータのファームウェア開発なんですが、妻は私の仕事を
友人に紹介するとき、「えっと、『ルータ』っていうのを作ってて、
あとは『セマフォ』かな」とか紹介しているそうで、周りの人は
「???」なんだそうです。
セマフォって、日常生活でも普通の会社の業務でも使わない
ですからねー。ルータとセマフォで、「おおっ、ルータのファーム
ウェアのそれもOSにわりかし近しいところのソフトを作って
いるんですね」とか分かる人はあまりいないと思います。
というわけで、「セマフォ」のお話でした。