7 操作系统第二章 进程管理 进程同步与互斥
文章目錄
- 1 進程同步與互斥
- 1.1 進程同步
- 1.2 進程互斥
- 1.3 進程同步機制遵循的原則
- 1.3 進程同步、互斥小結
- 2 進程互斥實現方法
- 2.1 互斥的軟件實現方法
- 2.1.1 單標志法
- 2.1.2 雙標志法先檢查
- 2.1.3 雙標志法后檢查
- 2.1.4 Peterson算法
- 2.1.5 互斥的軟件實現方法小結
- 2.2 互斥的硬件實現方法
- 2.2.1 中斷屏蔽法
- 2.2.2 TestAndSet指令
- 2.2.3 Swap指令
- 2.2.4 互斥硬件實現方法小結
1 進程同步與互斥
1.1 進程同步
主要是為了解決進程異步問題管理多個進程的運行,為了使多個進程能夠有條不紊地運行。
進程同步機制主要任務:對多個相關進程在執行次序上進行協調,使并發執行的諸進程之間能按一定規則(或時序)共享系統資源,并能很好地相互合作,從而使程序的執行具有可再現性。
1.2 進程互斥
進程互斥:當前一個進程訪問某源時,另外一個要訪問該臨界資源的進程必須要等待。
- 臨界資源:一段時間內只允許一個進程訪問的資源,比如物理設備(攝像頭、打印機)和某些變量、數據、內存緩沖區都是臨界資源。
- 對臨界資源的訪問必須互斥地進行。
對臨界資源的訪問過程可分為4個部分:
>臨界區:進程訪問臨界資源的那段代碼
進入區、退出區:實現進程互斥的那段代碼段
1.3 進程同步機制遵循的原則
1.3 進程同步、互斥小結
2 進程互斥實現方法
2.1 互斥的軟件實現方法
2.1.1 單標志法
算法思想:兩個進程在訪問完臨界區后會把使用臨界區的權限交給另一個進程。也就是說每個進程進入臨界區的權限只能由另一個進程賦予。
2.1.2 雙標志法先檢查
算法思想:每個進程訪問臨界區資源之前,先查看臨界資源是否正被訪問,若被訪問,該進程需等待,否則,進程才進入自己的臨界區。
先檢查對方進程狀態,再置自己標志
2.1.3 雙標志法后檢查
先設置自己標志,再檢查對方進程狀態
局限:不遵循空閑讓進,有限等待,容易導致雙方謙讓,從而誰也無法進入臨界區,產生“饑餓”現象
2.1.4 Peterson算法
算法思想:是單標志法和雙標志法后檢查的綜合
局限:不遵循讓權等待,會發生忙等
2.1.5 互斥的軟件實現方法小結
2.2 互斥的硬件實現方法
2.2.1 中斷屏蔽法
利用“開/關中斷指令”實現(與原語的實現思想相同,即在某進程開始訪問臨界區到結束為止都不允許中斷,即不能發生進程切換,因此不可能發生兩個進程同時訪問臨界區的情況)
2.2.2 TestAndSet指令
簡稱TS指令或TSL指令,用硬件實現,執行過程不許間斷,只可一氣呵成。
2.2.3 Swap指令
也稱Exchange指令,簡稱XCHG指令
用硬件實現,執行過程中不允許間斷,只可一氣呵成
2.2.4 互斥硬件實現方法小結
總結
以上是生活随笔為你收集整理的7 操作系统第二章 进程管理 进程同步与互斥的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 介绍一些知识图谱的实际应用类项目
- 下一篇: 「Luogu5395」【模板】第二类斯特