您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 桂电操作系统课后作业部分答案
习题一5、操作系统要为用户提供哪些基本和共性的服务?答(p25):操作系统提供给程序和用户的共性服务大致有:(1)创建程序(2)执行程序(3)数据I/O(4)信息存取(5)通信服务(6)错误检测和处理二、应用题4、在单CPU和两台I/O(I1,I2)设备的多道程序设计环境下,同时投入三个作业运行。它们的执行轨迹如下:Job1:I2(30ms)、CPU(10ms)、I1(30ms)、CPU(10ms)、I2(20ms)Job2:I1(20ms)、CPU(20ms)、I2(40ms)Job3:CPU(30ms)、I1(20ms)、CPU(10ms)、I1(10ms)如果CPU、I1和I2都能并行工作,优先级从高到低为Job1、Job2和Job3,优先级高的作业可以抢占优先级低的作业的CPU,但不抢占I1和I2。试求:(1)每个作业从投入到完成分别所需的时间。(2)从投入到完成CPU的利用率。(3)I/O设备利用率。答:画出三个作业并行工作图如下(图中着色部分为作业等待时间):答:画出三个作业并行工作图如下(图中着色部分为作业等待时间):(1)Job1从投入到运行完成需110ms,Job2从投入到运行完成需90ms,Job3从投入到运行完成需110ms。(2)CPU空闲时间段为:60ms至70ms,80ms至90ms,100ms至110ms。所以CPU利用率为(110-30)/110=72.7%。(3)设备I1空闲时间段为:20ms至40ms,90ms至100ms,故I1的利用率为(110-30)/110=72.7%。设备I2空闲时间段为:30ms至50ms,故I2的利用率为(110-20)/110=81.8%。习题二32.什么是进程?计算机操作系统中为什么引入进程?进程的定义:进程是一个可并发执行的具有独立功能的程序关于某个数据集合的一次执行过程,也是操作系统进行资源分配和保护的基本单位。引入进程的原因:一是刻画系统的动态性,发挥系统的并发性,提高资源利用率。cpuI1I2Job1Job2Job3时间msCPUCPU0102030405060708090100110CPUI1I1I1CPUCPUI2I2CPUI1CPUI2Job1Job2Job3Job2Job1Job2Job3Job1Job3Job2Job1Job1Job3Job3二是解决共享性,正确描述程序的执行状态。34.进程最基本的状态有哪些?哪些事件可能引起不同状态之间的转换?进程最基本的状态有三种:运行态:进程占有处理器正在运行。就绪态:进程具备运行条件,等待系统分配处理器以便运行。等待态:又称为阻zǔ塞sè态或睡眠态,指进程不具备运行条件,正在等待某个事件的完成。进程状态转换的具体原因:运行态等待态等待使用资源或某事件发生,如等待外设传输、等待人工干预。等待态就绪态资源得到满足或某事件已经发生,如外设传输结束;人工干预完成。运行态就绪态运行时间片到,或出现有更高优先权进程。就绪态运行态CPU空闲时被调度选中一个就绪进程执行。二、应用题11、有5个批处理作业A到E均已到达计算中心,其运行时间分别10、6、2、4和8分钟;各自的优先级分别被规定为3、5、2、1和4,这里5为最高级。若不考虑系统切换开销,计算出平均作业周转时间。(1)FCFs(按A、B、C、D、E);(2)优先级调度算法,(3)时间片轮转法(每个作业获得相同的2分钟长的时间片)。答:(1)FCFS调度算法(2)优先级调度算法(3)时间片轮转法按次序ABCDEABDEABEAEA轮转执行。16、若有如表所示四个作业进入系统,分别计算在FCFS、SJF和HRRF算法下的平均周转时间与带权平均周转时间。(时间以十进制表示)答:习题三10.什么是临界区和临界资源?对临界区管理的基本原则是什么?临界区——并发进程中与共享变量有关的程序段。临界资源——共享变量代表的资源。作业执行时间等待时间周转时间带权周转时间ABCDE10624820l64l22030226162833.66343.5作业平均周转时间作业平均带权周转时间T=(30+22+6+16+28)/5=20.4W=(3+3.66+3+4+3.5)/5=3.43作业提交时间(时)估计运行时间(小时)开始执行时间(时)18.002.008.0028.500.5010.3039.000.1010.0049.500.2010.10FCFSSJFHRRF作业开始完成周转开始完成周转开始完成周转时间时间时间时间时间时间时间时间时间18.0010.002.008.0010.002.008.0010.002.00210.0010.502.0010.3010.802.3010.1010.602.10310.5010.601.6010.0010.101.1010.0010.101.10410.6010.801.3010.1010.300.8010.6010.801.30平均周T=1.725T=1.55T=1.625转时间=带权平均W=6.875W=5.15W=5.675周转时间=临界区管理的基本原则:(1)一次至多一个进程能够在它的临界区内;(2)不能让一个进程无限地留在它的临界区内;(3)不能强迫一个进程无限地等待进入它的临界区。特别,进入临界区的任一进程不能妨碍正等待进入的其它进程的进展;二、应用题4.有一阅览室,读者进入时必须先在一张登记表上登记,该表为每一座位列出一个表目,包括座号、姓名,读者离开时要注销登记信息;假如阅览室共有100个座位。试用:1)信号量和P、V操作;2)管程,来实现用户进程的同步算法。1)使用信号量和P、V操作:varA:array[1..100]ofRec;Rec=recordnumber:integer;name:string;end;i:integer;fori:=1to100do{A[i].number:=i;A[i].name:=null;}mutex,seatcount:semaphore;//semaphore中文含义:信号量mutex:=1;seatcount:=100;cobeginprocessreaderi(varreadername:string)(i=1,2,…){P(seatcount);P(mutex);fori:=1to100do{i++;ifA[i].name=nullthenA[i].name:=readername;/*读者登记*/}//必须采用这种方式,因为该空位是随机产生的。我们无法知道哪个//读者何时离开。V(mutex)进入阅览室,座位号i,坐下读书;P(mutex);//读书完毕,需要退场A[i]name:=null;V(mutex);V(seatcount);离开阅览室;}coend.2)使用管程操作:TYPEreadbook=monitorVARR:condition;i,seatcount:integer;name:array[1..100]ofstring;DEFINEreadercome,readerleave;USEcheck,wait,signal,release;procedurereadercome(readername)begincheck(IM);ifseatcount≥100wait(R,IM)seatcount:=seatcount+1;fori=1to100doi++ifname[i]==nullthenname[i]:=readername;gettheseatnumber=i;release(IM);endprocedurereaderleave(readername)begincheck(IM);seatcount--;fori=1to100doi++ifname[i]==readernamethenname[i]:=null;release(IM);endbeginseatcount:=100;name:=null;endcobeginprocessreaderi(i=1,2.…)beginreadercome(readername);readthebook;readerleave(readername);leavethereadroom;endCoend.12、(1)两个并发进程并发执行,其中,A、B、C、D、E是原语,试给出可能的并发执行路径。ProcessPProcessQbeginbeginA;D;B;E;C;end;end;(2)两个并发进程P1和P2并发执行,它们的程序分别如下:P1P2repeatrepeatk:=k×2;printk;k:=k+1;k:=0;untilfalse;untilfalse;若令k的初值为5,让P1先执行两个循环,然后,P1和P2又并发执行了一个循环,写出可能的打印值,指出与时间有关的错误。答:(1)共有10种交错执行的路径:A、B、C、D、E;A、B、D、E、C;A、B、D、C、E;A、D、B、E、C;A、D、B、C、E;A、D、E、B、C;D、A、B、E、C;D、A、B、C、E;D、A、E、B、C;D、E、A、B、C。(2)把语句编号,以便于描述:P1P2repeatrepeatk:=k×2;①printk;③k:=k+1;②k:=0;④untilfalse;untilfalse;1)K的初值为5,故P1执行两个循环后,K=23。2)语句并发执行有以下情况:①、②、③、④,这时的打印值为:47③、④、①、②,这时的打印值为:23①、③、②、④,这时的打印值为:46①、③、④、②,这时的打印值为:46③、①、②、④,这时的打印值为:23③、①、④、②,这时的打印值为:23由于进程P1和P2并发执行,共享了变量K,故产生了‘结果不唯一’。29、系统有A、B、C、D共4种资源,在某时刻进程P0、P1、P2、P3和P4对资源的占有和需求情况如表,试解答下列问题:ProcessAllocationClaimAvailableABCDABCDABCDP0003200441622P110002750P21354361010P303320984P4001406610(1)系统此时处于安全状态吗?(2)若此时P2发出request1(1、2、2、2),系统能分配资源给它吗?为什么?答:(1)系统处于安全状态,存在安全序列:P0,P3,P4,P1,P2。(2)不能分配,否则系统会处于不安全状态。31有一个仓库可存放A、B两种零件,最大库容量各为m个。生产车间不断地取A和B进行装配,每次各取一个.为避免零件锈蚀,按先入库者先出库的原则。有两组供应商分别不断地供应A和B,每次一个。为保证配套和合理库存,当某种零件比另一种零件超过n(nm)个时,暂停对数量大的零件的进货,集中补充数量少的零件.试用信号量与P、V操作正确地实现它们之间的同步关系。答:按照题意,应满足以下控制关系:A零件数量-B零件数量≤n;B零件数量-A零件数量≤n:A零件数量≤m;B零件数量≤m.四个控制关系分别用信号量sa、sb、empty1和empty2实施。为遵循先入库者先出库的原则,A、B零件可以组织成两个循形队列,并增加入库指针in1、in2和出库指针out1、out2来控制顺序。并发程序编制如下:Varempty1,empty2,full1,full2:semaphore;Mutex,sa,sb:semaphore;In1,in2,out1,out2:integer;Buffer1,buffer2:array[0…m-1]ofitem;Empty1:=empty2:=m;Sa:=sb:=n;In1:=in2=out1:=out2:=0;Cobegin{ProcessproducerA{repeatP(empty1);P(sa);P(mutex);Buffer1[in1]:=A零件;In1:=(in1+1)modm;V(mutex);V(sb);V(full1);Untilefalse;}ProcessproducerB{repeatP(emp
本文标题:桂电操作系统课后作业部分答案
链接地址:https://www.777doc.com/doc-2295945 .html