操作系统ch5分析.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
上述不论哪种方法,是剥夺或删除一个进程还是多个进程呢?主要考虑系统花费的代价。 关于最小代价,可以从以下几个方面考虑: (1)到目前为止消耗的处理机时间最少; (2)到目前为止产生的输出最少; (3)预计剩下的执行时间最长; (4)到目前为止分配的资源总量最少; (5)进程的优先级最低; (6)撤消某进程对其它进程的影响最小。 ? * * 理发师: begin While(true)then begin P(customers); P(mutex); Waiting=waiting-1; V(barbers); V(mutex); Cut hair(); end end 顾客: Begin P(mutex); If (waitingCHIRS) Begin Waiting=waiting+1; P(customers); P(mutex); Get_haircut(); End Else Begin V(mutex); End End * Philosopher(I) Begin if I mod 2 == 0 then begin P(c[I]); P(c[I+1]mod 5); 吃 V(c[I]); V(c[I+1]mod 5); * * 如果不按照安全序分配资源,则系统可能会由安全状态进入不安全状态。 例如,在T0时刻以后,P3又请求1台磁带机,若此时系统把剩余3台中的1台分配给P3,则系统便进入不安全状态。因为,此时再也无法找到一个安全序列。 例如,把其余的2台分配给P2,这样,在P2完成后只能释放出4台,既不能满足P1尚需5台的要求,也不能满足P3尚需6台的要求,致使它们都无法推进到完成,彼此都在等待对方释放资源,即陷入僵局,结果导致死锁。 不安全状态举例 进 程 最 大 需 求 已 分 配 可用 P1 P2 P3 10 4 9 5 2 2 3 2.银行家算法是怎样避免死锁的? 银行家算法是由E.W.Dijkstra为THE系统设计的一种算法。这一算法把操作系统比作银行家,操作系统管理的各种资源比作银行的周转资金,申请资源的进程比作向银行借款的借款人。 银行家占有有限的资金,他不可能满足所有借款人的请求,但可以满足一部分人的借款请求,等这些人归还后,又可把这笔资金借给其他人,其原则是不能使银行家的钱被借完,使资金无法周转。 2.银行家算法是怎样避免死锁的? 银行家算法 银行家拥有一笔周转资金 客户要求分期贷款,如果客户能够得到各期贷款,就一定能够归还贷款,否则就一定不能归还贷款 银行家应谨慎的贷款,防止出现坏帐 用银行家算法避免死锁 操作系统(银行家) 操作系统管理的资源(周转资金) 进程(要求贷款的客户) 不考虑利息之类的,只要能归还本金就好 (1)单项资源的银行家算法的基本思想 对每个进程的每次资源请求进行检查,看是否会导致不安全状态(信贷部客户经理做风险评估)。若是,则不满足该请求;否则便满足。 检查状态是否安全的方法是看他是否有足够的资源满足一个距最大需求最近的客户(???),如此反复下去。如果所有投资最终都被收回,则该状态是安全的,最初的请求可以批准。 银行家算法的程序流程图(见下一页) 设置进程“能运行完”标志, 并假设它归还全部资源 开始 清除所有进程的“能运行完”标志 对申请者预分配 系统剩余资源数与“能运行完”标志为0的进程尚需资源数相比较,找出一个系统能满足要求的进程 找到? 检查是否有“能运行完”标志尚未设置的进程 有? 分配不安全,不能分配 分配安全,进行实际分配 结束 Y N Y N canFinish==0 你不是要资源么?我就假设我满足了你,然后算一下,看有没有风险 canFinish=0 还有canFinish==0的吗? 那我就真的分配给你 能走这个分支,说明:要么每个人的canFinish==1,要么还有人的canFinish==0但所剩资源已经无法满足他 单项资源的银行家算法举例: 进程名 已分配资源数 尚需申请资源数 最大资源需求数 A 2 2 4 B 3 3 6 C 3 5 8 系统共10个资源 (2)多项(多种的意思)资源的银行家算法 在实际操作系统中,肯定是多项资源。 多项资源的银行家算法与单项资源的银行家算法相比,算法的基本思想完全一样,不同的只是数据结构的组织更加复杂。 因为现在是多种资源,所以标量换向量。 以前用一个数值资源数量,现在用一个向量的各个分量表示各种资源的数量 总的资源 W=(6,3,4,2) 已分配资源F=(5,3,2,2) 剩余资源 S=(1,0,2,0) 多项资源银行家算法的数据结构: 3个矩阵:M,A,N M表示n个进程对m类资源的最大需求量 A则记录了n个进程对m类资源已经

文档评论(0)

***** + 关注
实名认证
内容提供者

我是自由职业者,从事文档的创作工作。

1亿VIP精品文档

相关文档