CHAPTER 6 Concurrency:deadlock And Starvation

Slides:



Advertisements
Similar presentations
1 Lecture 5 Properties of LTI Systems The Solution of LCCDE.
Advertisements

期末考试作文讲解 % 的同学赞成住校 30% 的学生反对住校 1. 有利于培养我们良好的学 习和生活习惯; 1. 学生住校不利于了解外 界信息; 2 可与老师及同学充分交流有 利于共同进步。 2. 和家人交流少。 在寄宿制高中,大部分学生住校,但仍有一部分学生选 择走读。你校就就此开展了一次问卷调查,主题为.
商业主体的设立 商业主体的设立. 学习重点 1. 公司的设立方式 商个人的设立 个人独资企业 一. 设立依据 《中华人民共和国个人独资企 业法》1999年8月通过, 自2000年1月1日起施 行 二. 设立条件 1. 投资人为一个自然人; 2. 有合法的企业名称; 3. 有投资人申报的出资; 4.
1 I/O 设备访问方式和类型. 2 Overview n The two main jobs of a computer: l I/O (Input/Output) l processing n The control of devices connneted to the computer is.
云计算辅助教学风云录 黎加厚 上海师范大学教育技术系 2010年8月9日.
統合分析臨床試驗實之文獻品質評分:以針灸療法之統合分析為例
Chapter 3: Operating-System Structures操作系统结构
CHAPTER 9 虛擬記憶體管理 9.2 分頁需求 9.3 寫入時複製 9.4 分頁替換 9.5 欄的配置法則 9.6 輾轉現象
附錄1 —— 《個人資料(私隱)條例》的釋義、原則及主要條文
CHAP 2 Computer-System Structures 计算机系统结构
Chapter 2: Computer-System Structures计算机系统结构
第6章 死結(Deadlock).
1. 理想的路由算法 有关路由选择协议的几个基本概念 算法必须是正确的和完整的。 算法在计算上应简单。
教育信息技术学院 2014年11月 《教育传播学》 第二章 教育传播过程和模式 第一节 教育传播过程 主讲人:胡钦太教授.
Chapter 6 同步 (Synchronization)
發展學校評估政策 的理念與原則 教育局課程發展處 幼稚園及小學組 2009年11月11日
Operating System Process Management - 4 Monday, August 11, 2008.
Operating System CPU Scheduing - 2 Monday, August 11, 2008.
Operating System CPU Scheduing - 3 Monday, August 11, 2008.
指導教授:許子衡 教授 報告學生:翁偉傑 Qiangyuan Yu , Geert Heijenk
全廠製造費用分攤率 全廠使用單一的製造費用分攤率。
Operating System Concepts 作業系統原理 Chapter 3 行程觀念 (Process Concept)
Deadlocks P0 P1 Example System has 2 tape drives.
Applied Operating System Concepts
和春技術學院資訊管理系 九十三學年度第一學期 系統程式 第三章 死結(Deadlock)
CHAPTER 8 VIRTUAL MEMORY
Operating System Concepts 作業系統原理 CHAPTER 2 系統結構 (System Structures)
Draft Amendment to STANDARD FOR Information Technology -Telecommunications and Information Exchange Between Systems - LAN/: R: Fast BSS.
HLA - Time Management 陳昱豪.
Chapter 3 行程觀念 (Process Concept)
Chapter7 全球資訊網與瀏覽器介紹 網路應用入門(一) Chapter7 全球資訊網與瀏覽器介紹
製程能力分析 何正斌 教授 國立屏東科技大學工業管理學系.
计算机操作系统 第二章 进程管理 高校教师、高级项目经理 任铄 QQ:
普通物理 General Physics 29 - Current-Produced Magnetic Field
971研究方法課程第九次上課 認識、理解及選擇一項適當的研究策略
The Problem of Social Cost
Operating System Principles 作業系統原理
句子成分的省略(1).
Microsoft SQL Server 2008 報表服務_設計
推动全球能源变革,以创造清洁、安全、繁荣的低碳未来。


Operation System(OS).
Guide to a successful PowerPoint design – simple is best
Chp.4 The Discount Factor
中国科学技术大学计算机系 陈香兰 2013Fall 第七讲 存储器管理 中国科学技术大学计算机系 陈香兰 2013Fall.
虚 拟 仪 器 virtual instrument
中国科学技术大学计算机系 陈香兰 Fall 2013 第三讲 线程 中国科学技术大学计算机系 陈香兰 Fall 2013.
Common Qs Regarding Earnings
Part5-Chapter 1 餐旅人力資源 管理的內涵 本章研習重點 1. 說明管理的定義。 2. 瞭解人力資源管理的定義。
第7章 進階的同步 觀念與實務.
WIRELESS LAN B 邱培哲 B 張宏安.
NASA雜談+電腦網路簡介 Prof. Michael Tsai 2015/03/02.
Process Description And Control
Chapter 4 分批成本制度.
Chapter 10 Mobile IP TCP/IP Protocol Suite
Create and Use the Authorization Objects in ABAP
严肃游戏设计—— Lab-Adventure
资源分配与调度 第5章 资源分配与调度.
PowerPoint Template.
何正斌 博士 國立屏東科技大學工業管理研究所 教授
Advanced Basic Key Terms Dependency Generalization Actor Stereotype
Operating System Software School of SCU
Race Conditions and Semaphore
MGT 213 System Management Server的昨天,今天和明天
作业 请您用星级模式评估您自己公司的一致性状况。 您的公司与它的战略执行一致吗?.
Gǎn ēn jié sài 感恩節說笑話比賽.
Experimental Analysis of Distributed Graph Systems
中正大學,資工系,作業系統實驗室 陽春副教授 羅習五
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 6 Concurrency:deadlock And Starvation 内容提要 产生死锁与饿死的原因 解决死锁的方法 死锁/同步的经典问题:哲学家进餐问题

6.1 Principles of Deadlock 死锁的定义: Permanent blocking of a set of processes that either compete for system resources or communicate with each other(一组竞争系统资源或互相通信的进程间相互的“永久”阻塞。 ) No efficient solution Involve conflicting needs for resources by two or more processes(所有死锁涉及到两个或更多的进程之间因对资源的需求所引起的冲突。 )

现在考虑涉及进程和计算机资源的死锁的描述。 例, Process P and Q compete two resources, Their general forms are: Process P Process Q … … Get A Get B … … Get B Get A … … Release A Release B … … Release B Release A

死锁与进程的推进顺序有关。若修改P的代码,则不会产生死锁 Process P … Get A Release A Get B Release B

Reusable Resources (可重用资源) 资源通常可分为两类:可重用的和可消费的。 Used by one process at a time and not depleted by that use ( 可重用资源是指一次只能供一个进程安全地使用,并且不会由于使用而耗尽。) 可重用资源释放之后供其他进程再次使用。 可重用资源的例子:Processors、 I/O channels, main and secondary memory(辅存)、files、 databases、 and semaphores Deadlock occurs if each process holds one resource and requests the other

Example of Deadlock

Another Example of Deadlock Space is available for allocation of 200K bytes, and the following sequence of events occur Deadlock occurs if both processes progress to their second request P1 P2 . . . . . . Request 70K bytes; Request 80K bytes; . . . . . . Request 80K bytes; Request 60K bytes;

Consumable Resources (可消耗资源) Created (produced) and destroyed (consumed) by a process(可消费资源是指可以创建(生产)并且可以销毁(消费)的资源。当进程得到一个资源时,该资源就不再存在了。 ) 可消费资源的例子 :Interrupts, signals, messages, and information in I/O buffers 可消费资源死锁的例子如下页 :

Example of Deadlock Deadlock occurs if receive is blocking 此类死锁是由于设计失误造成的,很难发现,且潜伏期较长 P1 P2 . . . . . . Receive(P2); Receive(P1); . . . . . . Send(P2, M1); Send(P1, M2);

Conditions for Deadlock (死锁条件) Mutual exclusion(互斥) only one process may use a resource at a time Hold-and-wait(保持并等待) A process may hold allocated resources while awaiting assignment of other No preemption(不剥夺)

Circular wait(环路等待)

Conditions for Deadlock 条件Mutual exclusion、 Hold-and-wait 、 No preemption是死锁产生的必要条件,而非充分条件。 条件Circular wait是前3个条件的潜在的结果。 4个条件连在一起构成了死锁的充分必要条件。

6.2 Deadlock Prevention (预防死锁) 预防死锁是设制一些限制条件,排除死锁发生的可能性. 采用破坏死锁条件,防止死锁发生. “互斥” : 是某些系统资源固有的属性,不能禁止. 禁止“保持并等待”条件:要求进程一次性地申请其所需的全部资源。若系统中没有足够的资源可分配给它,则进程阻塞。

3.禁止“不剥夺”条件: ①若一个进程占用了某些系统资源,又申请新的资源,则不能立即分配给它。必须让它首先释放出已占用资源,然后再重新申请; ②若一个进程申请的资源被另一个进程占有,OS可以剥夺低优先权进程的资源分配给高优先权的进程(要求此类可剥夺资源的状态易于保存和恢复,否则不能剥夺) 4.禁止“环路等待”的发生 可以将系统的所有资源按类型不同进行线性排队,并赋予不同的序号。进程对某类资源的申请只能按照序号递增的方式进行。

6.3 Deadlock Avoidance (避免死锁) 预防死锁通过实施较强的限制条件实现,降低了系统性能。 避免死锁的关键在于为进程分配资源之前,首先通过计算,判断此次分配是否会导致死锁,只有不会导致死锁的分配才可实行。

Two Approaches to Deadlock Avoidance Do not start a process if its demands might lead to deadlock Do not grant an incremental resource request to a process if this allocation might lead to deadlock

Resource Allocation Denial 资源分配拒绝策略,又称作银行家算法 . State of the system is the current allocation of resources to process 指系统能按某种顺序如<P1,P2,…,Pn>(称<P1,P2,…,Pn>为安全序列),来为每个进程分配其所需资源,直至最大需求,使每个进程都可顺序完成,则称系统处于safe state 若系统不存在这样一个安全序列,则称系统处于unsafe state

图6.6a显示了一个含有4个进程和3个资源的系统的状态。R1、R2和R3的资源总量分别为9、3和6。在当前状态下资源分配给4个进程,资源2和资源3各剩下1个可用单元。

P2 Runs to Completion

P1 Runs to Completion

P3 Runs to Completion

Unsafe State

Unsafe State

死锁避免的优点是它不需要死锁预防中的剥夺和重新运行进程,并且比死锁预防的限制少,但是在使用中也有许多限制: Maximum resource requirement must be stated in advance(预先必须申明每个进程需要的资源总量) Processes under consideration must be independent; no synchronization requirements (考虑的进程必须是无关的,它们执行的顺序必须没有任何同步要求的限制。) There must be a fixed number of resources to allocate(分配的资源数目必须是固定的。) No process may exit while holding resources(若进程占有资源,则不能让其退出系统)

6.4 Deadlock Detection (检测死锁) 检测死锁不同于预防死锁,不限制资源访问方式和资源申请。 OS周期性地执行死锁检测例程,检测系统中是否出现死锁。 死锁检测的算法通过标记没有死锁的进程来确定是否有死锁存在,当所有进程打上标记则未发生死锁,否则死锁发生。

死锁检测算法的执行过程:(最初,所有的进程都是未标记的,然后执行下列步骤:) 1.标记Allocation矩阵中一行全为零的进程: 2.初始化一个临时向量w,令w等于Avai1ab1e向量; 3.查找下标i,使进程i当前未标记且Q(为请求矩阵)的第i行小于等于w,也就是说,对所有的l≤k≤m Qik≤Wk。如果找不到这样的行,终止算法; 4.如果找到这样的行,标记进程i,并把分配矩阵中的相应行加到w中,也就是说,对所有的 1≤ k≤m,令Wk=Wk+Aik,返回步骤3。

Recovery(恢复) 一旦检测到死锁,就需要某种策略以恢复死锁 ,列出恢复死锁的方法: 1.取消所有的死锁进程。 2.把每个死锁进程备份到前面定义的某些检查点,并且重新启动所有进程。这要求在系统中构造重新运行和重新启动机制。该方法的风险是会再次发生原来的死锁。但是,并发进程的不确定性通常能保证不会发生这种情况。 3.逐个取消死锁进程直到不再存在死锁。 4.逐个剥夺资源直到不再存在死锁。

Dining Philosophers Problem 描述:有5个哲学家,他们的生活方式是交替地进行思考和进餐。哲学家们共用一张圆桌,分别坐在周围的五张椅子上。圆桌中间放有一大碗面条,每个哲学家分别有1个盘子和1支叉子。如果哲学家想吃面条,则必须拿到靠其最近的左右两支叉子。进餐完毕,放下叉子继续思考。 要求:设计一个合理的算法,使全部哲学家都能进餐(非同时)。算法必须避免死锁和饥饿,哲学家互斥共享叉子。

Dining Philosophers Problem

Dining Philosophers Problem 利用Semaphores解决哲学家进餐的问题 见图6.11,P272 可能出现死锁和饥饿  

Dining Philosophers Problem 可行的解决方案:只允许4个哲学家同时进餐厅用餐,则至少有一个哲学家可以拿到两支叉子进餐,完毕,放下叉子,其他哲学家就可进餐。不会出现死锁和饥饿 见图6.12, P273