作業系統(二十)程序互斥的硬體實現方法

2021-10-03 14:15:19 字數 891 閱讀 1613

目錄

2.3.3程序互斥的硬體實現方法

2.3.3.1 中斷遮蔽

2.3.3.2 testandset指令(tsl指令)

2.3.3.3 swap指令

在本系列的第五節曾經提到過中斷的概念,並說中斷是作業系統奪回cpu的唯一方式,在這裡中斷遮蔽的想法與原語原子性保證的想法是一致的,即將臨界區放在開中斷與關中斷之間,這樣在臨界區執行的過程中就無法發生中斷,作業系統也就不會再奪回cpu訪問臨界資源了。這種方法雖然很簡單但是如果使用者程序隨意使用中斷這種核心態指令的話就會帶來很大的危險。

我們來執行一下上面的**,若剛開始 lock 是 false,則 tsl 返回的 old 值為 false,while 迴圈條件不滿足,直接跳過迴圈,進入臨界區。若剛開始 lock 是 true,則執行 tls 後 old 返回的值為 true,while 迴圈條件滿足,會一直迴圈,直到當前訪問臨界區的程序在退出區進行「解鎖」。但是這個方法還是沒完成讓權等待的原則。

邏輯上來看

swap

和 tsl

並無太大區別,都是先記錄下此時臨界區是否已經被上鎖(記錄在

old

變數上),再將上鎖標記 lock 設定為 true

,最後檢查

old,如果

old

為 false

則說明之前沒有別的程序對臨界區上鎖,則可跳出迴圈,進入臨界區。

作業系統 程序互斥 硬體方案

原則 程序進入臨界區時關中斷,退出臨界區時開中斷。為什麼要採用關中斷?關中斷是指在此中斷處理完成前,不處理其它中斷,這樣就可以保證程序不被中斷,從而保證了互斥性 不允許兩個以上的共享該資源的併發程序同時進入臨界區稱為互斥 因此採用關中斷。缺點?將禁止一切中斷的權利賦予普通使用者,若使用者沒有開放中斷...

作業系統 程序互斥的軟硬體實現方法

二 程序互斥的硬體軟體實現方法 我們把乙個時間段只允許乙個程序使用的資源稱為臨界資源。例如許多物理裝置 攝像頭,印表機 都屬於臨界資源。此外還有許多變數 資料 記憶體緩衝區等都屬於臨界資源。對臨界資源的訪問,必須互斥地進行,在每個程序,訪問臨界資源的那段 稱為臨界區 為了保證臨界資源的正確使用,分為...

作業系統 程序互斥的軟硬體實現方法(四)

目錄 一 程序同步互斥的基本概念 1 臨界資源 2 同步 3 互斥 二 程序互斥的軟體實現方法 圖 1 單標誌法 2 雙標誌先檢查法 3 雙標誌後檢查法 4 peterson演算法 3 程序互斥的硬體實現方法 圖 1 中斷遮蔽方法 2 testandset方法 3 swap指令 我們把乙個時間段只允...