私は過去の試験を行ってオペレーティングシステムに関する試験を準備しています。これは主にUnixシステム、Cプログラミング言語に関するもので、POSIXには多くのことが言及されていますので、ここでこの質問をするのが最善でしょう。セマフォにはシステムコールが必要ですか?
問題がある:
は、単純なスピンロックおよび/またはセマフォの3つの不利益を与えます。それぞれの他のメカニズムがどのように問題を改善するかを説明してください。 +説明与えられた3つの欠点
一つ、このされています
セマフォは、スレッドがすぐに進むことができた場合でも、システムコールが必要です。 (0.5P)スピンロックは、ユーザー空間で完全に実装することができ、システムコールを必要としません。彼らは短い待ち時間のために非常に効率的です。 (0.5P)
セマフォにはなぜシステムコールが必要なのですか?彼らはカーネルスペースにいなければなりませんか?特権命令の実行が必要ですか?
シングルプロセッサシステムとマルチプロセッサシステムの両方を考慮する必要があります。
私はあなたにヒントを与えます:セマフォとは何ですか?それはどのように実装できますか?私はそれらを理解しようとするためにいくつかの質問をすることをお勧めします。 –
@RuiFRibeiro私は主題に興味があり、ユーザー空間でそれを実装する方法と、それをカーネル空間で実装する方法の両方を考えることができます。私はシステムコールが必要であることを理解しています** **セマフォ上で 'wait()'を呼び出すプロセスが待たなければならない場合(例えばセマフォが完全に使用されている場合)** ** 1対1スレッドモデルが産出するために使用される。しかし、それ以外に、OSがなぜ関与しなければならないのかわかりません。このソリューションには次のような文字があります。「セマフォにはスレッドがすぐに処理されてもシステムコールが必要です。 **試験は明日**ですので、迅速な回答に感謝します。 –
あなたはセマフォーhttp://www.tldp.org/LDP/lpg/node51.htmlのための特別なシステムコールを持っています。あるいは、貧しい人のセマフォーとしてファイルや共有メモリの変数さえも持つことさえできます。私は教授と明確になることを躊躇しています。彼らはしばしば彼らの主題に関する特別な解釈をしており、彼らの意見に多くのポイントを与えています。 –