【操作系统】内存管理——内存空间的扩充技术(个人笔记)

学习日期:2024.6.18

内容摘要:


总结自王道计算机考研——操作系统 3.1.3 和3.2.1

内存空间的扩充方法

上一章最后提到操作系统的作用时,提到过其作用之一是从逻辑上扩充内存空间,主要有覆盖技术、交换技术和虚拟存储技术。

覆盖技术

早期计算机内存很小,为解决程序大小超过物理内存总和的问题,提出了覆盖技术

设计思想;将程序分为多个模块,常用的部分常驻内存,不常用的在需要时再调入内存,不需要时调出。

内存中分为一个“固定区”(存放常用部分),和若干个“覆盖区”(存放不常用部分)

缺点:必须由程序员事先声明覆盖结构,对用户不透明,增加编程负担,目前已经被淘汰。

交换技术

设计思想:内存空间紧张时,系统将某些进程暂时换出外存,把外存中某些已具备运行条件的进程换入内存(进程在内存和磁盘间动态调度)

1.换出的进程保存在哪?

在具有对换功能的操作系统中,通常把磁盘空间分为文件区和对换区,文件区追求存储空间的利用率,故一般采用离散分配方式,而对换区存放被换出的进程数据,主要追求速度,采用连续分配方式。(详见文件管理章节)总之,对换区的I/O速度比文件区快。

2.什么时候该交换?

在许多进程运行且内存紧张时进行,系统负荷降低就暂停。

3.应该换出什么进程?

优先换出阻塞的进程;可以换出优先级低的进程;为了防止优先级低的进程在被调入后很快又被换出,有的系统还会考虑驻留时间。


虚拟存储技术(重点)

我4G的电脑怎么玩几十G的《艾尔登法环》?——多谢虚拟内存

在传统存储管理方式下(单一连续分配、段页式存储管理...),作业必须一次性全部装入内存后才能开始运行,这会导致①作业很大时,不能全部装入,无法运行。②大量作业要求运行时,由于无法容纳所有作业,只有一小部分能运行,会导致多道程序并发性下降。

驻留性:一旦作业被装入内存,就会一直驻留,直至作业运行结束。事实上在一个时间段内,只需要访问作业的一小部分数据(在宁姆格福的时候显然不需要加载王城的资源),这就导致了内存中有大量的暂时用不到的数据,浪费宝贵的内存资源。

局部性原理

时间局部性:因为程序中存在大量的循环,执行过的指令短时间内很可能被再次执行,访问过的数据也可能再次被访问。

空间局部性:因为很多数据都是连续存放的,一旦程序访问了某个存储单元,不久之后,附近的存储单元也可能被访问。

根据局部性原理,在程序装入时,可以将程序中很快就会用到的部分装入内存,暂时用不到的部分留在外存, 就可以开始执行,当需要外存里的信息时,再由操作系统负责将所需信息调入,若内存空间不够,操作系统会将暂时用不到的信息换出到外存。

虚拟内存的三个主要特征

多次性:在作业运行时无需一次全部转入,允许分成多次调入内存。(区别于传统方式的一次性)

对换性:在作业运行时无需常驻内存,允许在运行过程中换入换出。(区别于传统方式的滞留性)

虚拟性:从逻辑上扩充了内存容量,使用户看到的容量远大于实际容量。

 虚拟内存技术允许一个作业分多次调入内存,故需要建立在离散分配的内存管理方式基础上。

虚拟技术的实现会在之后更加深入学习


  • 21
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值