仕事で、複数のプロセスに同時に処理をさせる仕組みが必要になった。 最初に考えたのは以下のようなアルゴリズム。 1) プロセス数分のセマフォ値をもつセマフォを1つ作成。 2) セマフォ値をすべて減算(プロセス数分減算)して0にする。 3) 各プロセスは、同時に開始したい処理の直前でセマフォを1つ減算。 ー>セマフォ値が0なので待ちになる。 4) 全プロセスが減算待ちになったら、1)で減算した値を加算する。 ー>(3)で待ちになった全プロセスが1減算可能になるため同時に動き出す。 なお、2)でいっきょにセマフォ値を0にすると、他のプロセスがセマフォ値を減算しようとしてもできず、他のプロセスは減算待ちとなる。これによりセマフォ値を0にしたプロセスは排他的に動作できるため、これを占有排他と呼ぶことにする。 また、3)でセマフォ値がN(>1)の場合に しかし、これだと全プロセスが減算待ちになったのを