作業系統中的程序同步

2021-06-22 17:05:36 字數 597 閱讀 3852

在進行多執行緒執行過程中,對於共享資源的訪問會出現不可知的異常。

臨界區:臨界區就是為了避免這種異常的發生,當乙個執行緒進入臨界區的時候,就定義乙個標誌,表示現在臨界區正在被訪問,其他執行緒只能等待。但是臨界區的實現還是沒有辦法完全避免多個執行緒同時訪問臨界區而產生的異常。只是異常發生的概率會小很多。更進一步在臨界區中使用中斷來標誌臨界區是否可以訪問來解決問題。就是執行緒進入臨界區的時候首先訪問中斷是否可以用,如果可用,當前執行緒順利進入臨界區,然後將中斷設定為不可用。這種方法可以避免異常,但是這裡有個問題,就是通過使用者程式使用中斷的時候,會讓很多程式暫停執行,如果使用者程式執行時間過長或者乙個死迴圈,其他執行緒將一直等待,不能執行任何操作。

鎖:對於上面臨界區使用中斷引發的問題,提出了鎖的概念,所謂鎖就是作業系統提供乙個介面功使用者使用,當執行緒進入臨界區的時候,先判斷鎖是否開著,進入後,將鎖鎖上,執行結束,將鎖開啟。這裡的鎖是作業系統定義的,是有作業系統使用中斷來實現的,大概就是乙個迴圈。

while(lock)

通過不停的開啟中斷和關閉中斷來實現當前執行緒執行,並防止中斷時間過長。

死鎖:當兩個執行緒都需要使用對方擁有的資源進行執行時,會發生死鎖。

作業系統 程序同步

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

作業系統 程序同步

引入程序 提高了資源的利用率和系統的吞吐量 程序的非同步性 會給系統造成混亂 程序同步基本概念 1,兩種形式的制約關係 a 間接相互制約 ab兩程序爭用一台印表機 b 直接相互制約 a程序放資料 緩衝區 b程序從緩衝區取資料 2,臨界資源 硬體臨界資源 軟體臨界資源 印表機,磁帶機,緩衝區。3,臨界...

作業系統 程序同步

ipc.件 include include include include include include include define bufsz 256 建立或獲取 ipc 的一組函式的原型說明 int get ipc id char proc file,key t key char set s...