冷月手撕408之操做系統(9)-進程同步與互斥

操做系統的進程同步與互斥主要是介紹了,因爲多道程序設計帶來的併發性,內存中運行多個進程併發運行。因爲併發帶來的異步性,進程的推動速度爲止;可是有些進程的工做推動須要必定的前後順序,因此須要同步來解決這種問題。而臨界資源只能被這些進程互斥的訪問。算法

主要的重點冷月作出了標識,知識點以下圖(pdf版或xmind源文件請關注公衆號:學長冷月,回覆操做系統)。併發

file

冷月點睛

進程同步與互斥

同步

因爲併發帶來的異步性,進程的推動速度爲止;可是有些進程的工做推動須要必定的前後順序,因此須要同步來解決這種問題異步

互斥

臨界資源:一次只容許一個進程使用的資源工具

臨界區:訪問臨界資源的那段代碼學習

臨界資源的訪問原則操作系統

空閒讓進:臨界資源空閒則運行進程使用設計

忙則等待:臨界資源被暫用則其餘請求該資源的進程等待blog

有限等待: 進程等待的時間必須有限,防止進程飢餓隊列

讓權等待: 須要等待的進程讓出處理器資源,防止忙等進程

實現臨界區互斥的基本方法

軟件實現方法

單標誌法
在進入區使用true變量來控制進程,只能交替進入
雙標誌先檢查法
先檢查,後上鎖
雙標誌後檢查法
先上鎖,後檢查
Peterson算法
主動爭取-主動謙讓-檢查對方是否想要進入

硬件實現方法

中斷屏蔽法
因爲進程調度須要產生中斷,直接屏蔽中斷後,進程就不會產生調度,也就不會有其餘進程來搶奪臨界資源
只適合單處理器

硬件指令法
test and set
swap

信號量

一種專門用來處理同步、互斥的工具

整型信號量
只採用一個整數變量來記錄臨界資源的數量

記錄型信號量
s.value 表示臨界資源的數量
s.L 表示等待隊列

實現同步
找出先後關係
前者後面V ; 後者前排 P
信號量初值0

實現互斥
分析問題,肯定臨界區
信號量爲1
將臨界區夾在PV中間

若是這篇博文有幫助到您,能夠幫冷月點一個贊或者加一個關注哦!

歡迎關注個人公衆號:學長冷月,得到獨家整理的學習資源和平常乾貨推送。
若是您對個人專題內容感興趣,也能夠關注個人博客:guoyu7.com

相關文章
相關標籤/搜索