免費開始練習
地特三等申論題 107年 [資訊處理] 程式語言

第 四 題

四、在一 concurrent 環境下,有一共享變數 X 其初始值為 1,程序(process) A 必須加 2 到 X,程序 B 必須將 X 乘以 4。A 與 B 都要執行三個動作 1.讀取 X;2.進行算數運算;3.將算好的值寫回 X。試列出最後可能得到 的 X 值。(20 分)
📝 此題為申論題

思路引導 VIP

面對併發(Concurrent)環境下的共享變數考題,首先需將高階程式語言的單一行操作拆解為硬體層級的原子操作(讀取、運算、寫回)。接著利用窮舉法,列出兩個程序的讀取與寫回動作所有可能的交錯順序(Interleaving),藉此找出所有因競態條件(Race Condition)導致的執行結果。

🤖
AI 詳解 AI 專屬家教

【解題思路】由於未具備同步機制,需將程序分解為讀取、運算、寫回三個不可分割的指令,並探討這兩個程序在排程上所有可能的交錯執行順序(Interleaving),進而推導出競態條件(Race Condition)下的結果。 【詳解】 已知:

▼ 還有更多解析內容

📝 同份考卷的其他題目

查看 107年[資訊處理] 程式語言 全題

升級 VIP 解鎖