1
有人問我這個問題:兩個進程使用的共享庫
兩個進程P1和P2正在使用共享庫(UNIX系統)。 共享庫有一個全局變量G1和一個getval()和setval()函數來獲取和設置G1的值。
以下是事件序列:
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?
什麼將是你的答案,並解釋。 選項爲:
VAL = 10,這是因爲每個進程執行,並且具有雖然多個進程正在使用相同的共享庫它自己的地址空間。因此,儘管G1是一個全局變量,但其值對於每個進程都是唯一的。
P1。接收值爲20,因爲當P1睡着時,該值被過程P2改變。
該值無法確定。
如果您希望從這4個選項中分離出來,您可以添加其他答案。
那麼,1.是我的答案。你同意嗎?
P1和P2不合作和是獨立的過程
感謝您指出錯字。 – kingsmasher1