操作系统考研复习 第三章内存管理

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第三章存储器管理

1 源程序变为内存中可执行的程序需要经过哪些步骤?这些步骤分别有哪几种方式?

A编译:源代码编译成目标模块.obj

B链接:与库函数链接在一起,形成装入模块(静态链接、装入内存时动态链接、运行时动态链接)

C装入:装入内存运行。有绝对装入(绝对地址)、可重定位装入(静态重定位;装入时地址重定位)、动态运行时装入(动态重定位;运行时地址重定位,需要重定位寄存器支持);

2 什么叫重定位?动态重定位特点是什么?(重定位的好处)

在存储器管理中什么是重定位?为什么要引进重定位技术?2014

当装入程序将可执行代码装入内存时,把逻辑地址转换成物理地址的过程,叫重定位。(一般没特殊说明,指的就是动态重定位)

1将程序分配到不连续的存储器中;

2只需投入部分代码即可运行;

3运行期间,根据代码需求动态申请内存;

4便于程序段的共享,可用向用户提供一个比存储空间大很多大地址空间。

3内存是如何进行保护的?(访问内存的地址是如何识别正确性的?)

(内存保护是为了确保操作系统的地址区不受用户进程的影响)

使用重定位寄存器(含最小物理地址)和界地址寄存器(逻辑地址)来保护的。

首先将逻辑地址与界地址比较,小于则与重定位地址相加映射成物理地址;大于则出现越界中断。

4什么是覆盖技术、交换技术?

覆盖:把用户空间分成一个固定区和若干的覆盖区,经常活跃的放在固定区,其他按需要调入覆盖区。

覆盖优缺点:打破了将进程全部信息装入内存才能运行的限制;

当同时运行的程序代码量大于内存仍不能运行、并且用户需给出覆盖区的结构交换:即中级调度的进程的换入和换出。

(现在已经不使用覆盖技术,现在是通过虚拟存储技术来解决的)

1内存分配管理有哪些方式?

根据作业是否在同一分区划为连续分配和非连续分配。

A连续分配:1单一连续分配、2固定分区、3动态分区。

B非连续分配:1分页、2分段、3段页式(每个又根据是否使用虚拟内存技术分为基本和请求)

2简述连续分配管理的方式有哪些?优缺点有什么?

A单一连续分配:分为系统区和用户区。无需内存保护。

优缺点:有内部碎片,内存利用率低,且只适用于单任务单用户的OS中。

B固定分区分配:将内存空间划分为固定大小区域,每个区域只装入一道作业。

缺点:程序太大放不进去、主存利用率低、产生内部碎片。

C动态分区分配:根据进程大小动态建立分区,使分区大小正好适应进程需要。

缺点:刚开始的时候是比较好的,后面会导致外部碎片的产生。

3什么是内部碎片?外部碎片、通过什么技术来解决?

内部碎片:程序小于固定分区大小,导致分区内部空间有剩余。

外部碎片:在分区外部产生难以使用的碎片。

外部碎片通过“紧凑”技术来解决。

4动态分区分配的空闲分区的分配策略有哪些?优缺点是什么?

首次适应算法First Fit:空闲分区按地址顺序次序链接起来,每次都分配第一个;

最佳适应算法Best Fit:空闲分区按从小到大链接起来,每次分配最能适应程序大小的那一个;

最坏适应算法Worst Fit:空闲分区按从大到小顺序链接起来,每次分配最大的空间;

循环首次适应算法Next Fit:首次适应算法;只不过下一次寻找是从上一次结束位置开始。

First Fit:最简单,且效果最好、最快的。

缺点是内存低址部分出现很多小的分区,且每次查找都要经过这些分区。

Best Fit:实际上比较差,因为每次分配都留下难以利用的内存块,产生最多的碎片。Worst Fit:导致很快没有可用的大的内存块。

Next Fit:它试图解决首次适应算法的问题,但实际上会导致在内存末尾分配空间。比首次还差。

1 连续分配的固定分区分配与非连续的分页管理有什么不同?

分页在形式上看与固定分区一样,但实际上不一样;

分页的大小比固定分区小很多,且分页是按进程分页,内存分块(页框),进程按块为单位申请空间,所以只会在最后一块中产生页内碎片,所以不会产生外部碎片。这会使一个作业的进程可能被分到了不同的块中。

2什么是页表?

分页存储管理系统中,页表的主要作用是什么?现代大多数计算机系统都支持非常大的逻辑地址空间,这给页表设计带来什么问题?(页表太大)2014

页表是为了便于在内存中找到进程中每个页面对应的物理块号,系统为每一个进程建立一张页表,记录在内存中物理块号,页表也一般放在内存中。

3分页管理方式存在哪两种主要的问题?

每次访问内存需要逻辑地址转化到物理地址,所以转化速度必须快;【快表】

每个进程引入页表机制,页表不能太大,否则内存利用率低【多级分页和请求分页】(见下)

4页表太大会带来什么问题?解决方法有哪些?

难以在内存中找到一块连续的地址,放下这么大的页表。即便是找到,也会占用内存很大的空间,内存的空间利用率下降。

1采用离散分配方式解决难以找到一块连续的大内存空间;【多级页表】

2只需将当前需要的部分页表项调入内存,其余页表项驻留在外存上。【请求分页】

5 页表是什么组成的?分页的地址结构?

整张页表,是由一个个页表项组成。每一个页表项由页号和所对应的块号组成。

分页的地址结构由“页号”+“页内偏移量”组成。例如地址长度32位(页号31~12,页内偏移11~0)则

1“页号”就是整张页表中页表项的偏移量。(现在页号20位,即能支持的页表项个数为220个。最大页表项所对应的页号是220-1。

2如果把一页里面放满页表编号(不是页号,页号是一页里面的页表项的偏移量),即该一页中的页号中的一位对应一张页表,就是能支持最大页数。(地址空间所允许的最大页数为220页)

3“页内偏移量”就是一页的大小。(现在页内偏移量为12位,即212B=4KB。即现在一页的大小为4KB)

6慢表的地址变换过程?(整个过程由硬件自动完成)

相关文档
最新文档