您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 企业文档 > 《产业组织理论》期末复习资料
《操作系统教程》习题及解答习题一(操作系统概论)二.应用题1.有一台计算机,具有1MB内存,操作系统占用200KB,每个进程各占用200KB。如果用户进程等待I/O的时间为80%,若增加1MB内存,则CPU的利用率提高多少?答:设每个进程等待I/O的百分比为P,则n个进程同时等待I/O的概率是nP,当n个进程同时等待I/O期间CPU是空闲的,故CPU的利用率为1-nP.由题意可知,除去操作系统,内存还能容纳4个用户进程,由于每个用户进程等待I/O的时间为80%,故:CPU利用率=1-4%)80(=0.59若再增加1MB内存,系统中可同时运行9个用户进程,此时:CPU利用率=1-9%)80(=0.87故增加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操作时间由图给出.ABC11C=试画出按多道运行的时间关系图(忽略调度执行时间).完成三道程序共华多少时间?比单道运行节省了多少时间?若处理器调度程序每次进行程序转换花时1ms,试画出各程序状态转换的时间关系图.答:(图略)1)忽略调度执行时间,多道运行方式(抢占式):抢占式共用去190ms,单道完成时间需要260ms,节省70ms忽略调度执行时间,多道运行方式(非抢占式):非抢占式共用去180ms,单道完成时间需要260ms,节省80ms2)(略)7.单道时CPU的利用率为:(190-80)/190=57.9%多道时CPU的利用率为:(140-30)/140=78.6%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)QT3)SQT4)Q=S5)Q接近于0答:1)Q=无穷大CPU利用率=T/(T+S)2)QTCPU利用率=T/(T+S)3)SQTCPU利用率=Q/(Q+S)4)Q=SCPU利用率=Q/(Q+S)]5)Q接近于0CPU利用率—09.按照最短作业优先的算法可以使平均相应时间最短。X的取值不定,按照以下情况讨论:1)x=3次序为x,3,5,6,92)3x=5次序为3,x,5,6,93)5x=6次序为3,5,x,6,94)6x=9次序为3,5,6,x,95)9x次序为3,5,6,9,x11.有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调度算法执行次序执行时间等待时间周转时间带权周转时间ABCDE106248010161822101618223012.6695.53.7535214作业平均周转时间作业平均带权周转时间T=(10+16+18+22+30)/5=19.2W=(1+2.66+9+5.5+3.75)/5=4.38(2)优先级调度算法执行次序执行时间等待时间周转时间带权周转时间ABCDE6810240614242661424263011.752.4137.5作业平均周转时间作业平均带权周转时间T=(6+14+24+26+30)/5=20W=(1+1.75+2.4+13+7.5)/5=5.13(3)时间片轮转法按次序ABCDEABDEABEAEA轮转执行.作业执行时间等待时间周转时间带权周转时间ABCDE10624820164122030226162833.66343.5作业平均周转时间作业平均带权周转时间T=(30+22+6+16+28)/5=20.4W=(3+3.66+3+4+3.5)/5=3.4313.请你设计一种先进的计算机体系结构,它使用硬件而不是中断来完成进程切换,则CPU需要哪些信息?请描述用硬件完成进程切换的工作过程。答:该计算机有一个专用硬件寄存器,它始终存放指向当前运行进程的PCB的指针.当系统中发生了一个事件,如I/O结束事件,CPU便可把运行进程的上下文保存到专用硬件寄存器指针指向的PCB中保护起来,然后,CPU转向中断向量表,找到设备中断处理程序入口,让专用硬件寄存器指针指向(设备)中断服务例程,于是,便可启动中断服务例程工作.15.单道批处理系统中,下列三个作业采用先来先服务调试算法和最高响应比优先算法进行调试,哪一种算法性能较好,请完成下表:作业提交时间运行时间开始时间完成时间周转时间带权周转时间12310:0010:1010:252:001:000:25平均作业周转时间=平均作业带权周转时间W=答:FIFO作业提交时间运行时间开始时间完成时间周转时间带权周转时间12310:0010:1010:252:001:000:2510:0012:0013:0012:0013:0013:2522:503120/120145/60180/25平均作业周转时间=2.61平均作业带权周转时间W=3.54HRN作业提交时间运行时间开始时间完成时间周转时间带权周转时间12310:0010:1010:252:001:000:2510:0012:2512:0012:0013:2512:2523:152120/120195/60120/25平均作业周转时间=2.41平均作业带权周转时间W=3.02可见HRRF比FIFO要好.19.有一个具有两道作业的批处理系统,作业调度采用短作业优先的调试算法,进程调度采用优先数为基础的抢占式调度算法,在下表所示的作业序列,作业优先数即为进程优先数,优先数越小优先级越高。作业名到达时间估计运行时间优先数ABC10:0010:2010:3040分30分50分534D10:5020分6答:每个作业运行将经过两个阶段:作业调度(SJF算法)和进程调度(优先数抢占式).另外,批处理最多容纳2道作业,更多的作业将在后备队列等待.作业进入内存时间差运行结束时间ABCD10:0010:2011:1010:5011:1010:5012:0012:20各作业周转时间为:作业A70,作业B30,作业C90,作业D90.平均作业周转时间为70分钟24.实时任务可调度应满足:35/50+20/100+10/300+x/2501x250(1-28/30)=250*0.067=16.75ms习题三(并发进程)二.应用题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:itemcobeginprocessreader;beginL1:readeramessageintox;P(sread);B[rptr]:=x;rptr=(rptr+1)modk;V(smanage);GotoL1;End;processmanager;beginL2:P(smanage);x=B[mptr];mptr=(mptr+1)modk;managerthemessageinx;B[mptr]:=xV(swrite)GotoL2;End;Processwriter;BeginL3:P(swrite);x=B[wptr];wptr=(wptr+1)modk;V(stread);Printthemessageinx;GotoL3;End;Coend2)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;cobeginprocessreader;beginL1:readamessageintox;P(sput1);A[put1]=x;Put1:=(put1+1)modk;V(sget1);GotoL1;End;Processmanager;BeginL2:P(sget1);X:=A[get1];Get1:=(get1+1)modk;V(sput1)Managethemessageintox;P(sput2);B[put2]:=xPut2:=(put2+1)modk;V(sget2);GotoL2;End;Processwriter;BeginL3:P(sget2);X:=B[get2];Get2:=(get2+1)modk;V(sput2);Printthemessageinx;GotoL3;End;coend3.有两个优先级相同的进程P1和P2,各自执行的操作如下,信号量S1和S2初值均为0。试问P1,P2并发执行后,x,y,z的值各为多少?P1:P2:beginbeginy:=1;1x:=1;5y:=y+3;2x:=x+5;6V(S1);P(S1);z:=y+1;3x:=x+y;7P(S2);V(S2);y:=z+y;4z:=z+x;8end.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=155.在一个盒子里,混装了数量相等的黑白围棋子。现在用自动分拣系统把黑子,白子分开,设分拣系统有二个进程P1和P2,其中P1拣白子,P2拣黑子。规定每个进程每次拣一子;当一个进程在拣时,不允许另一个进程去拣;当一个进程拣了一子时,必须让另一个进程去拣。试写出两个进程P1和P2能并发正确执行的程序。答:实质上是两个进程的同步问题,设信号量S1和S2分别表示可拣白子和黑子,不失一般性,若令先拣白子.VarS1,S2:semaphore;S1:=1,S2:=0;Cogegin{processP1beginrepeatP(S1);拣白子V(S2);Untilfalse;EndProcessp2BeginRepeatP(S2);拣黑子;V(S1);Untilfalse;End}coend.17.吸
本文标题:《产业组织理论》期末复习资料
链接地址:https://www.777doc.com/doc-2838244 .html