冷月手撕408之作業系統 9 程序同步與互斥

2021-10-09 16:09:09 字數 962 閱讀 8547

作業系統的程序同步與互斥主要是介紹了,由於多道程式設計帶來的併發性,記憶體中執行多個程序併發執行。由於併發帶來的非同步性,程序的推進速度為止;但是有些程序的工作推進需要一定的先後順序,所以需要同步來解決這種問題。而臨界資源只能被這些程序互斥的訪問。

程序同步與互斥

同步由於併發帶來的非同步性,程序的推進速度為止;但是有些程序的工作推進需要一定的先後順序,所以需要同步來解決這種問題

互斥臨界資源:一次只允許乙個程序使用的資源

臨界區:訪問臨界資源的那段**

臨界資源的訪問原則

空閒讓進:臨界資源空閒則執行程序使用

忙則等待:臨界資源被暫用則其他請求該資源的程序等待

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

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

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

軟體實現方法

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

硬體實現方法

中斷遮蔽法 由於程序排程需要產生中斷,直接遮蔽中斷後,程序就不會產生排程,也就不會有其他程序來搶奪臨界資源 只適合單處理器

硬體指令法 test and set swap

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

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

記錄型訊號量 s.value 表示臨界資源的數量 s.l 表示等待佇列

實現同步 找出前後關係 前者後面v ; 後者前排 p 訊號量初值0

實現互斥 分析問題,確定臨界區 訊號量為1 將臨界區夾在pv中間

如果這篇博文有幫助到您,可以幫冷月點乙個贊或者加乙個關注哦!

冷月手撕408之作業系統 9 程序同步與互斥

作業系統的程序同步與互斥主要是介紹了,由於多道程式設計帶來的併發性,記憶體中執行多個程序併發執行。由於併發帶來的非同步性,程序的推進速度為止 但是有些程序的工作推進需要一定的先後順序,所以需要同步來解決這種問題。而臨界資源只能被這些程序互斥的訪問。程序同步與互斥 同步由於併發帶來的非同步性,程序的推...

冷月手撕408之作業系統 11 死鎖

作業系統的死鎖 主要是介紹了 程序直接發生的特殊情況,記憶體中每個程序互相等待對方手裡的資源,導致各個程序都阻塞,無法向前推進,導致死鎖。死鎖定義 記憶體中每個程序互相等待對方手裡的資源,導致各個程序都阻塞,無法向前推進 產生條件 系統資源的不恰當分配 程序推進順序非法 產生死鎖的四個必要條件 互斥...

冷月手撕408之作業系統 6 執行緒概述

作業系統的執行緒概述主要是介紹了執行緒的概念,執行緒和程序的區別,重點掌握執行緒和程序資源分配 排程方面的區別。執行緒又叫 輕量級的程序 是乙個基本的cpu執行單元。在引入執行緒後,程序是資源分配的基本單位,執行緒是排程的最小單位 並且增加了併發性,執行緒之間也可以併發,提公升了併發度。而執行緒幾乎...