操作系统(谌卫军王浩娟)课后习题参考答案教程分析.docVIP

操作系统(谌卫军王浩娟)课后习题参考答案教程分析.doc

  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文档。上传文档
查看更多
第1章 概述 一、单项选择题 D、A、B、A、C、D、C、A、C、B 二、填空题 Windows、linux 用户态、内核态 PSW 中断 同步中断 系统调用 I/O设备管理、文件系统 实时性、可靠性 第2章 进程管理 一、单项选择题 D、D、C、D、B、A、B、D、C、C B、B、B、D、B、A、B、A 二、填空题 PCB 运行、就像、阻塞 4、5 时间片用完 进程管理、存储管理 PCB 进程 CPU寄存器的值、栈 竞争状态 运行、就绪 I/O繁忙 SJF FCFS 短进程、I/O繁忙进程 三、简答题 1、运行状态、阻塞状态、就绪状态 运行-阻塞:如进行I/O操作、进程间同步关系; 运行-就绪:时间片用完、被高优先级进程所打断; 阻塞-就绪:等待的I/O操作、信号量等事件发生; 就绪-运行:调度程序选中该进程运行; 2、 (1)进程是资源分配单位,拥有一个完整的资源平台,而线程只独享必不可少的资源,如寄存器和栈; (2)线程能减少并发执行的时间和空间开销,包括创建时间、终止时间、切换时间; (3)线程之间可以共享同一个地址空间,可以进行不通过内核的通信,而进程不行; (4)线程 = 轻量级进程; (5)线程是CPU调度单位; 3、 (1)当一个新的进程被创建时; (2)当一个进程运行完毕时; (3)当一个进程由于I/O、信号量或其他的某个原因被阻塞时; (4)当一个I/O中断发生时,表明某个I/O操作已经完成,而等待该I/O操作的进程转入就绪状态; (5)在分时系统中,当一个进程的时间片用完时; 4、 RR算法的基本思路: (1)将所有的就绪进程按照FCFS原则,排成一个队列; (2)每次调度时将处理器分派给队首进程,让其执行一小段CPU时间; (3)在一个时间片结束时,如果进程还没有执行完的话,将发生时钟中断,在时钟中断中,进程调度程序将暂停当前进程的执行,并将其送到就绪队列的末尾,然后执行当前的队首进程; (4)如果进程在它的时间片用完之前就已结束或被阻塞,那么立即让出CPU。 RR算法的主要缺点:时间片q的大小难以确定。 5、 (1)时间片用完,高优先级进程就绪 (2)不会发生切换 (3)PCB (4)不需要 (5)不能 四、应用题 1、 (1)CPU空闲:100ms~150ms (2)A无等待,B有等待,180ms~200ms 2、 (1)Job1从投入到运行完成需要110ms,Job2从投入到运行完成需要90ms,Job3从投入到运行完成需要110ms: (2)CPU的利用率:(110-30)/110 = 72.7%; (3)设备I1的利用率:(110-30)/110 = 72.7%,设备I2的利用率:(110-20)/110 = 81.8%。 3、 (1)这种机制不能实现资源的互斥访问 考虑如下的情形: (a)初始化的时候,flag数组的两个元素值均为FALSE (b)线程0先执行,在执行while循环语句的时候,由于flag[1]=FALSE,所以顺利结束,不会被卡住。假设这个时候来了一个时钟中断,打断它的运行; (c)线程1去执行,在执行while循环语句的时候,由于flag[0]=FALSE,所以顺利结束,不会被卡住,然后就进入了临界区; (d)后来当线程0再执行的时候,也进入了临界区,这样就同时有两个线程在临界区 (2)可能会出现死锁 考虑如下的情形: (a)初始化的时候,flag数组的两个元素值均为FALSE (b)线程0先执行,flag[0]=TRUE,假设这个时候来了一个时钟中断,打断它的运行; (c)线程1去执行,flag[1]=TRUE,在执行while循环语句的时候,由于flag[0]=TRUE,所以在这个地方被卡住了,直到时间片用完; (d)线程0再执行的时候,由于flag[1]=TRUE,它也在while循环语句的地方被卡住了,这样,这两个线程都无法执行下去,从而死锁。 4、 (1)最后打印了3个字符D (2)最少可能打印了0个字符A,例如,P1连续执行了3次,然后P3连续执行了3次。P2一次也没有执行。 (3)不可能,因为当打印出前面的“CABAB”的时候,信号量R的值等于1,此时,不可能连续打印两个D。 (4)可能。相当于进程P2在打印完第二个A的时候被中断了。 5、 (1)信号量的定义: int boys_waiting = 0, girls_waiting = 0, using = 0; Semaphore S_mutex = 1, S_boys = 0, S_girls = 0; (2) void boy_wants_to

文档评论(0)

挺进公司 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档