作業系統程序同步和互斥問題

2021-09-01 16:12:18 字數 907 閱讀 1923

簡介

程序同步是乙個作業系統級別的概念,是在多道程式的環境下,存在著不同的制約關係,為了協調這種互相制約的關係,實現資源共享和程序協作,從而避免程序之間的衝突,引入了程序同步。

臨界資源

在作業系統中,程序是占有資源的最小單位(執行緒可以訪問其所在程序內的所有資源,但執行緒本身並不占有資源或僅僅占有一點必須資源)。但對於某些資源來說,其在同一時間只能被乙個程序所占用。這些一次只能被乙個程序所占用的資源就是所謂的臨界資源。典型的臨界資源比如物理上的印表機,或是存在硬碟或記憶體中被多個程序所共享的一些變數和資料等(如果這類資源不被看成臨界資源加以保護,那麼很有可能造成丟資料的問題)。

對於臨界資源的訪問,必須是互訴進行。也就是當臨界資源被占用時,另乙個申請臨界資源的程序會被阻塞,直到其所申請的臨界資源被釋放。而程序內訪問臨界資源的**被成為臨界區。

對於臨界區的訪問過程分為四個部分:

1.進入區:檢視臨界區是否可訪問,如果可以訪問,則轉到步驟二,否則程序會被阻塞

2.臨界區:在臨界區做操作

3.退出區:清除臨界區被占用的標誌

臨界資源使用規則:忙則等待、優先等待、空閒讓進、讓權等待(在臨界區的程序,不能在臨界區內長時間處於事件等待,必須在一定時間退出臨界區)。

多個程序常常需要共同修改某些共享變數、**、檔案資料庫等,協作完成一些功能。共享協作帶來了程序的同步和互斥、死鎖、飢餓等問題。

程序間同步和互訴的概念

程序同步

程序同步也是程序之間直接的制約關係,是為完成某種任務而建立的兩個或多個執行緒,這個執行緒需要在某些位置上協調他們的工作次序而等待、傳遞資訊所產生的制約關係。程序間的直接制約關係**於他們之間的合作。

程序互斥

程序互斥是程序之間的間接制約關係。當乙個程序進入臨界區使用臨界資源時,另乙個程序必須等待。只有當使用臨界資源的程序退出臨界區後,這個程序才會解除阻塞狀態。

作業系統程序同步問題

一 臨界區 互相協作的程序之間有共享的資料,於是這裡就有乙個併發情況下,如何確保有序操作這些資料 維護一致性的問題,即程序同步。為了解決合作程序之間的競爭條件,引入臨界區問題模型。臨界區是包含訪問共享資料指令的相關 段,也是多個程序都包含的 段,在這段 中可能會進行更新資料表 交換變數等操作。從資料...

作業系統 程序同步問題

1 桌上有一空盤,允許存放乙隻水果。爸爸可向盤中放蘋果也可向盤中放桔子,兒子專等吃盤中的桔子,女兒專等吃盤中的蘋果。規定當盤空時一次只能放乙隻水果供吃者取用,請用p v原語實現爸爸 兒子 女兒三個併發程序的同步。semaphore s 1,sa 0,so 0 main father son daug...

作業系統 程序同步

臨界資源 critical resouce 臨界區 critical section 硬體同步機制 訊號量機制 訊號量的應用 管程3使用多道批處理系統不僅能有效的改善資源的利用率,還可以顯著地提高系統的吞吐量,但同時會使系統變得更加複雜,會使程式的執行結果存在不確定性。所以必須引入程序同步機制從而保...