国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 課堂 > 電腦知識 > 正文

系統進程死鎖產生的原因

2024-05-08 15:06:32
字體:
來源:轉載
供稿:網友

  1.有限資源的競爭引起進程死鎖

  當系統中為多個進程所共享的資源不能同吋滿足它們的需求時,引起它們對資源的競爭而產生死鎖。在通常情況下,系統中的資源分為可剝奪、非剝奪和臨時性資源,不同類型的資源在發生死鎖時的處理方式不同。

  (1)可剝奪資源如CPU和主存等,在系統中優先權高的進程可剝奪優先權低的進程對這些資源的占用。

  (2)非剝奪資源如打印機、讀卡機和磁帶機等是屬于吋順序重復使用的資源。這類資源的特點是,當系統把某資源分配給某進程后,不能再強行收回,只能在進程用完后自動釋放。圖1所示是多個進程因爭奪非剝奪資源產生死鎖的典型例子。具體地說,如果有一組進程P1,P2,...,Pn,其中P1,P2,...,Pn分別占有資源R1,R2,...,Rn,P1同時又申請資源R2,P2同時又申請資源R3,…,Pn-1同時又申請Rn,Pn占有資源Rn同時再申請資源R1。此時,這組進程都因資源得不到滿足而進人了互相等待的阻塞狀態,永遠也不可能前進并到達終點,這時就說系統中出現了死鎖現象,P1,P2,...,Pn這組進程處于死鎖狀態。

系統進程死鎖產生的原因   CUOxin.COM

  (3)臨時性資源是指由進程產生、使用后無用的資源。如進程通信時使用的信件,如果對信件的發送和接收不加限制的話,則可能引起死鎖。如圖2所示,S1、S2和S3是臨時性資源,分別由進程P1、P2和P3產生,進程之間的通信情況是:P1要求從P3接收信件,P3要求從P2接收信件,P2要求從P1接收信件。而實際的操作過程是:進程P1等待進程P3的信件S3來到后再向進程P2發送信件S1,P2又要等待P1的信件S1來到后再向P3發送信件S2,而P3也要等待P2的信件S2來到后才能發出信件S3。在這種情況下就形成了循環等待,發生死鎖。

系統進程死鎖產生的原因

  由此可見,多個進程競爭使用資源,而系統提供的資源數不能完全滿足進程的需求,所以資源不足是引起死鎖的主要原因。但需要注意的是,并不是多個進程要求使用多個資源就一定會產生死鎖,上例還表明,進程在運行中對資源要求在時間上的沖突也是產生死鎖的一個原因。

  2.進程推進的順序不當引起死鎖

  由于進程的調度是獨立的,因此它們對資源的請求和釋放操作也存在多種序列,其中有些序列是不安全的,如上面提到的對臨時性資源的占用情況;而有些序列是安全的,例如進程P1、P2都需要資源R1、R2,如果兩個進程的推進順序是,進程P1占有資源R1,申請R2時,進程P2還未占有R2,這樣就不會發生死鎖。這說明死鎖是一種與時間有關的錯誤,它和各進程推進的速度以及對資源清求的順序有關。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 寻乌县| 通榆县| 双流县| 开阳县| 米林县| 湘潭市| 上杭县| 营口市| 新源县| 密云县| 临潭县| 永丰县| 渝北区| 静宁县| 湄潭县| 皮山县| 沛县| 奉贤区| 芜湖市| 信丰县| 安西县| 平果县| 康马县| 蕉岭县| 长乐市| 长治县| 手机| 武定县| 郧西县| 兴义市| 石渠县| 井陉县| 夏邑县| 噶尔县| 阳朔县| 永福县| 西城区| 柳江县| 平陆县| 日喀则市| 白城市|