- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
31 【第 5 章 】存储器管理 32 18. 设按地址递增次序有 5 个内存空闲分区,它 们的容量依次为 100K , 500K , 200K , 300K 、 600K ,另在后备作业队列中顺序有 4 个作业, 其大小分别为 212K 、 417K 、 112K 、 426K ,假 定系统采用 FCFS 作业调度,那么采用 FF 、 BF 和 WF 三种内存分配算法中,哪一种可获得最佳 内存利用率? 1 2 操作系统课后作业 ( 2010 年下期 08 级 ) 3 【第 3 章 】进程管理 4 1. 试说明 PCB 的作用?为什么说 PCB 是进程存 在的唯一标志? 2. 【答】 PCB 的作用: 操作系统调度进程 的主要数据依据;记录进程的有关信息,供 系统对进程进行控制;标志进程存在。 3. PCB 是进程存在的唯一标志的理由: 在 进程的整个生命周期中,系统总是通过 PCB 对进程进行控制的,亦即,系统是根据进程 的 PCB 感知到该进程的存在的。 5 2. 如图 2.1 所示的进程状态,图中标出的数 字分别表示一种形式的状态变迁。现设分别有 进程处于执行态、就绪态和等待态,试判别下 列诸条件式是否成立?为什么? 1→2 , 1→3 , 2→1 , 2→4 , 3→1 , 3→4 , 4→1 , 4→2 , 4→3 , 5→1, 条件式“ x→y” 表示:若一进 程产生状态变迁 x ,则导致另一进程产生状态变 迁 y 。 图 2.1 2→1 3→1 5→1 答案: 6 3. 设有六个进程 P1,P2, … P6, 它们有如图 2.2 所 示的并发关系。试用 P 、 V 操作实现这些进程间 的同步。 图 2.2 7 【解答】设五个同步信号量 f1,f2,f3,f4,f5 分 别表示进程 P 1, P 2, P 3, P 4, P 5 是否执行完, 其初值均为 0 。这六个进程的同步描述如下: int f1=0; int f2=0; int f3=0; int f4=0; int f5=0; Main() { Begin P1( ); P2( ); P3( ); P4( ); P5( ); End } 图 2.2 f1 f2 f3 f4 f5 8 图 2.2 f1 f2 f3 f4 f5 P1( ) { v(f1); v(f2); } M P2( ) { p(f1); v(f2); } M P3( ) { p(f1); v(f3); } M P4( ) { p(f2); v(f4); } M P5( ) { p(f3); v(f5); } M P6( ) { p(f4); p(f5); } M 9 4. 产者和消费者关系的算法中,交换两个 V 操作的次序会有什么结果?交换两 P 操作的次 序会有什么结果?说明理由。 10 5. 有三个进程 A 、 B 、 C ,其中 A 与 B 构成一 对生产者和消费者,共享一个由 n 个缓冲区块组 成的缓冲池; B 与 C 也构成一对生产者与消费 者,共享另一个由 m 个缓冲块组成的缓冲池。 用 P 、 V 操作描述它们之间的同步关系。 缓冲池 1 缓冲池 2 n m P A P B P C 11 解答: 设置四个信号量 empty1 、 empty2 、 full1 和 full2 ,其同步关系描述如下: int empty1=n; /* 表示缓冲池 1 中的空缓冲 区数 */ int empty2=m; /* 表示缓冲池 2 中的空缓冲 区数 */ int full1=0; /* 表示缓冲池 1 中装满产品 的缓冲区数 */ int full2=0; /* 表示缓冲池 2 中装满产品 的缓冲区数 */ 12 main( ) { cobegin PA( ); PB( ); PC( ); Coend } 13 PA( ) { while(1) { 生产一件产品; P(empty1); 将一件产品放入缓冲池 1 ; V(full1); } } 14 PB( ) { while(1) { P(full1); 从缓冲池 1 中取出一件产品; V(empty1); P(empty2); 将一件产品放入缓冲池 2 ; V(full2); } } 15 PC( ) { while(1) { P(full2); 从缓冲池 2 中取出一件产品; V(empty2); } } 16 6. 在解决死锁问题的几个方法中,哪种方法 最容易实现?哪种方法使资源的利用率最高? 预防死锁 避免死锁 【解答】 17 7. 如果三个进程共享四个同类资源,且每个 进程至多需要两个资源,那么这三个进程是否 会陷入死锁? 不会陷入死锁 【解
文档评论(0)