作業系統的行程同步與互斥主要是介紹了,由于多道程式設計帶來的并發性,記憶體中運行多個行程并發運行,由于并發帶來的異步性,行程的推進速度為止;但是有些行程的作業推進需要一定的先后順序,所以需要同步來解決這種問題,而臨界資源只能被這些行程互斥的訪問,
主要的重點冷月做出了標識,知識點如下圖(pdf版或xmind源檔案請關注公眾號:學長冷月,回復作業系統),

冷月點睛
行程同步與互斥
同步
由于并發帶來的異步性,行程的推進速度為止;但是有些行程的作業推進需要一定的先后順序,所以需要同步來解決這種問題
互斥
臨界資源:一次只允許一個行程使用的資源
臨界區:訪問臨界資源的那段代碼
臨界資源的訪問原則
空閑讓進:臨界資源空閑則運行行程使用
忙則等待:臨界資源被暫用則其他請求該資源的行程等待
有限等待: 行程等待的時間必須有限,防止行程饑餓
讓權等待: 需要等待的行程讓出處理器資源,防止忙等
實作臨界區互斥的基本方法
軟體實作方法
單標志法
在進入區使用true變數來控制行程,只能交替進入
雙標志先檢查法
先檢查,后上鎖
雙標志后檢查法
先上鎖,后檢查
Peterson演算法
主動爭取-主動謙讓-檢查對方是否想要進入
硬體實作方法
中斷屏蔽法
由于行程調度需要產生中斷,直接屏蔽中斷后,行程就不會產生調度,也就不會有其他行程來搶奪臨界資源
只適合單處理器
硬體指令法
test and set
swap
信號量
一種專門用來處理同步、互斥的工具
整型信號量
只采用一個整數變數來記錄臨界資源的數量
記錄型信號量
s.value 表示臨界資源的數量
s.L 表示等待佇列
實作同步
找出前后關系
前者后面V ; 后者前排 P
信號量初值0
實作互斥
分析問題,確定臨界區
信號量為1
將臨界區夾在PV中間
如果這篇博文有幫助到您,可以幫冷月點一個贊或者加一個關注哦!
歡迎關注我的公眾號:學長冷月,獲得獨家整理的學習資源和日常干貨推送,
如果您對我的專題內容感興趣,也可以關注我的博客:guoyu7.com
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/101231.html
標籤:其他
上一篇:不會裝系統
