操作系统习题解答(张尧学)

发布时间 : 星期一 文章操作系统习题解答(张尧学)更新完毕开始阅读

静态页式管理不能实现虚存,这是因为静态页式管理要求进程或作业在执行前全部被装入内存,作业或进程的大小仍受内存可用页面数的限制。

10.什么是请求页式管理? P127

答:请求页式管理是动态页式内存管理的一种,它在作业或进程开始执行之前,不把作业或进程的程序段和数据段一次性的全部装入内存,而只装入被认为是经常反复执行和调用的工作区部分。其他部分则在执行过程中动态装入。

请求页式管理的调入方式是,当需要执行某条指令而又发现它不在内存时,或当执行某条指令需要访问其他数据或指令时,而这些指令和数据又不在内存中,从而发生缺页中断,系统将外存中相应的页调入内存。

11.请求页式管理中有哪几种常用的页面置换算法?试比较它们的优缺点。 P129 答:比较常用的页面置换算法有:

(1) 随机淘汰算法(randomglongram)。即随机地选择某个用户页面并将其换出。

(2) 轮转法RR(roundrobin)。轮转法循回换出内存可用区内一个可以被换出的页,无论该页是刚被换进或已经换进内存很长时间。

(3) 先进先出法FIFO(firstinfirstout)。FIFO算法选择在内存驻留时间最长的一页将其淘汰。

(4) 最近最久未使用页面置换算法LRU(1east recently unused)。该算法的基本思想是:当需要淘汰某一页时,选择离当前时间最近的一段时间内最久没有使用过的页面先淘汰。

该算法很难实现,比较常用的近似算法:最不经常使用页面淘汰算法LFU、最近没有使用页面淘汰算法NUR。

(5) 理想型淘汰算法OPT(optimalreplacementalgorithm)。该算法淘汰在访问串中将来再也不出现的或是在离当前最远的位置上出现的页面。

12.什么是Belady现象?找出一个Belady现象的例子。P131

答:使用FIFO算法时,在未给进程或作业分配足它所要求的页面数时,有时会出现分配的页面数增多,缺页次数反而增加的奇怪现象。这种现象称为Belady现象。

假设进程P共有5个页,访问顺序是:1,2,3,4,1,2,5,1,2,3,4,5的缺页情况。

分配3个页面,缺页9次:缺页率9/12=75%

分配4个页面,缺页10次:缺页率10/12=83.3%

此例就出现分配的页面数增多,缺页次数反而增加的奇怪现象,即Belady现象。

14.什么是段式管理?它与页式管理有何区别? P133

答:段式管理就是将程序按照内容或过程(函数)关系分成段,每段拥有自己的名字。一个用户作业或进程所包含的段对应于一个二维线性虚拟空间,也就是一个二维虚拟存储器。段式管理程序以段为单位分配内存,然后通过地址映射机构把段式虚拟地址转换成实际的内存物理地址。同页式管理时一样,段式管理也采用只把那些经常访问的段驻留内存,而把那些在将来一段时间内不被访问的段放入外存,待需要时自动调入相关段的方法实现二维虚拟存储器。

段式管理和页式管理的主要区别有:

(1) 页式管理中源程序进行编译链接时是将主程序、子程序、数据区等按照线性空间的一维地址顺序排列起来。段式管理则是将程序按照内容或过程(函数)关系分成段,每段拥有自己的名字。一个用户作业或进程所包含的段对应于一个二维线性虚拟空间,也就是一个二维虚拟存储器。

(2) 同动态页式管理一样,段式管理也提供了内外存统一管理的虚存实现。与页式管理不同的是:段式虚存每次交换的是一段有意义的信息,而不是像页式虚存管理那样只交换固定大小的页,从而需要多次的缺页中断才能把所需信息完整地调入内存。

(3) 在段式管理中,段长可根据需要动态增长。这对那些需要不断增加或改变新数据或子程序的段来说,将是非常有好处的。

(4) 段式管理便于对具有完整逻辑功能的信息段进行共享。

(5) 段式管理便于进行动态链接,而页式管理进行动态链接的过程非常复杂。

15.段式管理可以实现虚存吗?如果可以,简述实现方法。P133 答:段式管理可以实现虚存。

段式管理把程序按照内容或过程(函数)关系分成段,每段拥有自己的名字。一个用户作业或进程所包含的段对应于一个二维线性虚拟空间(段号s与段内相对地址w),也就是一个二维虚拟存储器。段式管理以段为单位分配内存,然后通过地址映射机构把段式虚拟地址转换成实际的内存物理地址。只把那些经常访问的段驻留内存,而把那些在将来一段时间内不被访问的段放入外存,待需要时产生缺段中断,自动调入。

16.为什么要提出段页式管理?它与段式管理及页式管理有何区别? P138 答:因为段式管理和页式管理各有所长。段式管理为用户提供了一个二维的虚拟地址空间,反映了程序的逻辑结构,有利于段的动态增长以及共享和内存保护等,这极大地方便了用户。而分页系统则有效地克服了碎片,提高了存储器的利用效率。从存储管理的目的来讲,主要是方便用户的程序设计和提高内存的利用率。所以人们提出了将段式管理和页式管理结合起来让其互相取长补短的段页式管理。段页式管理与段式和页式管理相比,其访问时间较长。因此,执行效率低。

17.为什么说段页式管理时的虚拟地址仍是二维的? 答:因为在段页式内存管理中,对每一段内的地址空间进行分页式管理只是为了克服在内存分配过程中产生的大量碎片,从而提高存储器的利用效率,它并没有改变段内地址空间的一维结构,所以段页式内存管理中的虚拟地址仍然和段式内存管理中的虚拟地址一样,是二维结构的。

18.段页式管理的主要缺点是什么?有什么改进办法?

答:段页式管理的主要缺点是对内存中指令或数据进行存取时,至少需要对内存进行三次以上的访问。第一次是由段表地址寄存器取段表始址后访问段表,由此取出对应段的页表在内存中的地址。第二次则是访问页表得到所要访问的指令或数据的物理地址。只有在访问了段表和页表之后,第三次才能访问真正需要访问的物理单元。显然。这将大大降低CPU执行指令的速度。

改进办法是设置快速联想寄存器。在快速联想寄存器中.存放当前最常用的段号s,页号p和对应的内存页面地址与其他控制项。当需要访问内存空间某一单元时,可在通过段表、页表进行内存地址查找的同时,根据快速联想寄存器查找其段号和页号。如果所要访问的段或页的地址在快速联想寄存器中,则系统不再访问内存中的段表、页表而直接把快速联想寄存器中的值与页内相对地址d拼接起来得到内存地址。

19. 什么是局部性原理?什么是抖动?你有什么办法减少系统的抖动现象? P140

答:局部性原理是指在几乎所有程序的执行过程中,在一段时间内,CPU总是集中地访问程序中的某一个部分而不是对程序的所有部分具有平均的访问概率。

抖动是指当给进程分配的内存小于所要求的工作区时,由于内存外存之间交换频繁,访问外存的时间和输入输出处理时间大大增加,反而造成CPU因等待

数据而空转,使得整个系统性能大大下降。

在物理系统中,为防止抖动的产生,在进行淘汰或替换时,一般总是把缺页进程锁住,不让其换出,从而防止抖动发生。防止抖动发生的另一个办法是设置较大的内存工作区。

第六章

1.简述Linux系统进程的概念?

答:P148

2.Linux进程上下文由哪几部分组成?为什么说核心程序不是进程上下文上午一部分?进程页表也在核心区,它们也不是进程上下文上午一部分吗?

答:进程上下文由task_struct结构、用户栈和核心栈的内容、用户地址空间的征文段、数据段、硬件寄存器的内容以及页表等组成。

核心页表被所有进程共享,所以不是进程上下文的一部分。而进程页表是进程上下文的一部分。

4.Linux的调度策略是什么? 调度时应该封锁中断吗?如果不封锁,会发生什么问题?

答:Linux使用三种调度策略,动态优先数调度SCHED_OTHER,先来先服务调度SCHED_FIFO和轮转法调度SCHED_RR。其中动态优先级调度策略用于普通进程,后两种调度策略用于实时进程。

在调度时应封锁中断,否则在调度过程中由于中断会使进程上下文的切换出现错误。

6. Linux在哪几种情况下发生调度?

答:两种情况:一是进程自动放弃处理机时主动装入调度过程,二是在由核心态转入用户态时,系统设置了高优先级就绪进程的强迫调度标识need_resched时发生调度。

8.什么是软中断?

答:P162

13.Linux存储管理策略中交换和请求调页方式有何区别?

答:P171

第八章

1.什么是文件、文件系统?文件系统有哪些功能? P198

答:在计算机系统中,文件被解释为一组赋名的相关字符流的集合,或者是相关纪录的集合。

文件系统是操作系统中与管理文件有关的软件和数据。

文件系统的功能是为用户建立文件、撤销、读写、修改和复制文件,以及完成对文件的按名存取和进行存取控制。

2、文件一般按什么分类?可以分为哪几类? P199

答:文件一般按性质、用途、组织形式、文件中的信息流向或文件的保护级别等分类。

按性质和用途可分为系统文件、库文件和用户文件。

联系合同范文客服:xxxxx#qq.com(#替换为@)