《银行家算法.pptx》由会员分享,可在线阅读,更多相关《银行家算法.pptx(28页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、计算机操作系统计算机操作系统2死锁的死锁的“3W”3W”WhatWhyHow3死锁的处理方法死锁的处理方法4避免死锁避免死锁银行家算法银行家算法设银行家有10万周转资金,P, Q, R分别需要8,3,9万元搞项目,如果P已申请到了4万,Q要申请2万,R要申请4万.Q1:客户要求分期贷款,一旦得到每期贷款,就能够归还贷款Q2:银行家应谨慎的贷款,防止出现坏帐银行家-操作系统 周转资金-系统资源 贷款客户-进程当某进程请求分配资源时,系统假定先分配给它,之后若能找到一个进程完成序列(安全序列),说明系统是安全的,可进行实际分配;否则,让申请者等待。5银行家算法中的数据结构银行家算法中的数据结构6
2、银行家算法当Pi发出资源请求,分配一个Request向量然后系统按下述流程进行执行:Requesti:是进程Pi的请求向量如果Requestij=K,表示进程i需要K个Rj类型的资源。银行家算法实现过程银行家算法实现过程78安全性算法实现过程安全性算法实现过程 安全性算法两个向量:Work和FinishWork表示系统可提供给进程继续运行所需的各类资源数目(即在分配过程中,系统的可用资源数)。初始值 Work=Available;Finish表示系统是否有足够的资源分配给进程i,使之运行完成。初始值 Finishi:=false当有足够资源分配给进程时 Finishi:=true910 银行家
3、算法实例银行家算法实例11银行家算法实例银行家算法实例12FinishFinishWork+AllocationWork+AllocationAllocationAllocationNeedNeedWorkWorktrue5 3 22 0 01 2 23 3 2P1AllocationAllocationNeedNeedP00 1 07 4 3P12 0 01 2 2P23 0 26 0 0P32 1 10 1 1P40 0 24 3 113FinishFinishWork+AllocationWork+AllocationAllocationAllocationNeedNeedWorkWor
4、ktrue7 4 35 3 22 1 10 1 1P3true5 3 22 0 01 2 23 3 2P1AllocationAllocationNeedNeedP00 1 07 4 3P12 0 01 2 2P23 0 26 0 0P32 1 10 1 1P40 0 24 3 114FinishFinishWork+AllocationWork+AllocationAllocationAllocationNeedNeedWorkWorktrue7 5 37 4 30 1 07 4 3true7 4 32 1 10 1 15 3 2true5 3 22 0 01 2 23 3 2P0P3P1A
5、llocationAllocationNeedNeedP00 1 07 4 3P12 0 01 2 2P23 0 26 0 0P32 1 10 1 1P40 0 24 3 115FinishFinishWork+AllocationWork+AllocationAllocationAllocationNeedNeedWorkWorktrue10 5 57 5 3true7 5 30 1 07 4 37 4 33 0 26 0 0true7 4 32 1 10 1 15 3 2true5 3 22 0 01 2 23 3 2P0P2P3P1AllocationAllocationNeedNeed
6、P00 1 07 4 3P12 0 01 2 2P23 0 26 0 0P32 1 10 1 1P40 0 24 3 116AllocationAllocationNeedNeedP00 1 07 4 3P12 0 01 2 2P23 0 26 0 0P32 1 10 1 1P40 0 24 3 1true10 5 70 0 24 3 110 5 5P4FinishFinishWork+AllocationWork+AllocationAllocationAllocationNeedNeedWorkWorktrue10 5 57 5 3true7 5 30 1 07 4 37 4 33 0 2
7、6 0 0true7 4 32 1 10 1 15 3 2true5 3 22 0 01 2 23 3 2P0P2P3P117银行家算法实例银行家算法实例18true10 5 70 0 24 3 110 5 5P4FinishFinishWork+AllocatioWork+Allocation nAllocationAllocationNeedNeedWorkWorktrue10 5 57 5 3true7 5 30 1 07 4 37 4 33 0 26 0 0true7 4 32 1 10 1 15 3 2true5 3 22 0 01 2 23 3 2P0P2P3P119银行家算法实例
8、银行家算法实例20银行家算法实例银行家算法实例21银行家算法实例银行家算法实例22银行家算法实例银行家算法实例23银行家算法实例银行家算法实例24 银行家算法实例银行家算法实例25银行家算法实例银行家算法实例26MaxMaxAllocationAllocationNeedNeedAvailableAvailableP07 5 30 3 07 2 32 1 0P13 2 23 0 20 2 0P29 0 23 0 26 0 0P32 2 22 1 10 1 1P44 3 30 0 24 3 1银行家算法实例银行家算法实例27练习练习 资源资源进程进程Allocation NeedAvailabler1 r2 r3r1 r2 r3r1 r2 r3P0P1P2P3P43 1 10 0 01 1 01 0 10 0 01 0 00 1 23 0 00 1 02 1 01 2 0在银行家算法中,若出现下面的资源分配情况:28试问:1)该状态是否安全?2)如果进程P2提出请求Request(0,1,0),系统能否将资源分配给它?3)如果系统立即满足P2的上述请求,则系统是否立即进入死锁状态?练习练习