内蒙古大学计算机操作系统第1—5章习题及答案
第一章习题 2、13、22答案2. OS的作用可表现为哪几个方面?a. OS作为用户与计算机硬件系统之间的接口;b. OS作为计算机系统资源的管理者;c. OS实现了对计算机资源的抽象. 13. OS具有哪几大特征?它的最基本特征是什么?a. 并发性、共享性、虚拟性、异步性。b. 其中最基本特征是并发和共享。(最重要的特征是并发性)22. 在基于微内核结构的OS中,应用了哪些新技术?客户/服务器模式和面向对象的程序设计技术第二章习题 2、8、22、26、28、342. 试画出下面4条语句的前趋图:S1S1: a:=x+y; S4S3S2: b:=z+1; S2S3: c:=a-b; S4: w:=c+1; 8试说明进程在三个基本状态之间转换的典型原因。答: (1)就绪状态执行状态:进程分配到CPU资源(2)执行状态就绪状态:时间片用完(3)执行状态阻塞状态:I/O请求(4)阻塞状态就绪状态:I/O完成22试写出相应的程序来描述图2-17所示的前驱图。答:(a)Var a, b, c, d, e, f, g, h; semaphore:= 0, 0, 0, 0, 0, 0, 0, 0;beginparbeginbegin S1; signal(a); signal(b); end;begin wait(a); S2; signal(c); signal(d); end;begin wait(b); S3; signal(e); end;begin wait(c); S4; signal(f); end;begin wait(d); S5; signal(g); end;begin wait(e); S6; signal(h); end;begin wait(f); wait(g); wait(h); S7; end;parendend(b)Var a, b, c, d, e, f, g, h,i,j; semaphore:= 0, 0, 0, 0, 0, 0, 0,0,0, 0;beginparbeginbegin S1; signal(a); signal(b); end;begin wait(a); S2; signal(c); signal(d); end;begin wait(b); S3; signal(e); signal(f); end;begin wait(c); S4; signal(g); end;begin wait(d); S5; signal(h); end;begin wait(e); S6; signal(i); end;begin wait(f); S7; signal(j); end;begin wait(g);wait(h); wait(i); wait(j); S8; end;parendend26. 试修改下面生产者消费者问题解法中的错误: producer: begin repeat produce an item in nextp; wait(mutex); wait(full); buffer(in):=nextp;signal(mutex); until false; end consumer:begin repeat wait(mutex); wait(empty); nextc:=buffer(out);out:=out+1;signal(mutex); consume item in nextc; until false; end答: producer:beginrepeatproducer an item in nextp;wait(mutex);wait(full); /* 应为wait(empty),而且还应该在wait(mutex)的前面 */buffer(in):=nextp;/* 缓冲池数组游标应前移: in:=(in+1) mod n; */signal(mutex);/* signal(full); */until false;endconsumer:beginrepeatwait(mutex);wait(empty); /* 应为wait(full),而且还应该在wait(mutex)的前面 */nextc:=buffer(out);out:=out+1; /* 考虑循环,应改为: out:=(out+1) mod n; */signal(mutex);/* signal(empty); */consumer item in nextc;until false;end a. Var mutex, empty, full: semaphore:=1, 1, 0; gather:begin repeat gather data in nextp; wait(empty); wait(mutex);buffer:=nextp;signal(mutex);signal(full);until false; end compute:begin repeat wait(full); wait(mutex);nextc:=buffer;signal(mutex);signal(empty); compute data in nextc;until false; end28在测量控制系统中的数据采集任务,把所采集的数据送一单缓冲区;计算任务从该单缓冲中取出数据进行计算.试写出利用信号量机制实现两者共享单缓冲的同步算法。答:a. Var mutex, empty, full: semaphore:=1, 1, 0;gather:beginrepeatgather data in nextp;wait(empty);wait(mutex);buffer:=nextp;signal(mutex);signal(full);until false;endcompute:beginrepeatwait(full);wait(mutex);nextc:=buffer;signal(mutex);signal(empty);compute data in nextc;until false;end34当前有哪几种高级通信机制?答:共享存储器系统、消息传递系统以及管道通信系统。第三章习题 8、18、228在批处理系统、分时系统和实时系统中,各采用哪几种进程(作业)调度算法?答:批处理系统的调度算法:先来先服务、短作业优先、优先权、高响应比优先。分时系统的调度算法:时间片轮转法、多级反馈队列调度算法。实时系统的调度算法:优先权、最早截止时间优先即EDF、最低松弛度优先即LLF算法。18. 何谓死锁?产生死锁的原因和必要条件是什么?a.死锁是指多个进程因竞争资源而造成的一种僵局,若无外力作用,这些进程都将永远不能再向前推进;b.产生死锁的原因有二,一是竞争资源,二是进程推进顺序非法;c.必要条件是: 互斥条件,请求和保持条件,不剥夺条件和环路等待条件。22. 在银行家算法中,若出现下述资源分配情:ProcessAllocationNeedAvailableP0003200121622P110001750P213542356P303320652P400140656试问: 该状态是否安全? 若进程P2提出请求Request(1,2,2,2)后,系统能否将资源分配给它?该状态是安全的,因为存在一个安全序列< P0P3P4P1P2>。下表为该时刻的安全序列表。资源情况进程WorkNeedAllocationWork+AllocationFinishP0P3P4P1P21 6 2 21 6 5 41 9 8 71 9 9 112 9 9 110 0 1 20 6 5 20 6 5 61 7 5 02 3 5 60 0 3 20 3 3 30 0 1 41 0 0 01 3 5 41 6 5 41 9 8 71 9 9 112 9 9 113 12 14 17truetruetruetruetrue 若进程P2提出请求Request(1,2,2,2)后,系统不能将资源分配给它,若分配给进程P2,系统还剩的资源情况为(0,4,0,0),此时系统中的资源将无法满足任何一个进程的资源请求,从而导致系统进入不安全状态,容易引起死锁的发生。第四章习题 6、7、15、266. 为什么要引入动态重定位?如何实现?答:1.程序在运行过程中经常要在内存中移动位置,为了保证这些被移动了的程序还能正常执行,必须对程序和数据的地址加以修改,即重定位。引入重定位的目的就是为了满足程序的这种需要。2.要在不影响指令执行速度的同时实现地址变换,必须有硬件地址变换机构的支持,即须在系统中增设一个重定位寄存器,用它来存放程序在内存中的起始地址。程序在执行时,真正访问的内存地址是相对地址与重定位寄存器中的地址相加而形成的。7在采用首次适应算法回收内存时,可能出现哪几种情况?应怎样处理这些情况?答:在采用首次适应算法回收内存时可能出现4种情况:1)回收区与插入点的前一个空闲分区F1相邻接,见图4-8(a)。此时应将回收区与插入点的前一分区合并,不必为回收分区分配新表项,而只需修改其前一分区F1的大小。(2) 回收分区与插入点的后一空闲分区F2相邻接,见图4-8(b)。此时也可将两分区合并,形成新的空闲分区,但用回收区的首址作为新空闲区的首址,大小为两者之和。 (3) 回收区同时与插入点的前、后两个分区邻接,见图4-8(c)。此时将三个分区合并,使用F1的表项和F1的首址,取消F2的表项,大小为三者之和。(4) 回收区既不与F1邻接,又不与F2邻接。这时应为回收区单独建立一新表项,填写回收区的首址和大小,并根据其首址插入到空闲链中的适当位置。 15在具有快表的段页式存储管理方式中,如何实现地址变换?答:在CPU给出有效地址后,由地址变换机构自动地利用段号和页号去检索高速缓存,若找到匹配的表项,便可从中得到相应