誰かがこの質問をしました。2つのプロセスによって使用される共有ライブラリ
2つのプロセスP1とP2が共有ライブラリ(UNIXシステム)を使用しています。 共有ライブラリには、グローバル変数G1と、G1の値を取得および設定するgetval()およびsetval()関数があります。ここで
は、一連のイベントです:今
P1:Calls setval(10) P1:Goes to sleep P2: Calls setval(20) P2:Goes to sleep P1:awake from sleep P1: Calls val=getval()
のvalの値がどうなりますか?どのP1が受け取る?それは10か20か?
説明はあなたの答えとなります。 選択肢は以下のとおりです。
ヴァル= 10、すべてのプロセスが実行され、複数のプロセスが同じ共有ライブラリを使用しているが、独自のアドレス空間を持つためです。したがって、G1はグローバル変数ですが、その値はすべてのプロセスで一意になります。
p1。 P1がスリープ状態になったときにプロセスP2によって値が変更されたので、値20を受け取る。
値を決定することはできません。
これらの4つの選択肢から離れてご希望の場合は、他の回答を追加することができます。
私の答えは1.です。同意しますか?
P1とP2が協働せず、独立したプロセス
タイプミスを指摘してくれてありがとう。 – kingsmasher1