19、深入理解计算机系统笔记,虚拟存储器,基本原理(1)
1、一个系统中的进程是与其他进程共享CPU和主存资源的。
2、虚拟存储器(Virtual Memory),是硬件异常,硬件地址翻译,主存,磁盘文件和内核软件的完善交互,它为每个进程提供一个大的,一致的,私有地址空间。通过一个清晰的机制,虚拟存储器提供了三个要重的能力:它将主存看成是一个存储在磁盘上的地址空间的高速缓存,在主存中只保存活动区域,并根据需要在磁盘和主存之间来回传送数据,通过这种方式,它高效的利用了主存;它为每个进程提供了一致的地址空间,从而简化了存储器管理;它保护每个进程的地址空间不被其他进程破坏。
3、物理和虚拟寻址
计算机系统的主存被组织成一个由M个连续的字节大小的单元组成的数组。每字节都有一个惟一的物理地址(physical address,PA)。第一个字节地址是0,接下来的字节地址为1,...
早期的PC使用物理寻址,而且诸如数字信号处理器,嵌入式微控制器以及Cray超级计算机这样的系统仍然继续使用这种寻址方式。而为通用计算机设计师的现代处理器使用的是虚拟寻址(virtual addressing)。
MMU(memory management unit,存储器管理单元),利用存放在主存中的查询表来动态翻译虚拟地址,该表的内容由OS管理。
4、地址空间
地址空间为非负整数地址的有序集合:{0,1,2,...}
如果地址是连续的,则称为线性地址空间。如果计算机有n位地址总线,在一个带有虚拟存储器的系统中,CPU从一个有N = 2n个地址的地址空间中生成虚拟地址,这个地址称为虚拟地址空间:{0,1,2,...,N-1}
物理地址空间,与物理存储器的M个字节相对应:{0,1,2,...M-1}
M不要求是2的幂。
允许每个数据对象(字节)有多个独立的地址(属性),其中每个地址都选自一个不同的地址空间,就是虚拟地址的基本思想。主存中的每字节都有一个选自虚拟地址空间的虚拟地址,和一个选自物理地址空间的物理地址。
5、虚拟存储器作为缓存的工具
概念上言,虚拟存储器被组织为一个由存放在磁盘上的N个连续的字节大小的单元组成的数组。每字节都有一个惟一的虚拟地址,这个惟一的虚拟地址是作为到数组的索引的。磁盘上数组的内容被缓存到主存中。和存储器层次结构中其他缓存一样,磁盘(较低层)上的数据被分成块,这些块作为磁盘和主存(较高层)之间的传输单元。VM系统通过将虚拟存储器分割成称为虚拟页(virtual page,VP)的大小固定的块,来处理这个问题。每个虚拟页的大小为P = 2p字节。类似地,物理存储器被分割成物理页(physical page,PP),大小也为P字节(物理页也被称为页帧,page frame)。
在任意时刻,虚拟页面的集合都分为三个不相交的子集:
未分配的:VM系统还未分配或创建的页。未分配的块没有任何数据与它们相关联,因此也就不占用任何磁盘空间。
缓冲存:当前缓存在物理存储器中的已分配页。
未缓存的:没有缓存在物理存储器中的已分配页。
因为大的不命中处罚和访问第一字节的开销,虚拟开销趋向于很大,典型地是4~8KB。由于大的不命中处罚,DRAM缓存是全相联的。也就是说,任何虚拟存储页都可以放置在任何的物理页中。DRAM缓存总是使用写回(write back)。
1)页表
存放在物理存储器一个数据结构,叫做页表(page table)。页表将虚拟页映射到物理页。
页表就是一个PTE(page table entry,页表条目)的数组。虚拟地址空间中的每个页在页表中的一个固定偏移量处都有一个PTE。
NULL:未分配。
VP3,VP5:已分配,但是还未被缓存。
VP1:已分配,已缓存。
转载于:https://www.cnblogs.com/mydomain/archive/2011/06/23/2088276.html
19、深入理解计算机系统笔记,虚拟存储器,基本原理(1)相关推荐
- bilibili深入理解计算机系统笔记(2):第一次代码重构,汇编模拟器,递归,指令周期实现。
文章目录 深入理解计算机系统笔记(2) 第一次代码重构 可变参数输出print函数 bitmap学习 P10 有限自动机 指令周期 递归求和函数c语言和汇编语言 回调函数的实现 call和ret指令的 ...
- bilibili深入理解计算机系统笔记(1):汇编模拟器能跑了
文章目录 深入理解计算机系统笔记 P1笔记 p2笔记 p3笔记 p4笔记 汇编模拟器(p5-7) 封装访存接口 输出计算机状态 实现指令 call指令的实现 bug 积累 include重复包含的bu ...
- 1、深入理解计算机系统 笔记,系统综述
1.系统的硬件组成 Figure1 Hardware organization of a typical system. CPU: Central Processing Unit, ALU: Arit ...
- 3、深入理解计算机系统笔记:程序的机器级表示
1.Intel现在称其指令集为IA32,即Intel 32位体系结构(Intel Architecture 32-bit),这个处理器也俗称为"x86". 2.Linux使用了平面 ...
- 深入理解计算机系统笔记_程序的机器级表示_3.9异质的数据结构
C语言提供了两种将不同类型的对象组合到一起创建数据类型的机制:结构(structure),用关键字 struct来声明,将多个对象集合到一个单位中:联合(union),用关键字 union来声明,允许 ...
- 深入理解计算机系统9个重点笔记
引言 深入理解计算机系统,对我来说是部大块头.说实话,我没有从头到尾完完整整的全部看完,而是选择性的看了一些我自认为重要的或感兴趣的章节,也从中获益良多,看清楚了计算机系统的一些本质东西或原理性的内容 ...
- 深入理解计算机系统 第三章笔记,《深入理解计算机系统》笔记.PDF
<深入理解计算机系统>笔记 <深入理解计算机系统>笔记 目錄 介紹 0 第1章计算机漫游 1 1.1信息就是位+上下文 1.1 1.2程序被其他程序翻译成不同的格式 1.2 1 ...
- 《深入理解计算机系统》读书笔记
<深入理解计算机系统>读书笔记 注:<深入理解计算机系统>是我们<系统级编程>课程的参考书.这里主要记载的是在看<深入理解计算机系统>这本书的过程中,遇 ...
- 【《深入理解计算机系统》读书笔记(3)】 第3章 程序的机器级表示
[时间]2021.11.19 [题目]<深入理解计算机系统>读书笔记(3) 第3章 程序的机器级表示 目录 一.简介 二.一些重点图 1.常见数据类型格式 2.16个整数寄存器 3.寄存 ...
最新文章
- 进击webpack4 (优化篇)
- Tensorflow csv文件读写与分批训练
- Java 打印菱形星块
- Selenium自动化测试框架
- 计算机硬盘read,为你解答电脑开机提示a disk read error occurred怎么办
- 新建虚拟机与window的连接
- 解决 A component required a bean of ‘XXX.RoleService‘ that could not be found.
- iconfont 无法导入 svg_Figma绘制图标上传至iconfont的正确姿势
- MFC 教程【10_内存分配方式和调试机制 】
- java学习——线程
- yudian温控表a1温度怎么补偿_贴片电容怎么确定型号
- hmcl手机版下载_hmcl启动器正版-hmcl启动器手机版下载hmclv1.0.0-七度网
- graphpad prism8教程柱状图_Graphpad Prism 8作图教程(4):散点图
- matlab中数字分频器的,一种基于FPGA的数字分频器设计详解
- cisco设备的mib库
- perl pack和unpack的使用详解
- 交换友情链接要怎么做才能完美
- win下安装mmcv的一些报错
- IDEA 运行时出现 too long 异常
- 计算机毕业设计Node.js+uniapp安卓劳务派遣APP(源码+程序+lw+远程调试)