现代操作系统笔记——第三章内存管理

第三章内存管理

基址寄存器和界限寄存器

现代操作系统笔记——第三章内存管理

现代操作系统笔记——第三章内存管理

交换技术

进程完整调入内存,然后运行一段时间再存回磁盘。

当换入或移动进程时为它分配一些额外的内存,以解决进程空间动态增长。

使用链表的存储管理

首次适配、下次适配、最佳适配、最差适配、快速适配。

 

虚拟内存

现代操作系统笔记——第三章内存管理

分页

现代操作系统笔记——第三章内存管理

现代操作系统笔记——第三章内存管理

虚拟地址空间的页面对应物理内存的页框。

缺页中断

若虚拟地址空间中的地址没有被映射到物理空间中,CPU就会陷入操作系统,称为缺页中断或缺页错误。操作系统找到一个很少使用的页框并把它的内容写入磁盘,随后把需要访问的页面读到刚才回收的页框中,修改映射关系,再重启引起陷阱的指令。

MMU(内存管理单元)原理

输入的16进制被分为4位的页号和12位偏移量,4位页号表示16个页面,12位偏移表示一页内4096个字。可用页号作为页表的索引,以得出对应于该虚拟页面的页框号,如果在不在位为0,就会引起操作系统陷进,为1就将在页表中查到的页框号复制到输出寄存器的高3位中,再加上输入虚拟地址中的低12位偏移量就构成15位物理地址。

现代操作系统笔记——第三章内存管理

页表

现代操作系统笔记——第三章内存管理

保护位指出一个页允许什么类型的访问。

修改位:写入一页时自动设置修改位,重新分配页框时,如果一个页面已经被修改过,就必须把它写入磁盘,否则直接丢弃即可。

加速分页过程

当将一个寄存器中的数据复制到另一个时,不适用分页只访问一次内存,而使用分页会访问两次。

解决方案

现代操作系统笔记——第三章内存管理

 

现代操作系统笔记——第三章内存管理

现代操作系统笔记——第三章内存管理

多级页表

避免全部页表保存在内存中

倒排页表

减少存储空间,增加查找时间

 

页面置换算法

现代操作系统笔记——第三章内存管理

  1. 最优页面置换算法

将每个页面首次被访问前所要执行的指令数作为标记,置换标记最大的页面。

无法实现!!!

  1. 最近未使用页面置换算法NRU

现代操作系统笔记——第三章内存管理

  1. 先进先出页面置换算法FIFO

现代操作系统笔记——第三章内存管理

  1. 第二次机会页面置换算法

现代操作系统笔记——第三章内存管理

现代操作系统笔记——第三章内存管理

5、时钟页面置换算法

现代操作系统笔记——第三章内存管理

6、最近最少使用页面置换算法LRU

现代操作系统笔记——第三章内存管理

7、最不常使用页面置换算法NFU

记录每页的访问次数,次数最小的换出。

现代操作系统笔记——第三章内存管理

缺页中断处理的过程

现代操作系统笔记——第三章内存管理

现代操作系统笔记——第三章内存管理

 

 

 

 

 

分段

每个段由一个从0到最大线性地址序列构成,长度可以是0到某个允许的最大值之间的任何一个值,可在运行期间动态改变。段是一个逻辑实体,可能包含一个过程、一个数组、一个堆栈、一组数值变量,一般不会同时包含多种类型的内容。

优点

  1. 简化对长度经常变动的数据结构的管理
  2. 如果段的过程被修改并重新编译也不需要对其它的过程进行修改
  3. 有助于在几个进程之间共享数据和过程

现代操作系统笔记——第三章内存管理

现代操作系统笔记——第三章内存管理

分段与分页结合

现代操作系统笔记——第三章内存管理现代操作系统笔记——第三章内存管理

现代操作系统笔记——第三章内存管理