考研复试操作系统面试题(五)-内存管理

写作目的:为了应对考研复试中的面试,我整理了导师可能提问的地方,力求用口语化的语言描述出来。

这只是一部分,陆续还有操作系统的其它章节,还会推出数据结构、计算机网络、数据库的复试题整理

思维导图在我的processon。如果对你有帮助就打赏一下吧。

https://www.processon.com/view/link/5e79c7ede4b06b852ff3a8e2

目录

内存管理的功能?

程序装入和链接?

内存保护如何实现的?

逻辑地址和物理地址

单一连续分配、固定分区分配、动态分区分配的比较?

动态分区有哪些策略?

覆盖与交换的概念?

多级页表解决了什么问题,带来了什么问题?

描述页式存储管理。

描述段式存储管理

虚拟存储器的定义和特性

虚拟内存技术的实现需要的硬件支持

页面置换算法

描述三种页面分配策略

抖动、工作集的定义


内存管理的功能?

内存回收和分配功能,使程序员摆脱手动分配回收的麻烦,提高效率。

地址转换功能,如逻辑地址和物理地址的转换。

内存空间扩充,利用虚拟存储技术和覆盖技术扩充内存。

存储保护,使多道程序运行时不发生越界。

程序装入和链接?

编译、链接、装入

编译:编译程序将源码编译成目标模块

链接:链接程序将目标模块和函数库链接,形成装入模块

装入:装入程序将装入模块装入内存运行。

链接又分为:静态链接、装入时动态连接、运行时动态连接

静态链接:装入前一次性链接完成。

装入时动态链接:边装入边链接。

运行时动态链接:在程序要执行到目标模块时才进行链接,优点是易于更新和修改,便于实现目标模块的共享。

装入又分为:绝对装入、可重定位装入、动态运行时装入

绝对装入:知道程序在内存中驻留的位置,编译程序产生绝对地址。

可重定位装入:多道环境中,多个模块的起始地址都从0开始,程序中的其它地址都是相对起始地址的。特点是:作业装入内存必须给它一次性分配所需空间,运行期间不可移动,不可再次申请内存空间。

动态运行时装入:程序装入内存后,并不立刻转化成绝对地址,而是到真正要运行这段程序时在转换。特点是:可以将程序分配到不连续的内存;可以只装入部分代码就能运行;可动态申请内存;需要重定位寄存器支持。

内存保护如何实现的?

内存保护采用两种方法:①上下限寄存器法;②重定位寄存器和界地址寄存器组合法。

第二种方法中:界地址寄存器含有逻辑地址的最大地址,是用来“比较”的;重定位寄存器含有物理地址最小值,是用来“”的。

逻辑地址和物理地址

逻辑地址:编译后每个目标模块都从0开始编制,叫做相对地址或逻辑地址。

物理地址:是地址转换后的最终地址。装入程序将代码装入内存,必须将逻辑地址变成物理地址,称为地址重定位。

单一连续分配、固定分区分配、动态分区分配的比较?

单一连续分配:将内存分成系统区和用户区。优点:简单、无外部碎片;缺点:适用于单道程序,有内部碎片,内存利用率非常低。

固定分区分配:将内存空间划分成大小固定的分区,每个分区只装入一个作业。分区大小可以相等也可以不等。优点:可以多道程序;缺点是:分区固定不变,程序不能太大,否则放不进去,有内部碎片;内存利用率低。

动态分区分配:不预先划分分区,而是等程序装入内存时再划分。优点是:可以使分区大小刚好合适。缺点是:会产生较小的外部碎片分配不出去。

动态分区有哪些策略?

首次适应算法、最佳适应、最坏适应、邻近适应算法。

覆盖与交换的概念?

覆盖是在同一程序或进程中进行的。交换是在不同进程之间进行的。

多级页表解决了什么问题,带来了什么问题?

解决了当逻辑地址空间大时,页表的长度会大大增加的问题。带来了采用多级页表时,一次访盘需要多次访问内存甚至磁盘,会增加一次访问的时间。

描述页式存储管理。

思想:把主存空间划分成大小相等且固定的块,块相对较小,作为主存的基本单位。每个进程也以块为单位划分。不会产生外部碎片,平均只会产生半个块大小内部碎片

进程中的页称为,内存中的页称为页框。外存中也进行划分称为

页式存储管理由:页及相关概念、地址结构、页表、地址变换机构组成。

地址结构包括:页号、页内偏移。

页表的组成包括:页号、块号。

地址变换是硬件自动完成的;分页机制是对用户完全透明的。

描述段式存储管理

这种管理方式考虑到了程序员的感受,以满足方便变成、信息保护和共享、动态增长及动态链接等要求。它按用户进程中的自然段划分逻辑空间,每个段从0开始编址,并分配连续的地址空间。段内连续,段之间可以不连续。

段式存储管理由:分段、段表、地址结构、地址变换机构组成。

段表结构包括:段号,段长,段的起始地址

段地址的组成:段号、段内的偏移。

虚拟存储器的定义和特性

定义:基于局部性原理,只需要把程序的一部分装入内存就可运行起来。在执行过程中,程序要访问的信息不在内存,由操作系统将所需的部分调入内存执行。操作系统将暂时不用的内容换出到外存上,空闲空间存放从外存换入的信息。这样操作系统就好像为用户提供了一个比实际内存大得多的存储器。

特性:多次性、对换性、虚拟性

虚拟内存技术的实现需要的硬件支持

1、一定容量的内存和外存 ;2、页表机制;3、中断机构,产生中断;4、地址变换机构

页面置换算法

最佳置换算法:最优,但由于无法预测未来,只能是理想中的算法,可以用来作为参考评估其他算法的性能。

先进先出算法:最公平,但会出现belady现象。

最近最久未用算法(LRU):算法原理是,如果一个数据在最近一段时间没有被访问到,那么在将来它被访问的可能性也很小。算法性能好,需要寄存器和堆栈的支持。

时钟置换算法clock算法(又称为NRU最近未用算法):时钟轮转法将所有的页组成一个圆,圆心的指针指向下一个要被置换的页面,置换前检查使用位,如果使用位为1,同样将其使用位置为0,随后将顺指针旋转,检查下一个页面,直到发现某页的使用位为0,将此页置换出内存。

描述三种页面分配策略

固定分区局部置换:系统为每个进程分配一定数量的物理块,在整个运行期间都不改变。若进程在运行过程中发生缺页,则只能从该进程在内存中的页面中选出一页换出,然后再调入需要的页面。缺点:难以确定进程所需的合适的物理块数。

可变分区全局置换:刚开始会为每个进程分配一定数量的物理块。操作系统会保持一个空闲物理块队列。当某个进程发生缺页时,从空闲的物理块中取出一块分配给该进程;缺点,有可能会盲目的给进程增加物理块,导致多道程序并发能力下降。

可变分区局部置换:刚开始会为每个进程分配一定数量的物理块。当某进程发生缺页时,只允许从该进程自己的物理块中选出一个进行换出外存。如果进程中运行中频繁缺页,系统会为该进程多分配几个物理块,直至该进程缺页率趋势适当程度;反之,如果进程在运行中缺页率特别低,则可适当减少分配给该进程的物理块。

抖动、工作集的定义

抖动:刚换出的块又被换出到外存中。主要因为频繁访问的页面数高于可用的物理页数目。

工作集:某段时间间隔内,程序要访问的页面集合。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值