私は中間試験のために勉強していますが、これは練習問題の 1 つでした: セマフォのカウント (つまり、任意の値を保持できるセマフォ) が、バイナリ セマフォと通常の機械語命令のみを使用してどのように実装できるかを示してください。
どこから始めればいいのかわからない。これはオンラインで見つけました。
P(s) { Pb(mutex_s); s = s-1; if(s < 0) {Vb(mutex_s); Pb(delay_s);} Vb(mutex_s); }
V(s) { Pb(mutex_s); s = s+1; if(s <= 0) Vb(delay_s); else Vb(mutex_s); }
残念ながら、私は答えが私に言っていることを本当に理解していません。誰かが私にこの答えを説明したり、疑似コードで答える方法を教えてもらえますか?