课后习题参考答案OS.docx
- 文档编号:6114419
- 上传时间:2023-01-03
- 格式:DOCX
- 页数:9
- 大小:39.10KB
课后习题参考答案OS.docx
《课后习题参考答案OS.docx》由会员分享,可在线阅读,更多相关《课后习题参考答案OS.docx(9页珍藏版)》请在冰豆网上搜索。
课后习题参考答案OS
第三章操作系统结构
3.1操作系统关于进程管理的五个主要活动是什么?
答:
(1)创建和删除用户进程和系统进程;
(2)暂停和重启进程;
(3)提供进程同步机制;
(4)提供进程通信机制;
(5)提供死锁处理机制。
3.2操作系统关于内存管理的三个主要活动是什么?
答:
(1)记录内存的哪部分正在被使用及被谁使用;
(2)当内存空间可用时,决定哪些进程可以装入内存;
(3)根据需要分配和释放内存空间。
3.3操作系统关于二级存储管理的三个主要活动是什么?
答:
(1)空闲空间管理;
(2)存储空间分配;
(3)硬盘调度。
3.4操作系统关于文件管理的五个主要活动是什么?
答:
(1)创建和删除文件;
(2)创建和删除目录;
(3)提供操作文件和目录的原语;
(4)将文件映射到二级存储器(辅存)上;
(5)在稳定(非易失的)存储媒介上备份文件。
3.5命令解释器的用途是什么?
为什么它经常与内核是分开的?
答:
(1)命令解释器的用途:
从用户或命令文件读入命令并执行它,通常将其变成一个或多个系统调用它们。
(2)它通常不是内核的一部分,因为命令解释是会改变的,不是固定的。
3.7系统调用的用途是什么?
答:
(1)系统调用提供了进程与操作系统之间的接口,即允许用户级进程要求操作系统的服务。
3.10系统程序的用途是什么?
答:
(1)系统程序可以被认为是有用的系统调用的捆绑。
它们给用户提供了基本功能以使用户不需要写自己的程序来解决共同的问题。
第四章进程
4.2论述短期、中期和长期调度之间的区别。
答:
(1)短期调度:
从就绪可执行的进程中选择进程,并为其中之一分配CPU。
(2)中期调度:
特别用于分时系统中作为中等程度调度程序。
能将进程移出内存(并移出对CPU的激烈竞争),因此降低多道程序设计的程度。
之后进程能被重新调入内存,并从中断处继续执行。
(3)长期调度:
从缓冲池中选择进程,并将它们装入内存以执行。
它们的主要区别是执行的频率。
短期调度程序必须频繁地为CPU选择新进程执行;长期调度程序执行并不频繁,用于控制多道程序设计的程度,即内存中的进程数量;中期调度程序介于两者之间。
4.4描述一下内核在两个进程间进行上下文切换的动作。
答:
通常,操作系统必须保存正在运行的进程的关联状态并装入经调度要执行的新进程的已保存的关联状态。
保存的状态通常包括除了内存分配之外的所有CPU寄存器的值。
上下文切换还执行许多体系结构的具体操作,包括包括冲厕数据和指令缓存。
4.6第4.4节中的正确的生产者-消费者算法在任一时刻只允许装满n-1个缓冲区。
修改这个算法让它能够充分利用所有的缓冲区。
答:
参照P142第七章进程同步。
第五章线程
5.3用户级线程与内核级线程的两个不同点是什么?
在什么情况下一种类型比另一种类型更好?
答:
(1)用户级线程对内核来说是未知的,而内核线程对内核是已知的;
(2)用户级线程由线程库调度管理,而内核级线程所有线程管理由核心完成。
(3)内核线程不需要与进程关联即以线程为基础进行调度,而每个用户线程必须从属于一个进程。
5.4描述一下内核采取行动进行内核级线程上下文切换的过程。
答:
内核线程之间的上下文切换通常需要保存被转出线程的CPU寄存器的值和恢复被调度要执行的新线程的CPU寄存器的值。
第六章CPU调度
6.3答:
(1)4个Gantt图分别如下:
(2)每个进程在每种调度算法下的周转时间为:
算法
进程
FCFS
SJF
非抢占Priority
RR
P1
10
19
16
19
P2
11
1
1
2
P3
13
4
18
7
P4
14
2
19
4
P5
19
9
6
14
(3)每个进程在每种调度算法下的等待时间为:
算法
进程
FCFS
SJF
非抢占Priority
RR
P1
0
9
6
9
P2
10
0
0
1
P3
11
2
16
5
P4
13
1
18
3
P5
14
4
1
9
(4)由上可知,SJF算法的平均等待时间最小。
6.4答:
a.10.53((8+11.6+12)/3)
b.9.53((8+8+12.6)/3)
c.6.86((1+5.6+14)/3)
第七章进程同步
7.1术语忙等的含义是什么?
操作系统里其他种类的等待有哪些?
忙等能否完全避免?
为什么?
答:
忙等的含义是当一个进程位于其临界区内时,任何试图进入其临界区的进程都必须在其进入代码中连续地循环。
操作系统里其他种类的等待有:
等待I/O,等待信号被释放等等。
忙等可以通过使用同步原语,如:
互斥锁、信号量或条件变量。
7.2解释自旋锁对单处理器系统不合适而对多处理器系统合适?
答:
在单处理系统中,因为只有唯一的一个CPU,因此在一个进程等待外部事件时造成CPU资源的浪费。
而在多处理系统中,由于自旋锁的优点是在进程必须等待一个锁时无需上下文切换,因此当锁只保留较短时间时,就非常有用。
7.8理发店问题。
参考解答:
使用三个信号量:
customers,用来记录等候理发的顾客数(不包括正在理发的顾客);barbers,记录正在等候顾客的理发师数,为0或1;mutex用于互斥。
另外还需要一个变量waiting,也用于记录等候的顾客数,实际上是customers的一个副本。
之所以使用waiting是因为无法读取信号量的当前值。
在该解法中,进入理发店的顾客必须先检查等候的顾客数量,如果顾客数量少于椅子数,他就留下来等,否则就离开。
理发师进程结构为:
do{
wait(customers);如果等待的顾客数为0则进入睡眠状态
wait(mutex);获得对waiting的访问权
waitint=waiting-1;将等待的顾客数减1
signal(barbers);一个理发师现在已经做好理发的准备
signal(mutex);释放waiting的访问权
cut_hair();理发(临界区以外)
}while
(1);
顾客进程结构为:
wait(mutex);进入临界区
if(waiting waitint=waiting+1;将等待理发的顾客数加1 signal(customers);如果需要,唤醒理发师 signal(mutex);释放waiting的访问权 wait(barbers);如果空闲理发师为0则进入睡眠状态 get_hair();就座并接受理发服务 }else{ Signal(mutex);理发店已满;不等待 } 第八章死锁 8.1列出三个与计算机系统环境相关的死锁的例子。 答: (1)两辆汽车从相反方向通过一座单行的桥梁; (2)一人想爬上梯子而另一人想从梯子上下来; (3)两列火车企图在同一轨道上相向而行。 8.2死锁是否可能只涉及一个进程? 为什么? 答: 不可能。 这违反了占有并等待条件。 8.9假设有一个系统有m个资源被n个进程共享,进程每次只请求和释放一个资源。 证明只要系统符合下面两个条件,就不会发生死锁: a.每个进程需要资源的最大值在1到m之间。 b.所有进程需要资源的最大值的和小于m+n。 答: 假设进程i需要的最大值为Max(i),已分配的资源实例数为Alloc(i),还需要资源数为Need(i)。 则 假设系统中存在死锁,则 根据a可得: 根据c可得: 因此得到: 可以得出至少存在一个进程Pi,其Need(i)=0,因为Max(i)³1,因此该进程能正常运行结束并释放一个资源,死锁也就不会发生。 8.13 答: (1)Need矩阵内容分别为: (0,0,0,0);(0,7,5,0);(1,0,0,2);(0,0,2,0);(0,6,4,2) (2)该系统处于安全状态。 (3)P1请求为(0,4,2,0),此时Available为(1,1,0,0),该请求能立刻被满足。 第九章内存管理 9.2说明内部碎片与外部碎片的区别。 答: 内部碎片是指在一个分区或一个页内,但是没有被占有这个分区或页的进程使用的内存。 即分配给作业的存储空间中未被利用的部分,直到该作业完成并释放该分区或页时才能被使用。 而外部碎片是指系统中无法利用的小存储块,只要通过合理的移动使所有空闲空间合并成一整块便可分配给作业。 9.3描述下列分配算法: 首次适应、最佳适应、最差适应 答: (1)首次适应: 搜索空闲内存列表分配第一个足够大小要求的空闲分区。 (2)搜索整个内存列表分配最小的足够大小要求的空闲分区。 (3)最差适应: 搜索整个内存列表分配最大的空闲分区。 9.5如果有内存划分100KB、500KB、200KB、300KB和600KB(按顺序),首次适应、最佳适应与最差适应算法各自将怎样放置大小分别为212KB、417KB、112KB和426KB(按顺序)的进程? 哪一种算法的内存利用率最高? 答: (1)首次适应: 212K放在500K分区(剩余288K);417K放在600K分区;112K放在剩余的288K分区;而426K进程必须等待。 (2)最佳适应: 212K放在300K分区;417K放在500K分区;112K放在200K分区;426K放在600K分区。 (3)最差适应: 212K放在600K分区(剩余388K);417K放在500K分区;112K放在剩余388K分区;而426K进程必须等待。 从上可看出,最佳适应算法的内存利用率最高。 9.8假设一个有8个1024字页面的逻辑地址空间,映射到一个有32帧的物理内存。 问: a.逻辑地址多少位? b.物理地址多少位? 答: 逻辑地址13位;物理地址15位。 9.10假设一个将页表放在内存的分页系统。 a.如果一次内存访问用200ns,访问一页内存需要多少时间? b.如果加入TLB,并且75%的页表引用发生在TLB,内存有效访问时间是多少? (假设在TLB中寻找页表项占用零时间,如果页表项在其中)。 答: a.访问一页内存需要200ns+200ns=400ns。 b.有效内存访问时间: 0.75200+0.25400=250ns。 9.16答: a.0430逻辑地址的物理地址是: 219+430=649 b.110逻辑地址的物理地址是: 2300+10=2310 c.2500逻辑地址的长度越界,产生中断 d.3400逻辑地址的物理地址是: 1327+400=1727 e.4122逻辑地址的长度越界,产生中断 第十章虚拟内存 10.1在什么情况下出现页错误? 描述一下发生页错误时操作系统做了哪些动作? 答: 当进程试图访问那些尚未调入到内存的页时,对标记为无效的访问会产生页错误陷阱。 处理页错误的程序: (1)操作系统检查进程的页表,以确定该引用是合法还是非法的地址访问; (2)如果引用非法,那么终止进程。 如果引用有效但是尚未调入页面,那么现在应调入; (3)找到一个空闲帧; (4)调度一个磁盘操作,以便将所需要的页调入刚分配的帧; (5)当磁盘读操作完成后,修改进程的内部表和页表,以表示该页已在内存中; (6)重新开始因非法地址陷阱而中断的指令。 10.10 答: 由题目所给条件可知,数组A有100´100=10000个整数,系统中共有2个内存页用于存放数组信息,数组中的元素按行编址。 若每页存放200个整数,则一个内存页中可以存放2行数组元素,对于程序a,数组元素的访问顺序为: A[0][0],A[0][1],¼,A[0][99] A[1][0],A[1][1],¼,A[1][99] ¼ A[99][0],A[99][1],¼,A[99][99] 显然程序a对数组A的访问顺序与存储顺序一致,也是按行进行的。 因此程序a每访问2行数组元素都会产生一次缺页中断,则访问整个数组会产生100/2=50次缺页中断。 对于程序b,数组元素的访问顺序为: A[0][0],A[1][0],¼,A[99][0] A[0][1],A[1][1],¼,A[99][1] ¼ A[0][99],A[1][99],¼,A[99][99] 显然程序b对数组A的访问顺序与存储顺序不一致。 因此程序b每访问2个元素将产生一次缺页中断,则访问整个数组会产生10000/2=5000次缺页中断。 10.11 答: 算法 帧数 最近最少使用(LRU) FIFO页置换 最优页置换 1 20 20 20 2 18 18 15 3 15 16 11 4 10 14 8 5 8 10 7 6 7 10 7 7 7 7 7 第十一章文件系统接口 11.1假设有一个文件系统,它里面的文件被删除后,当连接到该文件的链接依然存在时,文件的磁盘空间会再度被利用。 如果一个新的文件被创建在同一个存储区域或具有同样的绝对路径名,这会产生什么问题? 如何才能避免这些问题? 答: 假设F1是旧文件而F2是新文件,一个用户本来想访问F1而实际通过链接访问的却是F2。 这个问题可以通过确保在删除文件的同时删除连接到该文件的链接实现。 具体实现可通过以下几种方法: (1)保留每个文件的链接列表,当文件被删除时搜索这些链接并删除它们。 (2)暂时保留链接指针,直到试图访问已删除的文件时删除它们。 (3)保留文件直到删除其所有引用为止。 11.2一些系统当一个用户注销或作业中止时会自动删除所有的用户文件,除非用户显式地要求文件被保留。 另外的系统保留所有的文件,除非用户显式删除它们,论述每种方法的相对优点。 答: 删除没有具体由用户保存的所有文件通过不保存不想要的或不必要的文件,因此具有最小化文件空间的优势。 保存所有文件除非显式删除它们这种方法对用户来说更安全,因为它们不可能因为忘了保存而无意中丢失了文件。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 课后 习题 参考答案 OS