地方政府公務人員四等-資訊處理類科計算機概要108 年第 29 題單選題
關於作業系統中程序間通訊(Inter-Process Communication,IPC)機制的敘述,下列何者錯誤?
A訊息傳送(Message Passing)機制可以跨越不同機器的程序間傳遞資料
B通訊資料量較大時,採用共用記憶體(Shared Memory)機制較訊息傳送機制為佳
C信號(Signal)機制是透過中斷處理的方式來完成對應的處理工作
DUNIX PIPE 是一種訊息傳送機制正確答案
D正確答案
作業系統的 IPC 機制中,UNIX PIPE 傳遞的是「無邊界的位元組串流」,而「訊息傳送」傳遞的是「有邊界的結構化訊息」,兩者在作業系統理論中屬於不同的通訊模型。
為什麼答案是 D
錯誤敘述(本題正解)。UNIX PIPE 是一種「位元組串流 (Byte Stream)」通訊機制,資料是連續且無結構的;而「訊息傳送 (Message Passing)」機制傳遞的是一則一則有明確邊界 (Message boundary) 的訊息。兩者概念不同。
載入中…
完整詳解
Pro · 無限重點 作業系統的 IPC 機制中,UNIX PIPE 傳遞的是「無邊界的位元組串流」,而「訊息傳送」傳遞的是「有邊界的結構化訊息」,兩者在作業系統理論中屬於不同的通訊模型。
看到 UNIX PIPE 就要直覺聯想「位元組串流 (Byte Stream)」,它沒有訊息邊界,因此不屬於嚴格定義下的「訊息傳送 (Message Passing)」機制。
逐選項分析
A✕
正確敘述。訊息傳送 (Message Passing) 機制(例如 Socket 或 RPC)不僅可用於同一台機器內的程序通訊,也非常適合用於分散式系統中,跨越不同機器的程序間傳遞資料。
B✕
正確敘述。共用記憶體 (Shared Memory) 在建立連線後,程序可直接讀寫記憶體,不需透過作業系統核心 (Kernel) 進行資料複製,效能最高,因此非常適合大量資料的傳輸。
C✕
正確敘述。信號 (Signal) 是一種「軟體中斷 (Software Interrupt)」機制,用來通知程序發生了某個非同步事件(例如按下 Ctrl+C 產生的 SIGINT),程序會暫停當前工作去執行對應的信號處理常式。
D✓ 正確
錯誤敘述(本題正解)。UNIX PIPE 是一種「位元組串流 (Byte Stream)」通訊機制,資料是連續且無結構的;而「訊息傳送 (Message Passing)」機制傳遞的是一則一則有明確邊界 (Message boundary) 的訊息。兩者概念不同。
常見 IPC 機制比較
| IPC 機制 | 資料型態 | 通訊範圍 | 效能與適用情境 |
|---|
| 共用記憶體 (Shared Memory) | 無特定結構 (直接存取記憶體) | 同一台機器 | 效能最高,適合大量資料傳輸 |
| 訊息傳送 (Message Passing) | 有邊界的訊息 (Message) | 同機器或跨機器 (網路) | 適合分散式系統、小量控制訊息 |
| 管線 (PIPE) | 無邊界的位元組串流 (Byte Stream) | 同一台機器 (具親屬關係的程序) | 適合單向、循序的資料流傳輸 |
| 信號 (Signal) | 整數信號編號 | 同一台機器 | 用於非同步事件通知 (軟體中斷) |
考生容易將「程序之間傳遞資料」的行為,口語化地統稱為「訊息傳送」。但在作業系統理論中,「Message Passing」是一個專有名詞,特指有訊息邊界的通訊模型,不能與無邊界的 PIPE 混為一談。