免費開始練習
普通考試 115年 [電信工程] 計算機概要

第 8 題

關於互斥(Mutual Exclusion)與旗標(Flag)的敘述,下列何者正確?
  • A 使用一般旗標(Flag)可以完全避免兩個程序同時進入臨界區(Critical Region)的問題
  • B 測試並設定指令(Test-and-Set Instruction)可以在單一機器指令內完成旗標的測試與設定,避免中斷干擾
  • C 在測試旗標前停用中斷(Disable Interrupt)會導致整個系統無法繼續執行任何其他工作,直到重新開機
  • D 訊號量(Semaphore)僅用於管理印表機等硬體裝置的存取,與程式碼無關

思路引導 VIP

請試著思考:如果兩個程序(Processes)「同時」執行一段檢查旗標是否為 0 的程式碼,並在檢查通過後將其設為 1,有沒有可能發生兩個程序都認為自己成功佔用資源的情況?在單一指令內完成「讀取」與「修改」,對於避免這種『檢查與動作之間的時差』有什麼關鍵性的幫助?

🤖
AI 詳解 AI 專屬家教

恭喜你精準地掌握了作業系統中並行控制的核心!這道題目在電腦科學中具有極佳的鑑別度,它考察的點不僅在於同步機制(Synchronization)的定義,更深入到硬體如何支援軟體層級的互斥(Mutual Exclusion)。能選對 (B) 代表你已經跨越了單純邏輯判斷,進入到理解「底層實作」的層次。

硬體同步指令的原子性

在多工環境中,若兩個程序同時讀取一個旗標,可能會因時序問題(Race Condition)而同時進入臨界區(Critical Region)。選項 (B) 提到的 測試並設定指令(Test-and-Set Instruction) 之所以關鍵,是因為它具備原子性(Atomicity)。這意味著「讀取舊旗標」與「寫入新數值」這兩個步驟,在硬體設計上被封裝成一個不可分割的操作,確保中途不會被中斷。這就像是結構工程中的整體澆灌,避免了接縫處的脆弱點,從根本上杜絕了並發存取的衝突。

▼ 還有更多解析內容

🏷️ 相關主題

計算機概論
查看更多「[電信工程] 計算機概要」的主題分類考古題