42 系統五旗誌主要用於什麼目的?
(A) 訊息傳遞
(B) 共用記憶體管理
(C) 共時更新與存取共用記憶體內容的控制
(D) 檔案存取控制
統計: A(0), B(0), C(8), D(0), E(0) #3399889
詳解 (共 2 筆)
【第一步:找關鍵字】
系統五旗誌(Semaphores,號誌)
→ 這是作業系統中的「同步機制(讓多個程式不要同時亂來)」
共時更新(同步 / 同步控制)
→ 這題在問「多個程序一起動作時,怎麼避免衝突」
關鍵觀念:
?「同步(Synchronization)」與「互斥(Mutex)」
【第二步:白話翻譯】
這題在問:
?「當很多程式同時要用同一塊資料(例如同一個記憶體),要怎麼避免大家搶來搶去、搞壞資料?」
【第三步:解題思路】
這題在考什麼觀念?
Semaphore(號誌)用來做「程序同步與互斥控制」
解題步驟
-
先理解「五旗誌(Semaphore)」是什麼
→ 就像一個「交通警察」或「紅綠燈」 -
它的功能
→ 控制「誰可以進來用資源」 -
判斷用途
→ 最重要的是「避免同時亂改資料」
原理與規則
Semaphore(號誌)是什麼?
→ 一個「計數器(用來記錄還有幾個人可以用資源)」
有兩個基本操作:
-
wait(P操作):想進去 → 先扣數量
-
signal(V操作):用完了 → 還回去
生活比喻:
想像一間廁所只有1間:
-
有人進去 → 鎖門(wait)
-
用完出來 → 開鎖(signal)
? 這就是「互斥」
? 不會兩個人同時進去
【第四步:選項分析】
-
(A) 訊息傳遞
❌ 錯
→ 這是 IPC(行程間通訊),像 message queue、pipe
→ 不是 semaphore 的主要用途
-
(B) 共用記憶體管理
❌ 錯
→ 管理記憶體是 OS 的記憶體管理機制
→ semaphore 只是「控制使用順序」,不是管理
-
(C) 共時更新與存取共用記憶體內容的控制
✅ 正確
→ 這就是 semaphore 的核心用途
→ 防止「同時修改資料造成錯誤(race condition)」
-
(D) 檔案存取控制
❌ 錯
→ 檔案權限是檔案系統(permission)
→ 跟 semaphore 無關
【觀念補充與延伸】
核心觀念定位
這題屬於:
? 作業系統 → 行程同步(Process Synchronization)
? 幾乎是「必考題」
法條或定義
Semaphore(號誌)
→ 一種同步工具,用來控制多個程序對共享資源的存取順序
白話:
? 就是「排隊機制 + 紅綠燈」
觸類旁通(舉一反三)
對比概念:
-
Semaphore(號誌) → 可計數(多個人)
-
Mutex(互斥鎖) → 只能一個人
? 記法:
Mutex = 單人廁所
Semaphore = 多間廁所
變化題型:
-
問 P / V 操作是什麼
-
問 race condition 怎麼解決
-
生產者消費者問題(超級常考)
【記憶口訣】
?「號誌控同步,避免一起衝」
或更白話:
?「紅綠燈控流量,共用資源不撞車」
【常見陷阱】
學生最容易搞混的地方
-
把 semaphore 當成「通訊工具」
-
或當成「記憶體管理工具」
心理盲點
看到「共用記憶體」就選
? 但題目重點是「控制」,不是「管理」
避坑指南
看到:
-
「同步」
-
「互斥」
-
「避免衝突」
? 直接聯想到:Semaphore