Chapter 7 死結(Deadlocks)

Slides:



Advertisements
Similar presentations
國立聯合大學 資訊管理學系 陳士杰老師 前置觀念 : 系統基礎概念. 國立聯合大學 資訊管理學系 資料庫系統課程 ( 陳士杰 ) 2 Outline On line v.s. Off line Process 硬體保護 Caching I/O Structure Deadlock.
Advertisements

商业主体的设立 商业主体的设立. 学习重点 1. 公司的设立方式 商个人的设立 个人独资企业 一. 设立依据 《中华人民共和国个人独资企 业法》1999年8月通过, 自2000年1月1日起施 行 二. 设立条件 1. 投资人为一个自然人; 2. 有合法的企业名称; 3. 有投资人申报的出资; 4.
胸痛中心的时间流程管理 上海胸科医院 方唯一.
作業系統 第六章 同步與死結.
即兴中文讲演比赛 On-Site Speech 新型比赛项目
个人总结及展望 主讲人:胡玲玲.
第6章 死結(Deadlock).
Mode Selection and Resource Allocation for Deviceto- Device Communications in 5G Cellular Networks 林柏毅 羅傑文.
Operating System Process Management - 4 Monday, August 11, 2008.
LINGO.
Operating System CPU Scheduing - 3 Monday, August 11, 2008.
Minimum Spanning Trees
3-3 Modeling with Systems of DEs
Linear Programming: Introduction and Duality
Chapter 5 迴圈.
死結的處理 日期 : 2018/11/14.
Chapter 4 歸納(Induction)與遞迴(Recursion)
作 業 管 理 指導:盧淵源教授 第四組:碩士專班 N 徐天志 N 林耀宗 N 陳丁雲
Deadlocks P0 P1 Example System has 2 tape drives.
中国科学技术大学计算机系 陈香兰 2013Fall 第六讲 死锁及其处理 中国科学技术大学计算机系 陈香兰 2013Fall.
Applied Operating System Concepts
和春技術學院資訊管理系 九十三學年度第一學期 系統程式 第三章 死結(Deadlock)
Chapter 6 Graph Chang Chi-Chung
第三章 处理机调度与死锁 3.1 处理机调度的层次和调度算法的目标 3.2 作业与作业调度 3.3 进程调度 3.4 实时调度
MICROECONOMICS Chapter16 Price Control 價格管制.
The Greedy Method.
演算法方式總覽 The Divide-and-Conquer Strategy (個各擊破)(binary Searching、Quick Sort…. ) The Greedy Method(貪婪演算法) (Prim MST、Kruskal MST、Djikstra's algorithm) Dynamic.
作業系統 第六章 同步與死結.
第4章(2) 空间数据库 —关系数据库 北京建筑工程学院 王文宇.
Chapter7 全球資訊網與瀏覽器介紹 網路應用入門(一) Chapter7 全球資訊網與瀏覽器介紹
Course 9 NP Theory序論 An Introduction to the Theory of NP
微程序控制器 刘鹏 Dept. ISEE Zhejiang University
创建型设计模式.
第五組 : 廖震昌 / 謝坤吉 / 黃麗珍 陳曉伶 / 陳思因 / 林慧佳
临界区软件互斥软件实现算法.
ZEEV ZEITIN Delft University of Technology, Netherlands
临界区软件互斥软件实现算法 主讲教师:夏莹杰
Chap3 Linked List 鏈結串列.
職業 Random Slide Show Menu
Chp.4 The Discount Factor
Operation System(OS).
每周三交作业,作业成绩占总成绩的15%; 平时不定期的进行小测验,占总成绩的 15%;
學習經濟模型五步驟 模型目的。 內生變數。 行為法則。 均衡。 外生衝擊 模型目的。 判斷是否為外生變數改變?
Chp.4 The Discount Factor
安全状态的例子 例:假定系统有三个进程P1、P2、P3,共有12台磁带机。进程P1总共要求10台磁带机,P2和P3分别要求4台和九台。设在T0时刻,进程P1、P2和P3已经获得5台、2台和2台,还有3台空闲没有分配。 进程 最大需求 已分配 可用 P P2 4 2 P3 9 2 T0时刻系统时安全的。这时存在一个安全序列
Tournament (graph theory)
第7章 進階的同步 觀念與實務.
Chp.4 The Discount Factor
Neural Networks: Learning
Distance Vector vs Link State
李元金 计算机与信息工程学院 第 10讲 处理机调度与死锁(4) 李元金 计算机与信息工程学院 1/
CHAPTER 6 Concurrency:deadlock And Starvation
Efficient Query Relaxation for Complex Relationship Search on Graph Data 李舒馨
MiRanda Java Interface v1.0的使用方法
唐常杰 四川大学计算机学院 计算机科学技术系
计算机问题求解 – 论题 图的连通度 2018年11月13日.
资源分配与调度 第5章 资源分配与调度.
分布式系统 Distributed Systems 第 9 讲 协调和协定 Lecture 9 Coordination and Agreement 王晓阳、张 奇 复旦大学 计算机科学技术学院.
2012 程式設計比賽 Openfind 天使帝國 v2.0 (蓋亞的紋章).
Distance Vector vs Link State Routing Protocols
何正斌 博士 國立屏東科技大學工業管理研究所 教授
2 Number Systems, Operations, and Codes
Race Conditions and Semaphore
Maximum Flow.
Chapter 4 Multi-Threads (多執行緒).
Voronoi Diagram and Delaunay Triangulation
JAVA 程式設計與資料結構 第二十一章 Graph.
中正大學,資工系,作業系統實驗室 陽春副教授 羅習五
When using opening and closing presentation slides, use the masterbrand logo at the correct size and in the right position. This slide meets both needs.
Presentation transcript:

Chapter 7 死結(Deadlocks) 7.1 系統模型 7.2 死結的特性 7.3 處理死結的方法 7.4 預防死結 7.5 避免死結 7.6 死結的偵測 7.7 自死結恢復

7.1 系統模型 (System Model) 在正常運作的模式之下,一個行程只能依據下列的順序來使用資源︰ 1.要求(request)︰行程要求資源。若此要求不能立即 被認可,則行程必須等候以獲得此資源。 2.使用(use)︰行程能夠使用此資源。 3.釋放(release)︰行程釋放資源。

7.2 死結的特性(Deadlock Characterization)

佔用與等候(hold and wait):必須存在一個至少已佔用一個資源且還等候其它已被佔用資源之行程。 7.2.1 必要條件 死結問題發生的四個充要條件︰ 互斥(mutual exclusion):至少有一資源必須是不可共用的型式,換言之,一次只有一個行程可使用此資源。若有另一行程想使用這資源,則必須延遲至此資源被釋放後才可以。 佔用與等候(hold and wait):必須存在一個至少已佔用一個資源且還等候其它已被佔用資源之行程。 不可搶先(no preemption):資源無優先權;因此,一個資源只能被佔用它的行程在完成工作目標之後,才被釋放。 循環式等候(circular wait):必須存在一等候行程的集合{P0, P1, ...,Pn},其中P0等候的資源已被P1佔用,P1所等候的資源已被P2佔用,Pn-1所等後的資源已被Pn佔用,而Pn所等候的資源已被P0佔用。

7.2.2 資源配置圖(Resource-Allocation Graph) (instances)

If graph contains no cycles  no deadlock If graph contains a cycle  if only one instance per resource type, then deadlock if several instances per resource type, possibility of deadlock

7.3 處理死結的方法(Methods for Handling Deadlocks) 在理論上,有三種不同處理死結的方法 1.可以使用某一協議,以預防或避免死結,並保證系統絕不會進入死結狀態。 2.可以允許系統進入死結狀態,偵測出來再想辦法恢復之。 3.可以忽視此問題,假裝系統從沒發生過死結。 預防死結 (deadlock prevention)是一組可以確保死結四個必要條件至少有一項不會發生的方法。這些方法藉由限制對資源的要求來避免死結發生。 避免死結(deadlock avoidance)則要求作業系統預先能取得,一個行程在它的生命期將會要求及使用那些資源。有了這些資訊之後,我們可以決定,此行程的每一要求是否該等待。

7.4 預防死結 (Deadlock Prevention) 互斥(mutual exclusion) 對不可共用的資源型式來說互斥的條件必定成立。 佔用與等候 必須保證一個行程在要求一項資源時,不可以佔用任何其它的資源。 不可搶先 已經配置出去的資源不可被別的行程搶先佔用。 循環式等候 確保循環式等候的條件不成立,我們對所有的資源型式強迫安排一個線性的順序。

7.5 避免死結(Deadlock Avoidance) 安全狀態(Safe State) 系統能以某種順序將其資源分配給各行程且仍能避免死結者,則稱其狀態為安全 (safe)狀態。

資源配置圖演算法(Resource-Allocation Graph Algorithm) Single instance of a resource type Claim edge Pi  Rj indicated that process Pj may request resource Rj; represented by a dashed line Suppose that process Pi requests a resource Rj The request can be granted only if converting the request edge to an assignment edge does not result in the formation of a cycle in the resource allocation graph

銀行家演算法 Multiple instances of a resource type

Example of Banker’s Algorithm 5 processes P0 through P4; 3 resource types: A (10 instances), B (5 instances), and C (7 instances) Snapshot at time T0: Allocation Max Available A B C A B C A B C P0 0 1 0 7 5 3 3 3 2 P1 2 0 0 3 2 2 P2 3 0 2 9 0 2 P3 2 1 1 2 2 2 P4 0 0 2 4 3 3 12

The content of the matrix Need is defined to be Max – Allocation Need A B C P0 7 4 3 P1 1 2 2 P2 6 0 0 P3 0 1 1 P4 4 3 1 The system is in a safe state since the sequence < P1, P3, P4, P2, P0> satisfies safety criteria 13

Example: P1 Request (1,0,2) Check that Request  Available (that is, (1,0,2)  (3,3,2)  true Allocation Need Available A B C A B C A B C P0 0 1 0 7 4 3 2 3 0 P1 3 0 2 0 2 0 P2 3 0 1 6 0 0 P3 2 1 1 0 1 1 P4 0 0 2 4 3 1 Executing safety algorithm shows that sequence < P1, P3, P4, P0, P2> satisfies safety requirement Can request for (3,3,0) by P4 be granted? Can request for (0,2,0) by P0 be granted? 14

7.6 死結的偵測 (Deadlock Detection) 具單一例證的資源型式(Single Instance of Each Resource Type) Maintain wait-for graph Nodes are processes Pi  Pj if Pi is waiting for Pj Periodically invoke an algorithm that searches for a cycle in the graph. If there is a cycle, there exists a deadlock An algorithm to detect a cycle in a graph requires an order of n2 operations, where n is the number of vertices in the graph

具有多個例證的資源型式(Several Instances of a Resource Type)

Example of Detection Algorithm Five processes P0 through P4; three resource types A (7 instances), B (2 instances), and C (6 instances) Snapshot at time T0: Allocation Request Available A B C A B C A B C P0 0 1 0 0 0 0 0 0 0 P1 2 0 0 2 0 2 P2 3 0 3 0 0 0 P3 2 1 1 1 0 0 P4 0 0 2 0 0 2 Sequence <P0, P2, P3, P1, P4> will result in Finish[i] = true for all i 17

7.7 自死結恢復(Recovery from Deadlock) 行程的終止(Process Termination) 1. 取消所有死結中的行程: 顯然這樣會終止死結循環,但是代價很大,因為這些行程可能已經計算很長的一段時間,而這部份的計算結果必須被拋除,並且稍 後可能要再重新計算。 2. 一次取消一個行程直到死結循環被消除為止: 此方法需要可觀的超額費用,因為在每個行程被取消後,必須求助於死結偵測演算法決定是否有任何行程仍然在死結中。

資源的優先權(Resource Preemption) 選擇犧牲者(select a victim): minimize cost 就是決定那一個資源與那一個行程需先行奪取之? 在行程被終止時,我們必須決定優先權次序以減少費用。影響費用的因素可能包 括死結行程在其執行期間所佔用的資源以及時間浪費的多寡。 回撤(rollback): return to some safe state, restart process for that state 如果從某一行程處搶取資源,對這行程有那些事要做呢?很明顯地,該行程已無法再正常執行;它缺少了某些必要的資源。必須將其撤回到某一安全狀態,再從這狀態重新開始。一般說來決定什麼是安全的狀態是很困難的。最簡單的方法就是全部撤回(total rollback):將行程中斷,以後再重新開始。然而較有效率的做法是將該行程撤回到能解開死結的狀態。換句話說此方法要求系統必須將每一個行程執行中的狀態儲存起來。 飢餓(starvation): same process may always be picked as victim, include number of rollback in cost factor 要如何才能確定飢餓的情形不會發生呢?也就是說,如何才能保證資源不會總是被同一行程處優先搶得?