桂电操作系统课后作业部分答案_第1页
桂电操作系统课后作业部分答案_第2页
桂电操作系统课后作业部分答案_第3页
桂电操作系统课后作业部分答案_第4页
桂电操作系统课后作业部分答案_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、习题一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和I

2、2都能并行工作,优先级从高到低为Job1、Job2和Job3,优先级高的作业可以抢占优先级低的作业的CPU,但不抢占I1和I2。试求:(1)每个作业从投入到完成分别所需的时间。(2) 从投入到完成CPU的利用率。(3)I/O设备利用率。答:画出三个作业并行工作图如下(图中着色部分为作业等待时间):cpuI1I2Job1Job2Job3时间 msCPU CPU0 10 20 30 40 50 60 70 80 90 100 110CPU I1I1 I1CPUCPU I2 I2CPU I1CPU I2 Job1 Job2 Job3Job2Job1Job2Job3Job1Job3 Job2Job1

3、Job1Job3Job3答:画出三个作业并行工作图如下(图中着色部分为作业等待时间):(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 . 什么是进

4、程?计算机操作系统中为什么引入进程?进程的定义:进程是一个可并发执行的具有独立功能的程序关于某个数据集合的一次执行过程,也是操作系统进行资源分配和保护的基本单位。引入进程的原因:一是刻画系统的动态性,发挥系统的并发性,提高资源利用率。二是解决共享性,正确描述程序的执行状态。34. 进程最基本的状态有哪些?哪些事件可能引起不同状态之间的转换?进程最基本的状态有三种:运行态:进程占有处理器正在运行。就绪态:进程具备运行条件,等待系统分配处理器以便运行。等待态:又称为态或睡眠态,指进程不具备运行条件,正在等待某个事件的完成。进程状态转换的具体原因:运行态等待态 等待使用资源或某事件发生,如等待外设传

5、输、等待人工干预。等待态就绪态 资源得到满足或某事件已经发生,如外设传输结束;人工干预完成。运行态就绪态 运行时间片到,或出现有更高优先权进程。就绪态运行态 CPU空闲时被调度选中一个就绪进程执行。2、 应用题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

6、调度算法 ( 2 )优先级调度算法( 3 )时间片轮转法 按次序ABCDEABDEABEAEA 轮转执行。 作业 执行时间 等待时间 周转时间 带权周转时间 ABCDE 10 6 2 48 20l64 l220 302261628 33 .6634 3. 5 作业平均周转时间作业平均带权周转时间 T = ( 30 + 22 + 6 + 16 + 28 ) / 5 = 20.4W = ( 3 + 3.66 + 3 +4 + 3.5 ) / 5 = 3.43 16、若有如表所示四个作业进入系统,分别计算在FCFS、SJF和HRRF算法下的平均周转时间与带权平均周转时间。(时间以十进制表示)作业 提

7、交时间(时) 估计运行时间(小时) 开始执行时间(时) 1 8.00 2.00 8.00 2 8.50 0.50 10.30 3 9.00 0.10 10.00 4 9.50 0.20 10.10答: FCFS SJF HRRF作业 开始 完成 周转 开始 完成 周转 开始 完成 周转时间 时间 时间 时间 时间 时间 时间 时间 时间1 8.00 10.00 2.00 8.00 10.00 2.00 8.00 10.00 2.002 10.00 10.50 2.00 10.30 10.80 2.30 10.10 10.60 2.103 10.50 10.60 1.60 10.00 10.10

8、 1.10 10.00 10.10 1.104 10.60 10.80 1.30 10.10 10.30 0.80 10.60 10.80 1.30平均周 T=1.725 T=1.55 T=1.625转时间=带权平均 W=6.875 W=5.15 W=5.675周转时间=习题三10什么是临界区和临界资源?对临界区管理的基本原则是什么?临界区并发进程中与共享变量有关的程序段。临界资源共享变量代表的资源。临界区管理的基本原则:(1)一次至多一个进程能够在它的临界区内;(2)不能让一个进程无限地留在它的临界区内;(3)不能强迫一个进程无限地等待进入它的临界区。特别,进入临界区的任一进程不能妨碍正等待

9、进入的其它进程的进展;二、应用题4. 有一阅览室,读者进入时必须先在一张登记表上登记,该表为每一座位列出一个表目,包括座号、姓名,读者离开时要注销登记信息;假如阅览室共有100个座位。试用:1)信号量和P、V操作;2)管程,来实现用户进程的同步算法。1) 使用信号量和P、V操作:var A: array1.100 of Rec; Rec=record number:integer; name:string; end;i:integer;for i:=1 to 100 do Ai.number:=i; A:=null;mutex,seatcount:semaphore;/semaph

10、ore中文含义:信号量mutex:=1;seatcount:=100;cobegin process readeri(var readername:string)(i=1,2,) P(seatcount); P(mutex); for i:=1 to 100 do i+; if A=null then A:=readername;/*读者登记*/ /必须采用这种方式,因为该空位是随机产生的。我们无法知道哪个 /读者何时离开。 V(mutex) 进入阅览室,座位号i,坐下读书; P(mutex);/读书完毕,需要退场 Ai name:=null; V(mutex); V(

11、seatcount); 离开阅览室; coend.2) 使用管程操作:TYPE readbook=monitorVAR R:condition;i,seatcount:integer;name:array1.100 of string;DEFINE readercome,readerleave;USE check,wait,signal,release;procedure readercome(readername)begin check(IM); if seatcount100 wait(R,IM) seatcount:=seatcount+1; for i=1 to 100 do i+ i

12、f namei=null then namei:=readername; get the seat number=i; release(IM);endprocedure readerleave(readername)begin check(IM); seatcount-; for i=1 to 100 do i+ if namei=readername then namei:=null; release(IM);end begin seatcount:=100;name:=null;endcobegin process readeri(i=1,2.) begin readercome(read

13、ername); read the book; readerleave(readername); leave the readroom; endCoend.12、(1)两个并发进程并发执行,其中,A、B、C、D、E是原语,试给出可能的并发执行路径。Process P Process Qbegin begin A; D; B; E; C; end; end;(2) 两个并发进程P1和P2并发执行,它们的程序分别如下: P1 P2 repeat repeat k:=k2; print k; k:=k+1; k:=0; until false; until false;若令k的初值为5,让P1先执行

14、两个循环,然后,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) 把语句编号,以便于描述:P1 P2 repeat repeat k:=k2; print k; k:=k+1; k:=0; until false; until false;1) K的初值为5,故P1执行两个循环后,K=23。2) 语句并发执行有以下情况: 、,这时

15、的打印值为:47 、,这时的打印值为:23 、,这时的打印值为:46 、,这时的打印值为:46 、,这时的打印值为:23 、,这时的打印值为:23由于进程P1和P2并发执行,共享了变量K,故产生了结果不唯一。29、系统有A、B、C、D共4种资源,在某时刻进程P0、P1、P2、P3和P4对资源的占有和需求情况如表,试解答下列问题:ProcessAllocationClaimAvailableA B C DA B C D A B C D P00 0 3 20 0 4 4 1 6 2 2P11 0 0 02 7 5 0 P21 3 5 43 6 10 10P30 3 3 2 0 9 8 4 P40

16、0 1 40 6 6 10(1) 系统此时处于安全状态吗?(2) 若此时P2发出request1(1、2、2、2),系统能分配资源给它吗?为什么?答:(1)系统处于安全状态,存在安全序列:P0,P3,P4,P1,P2。(2)不能分配,否则系统会处于不安全状态。31 有一个仓库可存放A 、B 两种零件,最大库容量各为m 个。生产车间不断地取A 和B 进行装配,每次各取一个为避免零件锈蚀,按先入库者先出库的原则。有两组供应商分别不断地供应A 和B ,每次一个。为保证配套和合理库存,当某种零件比另一种零件超过n ( n m )个时,暂停对数量大的零件的进货,集中补充数量少的零件试用信号量与P 、V

17、操作正确地实现它们之间的同步关系。答:按照题意,应满足以下控制关系:A 零件数量-B 零件数量n ; B 零件数量-A 零件数量n : A 零件数量m ; B 零件数量m 四个控制关系分别用信号量sa 、sb 、empty1 和empty2 实施。为遵循先入库者先出库的原则,A 、B 零件可以组织成两个循形队列,并增加入库指针in1 、in2 和出库指针out1 、out2 来控制顺序。并发程序编制如下:Var empty1,empty2,full1,full2:semaphore;Mutex ,sa,sb:semaphore;In1,in2,out1,out2:integer;Buffer1,buffer2:array0m-1of item;Empty1:=empty2:=m;Sa:=sb:=n;In1:=in2=out1:=out2:=0;CobeginProcess producerArepeatP(empty1);P(sa);P(mutex);Buffer1in1:=A零件;In1:=(in1+1)mod m;V(mutex);V(sb);V(full1);Untile false;Process producer BrepeatP(em

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论