操作系统课后 课后作业 第二次作业.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
操作系统课后 课后作业 第二次作业

2.4 系统调用的目的是什么?如何实现与操作系统相关的系统调用以及与双重模式(内核模式和用 户模式)操作相关的系统调用? 答:系统调用被应用程序用来调用一个由操作系统提供的函数。通常情况下,系统调用最终转换成在内核模式下的系统程序。 3.3. 对于图3.9(b)中给出的7状态进程模型,请仿照图3.8(b)画出它的排队图。 答:图9.3给出了单个阻塞队列的结果。该图可以很容易的推广到多个阻塞队列的情形。 4.7. 一个多处理系统有 8 个处理器和 20 个附加磁带设备。 现在有大量的作业提交给该系统, 假设每个作业开始运行时只需要 3 个磁带设备, 完成每个作业最多需要 4 个磁带设备。 并且在很长时间内都只需要这 3 个设备,而只是在最后很短的一段时间内需要第 4 个 设备以完成操作。同时还假设这类作业源源不断。 a. 假设操作系统中的调度器只有当 4 个磁带设备都可用时才开始一个作业。 当作业开 始时,4 个设备立即被分配给它,并且直到作业完成时才被释放。请问一次最多 可以同时执行几个作业?采用这种策略,最多有几个磁带设备可能是空闲的?最 少有几个? b. 给出另外一种策略, 要求其可以提高磁带设备的利用率, 并且同时可以避免系统死 锁。分析最多可以有几个作业同时执行,可能出现的空闲设备的范围是多少。 答: a. 采用一个保守的策略,一次最多同时执行 20/4=5 个作业。由于分配各一个任务的 磁带设备最多同时只有一个空闲,所以在同一时刻最多有 5 个磁带设备可能是空 闲的。在最好的情况下没有磁带设备空闲。 b. 为了更好的利用磁设备, 每个作业在最初只分配三个磁带设备。 第四个只有的需要 的时候才分配。在这种策略中,最多可以有 20/3=6 个作业同时执行。最少的空闲 设备数量为 0, 最多有 2 个。 参考: Advanced Computer Architectrue,K.Hwang,1993 5.8考虑下面关于信号量的定义: ?????????????????Void?semWait(s) ?????????????????{ ?????????????????????If?(s.count0) ?????????????????????{ ????????????????????????s.count--; ??????????????????????} ??????????????????????Else ??????????????????????{ ?????????????????????????Place?this?process?in?s.queue; ?????????????????????????Block; ??????????????????????} ?????????????????} ?????????????????Void?semSignal(s) ?????????????????{? ?????????????????If?(there?is?at?liast?one?process?blocked?on?semaphore) ?????????????????{? ????????????????????Remove?a?process?P?from?s.queue; ????????????????????Place?process?P?on?ready?list; ?????????????????} ?????????????????Else? ?????????????????????s.count++; ??????????????} 比较这个定义和图5.3中的定义,注意有这样的一个区别:在前面的定义中,信号量永远不会取负值。当在程序中分别使用这两种定义时,其效果有什么不同?也就是说,是否可以在不改变程序意义的前提下,用一个定义代替另一个? 答:这两个定义是等价的,在图5.3的定义中,当信号量的值为负值时,它的值代表了有多少个进程在等待;在此题中的定义中,虽然你没有关于这方面的信息,但是这两个版本的函数是一样的。 5.12在图5.9和5.3的注释中,有一句话是“仅把消费者临界区(由s控制)中的控制语句移出还是不能解决问题,因为这将导致死锁”,请用类似于表5.3的表说明。 答: Producer Consumer s n delay 1 1 0 0 2 SemWaitB(S) 0 0 0 3 n++ 0 1 0 4 If(n==1) (semSignalB(delay)) 0 1 1 5 semSignalB(s) 1 1 1 6 semWaitB(delay) 1 1 0 7 semWaitB(s) 0 1 0 8 n-- 0 0 9 semWaitB(s) I

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档