日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

计算机操作系统——死锁(产生的必要条件与处理死锁的四个关卡)

發布時間:2024/7/19 windows 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 计算机操作系统——死锁(产生的必要条件与处理死锁的四个关卡) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

計算機操作系統——死鎖

前言:死鎖:指多個進程因競爭共享資源而造成的一種僵局,若無外力作用,這些進程都將永遠不能再向前推進。如果死鎖發生,會浪費大量的系統資源,甚至會導致系統崩潰。

關于死鎖的結論:

  • 參與死鎖的進程最少是兩個
  • 參與死鎖的所有進程都在等待資源
  • 參與死鎖的進程是當前系統中所有進程的子集

  • 一、死鎖產生的必要條件


    1. 互斥條件
    進程對所分配到的資源進行排它性使用,即在一段時間內,某資源只能被一個進程所占用。如果此時還有其他進程請求該資源,則請求進程只能等待,直至占有該資源的進程用完并釋放資源。

    2. 請求和保持條件
    進程已經保持了至少一個資源,但又提出新的資源請求,而該進程已經被其他進程占有,此時進行請求的進程將被阻塞,進入阻塞隊列,但是對自己已經獲得的資源保持不放。

    3. 不可搶占條件
    進程已獲得的資源在未使用之前不能被搶占,只能在進程使用完時由自己釋放。

    4. 循環等待條件
    在發生死鎖時,必然存在一個進程–資源的循環鏈,即進程集合{P0,P1,…,Pn}中的P0正在等待一個P1占用的資源,P1正在等待P2占用的資源,…,Pn正在等待已被P0占用的資源。


    二、處理死鎖的方法

    1. 預防死鎖

    (1)破壞“請求和保持”條件
    (2)破壞“不可搶占”條件
    可剝奪資源:即當某進程新的資源未滿足,釋放已占有的資源
    (3)破壞“循環等待”條件
    資源有序分配法:系統給每類資源賦予一個編號,每一個進程按編號遞增的順序請求資源,釋放則相反。


    2. 避免死鎖

    利用銀行家算法避免死鎖。Dijkstra的銀行家算法,原本是為銀行系統設計的,以確保銀行在發放現金貸款時,不會發生不能滿足所有客戶需要的情況。
    為實現銀行家算法,每一個新進程在進系統時,它必須申明在運行過程中,可能需要每種資源類型的最大單元數目,其數目不應超過系統所擁有的資源總量。當進程請求一組資源時,系統必須首先確定是否有足夠的資源分配給該進程。如果有,再進一步運算將資源分配給該進程后,是否會使系統處于不安全狀態。如果不會,才將資源分配給該進程。

    銀行家算法中的數據結構:
    (1)可利用資源向量Available
    代表可利用的資源數目。
    (2)最大需求矩陣Max
    代表各進程對各類資源的最大需求。
    (3)分配矩陣Allocation
    代表各進程當前已分配的各類資源數目。
    (4)需求矩陣Need 代表各進程尚需要的各類資源數目。最大需求矩陣減去分配矩陣(Need[i,j] = Max[i,j] - Allocation[i,j])

    銀行家算法的過程:

    銀行家算法例題:


    3. 檢測死鎖

    為了能對系統中是否發生了死鎖進行檢測,在系統中必須:保存有關資源的請求和分配信息;提供一種算法,它利用這些信息來檢測系統是否已經進入死鎖狀態。

    安全性算法:
    設置兩個向量
    a.工作向量Work:提供給進程繼續運行所需的各類資源數目。它含有m個元素,在安全算法開始時Work = Available
    b.Finash:它表示系統是否有足夠的資源分配給進程,使之運行完成。開始時,先令Finish[i] = false;當有足夠資源分配給進程時,再令Finish[i] = true;


    4. 解除死鎖

    當發現有進程死鎖后,便應立即把它從死鎖狀態中解脫出來,常用的方法:
    (1)剝奪(搶占)資源法:從其它進程剝奪足夠數量的資源給死鎖進程,以解除死鎖狀態。
    (2)撤銷(終止)進程法:可以直接撤銷死鎖進程或撤銷代價最小的進程,直至有足夠的資源可用,死鎖狀態消除為止;所謂的代價是指優先級、運行代價、進程的重要性和價值等。
    (3)進程回退法:需要設置還原點,讓一個或多個死鎖進程回退到足夠避免死鎖的地步。

    總結

    以上是生活随笔為你收集整理的计算机操作系统——死锁(产生的必要条件与处理死锁的四个关卡)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。