【操作系统】存储模型(二):虚拟存储技术和置换算法

本文深入探讨虚拟存储技术,包括虚拟页式存储管理、页表设计、地址映射过程及TLB作用,阐述缺页异常处理、软件相关策略,以及各种页面置换算法的特点与应用。

1 虚拟存储技术(Virtual Memory)

1.1 概念

当进程运行时,先将其一部分装入内存,另一部分暂留在磁盘,当要执行的指令或访问的数据不在内存时,由操作系统自动完成将它们从磁盘调入内存的工作。
虚拟地址空间即为分配给进程的虚拟内存。
虚拟地址是在虚拟内存中指令或数据的位置,该位置可以被访问。

1.2 存储器的层次的结构

在这里插入图片描述

1.3 虚存与存储体系

  1. 把内存与磁盘有机的结合起来使用,从而得到一个容量很大的“内存”,即虚存
  2. 虚存是对内存的抽象,构建在存储体系之上,由操作系统协调各存储器的使用
  3. 虚存提供了一个比物理内存大得多的地址空间。虚存的大小受到计算机系统的寻址机制磁盘可用空间的限制。

1.4 地址保护

包括以下三个要点:

  1. 确保每个进程有独立的地址空间
  2. 确保进程访问合法的地址范围(防止地址越界)
  3. 确保进程的操作是合法的(防止越权,如对只读内存不能执行写操作)
    在这里插入图片描述

1.5 虚拟页式(Paging)

虚拟页式存储管理系统:虚拟存储技术+页式存储管理方案。
虚拟页式的基本思想在于:

进程开始运行之前,不是装入全部页面,而是装入一个或零个页面,之后根据进程运行的需要动态的装入其他页面,当内存已满,而又要重新装入新的页面时,则根据某种算法置换内存中的某个页面,以便装入新的页面。

具体有两种方式:

  1. 请求调页(demand paging):只要在需要的时候才由OS调入内存
  2. 预先调页(prepaging):将可能用到的资源提前调入内存
    虚拟页式利用了资源转换技术:即以CPU时间和磁盘空间来换取昂贵的内存空间。

2 虚拟页式中的页表及页表项的设计

2.1 概念

页表是由页表项组成的。页表项的设计是由硬件保证的,表项的组成如下表所示。
表2-1 页表项的组成

属性 说明
页框号 即内存块号,也称物理页面号
有效位 也称中断位,表示该页是在内存还是在磁盘,通常值为0表示相应内容尚未读入内存
访问位 引用位,表示该页是否被访问过
修改位 此页在内存中是否被修改过
保护位 页的读/写权限

2.2 关于页表

2.2.1 页表规模

1 关于32位虚拟地址空间的页表规模?
页面大小为4K,页表项大小为4字节,则一个进程地址空间有【232/(4K)=232/212=220】页;其页表需要占【4K/4=1K=1024】页。
2 关于64位虚拟地址空间的页表规模?
页面大小为4K,页表项大小为8字节;页表规模达到32000TB。可想而知是多么大。因此需要实现将页表页在内存中不连续存放,基本思想是为页表页创建地址索引表,即页目录(Page Directory)。

2.2.2 多级页表结构及地址映射
2.2.2.1 二级页表结构及地址映射

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值