作業系統知識整理 - 死鎖
定義:死鎖是指各併發程序互相等待對方所擁有的資源,且這些併發程序在得到對方的資源之前不會釋放自己佔有的資源,從而造成了各併發程序不能繼續往前推進的狀態。
起因:系統提供的資源個數少於併發程序所要求的該類資源數。
顯然,由於資源的有限性,不可能為所有程序無限制地提供資源。採用適當的資源分配演算法,就可以達到消除死鎖的目的。因此需要先了解產生死鎖的必要條件。
必要條件:
(1)互斥條件。併發程序所要求和佔有的資源不能同時被兩個以上程序使用,程序對它所需要的資源進行排他性控制。
(2)不剝奪條件。程序佔有的資源只能由程序本身釋放,而不能被其他程序強行剝奪。
(3)部分分配。程序每次申請它所需要的一部分資源,在等待新資源的同時,繼續佔用已分配到的資源(即使已經使用完)。
(4)環路條件。存在一種程序迴圈鏈,鏈中的每一個程序已獲得的資源同時被下一個程序所請求。
只要使上述4個必要條件中的某一個不滿足,死鎖就能解除。
實際上,消除死鎖一般依靠檢測和恢復。
當程序進行資源請求時,死鎖檢測演算法檢查併發程序是否出現環路,若出現,最簡單的方法是終止各鎖住程序,或按影響級別由低到高的順序中止程序序列,直至釋放的資源足夠完成剩餘程序。
相關推薦
作業系統知識整理 - 死鎖
定義:死鎖是指各併發程序互相等待對方所擁有的資源,且這些併發程序在得到對方的資源之前不會釋放自己佔有的資源,從而造成了各併發程序不能繼續往前推進的狀態。 起因:系統提供的資源個數少於併發程序所要求的該類資源數。 顯然,由於資源的有限性,不可能為所有程序無限制地提供資源。採用適當的資源分配
作業系統知識整理 - 知識梳理(聽說有人還不知道作業系統講了點啥?)
主要內容 作業系統的基本目標 作業系統的作用 作業系統的作用方式 作業系統的發展歷史 作業系統的基本型別 作業系統的基本特性 作業系統的主要功能(important) 處理機管理功能 儲存器管理功能 外圍裝置管理功能 檔案管理功能
作業系統知識整理
第一章 作業系統概論 1.1 作業系統概觀 (1)作業系統的定義和目標 作業系統是管理系統資源、控制程式執行,改善人機介面,提供各種服務,合理組織計算機工作流程和為使用者有效使用計算機提供良好執行環境的一種系統軟體 。 計算機系統的層次結構: 硬體-
作業系統之程序—死鎖 (六)
1.死鎖產生 獨佔性資源,如磁帶機、印表機、繪圖儀等硬體裝置以及程序表、臨界區等軟體資源不能同時供多個程序使用,否則容易導致結果混亂、資料錯誤以及程式崩潰,因此係統一次僅允許一個程序訪問獨佔性資源 如果多個程序共享的資源為獨佔性資源,處理不當,就可能發生若無外力,程序永遠
作業系統知識整理 - 執行緒的概念
主要內容 引入執行緒的原因 執行緒的基本概念 執行緒與程序的比較 執行緒的適用範圍 應用執行緒的例子 引入執行緒的原因 程序是為了提高CPU的執行效率,減少因為程式等待帶來的CPU空轉,以及其他計算機軟、硬體資源的浪費而提出來的
作業系統知識整理 - 程序控制
主要內容 建立程序 撤銷程序 阻塞程序 喚醒程序 掛起程序 所謂程序控制,就是系統使用一些具有特定功能的程式段來建立、撤銷程序以及完成程序各狀態間的轉換,從而達到多程序高效率併發執行和協調、實現資源共享的目的。 在作業系統中,這
作業系統知識整理 - 程序的概念
主要內容 問題產生 程式 單道程式的順序執行 多道程式的併發執行 併發執行的影響 程序的定義 程序的基本屬性 問題產生 採用一個什麼樣的概念來描述計算機程式的執行過程和作為資源分配的基本單位,才能充
作業系統知識整理 - 程序控制塊
前提 系統中需要有描述程序存在和能夠反映其變化的物理實體,即程序的靜態描述。 程序的靜態描述由3部分組成:程序控制塊(Process Control Block,PCB),有關程式段和該程式段操作的資料結構集。 PCB是系統感知程序的唯一實體,用於描述程序的當前情況以及管理程序執行的
作業系統知識整理 - 程序的狀態及其相互轉換
程序的狀態 程序有五種基本狀態:建立狀態、就緒狀態、執行狀態、阻塞狀態和終止狀態。 五種基本狀態間的轉換: 建立程序,分配記憶體空間→建立狀態→得到除處理機以外的其他資源→就緒狀態→程序排程,得到處理機→執行狀態→時間片用盡→就緒狀態; 執行狀態→等待某個事件(
作業系統知識整理 - 儲存器的基本知識
主要內容 儲存器的三級層次結構 主儲存器 暫存器 快取記憶體 磁碟快取 儲存器的三級層次結構 CPU暫存器、主存(快取記憶體、主儲存器、磁碟快取)、輔存(固態硬碟、USB、光碟等)。(從左往右,存取速度由高到低) 其中暫存器
作業系統 併發:死鎖和飢餓 複習題&練習題&總結
Part1 複習題: 6.1可重用資源:處理器、I/O通道,貯存和輔存,裝置以及諸如檔案,資料庫和訊號量之類的資料結構。 可消費資源:中斷、訊號、訊息和I/O緩衝區的資訊。 6.2產生死鎖的3個必要條件:互斥、佔有且等待、非搶佔。 6.3產生死鎖的4個條件:
【作業系統】處理死鎖的方法
破壞死鎖的四個必要條件中的一個或幾個。 預防死鎖 破壞互斥條件 破壞請求和保持條件 破壞不可剝奪條件 破壞環路等待條件 破壞互斥條件 即允許多個程序同時訪問資源。但由於資源本身固有特性的限制,此方法不可行。 破壞請求和保持條件 第一種協議
作業系統知識回顧(4)-死鎖
在計算機系統中,死鎖很容易發現,但死鎖也不難處理。這篇文章總結了死鎖的基本概念、必要條件以及四種處理死鎖的方法。 死鎖概念 在兩個或多個併發程序中,如果一個程序集合中的每個程序都在等待只能由該程序集合中的其他程序才能引發的事件,那麼該程序集合就產生了死鎖。 死鎖產生的根本原因是多個程序競爭資源
數據庫的死鎖相關知識
申請 業務 strong 自己 發的 一個表 tro 空間 死鎖 死鎖的定義 死鎖是指兩個或兩個以上的進程在執行的過程中,由於競態資源或由於彼此通信而造成的一種阻塞現象。若無外力作用,它們都將無法推進下去,此時稱系統處於死鎖狀態,這些在互相等待的進程稱為死鎖進程。
0823關於整理MySQL死鎖
nod 淺析 sql html hub 關於 理解 iyu www -- 更多的是需要理解 http://hedengcheng.com/?p=577 -- 何登成 關於WHERE的提取http://www.cnblogs.com/metoy/p/5545580.html
作業系統 自旋鎖+訊號量+互斥量+臨界區+死鎖的區別
自旋鎖(SpinLock) 自旋鎖是專為防止多處理器併發而引入的一種鎖。如果是單核處理器,則自旋鎖定義為空操作,因為簡單的關閉中斷即可實現互斥。 自旋鎖最多隻能被一個執行緒持有,如果一個執行緒試圖請求一個已被爭用(已被另一個執行緒持有)的自旋鎖,那麼等待自旋鎖的執行緒將會反
第六章—併發性:死鎖和飢餓【計算機作業系統】
6.1 給出可重用資源和可消費資源的例子。 可重用資源:處理器,I/O通道,主存和輔存,裝置以及諸如檔案,資料庫和訊號量之類的資料結構。 可消費資源:中斷,訊號,訊息和I/O緩衝區中的資訊。 6.2 可能發生死鎖所必須的三個條件是什麼? 互斥,佔有且等待,非搶佔。 6.
資源分配圖化簡法-作業系統·死鎖
圖和表示的內容 二 化簡資源分配圖 方法步驟 第一步:先看系統還剩下多少資源沒分配,再看有哪些程序是不阻塞(“不阻塞”即:系統有足夠的空閒資源分配給它)的 第二步:把不阻塞的程序的所有邊都去掉,形成一個孤立的點,再把系統分配給這個程序的資源回收回來 第三步:看剩下的程序有哪些是不阻塞的
轉載-資源分配圖化簡法-作業系統·死鎖
一 瞭解程序資源圖 Markdown編輯器用的還不是太熟,表格中插入圖片這事還沒學會,糾結著在Word中總結了下,然後截個圖放在下面供大家參考: 二 化簡資源分配圖 方法步驟 第一步:先看系統還剩下多少資源沒分配,再看有哪些程序是不阻塞(“不阻塞”即:系統有足夠的空閒資源分配給它
作業系統(10)程序--死鎖概念;死鎖處理方法:死鎖預防、死鎖避免、銀行家演算法、死鎖檢測
文章目錄 1. 死鎖概念 2. 死鎖處理方法 1. 死鎖預防 2. 死鎖避免 3. 銀行家演算法 4. 死鎖檢測 1. 死鎖概念 死鎖是指:由於競爭資源或者通