美文网首页
内存空间的扩充

内存空间的扩充

作者: 幺姨母 | 来源:发表于2020-09-30 16:13 被阅读0次

覆盖技术

用来解决程序大小超过物理内存总和的问题

思想

  1. 将程序分为多个段(模块),常用的段常驻内存,不常用的段在需要时调入内存
  2. 内存中分为一个固定区和若干个覆盖区
  3. 需要常驻内存的段放在固定区,调入后就不再调出(除非运行结束)
  4. 不常用的段放在覆盖区,需要时调入内存,不需要时调出内存

按照自身逻辑将不可能同时被访问的程序段共享一个覆盖区

缺点:必须由程序员声明覆盖结构,操作系统自动完成覆盖。对用户不透明,增加了用户编程负担,只用于早期的操作系统

交换技术

思想:内存空间紧张时,系统将内存中某些进程暂时换出外存,把外存中某些已具备运行条件的进程换入内存(进程在内存与磁盘间动态调度)
中级调度就是决定要将哪个处于挂起状态的进程调入内存

挂起状态:暂时调出内存等待的进程状态
就绪挂起和阻塞挂起

应该在外存的什么位置保存被换出的进程
具有对换功能的操作系统,通常把磁盘空间分为文件区和对换区两部分
文件区主要用于存放文件,主要追求存储空间的利用率,因此对文件区空间的管理采取离散分配方式
对换区空间只占磁盘空间的小部分,被换出的进程数据就存放在对换区,由于对换的速度直接影响到系统的整体速度,因此对换区空间的管理主要追求换入换出速度,因此通常采用连续分配方式
对换区的IO速度比文件区的更快

什么时候交换
交换通常在许多进程运行且内存吃紧的时候进行,而系统负荷降低就暂停。例如:在发现许多进程运行时经常发生缺页,就说明内存紧张,此时可以换出一些进程;如果缺页率明显下降,就可以暂停换出

应该换出哪些进程
可优先换出阻塞进程;可换出优先级低的进程;为了防止优先级低的进程被调入内存后很快被换出,有的系统还会考虑进程在内存的驻留时间
PCB会常驻内存,不会被换出

覆盖和交换的区别
覆盖是同一个程序或进程中的
交换是在不同进程/作业之间的

虚拟内存在后面的文章

相关文章

  • mysql+redis 使用场景和优点

    Redis 基于内存,读写速度快,也可做持久化,但是内存空间有限,当数据量超过内存空间时,需扩充内存,而内存成本较...

  • Redis和MySQL的区别与使用

    1.区别 Redis基于内存,读写速度快,也可做持久化,但是内存空间有限,当数据量超过内存空间时,需扩充内存,但内...

  • 文章的扩充

    作文构思的时候,一方面要抓紧题目,一方面要能向四面八方延伸,题目,就是“心”,文章构思就是在向心力和离心力之间取得...

  • 扩充大脑

    反射脑和思考脑我认为就是大脑中想的和语言行动上所说的完全不一致,当你说出了那句话然后再回过头来反思的时候,你当时应...

  • 数组扩充

  • 扩充经历

    文/木洼的鸟 有时候新的经历来得猝不及防, 你甚至不知道这样的经历会发生。 我们如果心无旁骛地活着, 很多时候我们...

  • 2021-12-05

    扩充

  • 模型集成

    数据层面的集成: 测试阶段数据扩充:训练阶段的若干数据扩充策略,实际上,这些 扩充策略在模型测试阶段同样适用,诸如...

  • 2019-05-17 造轮子

    标准库的扩充 underscore.js 扩充了 Array 和 Object 相关 API moment.js ...

  • Category 和 Extension

    Category VS Extension Category category只能给某个已有的类扩充方法,不能扩充...

网友评论

      本文标题:内存空间的扩充

      本文链接:https://www.haomeiwen.com/subject/ealpuktx.html