作業系統 CH6
- CH6 : Process Synchronization
- process Communication 運作的兩種方式
- Race Condition Problem
- Race Condition 的求解的兩大策略
- Disable interrupt
- Critical section Design
- C.S. Design 基本認知
- 正確的 C.S. Design 該滿足的3個 Criteria
- mutual exclusion
- progress
- bounded waiting
- C.S. Design 方法
- SW solution
- 2 processes : peterson’s solution/ (Dekker’s solution)
- n processes : Bakery’s algorithm
- HW 指令支援
- test-and-set
- swap
- semaphore
- semaphore
- monitor
- SW solution
- 著名的同步問題的解決方法
- Producer - consumer problem
- Reader / Writer Problem
- The sleeping Barber
- The Dinner philosophers
- Message Passing 技術
- Direct vs. Indirect、send、receive 指令配合 Blocking
Process Communication 運作的兩種方式
- Shared Memory
- Message Passing
項目 | Shared Memory | Message Passing |
---|---|---|
定義 | 透過共享變數溝通。 | 建立連結後傳輸 Message。 |
特色 | Programmer 負責,OS 提供共享區域。 | 適合連結管理與例外處理。 |
優點 | 快速,適合大量資訊,OS 無需額外支援。 | 簡單易用,僅需 send/receive 指令。 |
缺點 | 需互斥控制,防止競態條件。 | 需 kernel 介入,速度較慢。 |
Share Memory (共享記憶體)
定義: 透過對共享變數的存取,讓 Process 之間進行溝通。
特色: 由 Programmer 負責實作,OS 只需提供共享記憶體區域。
優點:
- OS 無需額外支援,僅需提供共享記憶體功能即可。
- 適合 大量資訊傳輸,溝通速度快,因為不需要 Kernel 介入。
缺點: 需要對共享變數進行 互斥控制,避免 Race Condition 的發生。
Message Passing (訊息傳遞)
定義: Process 通過以下步驟進行通訊:
- 建立 Communication Link(通訊連結)
- 傳輸訊息
- 釋放連結
特色: 適用於 Communication Link 管理 及某些例外處理。
優點: 程式編寫簡單, Programmer 無需撰寫額外控制程式,僅需使用 send
和 receive
指令。
缺點:
- 需 Kernel 介入,溝通速度較慢。
- 適用於 少量訊息 的傳輸。
6-2 Race Condition
定義 : 在 Shared Memory Communication 的環境中,若未對共享變數 (Shared Variable) 提供互斥存取(mutaul exclusive accrss)的控制,共享變數最終結果會因為 Process 之間的交錯執行順序不同而有所不同,這種的 Data inconsistency 稱為 Race Condition。
- image reference : site
- Example Code: Race Condition 實驗記錄
Race Condition 的求解的兩大策略
- Disable interrupt
- Critical section Design
(略)