0

私はさまざまな方法で生産者/消費者の問題を解決することに取り組んでいます。私が現在取り組んでいるものには、セマフォの down() および up() 関数呼び出しを保護するための Peterson のソリューションと組み合わせた、セマフォの独自の実装が含まれます。

問題は、私は C で作業しており、セマフォを作成する唯一の方法は、down() と up() の関数ポインターを持つ構造体を使用することです。これは正しい考えですか?

4

2 に答える 2

2

OS 提供またはハードウェア提供の同期プリミティブを使用する可能性があります。例としては、システム コール (Linux のfutexコール、Windows のEnterCriticalSectionなど)、ハードウェア スワップ コール ( cmpxchgx86、ldrex/strexARM など)、またはこれらのメソッドのいずれかを使用するライブラリ関数 ( などpthread_mutex) があります。

OS やハードウェアの助けを借りずに同期を行おうとすると、かなり困難になる可能性があります。

于 2014-02-27T05:51:13.297 に答える