操作系统教程孙仲秀第4版习题及解答.docx
- 文档编号:5027257
- 上传时间:2022-12-12
- 格式:DOCX
- 页数:20
- 大小:41.83KB
操作系统教程孙仲秀第4版习题及解答.docx
《操作系统教程孙仲秀第4版习题及解答.docx》由会员分享,可在线阅读,更多相关《操作系统教程孙仲秀第4版习题及解答.docx(20页珍藏版)》请在冰豆网上搜索。
操作系统教程孙仲秀第4版习题及解答
《操作系统教程》习题及解答
习题一(操作系统概论)
二.应用题
1.有一台计算机,具有1MB内存,操作系统占用200KB,每个进程各占用200KB。
如果用户进程等待I/O的时间为80%,若增加1MB内存,则CPU的利用率提高多少
答:
设每个进程等待I/O的百分比为P,则n个进程同时等待I/O的概率是
当n个进程同时等待I/O期间CPU是空闲的,故CPU的利用率为1-
.由题意可知,除去操作系统,内存还能容纳4个用户进程,由于每个用户进程等待I/O的时间为80%,故:
CPU利用率=1-
=
若再增加1MB内存,系统中可同时运行9个用户进程,此时:
CPU利用率=1-
=
故增加1MB内存使CPU的利用率提高了47%:
87%/59%=147%
147%-100%=47%
2.一个计算机系统,有一台输入机和一台打印机,现有两道程序投入运行,且程序A先开始做,程序B后开始运行.程序A的运行轨迹为:
计算50ms,打印100ms,再计算50ms,打印100ms,结束.程序B的运行轨迹为:
计算50ms,输入80ms,再计算100ms,结束.试说明
(1)两道程序运行时,CPU有无空闲等待若有,在哪段时间内等待为什么会等待
(2)程序A,B有无等待CPU的情况若有,指出发生等待的时刻.
答:
(1)两道程序运行期间,CPU存在空闲等待,时间为100至150ms之间
(2)程序A无等待现象,但程序B有等待.程序B有等待时间段为180ms至200ms间.
3.设有三道程序,按A,B,C优先次序运行,其内部计算和I/O操作时间由图给出.
ABC
=30ms
=60ms
=2
0ms
=40ms
=30ms
=40ms
=10ms
=10ms
=20ms
试画出按多道运行的时间关系图(忽略调度执行时间).完成三道程序共华多少时间比单道运行节省了多少时间若处理器调度程序每次进行程序转换花时1ms,试画出各程序状态转换的时间关系图.
答:
(图略)
1)忽略调度执行时间,多道运行方式(抢占式):
抢占式共用去190ms,单道完成时间需要260ms,节省70ms
忽略调度执行时间,多道运行方式(非抢占式):
非抢占式共用去180ms,单道完成时间需要260ms,节省80ms
2)(略)
7.
单道时CPU的利用率为:
(190-80)/190=%
多道时CPU的利用率为:
(140-30)/140=%
11.
应时钟中断频率为60HZ,所以时钟频率为:
1/60=50/3ms.在每个时钟周期CPU花2ms执行中断任务。
所以CPU用于时钟中断处理的时间比率为:
2/(50/3)=12%
习题二(处理器管理)
二.应用题
1.下列指令中哪些只能在核心态运行
(1)读时钟日期;
(2)访管指令;(3)设时钟日期;(4)加载特殊寄存器;(6)改变存储器映象图;(7)启动I/O指令。
答:
(3),(4),(5),(6),(7).
8.对某系统进行监测后表明平均每个进程在I/O阻塞之前的运行时间为T。
一次进程切换的系统开销时间为S。
若采用时间片长度为Q的时间片轮转法,对下列各种情况算出CPU利用率。
1)Q=无穷大2)Q>T3)S 答: 1)Q=无穷大CPU利用率=T/(T+S) 2)Q>TCPU利用率=T/(T+S) 3)S 4)Q=SCPU利用率=Q/(Q+S)] 5)Q接近于0CPU利用率—>0 9.按照最短作业优先的算法可以使平均相应时间最短。 X的取值不定,按照以下情况讨论: 1)x<=3次序为x,3,5,6,9 2)3 3)5 4)6 5)9 11.有5个批处理作业A到E均已到达计算中心,其运行时间分别为10,6,2,4和8分钟;各自的优先级分别规定为3,5,2,1和4,这里5为最高级。 若不考虑系统切换开销,计算出平均作业周转时间。 (1)按FCFS(按A,B,C,D,E); (2)优先级调度算法,(3)时间片轮转法。 答: (1)FCFS调度算法 执行次序 执行时间 等待时间 周转时间 带权周转时间 A B C D E 10 6 2 4 8 0 10 16 18 22 10 16 18 22 30 1 9 3 5 2 1 4 作业平均周转时间 作业平均带权周转时间 T=(10+16+18+22+30)/5= W=(1++9++/5= (2)优先级调度算法 执行次序 执行时间 等待时间 周转时间 带权周转时间 A B C D E 6 8 10 2 4 0 6 14 24 26 6 14 24 26 30 1 13 作业平均周转时间 作业平均带权周转时间 T=(6+14+24+26+30)/5=20 W=(1+++13+/5= (3)时间片轮转法 按次序ABCDEABDEABEAEA轮转执行. 作业 执行时间 等待时间 周转时间 带权周转时间 A B C D E 10 6 2 4 8 20 16 4 12 20 30 22 6 16 28 3 3 4 3.5 作业平均周转时间 作业平均带权周转时间 T=(30+22+6+16+28)/5= W=(3++3+4+/5= 13.请你设计一种先进的计算机体系结构,它使用硬件而不是中断来完成进程切换,则CPU需要哪些信息请描述用硬件完成进程切换的工作过程。 答: 该计算机有一个专用硬件寄存器,它始终存放指向当前运行进程的PCB的指针.当系统中发生了一个事件,如I/O结束事件,CPU便可把运行进程的上下文保存到专用硬件寄存器指针指向的PCB中保护起来,然后,CPU转向中断向量表,找到设备中断处理程序入口,让专用硬件寄存器指针指向(设备)中断服务例程,于是,便可启动中断服务例程工作. 15.单道批处理系统中,下列三个作业采用先来先服务调试算法和最高响应比优先算法进行调试,哪一种算法性能较好,请完成下表: 作业 提交时间 运行时间 开始时间 完成时间 周转时间 带权周转时间 1 2 3 10: 00 10: 10 10: 25 2: 00 1: 00 0: 25 平均作业周转时间= 平均作业带权周转时间W= 答: FIFO 作业 提交时间 运行时间 开始时间 完成时间 周转时间 带权周转时间 1 2 3 10: 00 10: 10 10: 25 2: 00 1: 00 0: 25 10: 00 12: 00 13: 00 12: 00 13: 00 13: 25 2 2: 50 3 120/120 145/60 180/25 平均作业周转时间= 平均作业带权周转时间W= HRN 作业 提交时间 运行时间 开始时间 完成时间 周转时间 带权周转时间 1 2 3 10: 00 10: 10 10: 25 2: 00 1: 00 0: 25 10: 00 12: 25 12: 00 12: 00 13: 25 12: 25 2 3: 15 2 120/120 195/60 120/25 平均作业周转时间= 平均作业带权周转时间W= 可见HRRF比FIFO要好. 19.有一个具有两道作业的批处理系统,作业调度采用短作业优先的调试算法,进程调度采用优先数为基础的抢占式调度算法,在下表所示的作业序列,作业优先数即为进程优先数,优先数越小优先级越高。 作业名 到达时间 估计运行时间 优先数 A B C D 10: 00 10: 20 10: 30 10: 50 40分 30分 50分 20分 5 3 4 6 答: 每个作业运行将经过两个阶段: 作业调度(SJF算法)和进程调度(优先数抢占式).另外,批处理最多容纳2道作业,更多的作业将在后备队列等待. 作业 进入内存时间差 运行结束时间 A B C D 10: 00 10: 20 11: 10 10: 50 11: 10 10: 50 12: 00 12: 20 各作业周转时间为: 作业A70,作业B30,作业C90,作业D90.平均作业周转时间为70分钟 24.实时任务可调度应满足: 35/50+20/100+10/300+x/250<1 x<250(1-28/30)=250*= 习题三(并发进程) 二.应用题 1.有三个并发进程: R负责从输入设备读入信息块,M负责对信息块加工处理;P负责打印输出信息块。 今提供: 1)一个缓冲区,可放置K个信息块; 2)二个缓冲区,每个可放置K个信息块; 试用信号量和P,V操作写出三个进程正确工作的流程。 答: 1)varB: array[0,k-1]ofitem; sread: semaphore: =k; smanage: semaphore: =0; swrite: semaphore: =0; rptr: integer: =0; mptr: inerger: =0; wptr: inerger: =0; x: item cobegin processreader; begin L1: readeramessageintox; P(sread); B[rptr]: =x; rptr=(rptr+1)modk; V(smanage); GotoL1; End; processmanager; begin L2: P(smanage); x=B[mptr]; mptr=(mptr+1)modk; managerthemessageinx; B[mptr]: =x V(swrite) GotoL2; End; Processwriter; Begin L3: P(swrite); x=B[wptr]; wptr=(wptr+1)modk; V(stread); Printthemessageinx; GotoL3; End; Coend 2)varA,B: array[0,k-1]ofintm; sput1: semaphore: =k; sput2: semaphore: =k; sget1: semaphore: =0; sget2: semaphore: =0; put1: integer: =0; put2: integer: =0; get1: integer: =0; get2: integer: =0; cobegin processreader; begin L1: readamessageintox; P(sput1); A[put1]=x; Put1: =(put1+1)modk; V(sget1); GotoL1; End; Processmanager; Begin L2: P(sget1); X: =A[get1]; Get1: =(get1+1)modk; V(sput1) Managethemessageintox; P(sput2); B[put2]: =x Put2: =(put2+1)modk; V(sget2); GotoL2; End; Processwriter; Begin L3: P(sget2); X: =B[get2]; Get2: =(get2+1)modk; V(sput2); Printthemessageinx; GotoL3; End; coend 3.有两个优先级相同的进程P1和P2,各自执行的操作如下,信号量S1和S2初值均为0。 试问P1,P2并发执行后,? x,y,z的值各为多少 P1: P2: beginbegin y: =1;1x: =1;5 y: =y+3;2x: =x+5;6 V(S1);P(S1); z: =y+1;3x: =x+y;7 P(S2);V(S2); y: =z+y;4z: =z+x;8 end.end. 1,2,5和6是不相交语句,可以任何次序交错执行,而结果是唯一的。 接着无论系统如何调度进程并发执行,当执行到语句7时,可以得到x=10,y=4。 按Bernstein条件,语句3的执行结果不受语句7的影响,故语句3执行后得到z=25。 最后,语句4和8并发执行,最后结果为: 答语句4先执行: x=10,y=9,z=15. 语句8先执行x=10,y=19,z=15 5.在一个盒子里,混装了数量相等的黑白围棋子。 现在用自动分拣系统把黑子,白子分开,设分拣系统有二个进程P1和P2,其中P1拣白子,P2拣黑子。 规定每个进程每次拣一子;当一个进程在拣时,不允许另一个进程去拣;当一个进程拣了一子时,必须让另一个进程去拣。 试写出两个进程P1和P2能并发正确执行的程序。 答: 实质上是两个进程的同步问题,设信号量S1和S2分别表示可拣白子和黑子,不失一般性,若令先拣白子. VarS1,S2: semaphore; S1: =1,S2: =0; Cogegin { processP1 begin repeat P(S1); 拣白子 V(S2); Untilfalse; End Processp2 Begin Repeat P(S2); 拣黑子; V(S1); Untilfalse; End } coend. 17.吸烟者问题 答: 用信号量和P,V操作 Vars,s1,s2,s3;semaphore; S: =1;s1=s2=s3=0; Flag1,flag2,flag3: Boolean; Flag1=flag2=flag3=TRUE; Cobegin { Process供应者 Begin Repeat P(S); 取两样香烟原料放桌上,由flagi标记;flag1/flag2/flag3分别代表烟草,纸、火 Ifflag2&flag3thenv(s1);、供应纸和火 Elseifflag1&flag3thenv(s2);、供应草和火 Elsev(s3); Untilefalse; end Process吸烟者1 Begin Repeat P(s1) 取原料,做香烟; v(S); 吸香烟; Untilefalse; Process吸烟者2 Begin Repeat P(s2) 取原料,做香烟; v(S); 吸香烟; Untilefalse; Process吸烟者3 Begin Repeat P(s3) 取原料,做香烟; v(S); 吸香烟; Untilefalse; } Coend 27. 答: (1) 系统处于安全状态,存在安全序列: p0,p3,p4,p1,p2; (2)不能分配,否则系统会处于不安全状态。 33. (1)系统四个进程需要使用的资源数为R1各2台,R2各1台。 可见资源数不足。 同时各进程申请资源在先,有可能产生死锁发生的四个条件,故系统可能产生死锁。 (2)当三个进程执行完申请资源R1,开始申请资源R2时,第四个进程会因没有资源R1而被阻塞。 当三个进程执行完申请资源R2后,系统还剩1个R2资源。 而这三个进程因执行申请第二个资源R1而全部被阻塞,系统进入死锁。 习题四(存储管理) 二.应用题 3.一个页式存储管理系统使用FIFO,OPT和LRU页面算法,如果一个作业的页面走向为4,3,2,1,4,3,5,4,3,2,1,5。 当分配给该作业的物理块数分别为3和4时,试计算访问过程中发生的缺页中断次数和缺页中断率。 答: 作业的物理块数为3块时,使用FIFO为9次,9/12=75% 使用LRU为10次,10/12=83% 使用OPT为7次,7/12=58% 作业的物理块数为4块时,使用FIFO为10次,10/12=83% 使用LRU为8次,80/12=66% 使用OPT为6次,6/12=50% 其中,出现了Belady现象,增加分给作业的内存块数,反使缺页中断率上升. 4.在可变分区存储管理下,按地址排列的内存空闲区为: 10K,4K,20K,18K,7K,9K,12K,和15K。 对于下列的连续存储区的请求: (1)12K,10K,9K。 (2)12K,10K,15K,18K试问: 使用首次造应算法,最佳造应算法,最差适应算法和下次适应算法,哪个空闲区被使用 答: 空闲分区如图所示: 分区号 分区长 1 2 3 4 5 6 7 8 10KB 4KB 20KB 18KB 7KB 9KB 12KB 15KB 1)首次造应算法 12KB选中分区3,这时分区3还剩选中分区1.恰好分配故应删去分区1.9KB 选中分区4,这时分区4还剩9KB. 2)最佳造应算法 12KB选中分区7,恰好分配故应删去分区7.10KB选中分区1.恰好分配故应删去分区1.9KB选中分区6.恰好分配故应删去分区6. 3)最差适应算法 12KB选中分区3,这时分区3还剩8KB.10KB选中分区4,这时分区4还剩8KB.9KB 选中分区8,这时分区8还剩6KB. 4)下次适应算法 12KB选中分区3,这时分区3还剩8KB.10KB选中分区4,这时分区4还剩8KB. 9KB选中分区6.恰好分配故应删去分区6. (2)原理分区情况同上图 1)首次造应算法 12KB选中分区3,这时分区3还剩选中分区1.恰好分配故应删去分区1.15KB选中分区4,这时分区4还剩3KB.最后无法满足18KB的申请,应该等待. 2)最佳造应算法 12KB选中分区7,恰好分配故应删去分区7.10KB选中分区1.恰好分配故应删去分区选中分区8.恰好分配故应删去分区8.18KB选中分区4.恰好分配故应删去分区4. 3)最差适应算法 12KB选中分区3,这时分区3还剩8KB.10KB选中分区4,这时分区4还剩8KB.15KB选中分区8,恰好分配故应删去分区8.最后无法满足18KB的申请,应该等待. 4)下次适应算法 12KB选中分区3,这时分区3还剩8KB.10KB选中分区4,这时分区4还剩8KB. 15KB选中分区8,恰好分配故应删去分区8.最后无法满足18KB的申请,应该等待. 5,给定内存空闲分区,按地址从小到大为: 100K,500K,200K,300K和600K。 现有用户进程依次分别为212K,417K,112K和426K, (1)分别用first-fit,best-fit和worst-fit算法将它们装入到内存的哪个分区 (2)哪个算法能最有效利用内存 答: 按题意地址从小到大进行分区如图所示: 分区号 分区长 1 2 3 4 5 100KB 500KB 200KB 300KB 600KB (1) 1)first-fit212KB选中分区2,这时分区2还剩288KB.417KB选中分区5,这时分区5还剩183KB.112KB选中分区2,这时分区2还剩176KB.426KB无分区能满足,应该等待. 2)best-fit212KB选中分区4,这时分区4还剩88KB.417KB选中分区2,这时分区2还剩83KB.112KB选中分区3,这时分区3还剩88KB.426KB选中分区5,这时分区5还剩174KB. 3)worst-fit212KB选中分区5,这时分区5还剩388KB.417KB选中分区2,这时分区2还剩83KB.112KB选中分区5,这时分区5还剩176KB.426KB无分区能满足,应该等待. (2)对于该作业序列,best-fit算法能最有效利用内存 7.内存有3个和4个空闲页框的情况下,页面替换次数为9次和10次,出现了Belady现象。 9.某计算机有cache,内存,辅存来实现虚拟存储器。 如果数据在cache中,访问它需要20ns;如果在内存但不在cache,需要60ns将其装入缓存,然后才能访问;如果不在内存而在辅存,需要不是12ms将其读入内存,然后,用60ns再读入cache,然后才能访问。 假设cache命中率为,内存命中率为,则数据平均访问时间是多少(ns) 答: 20*+(60+20)**+(20+60+12000)**=506ns 18.答: t1时刻的工作集为: {1,2,3,6,7,8,9}t2时刻的工作集为: {3,4} 20.答: 虚地址0AC5H对应的物理地址为: 12C5H。 而执行虚地址1AC5H会发现页表中尚未有分配的页框而发生缺页中断,由系统另行分配页框。 21.答: (1)FIFO淘汰page2 (2)LRU淘汰page1 (3)二次机会淘汰oage0 习题五 5.对磁盘存在下面五个请求: 请求 柱面号 磁头号 扇区号 1 7 2 8 2 7 2 5 3 7 1 2 4 30 5 3 5 3 6 6 假如当前磁头位于1号柱面.试分析对这五个请求如何调度,可使磁盘的旋转圈数为最少 答: 使磁盘的旋转圈数为最少的调度次序为: 5,3,2,1和4 10.答: 采用FIFO次序为: 100,23,376,205,132,19,61,190,398,29,4,18,40,总柱面数是1596 采用SSTF次序为: 100,132,190,205,61,40,29,23,19,18,4,376,398 总柱面数是700 采用SCAN次序为: 100,132,190,205,376,398,61,40,29,23,19,18,4 总柱面数是692 15.非优化存放,读一块数据需要时间为: 13x6+100+25=203ms 因而传输100块的文件的时间为: 20300ms 优化存放,读一块数据需要时间为: 2x6+100+25=137ms 因而传输100块的文件的时间为: 13700ms 16.磁盘请求以10,22,20,2,40,6,38柱面的次序到达磁盘驱动器,如果磁头当前位于柱面20.若查找移动每个柱面要花6ms.用以下算法计算出查找时间: 1)F
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 教程 孙仲秀第 习题 解答
![提示](https://static.bdocx.com/images/bang_tan.gif)