操作系統基礎:進程知識筆記(三)

? ? ? ? ? ? ?

1、死鎖概念知識

計算機中存在許多互斥資源(打印機)、軟件資源(進程表、臨界區)如果兩個進程同時調用打印機,或同時進入臨界區必然會出現問題。

死鎖:指兩個以上的進程互相要求對方已經占有的資源導致無法繼續進行下去的現象。

2、死鎖案例

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

假設系統中有一臺打印機A、一臺掃描儀B,它們被進程P1、P2共享,兩個進程并發執行,按照下面的順序請求和釋放資源

如果按照P1<a>P2<a>P1<b>P2<b>的順序執行,會發生死鎖。首先P1<a>打印機A未被占用,可以正常執行;P2<a>掃描儀沒有被占用所以可以正常執行。

P1<b>時掃描儀被占用,所以需要等待。P1<b>時打印機被占用所以也需要等待。這樣導致雙方互相請求對方已經占用的資源,系統就會發生死鎖。

? ? ? ? ? ? ?

2.2 同類資源分配不當引起死鎖

如果系統中有m個資源被n個進程共享,當每個進程都需要k個資源,并且m<nk時,即資源數小于進程所要求的的總數時,可能會引起死鎖。

2.3 PV操作使用不當引起死鎖

P2進程從緩沖區取產品前,先執行P(S2),因為S2=-1,故P2等待;P1進程將產品送到緩沖區后。執行P(S1),因為S1=-1,故P1等待。這樣P1、P2都無法繼續執行下午,導致系統死鎖。

? ? ? ? ? ? ?

3、產生死鎖的原因和條件

原因:競爭資源及進程推進順序非

必要條件:互斥條件、請求保持條件、不可剝奪條件、環路條件。

進程資源有向圖:由方框(資源)、圓圈(請求資源)、有向邊組成。

? ? ? ? ? ? ?

4、死鎖的處理

鴕鳥策略(不理睬策略)、預防策略、避免策略、檢測與解除死鎖。

4.1 死鎖預防

采用某種策略顯示并發進程對資源的請求,破壞死鎖產生的某個必要條件,是系統在任何時刻都不能滿足死鎖的必要條件。預防死鎖的兩種策略如下:

1、預先靜態分配法

破壞不可剝奪條件、預先分配所需資源,保證不出現資源等待的情況。缺點:會降低資源利用率、并發程度。

2、資源有序分配法

破壞環路條件。把資源分類按順序排列,保證不形成環路。缺點:限制了進程對資源的請求、資源的排序會占用系統開銷。

4.2 死鎖避免

死鎖預防是設法破壞產生死鎖的必要條件之一,嚴格防止死鎖產生。死鎖避免并不是嚴格地限制死鎖產生的必要條件。最經典的死鎖避免算法是Dijkstra提出的銀行家算法。缺點:死鎖算法會占用系統的很大開銷。

4.3 死鎖檢測

該方法對資源分配不加限制,即允許死鎖產生,當系統要定時運行死鎖檢測程序,判斷系統是否發生死鎖,如果檢測到則設法解除。

4.4 死鎖解除

1、資源剝奪法:從一些進程那里強行剝奪足夠數量的資源分配給死鎖進程。

2、撤銷進程法:按照某種策略撤銷死鎖進程,直到解除死鎖。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/271460.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/271460.shtml
英文地址,請注明出處:http://en.pswp.cn/news/271460.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

垂直梯形校正畫質損失多少_梯形校正功能是怎么實現的?其中可大有學問

梯形校正這個概念&#xff0c;想必大部分投影儀用戶早已耳熟能詳。所謂的梯形校正&#xff0c;指的是當我們的投影儀位置擺放不正時&#xff0c;投射出來的畫面會是一個梯形&#xff0c;這時候需要通過投影儀的梯形校正功能將畫面調整為可以正常觀看的矩形。雖然目前市場上的大…

操作系統基礎:存儲管理知識筆記(一)

1、存儲器基礎知識 存儲器管理的對象是主存或內存&#xff0c;存儲器是計算機系統中非常關鍵的資源&#xff0c;用來存放各種信息的主要場所。存 儲器管理功能主要包括&#xff1a;主存空間的分配和回收、提供主存利用率、擴充主存、主存信息的保護。 2、存儲器結構 存儲器結構…

asp點擊按鈕sql列求和_助你2020晉級互聯網大數據陣營(一):輕輕松松學SQL

毫不負責任的說&#xff0c;你和數據科學家最大的鴻溝&#xff0c;就差一個SQL語言&#xff1a;)入門后&#xff0c;后面的事情就簡單了為了幫大家盡快入門Hive SQL、學會提數和分析&#xff0c;實現在大數據領域大干一場的愿望&#xff0c;幫你準備好了數據&#xff0c;準備好…

冪等和高并發在電商系統中的使用

在Java web項目開發中&#xff0c;經常會聽到在做訂單系統中生成訂單的時候&#xff0c;要做冪等性控制和并發控制&#xff0c;特對此部分內容作出總結&#xff0c;在高并發場景下&#xff0c;代碼層面需要實現并發控制&#xff1b;但是冪等性&#xff0c;其實更多的是系統的接…

@transactional注解失效情況

先來了解一下Transactional注解事務的特性吧&#xff0c;可以更好排查問題 1、service類標簽(一般不建議在接口上)上添加Transactional&#xff0c;可以將整個類納入spring事務管理&#xff0c;在每個業務方法執行時都會開啟一個事務&#xff0c;不過這些事務采用相同的管理方…

計算機c盤隱藏了怎么辦,win7怎么隱藏c盤 win7c盤被隱藏了怎么解除

很多的電腦用戶擔心其他用戶在使用電腦時修改c盤中的重要文件&#xff0c;所以會將c盤設置為隱藏&#xff0c;那么大家知道在win7系統中怎么隱藏c盤嗎?方法很簡單&#xff0c;下面小編為大家帶來win7隱藏c盤的詳細教程&#xff0c;不知道怎么隱藏的朋友可以查看下面的教程學習…

操作系統基礎:存儲管理知識筆記(二)

一、分頁存儲管理 1、分頁存儲管理介紹 1.1 分頁原理 頁&#xff1a;將一個進程的地址空間劃分為若干個大小相等的區域稱為頁。 塊、頁框&#xff1a;主存空間劃分成與頁相同的若干個物理塊。 1.2 地址結構 分頁系統地址結構&#xff1a;前一部分為頁號&#xff1b;后一部分為頁…

人工智能 信道估計 深度學習_DEMO演示|基于IVP02D 人工智能工作站的深度學習引擎,實現人群熱力估計...

近年來&#xff0c;隨著深度學習在計算機視覺領域獲得廣泛應用&#xff0c;算法框架也日漸成熟&#xff0c;例如基于深度神經網絡的人群密度分析&#xff0c;通過自動學習能獲得更有效的人群特征&#xff0c;相較于傳統方法取得了一定的提高。AI小知識人群密度分析&#xff08;…

SPSS學習中涉及的統計知識

1、獨立性檢驗 2、方差分析中方差齊性檢驗 3、非參數檢驗 4、p-p圖 5、卡方檢驗&#xff1a;研究分類因變量與分類自變量的關系。獨立性檢驗 6、t檢驗&#xff1a;研究連續因變量與分類自變量的關系。 7、啞變量 總結&#xff1a; 因變量連續&#xff0c;自變量連續&#xff0c…

vscode kite插件_微軟發布 VS Code Python 插件 7 月更新

微軟發布了 7 月的 Visual Studio Code Python 擴展更新&#xff0c;此版本總共修復了 51 個問題&#xff0c;其中包括&#xff1a;支持新的語言服務器&#xff1a;PylanceGather 擴展將 Notebook 導出為 HTML 和 PDF調試器的反向連接支持新的語言服務器&#xff1a;PylancePyl…

360瀏覽器打不開微信的連接服務器,上午還能打開,下午360瀏覽器打不開微信公 – 手機愛問...

2011-08-27ie&#xff0c;搜狗&#xff0c;谷歌瀏覽器都打不開&#xff0c;說打不開ipad說服務器超時是新浪在更新設備嗎&#xff1f;一般你能進入愛問就可以進入郵箱&#xff0c;下面的方法看看(如果你是鐵通的可能是鐵通的問題)。可能是服務器故障引起的&#xff0c;請不要著…

域名還能綁定動態IP?看完又漲知識了!!

點擊上方藍色“冰河技術”&#xff0c;關注并選擇“設為星標”持之以恒&#xff0c;貴在堅持&#xff0c;每天進步一點點&#xff01;作者個人研發的在高并發場景下&#xff0c;提供的簡單、穩定、可擴展的延遲消息隊列框架&#xff0c;具有精準的定時任務和延遲隊列處理功能。…

java 及時釋放內存_JMM(一):初識Java內存模型

在并發編程中&#xff0c;線程之間的通信是一個很關鍵的問題&#xff0c;而該問題解決方案主要可分為兩大類&#xff1a;消息傳遞、共享內存。前者有以Erlang語言為代表的Actor模型&#xff0c;而后者中典型的則是Java語言。對于消息傳遞機制而言&#xff0c;線程之間必須通過發…

php 復習

對所學知識的依次基礎的總結 <?php一.php基礎語法 1.輸出語句&#xff1a;**echo(可以輸出多個字符串); print&#xff08;輸出一個字符串&#xff09;; print_r&#xff08;輸出數組&#xff09;; **var_dump()&#xff08;具體 的數據 還有它的類型&#xff09;;2.php是弱…

mac新建文件夾快捷鍵

mac新建文件夾快捷鍵 COMMAND SHIFT N

python382怎么用_用python做UDP連接

寫個客戶端 #!/usr/bin/env python from socket import * HOST 10.2.167.115 PORT 20001 BUFSIZE 1024 ADDR (HOST, PORT) udpClientSock socket(AF_INET, SOCK_DGRAM) while True: data raw_input(Enter the message you want to send >) if not data: break udpClie…

更新系統后魔獸世界無法連接至服務器,《魔獸世界:熊貓人之謎》5.0launcher更新無法連接服務器解決方法...

早上launcher一半的時候&#xff0c;出現無法鏈接服務器&#xff0c;并且自動關閉。測試多種辦法&#xff0c;已經解決。1、打開目錄x:/world of warcraft/temp2、運行目錄下&#xff1a;wow-4.3-5.0.15890-zhcn-downloader.exe (一個英文下載器)3、報錯could not connect to t…

電腦維修知識:電腦常見故障維修大全及解決方法

電腦已經成為我們學習生活娛樂必不可少的設備了&#xff0c;用得時間久了難免會遇到小故障&#xff0c;今天我們一起來看下遇到常見的電腦方面的小故障&#xff0c;我們應該如何去自己檢測和維修吧。電腦檢測故障我們還是要從電腦的幾大硬件開始檢查起。1、CPU打開機箱查看CPU風…

工程圖樣中粗實線的用途_圖紙天天畫,粗實線和細實線的線寬比例是多少?2:1還是3:1?...

點擊上方頭條號“機械設計一點通”關注我們&#xff0c;每天學習一個機械設計相關知識點我們知道&#xff1a;機械制圖中為了表示不同內容&#xff0c;并能分清主次&#xff0c;必須使用不同線型。圖線的線型由線寬和線素長度等構成&#xff0c;機械制圖中各種線型都有相應寬度…

STM32F4_USART配置及細節描述

Ⅰ、概述 關于USART串口通信&#xff0c;可以說是MCU的標配。不管是在實際項目應用中&#xff0c;還是在開發過程中&#xff0c;它都起著很重要的作用。 在項目應用中我們常常使用UART串口進行通信&#xff0c;根據通信的距離及穩定性&#xff0c;還選擇添加RS232、RS485等對UA…