
- 作業系統教程
- 作業系統 - 首頁
- 作業系統 - 需求
- 作業系統 - 概述
- 作業系統 - 歷史
- 作業系統 - 組成部分
- 作業系統 - 結構
- 作業系統 - 架構
- 作業系統 - TAT & WAT
- 作業系統 - 型別
- 作業系統 - 服務
- 作業系統 - 屬性
- 作業系統 - 程序
- 作業系統 - 程序排程
- 作業系統 - 排程演算法
- 作業系統 - 多執行緒
- 作業系統 - 記憶體管理
- 作業系統 - 虛擬記憶體
- 作業系統 - I/O 硬體
- 作業系統 - I/O 軟體
- 作業系統 - 檔案系統
- 作業系統 - 安全性
- 作業系統 - Linux
- 作業系統 - 考試題及答案
- 作業系統 - 考試題及答案
- 作業系統實用資源
- 作業系統 - 快速指南
- 作業系統 - 資源
- 作業系統 - 討論
作業系統訊號量問答 #1
問題:解釋訊號量並寫一個簡短的說明。
答案:Dijkstra提出了一種重要的技術,用於管理複雜互斥問題的併發程序。他引入了一種新的同步工具,稱為訊號量。
訊號量分為兩種型別:
二元訊號量
計數訊號量
二元訊號量只能取值 0 & 1。計數訊號量可以取非負整數。
在訊號量上定義了兩個標準操作,wait 和 signal。進入臨界區由 wait 操作控制,退出臨界區由 signal 操作控制。wait 和 signal 操作也稱為 P 和 V 操作。訊號量 (S) 的操作如下:
wait 命令 P(S) 將訊號量值減 1。如果結果值變為負數,則 P 命令被延遲,直到條件滿足。
V(S) 即 signal 操作將訊號量值加 1。
在 P(S) 和 V(S) 內強制執行訊號量的互斥。如果多個程序同時嘗試 P(S),則只允許一個程序繼續,其他程序將等待。這些操作定義如下:
P(S) or wait(S): If S > 0 then Set S to S-1 Else Block the calling process (i.e. Wait on S) V(S) or signal(S): If any processes are waiting on S Start one of these processes Else Set S to S+1
訊號量操作實現為作業系統服務,因此 wait 和 signal 本質上是原子的,即一旦開始,這些操作的執行就不能中斷。
因此,訊號量是一種簡單而強大的機制,可以確保併發程序之間的互斥。
廣告