2024操作系统考研复习指导——第3章内存管理

文章讨论了内存管理的概念,包括编址空间、内存保护、静态与动态装入、重定位等。提到了页表和段表在内存管理中的作用,以及动态分区、覆盖和交换技术。虚拟内存技术被引入以解决物理内存限制,通过地址变换和页表机制实现。多级页表用于解决大逻辑地址空间的问题,但也增加了访存时间。此外,文章还探讨了虚拟内存的特征和实现方式,以及其带来的性能影响。
摘要由CSDN通过智能技术生成

一、概念题

  • 编址空间的大小取决于硬件的访存能力,一般由地址总线宽度决定。
  • 内存保护是内存管理的一部分,是操作系统的任务,但是出于安全性和效率考虑,必须由硬件实现,所以需要操作系统和硬件机构的合作来完成。
  • 静态装入是指在编程阶段就把物理地址计算好。
  • 可重定位是指在装入时把逻辑地址转换为物理地址,但装入后不能改变。
  • 动态重定位是指在执行时再决定装入的地址并装入,装入后有可能会换出,所以同一个模块在内存中的物理地址是可能改变的。
  • 动态重定位是指在作业运行过程中执行到一条访存指令时,再把逻辑地址转换为主存中的物理地址,实际中是通过硬件地址转换机制实现的。
  • 页表段表存储在内存中,系统提供给用户物理地址空间总空间大小减去页表或段表的长度。由于页表和段表的长度不能确定,所以提供给用户的物理地址空间大小也不能确定。
  • 页表的功能由一组专门的存储器实现,其始址放在页表基址寄存器中(PTBR)。这样才能满足在地址变换时能较快的完成逻辑地址和物理地址之间的转换。
  • 编译后一个目标程序所限定的地址范围称为该作业的逻辑地址空间
  • 可重入程序主要是通过共享来使用同一块存储空间的,或通过动态链接的方式将所需的程序段映射到相关进程中去,其最大的优点减少了对程序段的调入/调出,因此减少了对换数量
  • 操作系统实现分区存储管理的代价最小。
  • 动态分区又称可变式分区,它是系统运行过程中在作业装入时动态建立的。
  • 内存管理是为了提高内存的利用率,引入覆盖和交换技术,即在较小的内存空间中采用重复使用的方法来节省存储空间,但它付出的代价是需要消耗更多的处理器时间,因此实际上是一种以时间换空间的技术。
  • 引入段式存储管理方式,主要是为了满足用户的下俩要求:方便编程、分段共享、分段保护、动态链接和动态增长
  • 存储管理目的:1、方便用户;2、提高内存利用率
  • 对主存的访问是以字节或字为单位的。
  • 将作业的逻辑地址变为物理地址的过程称为地址重定位
  • 分页存储管理中,逻辑地址分配是按为单位进行分配的,而主存的分配即物理地址分配是以内存块为单位分配的。
  • 段页式存储管理兼有页式管理段式管理的优点,采用分段方法来分配和管理用户地址空间,采用分页方法来管理物理存储空间。但它的开销要比段式和页式管理的开销大。
  • 多个进程并发执行时,所有进程的页表大多数驻留在内存中,在系统中只设置一个页表寄存器(PTR),它存放页表在内存中的始址和长度。平时,进程未执行时,页表的始址和页表长度存放在本进程的PCB中,当调度到某进程时,才将这两个数据装入页表寄存器中。每个进程都有一个单独的逻辑地址,有一张属于自己的页表。
  • 在虚拟内存管理中,地址变换机构将逻辑地址变换为物理地址,形成该逻辑地址的阶段是链接
  • 在动态分区算法中,最容易产生内存碎片的是最佳适应算法
  • 在多级页表中,页表基址寄存器存放的是顶级页表的起始物理地址
  • 虚拟存储器有以下三个主要特征:1、多次性;2、对换性;3、虚拟性
  • 虚拟内存技术的实现方式:1、请求分页存储管理;2、请求分段存储管理;3、请求段页式存储管理
  • 虚拟内存技术需要的支持:1、一定容量的内存和外存;2、页表机制(或段表机制),作为主要的数据结构;3、中断机构,当用户程序要访问的部分尚未调入内存时,产生中断;4、地址变换机构,逻辑地址到物理地址的变换
  • 缺页中断属于内部异常,一条指令执行期间可能产生多次缺页中断。
  • 请求分页存储管理方式基本分页存储管理方式的区别是:前者采用虚拟技术,因此开始运行时,不必将作业一次性装入内存,而后者不是。
  • 虚拟存储器的最大容量由计算机的地址结构决定。
  • 导致LRU算法实现起来耗费高的原因是需要对所有的页进行排序
  • 系统调用是由用户进程发起的,请求操作系统的服务
  • 页缓冲队列是将被淘汰的页面缓存下来,暂时不写回磁盘,队列长度会影响页面置换的速度,但不会影响缺页率。

二、问答题

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

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

为什么要进行内存管理?

在单道系统阶段,一个系统在一个时间段内只执行一个程序,内存的分配极其简单,即仅分配给当前运行的进程。引入多道程序后,进程之间共享的不仅仅是处理机,还有主存储器。然而,共享主存会形成一些特殊的挑战。若不对内存进行管理,则容易导致内存数据的混乱,以至于影响进程的并发执行。因此,为了更好地支持多道程序并发执行,必须进行内存管理。

为什么要引入虚拟内存?

在物理上扩展内存相对有限的条件下,尝试以一些其他可行的方式在逻辑上扩充内存。

虚拟内存是怎么解决问题的?会带来什么问题?

虚拟内存使用外存上的空间来扩充内存空间,通过一定量的换入/换出,使得整个系统在逻辑上能够使用一个远远超过其物理内存大小的内存容量。因为虚拟内存技术调换页面时需要访问外存,会导致平均访存时间增加,若使用了不合适的替换算法,则会大大降低系统性能。

覆盖技术与虚拟存储技术有何本质上的不同?

覆盖技术与虚拟存储技术最本质的不同在于,覆盖程序段的最大长度要受内存容量大小的限制,而虚拟存储器中程序的最大长度不受内存容量的限制,只受计算机地址结构的限制。

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值