存储模型之虚拟存储技术
2016-05-08 15:34
183 查看
虚拟存储技术(VIRTUAL MEMORY)
所谓的虚拟存储技术是指:当进程运行时,先将其一部分装入内存,另一部分暂留在磁盘,当要执行的指令或访问的数据不存在内存中时,由操作系统自动完成将它们从磁盘调入内存的工作。
虚拟地址空间—–分配给进程的虚拟内存
虚拟地址—–在虚拟内存中指令或数据的位置,该位置可以被访问,仿佛它是内存的一部分。
存储器的层次结构
虚存 与 存储体系
把内存和磁盘有机地结合起来使用,从而得到一个容量很大的“内存”,即虚存。虚存是对内存的抽象,构建在存储体系之上,由操作系统协调个存储器的使用
虚存提供了一个比物理内存空间大得多的地址空间
地址保护
确保每个进程有独立的地址空间确保进程访问合法的地址空间,防止地址越界
注意: 上图中的基地址寄存器和界限寄存器操作系统通过特殊的特权指令加载
确保进程的操作合法
虚拟页式(PAGING)
**虚拟存储技术 + 页式存储管理方案-> 虚拟页式存储管理系统
主要包括:1. 请求调页(demand paging) 2. 预先调页(prepaging)
基本思想
进程开始运行之前,不是装入全部页面,二是装入一个或零个页面
之后,根据进程运行需要,动态装入其他页面
当内存空间已满,而有需要装入新的页面时,则根据某种算法置换内存中的某个页面,以便装入新的页面
其实就是以CPU时间和磁盘空间换取昂贵的内存空间,这是操作系统中的资源转换技术
页表与页表项的设计
页表表项设计
页表由页表项组成页框号、有效位、访问位、修改位、保护位
页框号(内存块号、物理页面号、页帧号)
有效位(驻留位、中断位):表示该页是内存还是磁盘
访问位:引用位
修改位:此页在内存中是否修改过
保护位:读/可读写
通常,页表项是硬件设计
关于页表
32位虚拟地址空间的页表规模如果页面大小为4k;页表项大小为4字节,则一个进程地址空间有2^20页,其页表需要占1024页(页表页)
64位虚拟地址空间
-页面大小为4k; 页表项大小为8字节,则一个进程的页表规模:就达到了 32,000TB
页表页在内存中若不连续存放,则需要引入页表页的地址索引表-> 页目录(Page Directory)
注意 二级页表可以表示4G的虚拟地址空间
引入反转(倒排)页表
地址转换从虚拟地址空间出发: 虚拟地址->查页表->得到页框号->形成物理地址
每个进程一张页表
解决思路
从物理地址出发,系统建立一张页表
页表项记录进程i的某虚拟地址(虚页号)与页框号的映射关系
相关文章推荐
- 应用领航:盘点那些年我们一起追过的OS
- 无奇不有!盘点各国自己开发的操作系统
- Tomcat端口被占用解决方法(不用重启)
- “传奇”图象数据存储方式
- 可自定义oem的萝卜家园 Ghost XP 新春装机版 V200801 下载
- 超大数据量存储常用数据库分表分库算法总结
- SQL Server误区30日谈 第18天 有关FileStream的存储,垃圾回收以及其它
- C#实现判断操作系统是否为Win8以上版本
- C++实现图的邻接表存储和广度优先遍历实例分析
- 详解Android文件存储
- C#调用sql2000存储过程方法小结
- js获取本机操作系统类型的两种方法
- Linux操作系统添加新硬盘方法
- java如何获取本地操作系统进程列表
- PHP 存储文本换行实现方法
- Linux rdesktop操作系统下远程登录Windows XP桌面
- 32位操作系统认出超出4G内存的方法
- 注册表中存储数据库链接字符串的方法
- Linux rpm tar 操作系统下软件的安装与卸载方法
- JavaScript 获取用户客户端操作系统版本