操作系统——内存管理

操作系统系列2——内存管理

操作系统学习总结系列,主要是对操作系统概念和重点主干知识的总结与归纳。参考:《现代操作系统》第4版

其他系列链接:

操作系统系列1——进程与线程链接

操作系统系列2——内存管理

操作系统系列3——死锁

操作系统系列4——文件系统

一、虚拟内存

在这里插入图片描述

1、地址空间:

​地址空间是物理内存的抽象,是一个进程可用于寻址内存的一套地址集合。

2、虚拟内存的概念

虚拟内存的目的是为了让物理内存扩充成更大的逻辑内存,从而让程序获得更多的可用内存。

3、分页

地址空间被分割成多个块,每一块称作一页或页面(Page)。每一页有连续的地址范围,这些页被映射到连续的物理内存(页框)。

4、页表

在这里插入图片描述

​页表的目的是把虚拟页面(虚拟地址)映射为页框(物理地址)。页表给出了虚拟地址与物理地址的映射关系。从数学的角度说页表是一个函数,他的参数是虚拟页号,结果是物理页页框号

5、加速分页
  • TLB加速分页

    概念: 将虚拟地址直接映射到物理地址,而不必再访问页表,这种设备被称为转换检测缓冲区(TLB)、相联存储器或快表

    工作过程: 将一个虚拟地址放入MMU中进行转换时,硬件首先通过将该虚拟页号与TLB中所有表项同时进行匹配,判断虚拟页面是否在其中:
    1、虚拟页号在TLB中:

    ​ 如果MMU检测一个有效的匹配并且访问操作并不违反保护位,则将页框号直接从TLB中取出而不必访问页表。
    2、虚拟页号不在TLB中:

    ​ 如果MMU检测到没有有效的匹配项就会进行正常的页表查询。接着从TLB中淘汰一个表项,然后用新的页表项替换它。

6、针对大内存的页表

多级页表

倒排页表

二、页面置换算法
1、最优页面置换算法(OPT)

​ 所选择的被换出的页面将是最长时间内不再被访问,通常可以保证获得最低的缺页率。

​ 是一种理论上的算法,因为无法知道一个页面多长时间不再被访问。

2、最近最久未使用页面置换算法(LRU)

​ 虽然无法知道将来要使用的页面情况,但是可以知道过去使用页面的情况。LRU 将最近最久未使用的页面换出。

3、先进先出页面置换算法(FIFO)

​ 选择换出的页面是最先进入的页面。

​ 该算法会将那些经常被访问的页面换出,导致缺页率升高。

4、第二次机会页面置换算法(second chance)

​FIFO 算法可能会把经常使用的页面置换出去,为了避免这一问题,对该算法做一个简单的修改:

​ 当页面被访问 (读或写) 时设置该页面的 R 位为 1。需要替换的时候,检查最老页面的 R 位。如果 R 位是 0,那么这个页面既老又没有被使用,可以立刻置换掉;如果是 1,就将 R 位清 0,并把该页面放到链表的尾端,修改它的装入时间使它就像刚装入的一样,然后继续从链表的头部开始搜索。

5、时钟页面置换算法(clock)

​ 第二次机会算法需要在链表中移动页面,降低了效率。时钟算法使用环形链表将页面连接起来,再使用一个指针指向最老的页面。

三、分段
1、概念

虚拟内存采用的是分页技术,也就是将地址空间划分成固定大小的页,每一页再与内存进行映射。
如果使用分页系统的一维地址空间,动态增长的特点会导致覆盖问题的出现。
分段的做法是把每个表分成段,一个段构成一个独立的地址空间。每个段的长度可以不同,并且可以动态增长。

2、纯分段

在这里插入图片描述

  • 概念:

    分段和分页本质上是不同的,页面是定长的而段不是。

  • 分段的优点:

    共享: 有助于几个进程之间共享过程和数据。 比如共享库

    保护: 每个段都可以独立地增大或减小而不会影响其他的段

3、分段与分页结合

​ 程序的地址空间划分成多个拥有独立地址空间的段,每个段上的地址空间划分成大小相同的页。 这样既拥有分段系统 的共享和保护,又拥有分页系统的虚拟内存功能

4、分段与分页的比较
  • 对程序员的透明性: 分页透明,但是分段需要程序员显式划分每个段。

  • 地址空间的维度: 分页是一维地址空间,分段是二维的。

  • 大小是否可以改变: 页的大小不可变,段的大小可以动态改变。

  • 出现的原因: 分页主要用于实现虚拟内存,从而获得更大的地址空间;分段主要是为了使程序和数据可以被划分为逻辑上独立的地址空间并且有助于共享和保护。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值