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

2022-06-05 17:48:06 字數 1102 閱讀 6315

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

程序同步與互斥

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

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

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

臨界資源的訪問原則

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

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

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

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

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

軟體實現方法

單標誌法

在進入區使用true變數來控制程序,只能交替進入

雙標誌先檢查法

先檢查,後上鎖

雙標誌後檢查法

先上鎖,後檢查

peterson演算法

主動爭取-主動謙讓-檢查對方是否想要進入

硬體實現方法

中斷遮蔽法

由於程序排程需要產生中斷,直接遮蔽中斷後,程序就不會產生排程,也就不會有其他程序來搶奪臨界資源

只適合單處理器

硬體指令法

test and set

swap

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

整型訊號量

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

記錄型訊號量

s.value 表示臨界資源的數量

s.l 表示等待佇列

實現同步

找出前後關係

前者後面v ; 後者前排 p

訊號量初值0

實現互斥

分析問題,確定臨界區

訊號量為1

將臨界區夾在pv中間

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

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

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

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

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

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

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