北大操作系统课后题参考答案 下载本文

以上问题会在多机系统中出现

如何知道所发的消息是正确的,合法的(安全性) 4)有几种可能性来实现消息的传递 有阻塞,无阻塞,有无缓冲 a:消息传递是最常用的

系统中会开辟出缓冲区,系统把消息从A地址空间复制到buffer

然后从buffer中放到消息队列中,挂到B地址空间(接受进程的地址空间) 这个buffer是有缓冲的。

消息缓冲是:生产----消费者模型 b:信箱模型

建一个信箱,把消息放在信箱中 一套操作:建信箱,信箱满如何办 c:有/无阻塞

d:管道:建立两个进程通信的通路,实现时利用了文件系统,在文件系统中支持 通过读/写文件实现! write---read!

六:进程调度

处理机调度:在有些书上分为两个层次 1):CPU调度,2)中级调度 :两极调度 在这里狭义的说法就是选择哪些进程上CPU,考虑以下问题 1)什么原则(what) 2)什么时候(when) 3)如何进行(How)

1.what 什么算法:FIFO,时间片轮转法,优先级调度,搞清调度问题的区别

*FIFO:一个进程上CPU后,除非由于它自身的原因,否则没有进程能够打断它, (#基于优先级的不可剥夺算法) 时间片轮转法,时间片用完就切换下来

基于优先级:1):抢占:一旦有了高优先级就可以切换原来运行的进程! 2):不可抢占

可变的一定是动态的,固定的一定是静态的。 2机制和策略问题在此部分有所体现 策略是用户可选的 机制是定好的

最新版本的OS要求抢占

多级排列:几种策略的结合(时间片,优先级,抢占)

2)时机(WHEN) 什么时候做什么工作

什么时候进行进程调度:一个进程运行完毕,进程出错,时间片到,基于优先级的可抢占 式

调度,自己用阻塞原语将自己阻塞

3)如何进行上下文切换(HOW)

一个进程让出来,另一个进程上去。

如何保存被换下来的现场,以及如何将要换上去的现场换上去, 是用汇编来做的

线程和进程之间的关系问题:

如果同一系统中线程和进程都存在,他们的关系: 原来进程:资源分配和CPU调度的单位;

接着:进程粒度变小,进程只管分配资源,线程是CPU调度单位, 线程的引入:从资源系统开销的角度,系统使用的角度。

存储管理

1.产生存储分配问题的背景是什么?何谓静态分配?何谓动态分配?动态分配的原因是 什么?

答:一个有效的存储分配机制,应对用户提出的需求做出快速响应,为之分配相应的存储 空间,在用户作业不需要它时,及时收回,供其他用户使用。 内存分配有两种方式

1)静态分配:程序要求的内存空间是在目标模块连接装入内存时确定并分配的,并且在 程序运行过程中不允许再申请或在内存中“搬家”,也就是分配工作是在程序运行前一次 性完成

2)动态分配:程序要求的基本内存空间是在目标模块连接装入内存时确定并且分配的, 但是在运行过程中,允许申请附加的内存空间或在内存中“搬家”,也就是分配工作可以 在程序运行前及运行过程中逐步完成

动态分配的原因:动态分配具有较大的灵活性,对提高内存的利用率,比静态分配更合理

些。

2.阐述操作系统中选择存储管理方案的原则。 答: 原则:

1. 存储管理必须合理地分配内存空间

2.为了避免内存中的各个程序相互干扰,还必须实现存储保护 3.有效利用内存空间,允许多个作业共享程序和数据

4.为了在内存中运行长度为任意大小的程序,必须采用一定的方法“扩充”内存

3.可变分区管理方式下,采用移动技术有什么优点?移动一道作业时操作系统要做哪些工 作?

答:对碎片进行整理,把所有空闲碎片合并成一个连续的大空闲区,供作业使用。 被移动了得程序,需要进行重新定位,可以用动态地址映射实现。

4.用可变分区方式管理主存时,假定主存中按地址顺序依次有5个空闲区,空闲区的大小 依次为32k,10k,5k,228k,100k。现有J1,J2,J3,J4,J5。它们各需主存1k,10k,108k,28k,1

15k。若采用最先适应分配法能把这5个作业按J1, J5次序全部装入主存吗?你认为按怎样 的次序装入这5个作业可使主存空间利用率最高。

答:1) 若采用最先适应分配法,无法将5 个作业全部装入主存!

2)通过对最佳适应分配法和最差适应分配法的分析,其中最差适应分配法的内存空 间

利用率最高.

5.什么是碎片?试述各种多道程序系统存储管理方案中碎片是如何出现的?

答:经过一段时间的分配回收后,内存中存在很多很小的空闲块。它们每一个都很小,不 足以满足分配要求;但其总和满足分配要求。这些空闲块被称为碎片

6.段式存储管理系统中是如何实现存储保护的?

答:段式管理的存储保护主要有两种。一种是地址越界保护法,另一种是存取方式控制保 护法。具体的措施有:

1)利用段表及段长来实现段的保护,防止程序执行的时地址越界

2)存取权限保护法,在段表中设有“存取权”一项,可对程序的访问权限进行各种必要 的限制

3)存取保护键保护:由于I/O通道对存储器的访问是不通过段表的,因此有的机器还采用 存储保护健来保护

7,在段式存储管理系统中,如何实现多个作业对一个信息段的共享?并说明可共享过程 段的动态链接过程。

答:1)如果多个用户进程或作业需要共享某段程序或者数据,可以使用不同的段名,在各 自的段表中填入已在内存中的共享段的地址,并设置适当的读写控制权,就可以做到共享 一

个内存段的信息。

8.段式存储管理系统中,为什么说存取方式控制对共享段特别重要? 答:

存取方式对于非共享段来说,主要是用来指示程序设计的错误,而对共享段来说,则显得 特别重要,例如某个纯代码段被共享,则必须禁止任何作业修改它,因此,规定这样的段 只能“执行”。对于某个共享的数据段,只允许大家“读”,而不能“写”,或只允许某 一个用户“写”。

此外,通常还禁止任何作业“读”一个过程段,因为: 1)读一个过程段显然是程序设计的错误

2)有些过程是专用的,只准使用,不准“拿走”。如果一个分段仅具有“执行”状态, 那么只能作为一个过程来调用,而“读”“写”是禁止的;如果有作业给他们企图“读” 和“写”,则系统发出保护中断信号。 --

9.保护方式除R,W,EX(执行)组合外,你还能想出其他的保护方式吗?

答:保护方式除了R,W,EX组合成的存取权限位外,还应该增加以下内容: 1)特征位(该段在/不在内存,是否可共享) 2)标志位(该段是否被修改过,能否移动) 3)扩充位(改段长度固定长/可扩充)

10.什么是动态链接?为什么虚拟段式存储管理系统有利于动态链接?

答:动态链接是:是在程序开始运行时,只将主程序段装配好,并调入内存,其他各段 的装配是在主程序段的运行过程中逐步完成。每当需要调用一个新段时,再将这个新段装 配好,并于主程序段链接。

2)?

11.有一个操作系统采用段式存储管理方案,用户区内存为512K,分配时截取空闲块的前 半部分(小地址部分)。初始时内存全部空闲,系统执行如下申请,释放操作序列。 申请300K,申请100K,释放300K,申请150K,申请50K,释放90K 1)若采用首先适应算法,空闲块表中有哪些空块(指出大小,地址) 2)若采用最佳适应算法,空闲块中有哪些空块(指出大小,地址)

3)若随后又申请了80K,针对上述两种情况说明结果?其结果说明了什么问题? 答:1)

空闲块:0--90 , 200--300,400---512 空闲块: 0--90 , 150--300,450--512 2)

空闲块:80--90, 200--300,400---512 空闲块:80--90 , 150--300,450--512

12.加入一个程序的段表如下:

段号 状态位 段起始地址 段长 存取控制 0 0 100 40 W 1 1 2010 20 W 2 0 1590 100 E 3 0 75 50 R

其中状态位“1”表示该段不在内存中,存取控制:W 表示可写,R表示可读,E表示可执 行

对于下列的逻辑地址可能发生什么情况? 1) STORE 1,[0,50] 2) STORE 1,[1,10] 3) LOAD 1,[2,77] 4) LOAD 1,[3,20] 答:1)的逻辑地址:150 2)的逻辑地址:2020 3)的逻辑地址:1667 4)的逻辑地质:95

13. 设在内存中按地址递增次序有三个不连续的空闲区F1,F2,F3,他们的容量分别为60K, 130K,20K请给出一个后备作业序列,使得实施存储分配时

1)采用最佳适应算法将取得好的效果,而采用最差适应算法和首先适应算法效果都不好 ;

2)采用最佳适应算法效果不好,而采用最差适应算法和首先是应算法都可取得好的效果 ;

3)采用最差适应算法将取得好的效果,而采用首先适应算法和最佳适应算法效果都不好 ;

4)采用三种算法都取得好的效果; 5)采用这三种算法效果都不好。 答:1)20,60,130 2)40,65,20 3)20,50,60 4) 130,60k,20 5) 140,70,70

14.页式存储管理系统中作业的地址空间是一维的还是二维的?请说明理由 答:二维的,有一维是:页号,和第二维是:页内地址!

15.页式存储管理需要哪些硬件支持?如何实现逻辑地址到物理地址的映射? 答:系统提供了一对寄存器:页表始址寄存器和页表长度寄存器。 1)具体步骤说明如下

1)地址映射机制把CPU给出的逻辑地址分为两部分:页号P和页内地址

2)将逻辑页号P与页表长度寄存器内容比较,如果P大于等于页表长度L,则为越届,发生 地址越界中断

3)根据页表始址寄存器的内容D得到页表在内存的首地址,并根据逻辑页号P在页表 中找到对应的内存块号P'

4)把物理页号与逻辑地址中的页内地址D拼在一起,形成访问内存的物理地址

16.假定一个存储管理程序已经把它的页面淘汰决定缩小到两页之一,假定其中一页由几 个进程共享,另一页仅由一个进程使用,最终应该淘汰哪一页?请解释! 答:当然是后一页,这样就能避免频繁的调度页面!

17. 在多道程序系统中,程序和数据共享可以大大的节省内存空间,分别说明页式,段式 和段页式存储管理系统中是如何实现共享的? 答:

页式:页式存储管理使每个程序能利用内存空间中一些不连续的存储块,这种灵活性就 允许两个或多个程序共享程序中的代码或公共数据段。

段式:如果多个用户进程或作业需要共享某段程序或数据,可以使用不同的段名,在各 自的段表中填入已在内存中的共享段的起始地址,并设置适当的读写控制权,就可以做 到共享一个内存段的信息。 段页式:?

18. 在页式存储管理系统中,对数据,过程的共享有什么限制,为什么?

答:对于数据页面的共享,实现起来比较简单,因为这个共享的数据页面,可以安排在程 序

地址空间的任何一个页面上,而代码的共享则不然,它必须把共享的代码安排到所有共享 它

的程序地址空间中相同页号的页面中,即共享代码所在地址空间必须重叠。

19.为什么期望大多数程序具有局部性?

答:利用虚拟存储技术,可以为程序提供较少的物理页面,就可以完成执行程序的任务。 20.设计一个页表应考虑哪些因素?

答:系统为每个用户程序建立一张页表,用于记录用户程序的逻辑页面与内存物理页面之 间

的对应关系,包括两项内容:逻辑页面号,该逻辑页面在内存中分配的物理页面号(内存 块号),用户程序的地址空间有多少页,该页表里登记多少行,且按逻辑页的顺序排列。 页表存放在内存系统区。

21. 操作系统的存储管理目标是什么?段页式管理是如何实现这些目标的? 答:

1)充分利用内存,对多道程序并发执行。

22.为什么说段页式管理时的虚拟地址仍然是二维的? 答:段号,段内地址。

23.假定磁盘空闲空间表表明有下列存储块空闲块:13,11,18,9和20块。有一个要求 为某文件分配10个连续的磁盘块。

1)如果采用首次适应分配策略,那么将分配哪个块?

31.有一台计算机含有四个页面,每一页的装入时间,最后一次修改时间以及R与M位的值 如下(时间为时间周期):

页 装入时间 最后访问时间 R M 0 126 279 0 0 1 230 260 1 0 2 120 272 1 1 3 160 280 1 1 1)NRU应该淘汰哪一页? 2)FIFO应该淘汰哪一页? 3)LRU 应该淘汰哪一页?

4)第二次机会应该淘汰哪一页?

答:?

32. 请求页式存储管理中,页面置换算法所花的时间属于系统开销,这种说法对吗? 答:额外开销。

33.何谓系统的“抖动”现象?当系统发生“抖动”时,你认为应该采取什么措施加以克 服?

答:在虚存中,页面在内存和外存之间频繁的调度,以至于调度页面所需时间比进程实际 运行的时间还多,此时系统效率急剧下降,甚至导致系统崩溃,这种现象称为颠簸(抖动 )

产生的原因:页面置换算法不合理,分配给进程的物理页面数太少。 解决办法:调整算法,多分配物理页面数。

34.在虚拟页式存储管理中,进程在内外存中的存放有以下两种方法: 1)一部分页面放在内存,其余页面放在外存 2)一部分页面放在内存,全部页面放在外存

试从系统开销的角度分析两种方法各自的优缺点,并说明页表的差别。 答:?

35,36,37 第二次复习的时候做!! 文件管理

1.举一个文件访问的例子,所举的领域在某些情况下,信息必须随机访问,而在其他时间 必须顺序访问.

答:进行视频文件播放时。

2.为什么支持索引文件的文件系统无法获得顺序访问文件系统相同的效率?

答:因为:索引结构的缺点就是:较多的寻道次数和寻道时间,以及索引表本身增加了存 储空间的开销。

连续结构的优点就是:文件存取非常简单迅速。

3.假设一个活动头磁盘有200道,编号1-199,当前磁头正在143道上服务,并且刚刚完成了 125道的请求,现有如下访盘请求序列(磁道号)