windows操作系统概述.pptx
windows操作系统概述共26页,您现在浏览的是第1页!第十讲死锁目的与要求:了解死锁的定义,掌握死锁预防,了解死锁避免,死锁检测,死锁恢复的方法。重点与难点:死锁预防法则的使用。作业:21,22windows操作系统概述共26页,您现在浏览的是第2页!4.4死锁4.4.1死锁示例日常生活中的例子进程死锁的例子竞争外部设备竞争辅存空间编程错的例子windows操作系统概述共26页,您现在浏览的是第3页!4.4.2死锁定义及性质死锁定义 在一个进程集合中,若每个进程都在等待某些事件(指:释放资源)的发生,而这些事件又必须由这个进程集合中的某些进程来产生,就称该进程集合处于死锁状态。windows操作系统概述共26页,您现在浏览的是第4页!死锁定义及性质资源分配图定义资源分配图由如下部件组成:如果各类资源数为1,则系统出现死锁的充要条件是资源分配图含圈.....Piwindows操作系统概述共26页,您现在浏览的是第5页!4.4.3死锁防止逻辑公式:D→C1∧C2∧C3∧C4?C1∨?C2∨?C3∨?C4→?Dwindows操作系统概述共26页,您现在浏览的是第6页!破坏非剥夺条件(用于内存管理、CPU管理等)当进程Pi申请ri类资源时,若有则分配,若没有则剥夺(释放)Pi占有的所有资源;当进程Pi申请ri类资源时,若有则分配,若无则剥夺(淘汰)占有ri类资源进程所占的ri类资源分配给Pi;或看占用ri类资源的Pk处于什么状态,若处于等资源状态,则剥夺其资源,否则让Pi等待,等于剥夺Pi的资源。windows操作系统概述共26页,您现在浏览的是第7页!4.4.4死锁避免银行家算法(在系统处理资源申请时,判断在满足申请时,系统是否还处于安全状态?是则满足本次资源申请,否则拒绝。依此引导进程运行次序)单类资源系统安全状态定义:设系统中有n个进程,若存在一个序列〈P1,P2…Pn〉使得Pi(i=1,2…n)以后还需要的资源可以通过系统现有资源加上所有Pj(j<i)占有的资源来满足,则称这个系统处于安全状态,序列〈P1,P2…Pn〉称为安全序列。windows操作系统概述共26页,您现在浏览的是第8页!扩展的银行家算法描述n:系统中的进程个数。m:系统中的资源类型数。Available(1:m):现有资源向量。Available(j)=k表示有k个未分配的j类资源。Max(1:n,1:m):资源最大申请量矩阵。Max(i,j)=k表示第i个进程对第j类资源的最大申请量为k.Allocation(1:n,1:m):资源分配矩阵。Allocation(i,j)=k表示进程i已占有k个j类资源。Need(1:n,1:m):进程以后还需要的资源矩阵。Need(i,j)=k表示第i个进程以后还需要k个第j类资源。显然Need=Max-AllocationRequest(1:n,1:m):进程申请资源矩阵。Request(i,j)=k表示进程i申请k个第j类资源。windows操作系统概述共26页,您现在浏览的是第9页!设进程i申请资源,申请资源向量为Requesti,则有如下的资源分配过程:1、如果RequestiNeedi则报错返回。2、如果RequestiAvailable,则进程i进入等待资源状态,返回。3、假设进程i的申请已获准,于是修改系统状态: Available=Available-Requesti Allocationi=Allocationi+RequestiNeedi=Needi-Requesti4、调用安全状态检查算法。windows操作系统概述共26页,您现在浏览的是第10页!安全状态检查算法:设Work(1:m)为临时工作向量。初始时Work=Available.令N={1,2…n}1、寻找j∈N使其满足Needj≤Work,若不存在这样的j则转(3)2、Work=Work+AllocationjN=N-{j},转(1)3、如果N为空则返回(系统安全);如果N不为空则返回(系统不安全)。windows操作系统概述共26页,您现在浏览的是第11页!4.4.5死锁检测采用化简资源分配图的方法可以检测系统中有无进程处于死锁状态。资源分配图的简化过程:1.在图中找一个进程顶点Pi,Pi的请求边均能立即满足。2.若找到这样的Pi则将与Pi相连的边全部删去,转(1);否则化简过程结束。windows操作系统概述共26页,您现在浏览的是第12页!死锁检测算法设Work(1:m)为临时工作向量。初始时Work=Available.令N={1,2…n}寻找j∈N使其满足Requestj≤Work,若不