作業系統的程序同步與互斥主要是介紹了,由於多道程式設計帶來的併發性,記憶體中執行多個程序併發執行。由於併發帶來的非同步性,程序的推進速度為止;但是有些程序的工作推進需要一定的先後順序,所以需要同步來解決這種問題。而臨界資源只能被這些程序互斥的訪問。
程序同步與互斥
同步由於併發帶來的非同步性,程序的推進速度為止;但是有些程序的工作推進需要一定的先後順序,所以需要同步來解決這種問題
互斥臨界資源:一次只允許乙個程序使用的資源
臨界區:訪問臨界資源的那段**
臨界資源的訪問原則
空閒讓進:臨界資源空閒則執行程序使用
忙則等待:臨界資源被暫用則其他請求該資源的程序等待
有限等待: 程序等待的時間必須有限,防止程序飢餓
讓權等待: 需要等待的程序讓出處理器資源,防止忙等
實現臨界區互斥的基本方法
軟體實現方法
單標誌法
在進入區使用true變數來控制程序,只能交替進入
雙標誌先檢查法
先檢查,後上鎖
雙標誌後檢查法
先上鎖,後檢查
peterson演算法
主動爭取-主動謙讓-檢查對方是否想要進入
硬體實現方法
中斷遮蔽法
由於程序排程需要產生中斷,直接遮蔽中斷後,程序就不會產生排程,也就不會有其他程序來搶奪臨界資源
只適合單處理器
硬體指令法
test and set
swap
訊號量一種專門用來處理同步、互斥的工具
整型訊號量
只採用乙個整數變數來記錄臨界資源的數量
記錄型訊號量
s.value 表示臨界資源的數量
s.l 表示等待佇列
實現同步
找出前後關係
前者後面v ; 後者前排 p
訊號量初值0
實現互斥
分析問題,確定臨界區
訊號量為1
將臨界區夾在pv中間
如果這篇博文有幫助到您,可以幫冷月點乙個贊或者加乙個關注哦!
冷月手撕408之作業系統 9 程序同步與互斥
作業系統的程序同步與互斥主要是介紹了,由於多道程式設計帶來的併發性,記憶體中執行多個程序併發執行。由於併發帶來的非同步性,程序的推進速度為止 但是有些程序的工作推進需要一定的先後順序,所以需要同步來解決這種問題。而臨界資源只能被這些程序互斥的訪問。程序同步與互斥 同步由於併發帶來的非同步性,程序的推...
冷月手撕408之作業系統 11 死鎖
作業系統的死鎖 主要是介紹了 程序直接發生的特殊情況,記憶體中每個程序互相等待對方手裡的資源,導致各個程序都阻塞,無法向前推進,導致死鎖。死鎖定義 記憶體中每個程序互相等待對方手裡的資源,導致各個程序都阻塞,無法向前推進 產生條件 系統資源的不恰當分配 程序推進順序非法 產生死鎖的四個必要條件 互斥...
冷月手撕408之作業系統 6 執行緒概述
作業系統的執行緒概述主要是介紹了執行緒的概念,執行緒和程序的區別,重點掌握執行緒和程序資源分配 排程方面的區別。執行緒又叫 輕量級的程序 是乙個基本的cpu執行單元。在引入執行緒後,程序是資源分配的基本單位,執行緒是排程的最小單位 並且增加了併發性,執行緒之間也可以併發,提公升了併發度。而執行緒幾乎...