收藏 分享(赏)

操作系统习题答案.doc

上传人:gsy285395 文档编号:6624216 上传时间:2019-04-18 格式:DOC 页数:20 大小:480KB
下载 相关 举报
操作系统习题答案.doc_第1页
第1页 / 共20页
操作系统习题答案.doc_第2页
第2页 / 共20页
操作系统习题答案.doc_第3页
第3页 / 共20页
操作系统习题答案.doc_第4页
第4页 / 共20页
操作系统习题答案.doc_第5页
第5页 / 共20页
点击查看更多>>
资源描述

1、习题一(前三章)1、 系统如何由目态转为管态?如何由管态转为目态?目态到管态的转换(中断,trap):修改处理机状态字指令属于特权指令,只能在管态执行,目态程序无法直接控制处理机状态的转换。处理机状态由目态转换为管态的唯一途径是中断,中断发生时,中断向量中的 PSW标识处于管态,这个标识一般由操作系统初始化程序设置的。管态到目态的转换(置程序状态字):通过修改程序状态字(置 PSW)来实现,操作系统运行于管态,该状态转换伴随着由操作系统程序到用户程序的转换。2、 为什么有硬件时钟,有时还要设置软件时钟?解:硬件时钟由硬件提供,保存在硬件寄存器中,开机由电源供电,关机由机内电池供电,可由程序设定

2、和修改,一般通过特权指令完成,应用程序可读取该值。不发生中断。间隔时钟:定时发生中断,一般间隔单位为“毫秒” 。中断发生后,操作系统获得系统的控制权,以便运行系统管理和实现程序并发。是实现多道程序的基础保证操作系统获得控制权。软件时钟:利用间隔时钟实现,主要用于定时启动一些服务,如定时备份,软件时钟通过赋内存的一个单元一个初值,通过间隔时钟中断,对该单元值减一,减到 0就启动相应的服务,这是间隔时钟做不到的。3、 通过一个案例分析进程的状态转换过程。比如用播放器播放音乐,当启动播放器,产生播放器进程,进入挂起就绪状态,当用户点击播放按钮时,进入就绪状态,当被处理机调度时,处于运行态,当需要听歌

3、曲,且歌曲还在外存时,该进程启动磁盘读进程,然后自己进入等待态,当磁盘读进程将相应歌曲读进内存时,向处理机发出中断,该中断进程将播放器进程送入就绪队列,当被处理机调度时,开始播放歌曲,处于运行态,如此反复,直到关闭播放器,进程结束。单击暂停键,进入挂起就绪队列4、 通过一个案例描述可以由用户处理的中断的处理过程。比如在一个 C语言程序中发生除零错误(1)发生出除零中断(2)保存旧 PSW和 PC(入系统栈)(3)取中断向量(4)转到中断处理程序(5)访问中断续元表(假定非 0)(6)系统栈中现场转移到用户栈(7)中断续元入口送寄存器(OS 中断处理完成)(8)执行中断续元 中断续元的执行同目态

4、子程序 (9)用户栈 PSW和 PC送寄存器 (10)中断执行完,遇 RET指令由用户栈弹出现场信息送入处理机 (11)返回中断断点 5、下表列出了四个进程到达时间和执行时间,使用先来先服务算法、循环(时间片 2) 、短作业优先、响应比高者优先的调度算法的调度过程,分别计算每个调度算法的周转时间、平均周转时间、带权周转时间、带权平均周转时间. 画出相应的 Gantt图进程 到达时间 执行时间A 0 3B 1 6C 4 4D 6 2解:先来先服务算法0 3 9 13 15进程 到达时间 运行时间 开始时间 完成时间 周转时间 带权周转时间 A 0 3 0 3 3 1 B 1 6 3 9 8 8/

5、6 =1.33C 4 4 9 13 9 9/4 =2.25D 6 2 13 15 9 9/2=4.5平均周转时间 =(3+8+9+9)/4=7.25 平均带权周转时间 =(1+1.33+2.25+4.5)/4=2.27 A B C D循环(时间片 2)0 2 4 6 8 9 11 13 15周转时间: 由就绪开始时刻到处理完毕时刻的时间带权周转时间:周转时间/运行时间等待时间(waiting time):周转时间与处理时间之差进程 到达时间 运行时间 开始时间 完成时间 周转时间 等待时间 带权周转时间 A 0 3 0 9 9 6 9/3=3 B 1 6 2 15 14 8 14/6 =2.3

6、3C 4 4 4 13 9 5 9/4 =2.25D 6 2 6 8 2 0 2/2=1平均周转时间 =(9+14+9+2)/4=8.5 平均等待时间 = (6+8+5+0)/4=4.75平均带权周转时间 =(3+2.33+2.25+1)/4=2.145 短作业优先进程 到达时间 执行时间A 0 3B 1 6C 4 4D 6 20 3 9 11 15 A B C D A B C BA B D C 进程 到达时间 运行时间 开始时间 完成时间 周转时间 带权周转时间 A 0 3 0 3 3 3/3=1 B 1 6 3 9 8 8/6 =1.33C 4 4 11 15 11 11/4 =2.75D

7、 6 2 9 11 5 5/2=2.5平均周转时间 =(3+8+11+5)/4=6.75 平均带权周转时间 =(1+1.33+2.75+2.5)/4=1.895 响应比高者优先RR=1+WT/BT在 9 时刻出现了 D和 CC的响应比=1+5/4=2.25D的响应比=1+3/2=2.50 3 9 11 15 进程 到达时间 运行时间 开始时间 完成时间 周转时间 带权周转时间 A 0 3 0 3 3 3/3=1 B 1 6 3 9 8 8/6 =1.33C 4 4 11 15 11 11/4 =2.75D 6 2 9 11 5 5/2=2.5平均周转时间 =(3+8+11+5)/4=6.75

8、平均带权周转时间 =(1+1.33+2.75+2.5)/4=1.895 A B D C 7、在一个使用多级反馈队列的系统中,一个只使用 CPU的进程的执行时间为 40秒,如果第 1队列时间片为 2,每级时间片增加 5个时间单元,那么这个作业运行结束前会被中断多少次,结束时处于哪级队列?解 3:进程被中断的情况有:在时刻 2(第 1队列) ,在时刻 2+7(第 2队列) ,在时刻 9+12(第 3队列) ,在时刻 21+17(第 4队列) ,当该进程结束时位于第 5队列,中断 4次。练习二 互斥、同步与通信1、 设有 3个进程 R、W1 和 W2,共享缓冲区 B,B 中每次只能存放一个数,当 B

9、中无数据时,可以从输入设备上读数据到 B中,若数为奇数时允许 W1取出打印,否则允许 W2取出打印,W1 和 W2每次仅能打印一次,它们不能从空的 B中取数据。解:设信号量 sr表示是否可读,初值为 1设信号量 sp1表示 w1进程是否可打印,初值为 0设信号量 sp2表示 w2进程是否可打印,初值为 0cobeginsr, sp1, sp2 :semaphore :=1,0,0;x :integer;process reader process w1 process w2begin begin beginrepeat repeat reapetp(sr); p(sp1); p(s2p);读入

10、一个数放入 x; 打印 x1; 打印 x1;if x mod 2 = 0 then v(sp2) v(sr); v(sr);else until false; until false;v(sp1); end; end;until false;end;end;2、 有 3个好朋友预定在一个地方集合,然后一起去看电影,请用 PV描述他们的同步操作。解:定义一个计数器,统计到达的人数:count,初值为 0定义三个同步信号量 s1,s2,s3,表示是否可以去看电影,初值都不可以看,为 0定义一个互斥信号量 mutex,用于对 count的互斥访问var count :integer :=0;s1,s

11、2,s3,mutex :semaphore :=0,0,0,1;P1进程 P2 进程 P3 进程P(mutex) p(mutex) p(mutex)Count := count+1; count := count+1; count := count+1V(mutex); v(mutex) v(mutex)If count=3 then if count=3 then if count=3 thenBegin begin beginV(s2); v(s1); v(s1);V(s3); v(s3); v(s2);End end endElse else elseP(s1); p(s2); p(s3

12、);练习三 互斥、同步与通信1、两进程 PA,PB 通过两 FIFO缓冲区队列连接(如图) ,每个缓冲区长度等于传送消息长度。进程 PA,PB 之间的通信满足如下条件:buf0buf1(1) 至少有一个空缓冲区存在时,相应的发送进程才能发送一个消息。(2) 当缓冲队列中至少存在一个非空缓冲区时,相应的接收进程才能接收一个消息。试描述发送过程 send(i,m)和接收过程 receive(i,m)。这里 i代表缓冲区。解:bufempty0、bufempty1表示缓冲区是否空,初值为 nbuffull0、buffull1 表示缓冲区是否满,初值为 0buf0、buf1表示两个缓冲区Send(i,

13、m)Beginlocal xP(bufemptyi)按 FIFO方式选择一个空缓冲区bufi(x)=mbufi(x)置满标记V(buffulli)EndReceive(i,m)BeginLccal xP(buffulli)按 FIFO方式选择一个装满数据的缓冲区 bufi(x)m=bufi(x)bufi(x)置空标记V(bufemptyi)EndPa调用 send(0,m)和 receive(1,m)Pb调用 send(1,m)和 receive(0,m)2、设有三组进程 PA,PB,PC,PA 进程每次从磁盘中读入一条记录到缓冲区 1中,缓冲区 1可存放 N条记录,PB 进程每次只能从缓冲区

14、 1中取出一条记录到缓冲区 2中,缓冲区 2可存放 N/2条记录,PC 进程每次只能从缓冲区 2中取出一条记录来打印,请用管程描述它们之间的同步操作。解:本题中,PA 是一个生产者,PB 既是生产者又是消费者,PC 是消费者,解:条件变量:notfull1: 表示 B1是否满, notfull2: 表示 B2是否满notempty1:表示 B1是否空, notempty2:表示 B2是否空k1,k2: 分别表示在 B1中 PA放记录的位置和 PB取记录的位置,初值为 0。t1,t2: 分别表示在 B2中 PB放记录的位置和 PC取记录的位置,初值为 0。count1, count2:分别表示

15、B1存放记录数和 B2存放记录数.初值为 0。count1=n: 表示 B1已满,这时 PA进程不能再读入记录到 B1中,将 wait(notfull1)count1=n/2: 表示 B2已满,这时 PB进程不能从 B1中读记录到 B2中,将 wait(notfull2),当 count10:表示 PB可以从 B1中取 1条记录到 B2中,此时检查是否有等待 B2的记录,若有则将 singal(notempty2)count2=n then wait(notfull1);B1k1 := item;k1 :=(k1+1) mod n;count1:=count1+1;signal(notempt

16、y1);end;procedure entry getput(item)beginif count2=n/2 then wait(notfull2);if count1 =0 then wait(notempty1);B2t1 := B1k2;t1 :=(t1+1) mod n/2;k2 :=(k2+1) mod n;signal(notfull1);signal(notempty2);end;procedure entry get(item)beginif count2 =0 then wait(notempty2);打印 B2t2;t2 := (t2+1) mod n/2;signal(n

17、otfull2)end;begink1=k2=t1=t1=0;count1=-count2=0;end;process PA process PB process PCbegin begin beginrepeat repeat repeatread an item; PC.getput(item); PC.get(item);PC.put(item); untill false; print item;Untill false; end; untill false;End; end;练习四 死锁1、某系统采用死锁检测手段发现死锁,设系统中资源类集合为A,B,C,资源类 A中共有 17个实例,

18、资源类 B中共有 5个实例,资源类 C中共有 20个实例又设系统中进程集合为p1,p2,p3,p4,p5, T0时刻系统状态如下:Allocation Need Available A B C A B C A B Cp1: 2 1 2 3 4 7 p2: 4 0 2 1 3 4 p3: 4 0 5 0 0 6p4: 2 0 4 2 2 1p5: 3 1 4 1 1 0在 T0时刻是否安全,请给出安全系列在 T0时刻若进程 P2请求资源(0 3 4) ,能否实现分配,为什么?在(2)的基础上,若进程 P4请求资源(2 0 1) ,能否实现分配,为什么?在(3)的基础上,若进程 P1请求资源(0

19、2 0) ,能否实现分配,为什么?解:(1)由已知可知,系统剩余资源为(2 3 3)Allocation Need Available Work Finish A B C A B C A B C A B C p1: 2 1 2 3 4 7 2 3 3 p2: 4 0 2 1 3 4 p3: 4 0 5 0 0 6p4: 2 0 4 2 2 1p5: 3 1 4 1 1 0Work Allocation Need Work+ Allocation Finish A B C A B C A B C A B C p1: 7 4 11 2 1 2 3 4 7 9 5 13 true3p2: 9 5 1

20、3 4 0 2 1 3 4 13 5 15 true4 p3: 13 5 15 4 0 5 0 0 6 17 5 20 true5p4: 2 3 3 2 0 4 2 2 1 4 3 7 true1p5: 4 3 7 3 1 4 1 1 0 7 4 11 true2可以找到一个系列 p4,p5,p1,p2,p3(2) 在 T0时刻若进程 P2请求资源(0 3 4) ,因请求资源大于剩余资源(2 3 3),不能分配(3) 在(2)的基础上,若进程 P4请求资源(2 0 1),由于请求资源(2 0 1)需求资源(2 2 1),请求资源(2 0 1) 剩余资源(2 3 3),进行试分配Allocati

21、on Need Available A B C A B C A B Cp1: 2 1 2 3 4 7 0 3 2p2: 4 0 2 1 3 4 p3: 4 0 5 0 0 6p4: 4 0 5 0 2 0p5: 3 1 4 1 1 0再使用安全性检测算法,得到Work Allocation Need Work+ Allocation Finish A B C A B C A B C A B C p1: 7 4 11 2 1 2 3 4 7 9 5 13 true3p2: 9 5 13 4 0 2 1 3 4 13 5 15 true4 p3: 13 5 15 4 0 5 0 0 6 17 5

22、20 true5p4: 0 3 2 4 0 5 0 2 0 4 3 7 true1p5: 4 3 7 3 1 4 1 1 0 7 4 11 true2可以找到一个系列 p4,p5,p1,p2,p3(4) 在(3)的基础上,若进程 P1请求资源(0 2 0), 由于请求资源(0 2 0)需求资源(3 4 7),请求资源(0 2 0) 剩余资源(0 3 2),进行试分配Allocation Need Available A B C A B C A B Cp1: 2 3 2 3 2 7 0 1 2p2: 4 0 2 1 3 4 p3: 4 0 5 0 0 6p4: 4 0 5 0 2 0p5: 3

23、1 4 1 1 0由于资源(0 1 2)不能满足任何进程故不能分配2、有三类资源 R1,R2,R3,R1 和 R2资源数分别为,R3 为,有四个进程 P1,P2,P3,P4,每个进程占用资源和等待资源的情况如下:进程 已占资源类 已占用个数 等待的资源P1 R3 , R2 1 ,1 R1P2 R1 1 -P3 R1 1 R2P4 R2 1 R3请画出资源分配图,使用资源分配图的约简证明是否产生死锁。解:(1)该图中非孤立节点且没有请求边的是 P2(2)去掉分配边成为孤立节点P1 P2 P3 P4 R1 R2 R3 P1 P3 P4 R1 R2 R3 P2 (3)寻找请求边可以满足的节点,并将请

24、求边改为分配边(4)没有请求边的是 P1,去掉分配边成为孤立节点(5)寻找请求边可以满足的节点,并将请求边改为分配边P1 P3 P4 R1 R2 R3 P2 P1 P3 P4 R1 R2 R3 P2 P1 P3 P4 R1 R2 R3 P2 (6)没有请求边的是 P3,P4,去掉分配边成为孤立节点(7)最后全部为孤立节点,系统没有死锁3、在 A、B 两车站之间为单轨,且在中间有一个小站 C,小站 C为双轨道,给出一个无死锁、无饿死、并发度最高的算法,使用 PV实现。解:C1A BC2若 AB方向火车在小站 C走上边轨道,BA 方向走下边轨道,则:当同时不超过 3辆火车时,不会发生死锁 设信号量

25、 train=3AC、BC 为单轨,设信号量 ac=1 bc=1C站: c1=1 c2=1A到 B B到 CP(train) P(train)p(ac) p(bc)ac上行驶 bc 上行驶p(c1) p(c2)进入 C小站 进入 C小站v(ac) v(bc)p(bc) p(ac)出 C站 出 C站v(c1) v(c2)bc上行驶 ac 上行驶到达 B 站 到达 A站v(bc) v(ac)v(train) v(train)P1 P3 P4 R1 R2 R3 P2 若 AB和 BA方向在小站 C不规定轨道,则:当同时不超过 2辆火车时,不会发生死锁 设信号量 train=2AC、BC 为单轨,设信

26、号量 ac=1 bc=1A到 B B到 CP(train) P(train)p(ac) p(bc)ac上行驶 bc 上行驶进入 C小站 进入 C小站v(ac) v(bc)p(bc) p(ac)出 C站 出 C站bc上行驶 ac 上行驶到达 B 站 到达 A站v(bc) v(ac)v(train) v(train)练习五 存储1、一个物理内存为 64MB的计算机系统,该系统的内存管理模式为页式,页长为 4KB,用户程序的一个逻辑地址为 6D9C(16 进制) ,进程页表如下 请计算:1) 内存物理地址用多少位表示 2) 逻辑地址结构图 3) 逻辑页号和物理页号(10 进制) 4) 物理地址(16

27、 进制)解:1) 内存物理地址用多少位表示64M26220226内存物理地址用 26位表示进程页表 4 2 22 16 222 18 3 9 11 126 30 12 0 2) 逻辑地址结构图 页长为 4KB,4K22210212所以页地址位数为 12位, (6D9C)16(0110 1101 1001 1100)2逻辑地址结构图: 逻辑页号 页内位移0000000000 0110 1101 1001 11003) 逻辑页号和物理页号(10 进制) 逻辑页号=6,物理页号34) 物理地址(16 进制)(0000000000 0011 1101 1001 1100)2(3D9C)162、 在一个

28、请求分页存储管理系统中,进程 P的访问串为3,2,2,1,4,3,2,3,1,2,4,1,当分配给该进程的页面数为 3时,请用 LRU置换算法计算访问过程中发生的缺页次数和缺页率。 (请用表的方式写出计算过程).解:3 2 2 1 4 3 2 3 1 2 4 13 3 3 4 4 4 1 12 2 2 3 3 3 41 1 1 2 2 2缺 缺 缺 缺 缺 缺 缺 缺缺页次数:缺页率: 逻辑页号 页内位移0000000000 0110 1101 1001 11003、在采用页式存储管理的系统中,页长 128B,现某个用户编写将 128*128的数组设置初值为 0的个程序for i:=1 to 128 (2) for j:=1 to 128for j:=1 to 128 for i:=1 to 128ai,j :=0; ai,j:=0假设在分页时将数组中的每一行放在一页中,并且分该用户在内存中只有一页的内存,请计算分别运行上述两个程序,各会产生多少缺页中断。解:(1) 第一行不是缺页,则发生 127次缺页第一行是缺页,则发生 128次缺页(2) 第一行第一列不是缺页,则发生 128*128-1次缺页第一行第一列是缺页,则发生 128*128次缺页

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报