好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

湖南大学操作系统作业(共4页).docx

5页
  • 卖家[上传人]:des****85
  • 文档编号:241071344
  • 上传时间:2022-01-16
  • 文档格式:DOCX
  • 文档大小:22.73KB
  • / 5 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 精选优质文档-----倾情为你奉上操作系统第二次作业第七章7.2 Consider the deadlock situation that could occur in the dining-philosophers problem when the philosophers obtain the chopsticks one at a time. Discuss how the four necessary conditions for deadlock indeed hold in this setting. Discuss how deadlocks could be avoided by eliminating any one of the four conditions.考虑哲学家进餐问题中可能出现死锁的情况,即当哲学家一次拿一只筷子时,讨论4个死锁必要条件的存在性,讨论如何通过避免四种情况之一来消除死锁 答 死锁的4个必要条件为:互斥、占有等待、非抢占、循环等待 考虑互斥性,A哲学家拿了筷子C1后该C1筷子在未被释放资源前无法被其他哲学家B获取,故互斥这个问题可以通过哲学家的筷子可以互相使用来实现。

      考虑占有等待性,A哲学家必须先占有左手筷子C1,并等待右手筷子C2,而C2可能为其他哲学家所占有这个问题可以通过设置哲学家在申请更多筷子时,必须释放现已分配的所有筷子,或协议每个哲学家在进餐前申请并获得所有筷子,即预先静态分配 考虑非抢占性,A哲学家占有筷子C1时不能被B哲学家抢占这个问题可以通过协议某个哲学家占有筷子并申请另一个不能被立即分配的筷子时,那么其现已拥有的筷子均可被抢占,即自己剥夺自己 考虑循环等待,出现循环等待的可能性为:每个哲学家同时只拥有左手的筷子而等待右手的筷子,而右手的筷子只能通过右手的哲学家释放其左手的筷子才能得到,故出现循环等待这个问题可以通过对筷子进行编号,对筷子的申请顺序由低到高来实现7.6 Consider a system consisting of four resources of the same type that are shared by three processes, each of which needs at most two resources.Show that the system is deadlock-free.考虑一个由4种相同资源、3个共享进程,每个需要2个该资源的系统,试证明这个系统不会出现死锁 答:这个问题比较简单,“抽屉原理”表明,4个资源分配给3个进程,则至少有一个进程分配到2个资源,那么该进程就得以运行,运行结束时,该进程会释放已分配的2个资源给系统里剩下的两个进程,这时4个资源分配给2个进程,不会出现死锁。

      7.7 Consider a system consisting of m resources of the same type, being shared by n processes. Resources can be requested and released by processes only one at a time. Show that the system is deadlock free if the following two conditions hold:a. The maximum need of each process is between 1 and m resources b. The sum of all maximum needs is less than m + n考虑一个系统由m个同种资源被n个进程共享,某一资源一次只能被请求或释放,证明这个系统如满足下面2个条件则不会死锁A 每个进程最大需求资源为1-m之间B 最大资源需求 之和

      7.8 Consider the dining-philosophers problem where the chopsticks are placed at the center of the table and any two of them could be used by a philosopher. Assume that requests for chopsticks are made one at a time. Describe a simple rule for determining whether a particular request could be satisfied without causing deadlock given the current allocation of chopsticks to philosophers.考虑哲学家进餐问题,如果所有筷子放在桌子中间,且一个哲学家可以用任意两只筷子,假设一次只能请求一只筷子描述一个简单的规则来确定 在当前哲学家进餐的筷子分配情况下,是否一个特殊请求可以在不会触发死锁的情况下完成答:这个题目的描述很模糊…我的考虑是这样,如果已知了当前筷子的分配,在某个哲学家申请第一只筷子的时候,判断两个条件 条件1:是否其他哲学家均没有同时拿到两根筷子的情况,(即所有哲学家占有并等待)条件2:是否桌上只剩一根筷子 ,(如果所有人占有等待,那么当前这个筷子只能分配给申请第二根筷子的哲学家,而不能分配给申请第一根筷子的哲学家)如果以上两个条件均为是,则不给该哲学家分配筷子,否则,分配给该哲学家筷子 7.11 Consider the following snapshot of a system:AllocationMaxNeedAvailableA B C DA B C DA B C DA B C DP00 0 1 20 0 1 20 0 0 01 5 2 0P11 0 0 01 7 5 00 7 5 0P21 3 5 42 3 5 61 0 0 2P30 6 3 20 6 5 20 0 2 0P40 0 1 40 6 5 60 6 4 2Answer the following questions using the banker’s algorithm:a. What is the content of the matrix Need?b. Is the system in a safe state?c. If a request from process P1 arrives for (0,4,2,0), can the request be granted immediately?使用银行家算法回答下列问题A Need矩阵的内容?B这是个安全状态的系统吗?C P1的某个请求需要[0 4 2 0],这个需求能立即被满足吗?答:(A) Need矩阵的内容,公式为Need[i]=Max[i]-Allocation[i],所以把Max矩阵和Allocation矩阵各项对应相减即可得到Need矩阵的内容。

      B) 安全状态判断:首先设置所有进程finish=false,从第一个finish=false进程开始按顺序判断,如果某进程Need矩阵全小于等于Available矩阵,则说明该进程可以得到资源分配,系统可以将资源分配给该进程并等待进程结束释放资源,同样将其Allocation加到Available矩阵上将该进程finish设置为true下面开始分析:P0进程:由于其Need矩阵全为0,说明可以释放资源,将该进程finish设置为true将其Allocation加到Available矩阵上,此时Available矩阵为[1 5 3 2]P1进程,Need矩阵不小于Available矩阵,故不分配资源,考虑下一进程P2进程,其need矩阵全小于等于Available矩阵,将该进程finish设置为true将其Allocation加到Available矩阵上,此时Available矩阵为[2 8 8 6]下面两种策略均可:一是从头循环,第二种是继续按顺序判断,我在此处采取第二种P3进程,其need矩阵全小于等于Available矩阵,将该进程finish设置为true将其Allocation加到Available矩阵上,此时Available矩阵为[2 14 11 8]P4进程,其need矩阵全小于等于Available矩阵,将该进程finish设置为true。

      将其Allocation加到Available矩阵上,此时Available矩阵为[2 14 12 12]P1进程,其need矩阵全小于等于Available矩阵,将该进程finish设置为true将其Allocation加到Available矩阵上,此时Available矩阵为[3 14 12 12]最终所有进程的finish均为true,说明系统安全(C) 资源请求算法:如果request[i]

      将其Allocation加到Available矩阵上,此时Available矩阵为[1 1 1 2]P1不能得到满足,选取P2,其need矩阵全小于等于Available矩阵,将该进程finish设置为true将其Allocation加到Available矩阵上,此时Available矩阵为[2 4 6 6]选择P3,其need矩阵全小于等于Available矩阵,将该进程finish设置为true将其Allocation加到Available矩阵上,此时Available矩阵为[2 10 9 8]选择P4,其need矩阵全小于等于Available矩阵,将该进程finish设置为true将其Allocation加到Available矩阵上,此时Avail。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.