虚拟存储器

  虚拟存储器(VM)是对主存的一种抽象概念。是硬件一场,硬件地址翻译,贮存,磁盘文件和内核软件的完美交互。他为每个进程提供了一个大的,一致的和私有的地址空间

  • 它将贮存堪称一个存储在磁盘上的地址空间的高速缓存,在主存中只保存活动的区域,并根据需要在磁盘和主存之间来回传送数据,防止其它进程没有主存空间可用。
  • 它为每个进程提供了一致的地址空间,从而简化了存储器的管理。
  • 它保护了每个进程的地址空间不被其他进程破坏。

物理寻址和虚拟寻址

  计算机系统的主存由若干字节组成,每个字节有唯一的物理地址。在数字信号处理器,嵌入式微控制器以及Cray超级计算机仍使用这种物理存执。现代处理器使用虚拟寻址的寻址方式。

虚拟存储器作为缓存的工具 

  虚拟存储器被组织为一个存储在磁盘上的N个连续的字节大小的单元数组,每个数组都有唯一的虚拟地址,磁盘上数组的内容被缓存在贮存中。VM系统将虚拟存储器分割为虚拟页,物理存储器分割为物理页。

  虚拟页面的三个不相交子集:

  • 未分配的:VM系统还没有分配的页,不占磁盘空间。
  • 缓存的:当前缓存在物理存储器中已分配页。
  • 未缓存的:没有缓存在物理存储器中的已分配页。

页表:

  用来判断一个虚拟页是否放在DRAM中的某个地方。利用页表的数据结构,将虚拟页映射到物理页,每次地址翻译硬件将一个虚拟地址转换为物理地址时都会读取页表,操作系统负责维护页表的内容。(PTE表示虚拟地址空间中每个页在页表的固定偏移量)

  

  

页命中:

  表示但CPU读取VPn中的一个字时,VPn被缓存在DRAM中,地址翻译应将将虚拟地址作为一个索引来来定位到PTEn,并读取。

缺页:

  缓存不命中。调用t缺页异常处理程序,选择一个牺牲页PPt,如果VPt已经修改则拷贝回磁盘,然后将VPn调入到PPt,并修改页表条目。

分配页:

  操作系统分配一个新的虚拟存储器页,在磁盘上创建空间并更新PTEn,使他指向磁盘上这个新创建的页面。从而分配VPn。

局部性:

  在任意时刻,程序往往在一个较小的活动页面集合上工作(工作集),在初始开销是,将工作集页面调度到存储器中,接下来对工作集的引用将导致命中,而不会产生额外的磁盘流量。

CSAPP--虚拟存储器的更多相关文章

  1. [CSAPP笔记][第九章虚拟存储器][吐血1500行]

    9.虚拟存储器 为了更加有效地管理存储器且少出错,现代系统提供了对主存的抽象概念,叫做虚拟存储器(VM). 虚拟存储器是硬件异常,硬件地址翻译,主存,磁盘文件和内核软件的完美交互. 为每个进程提供一个 ...

  2. 《CSAPP》虚拟存储器

    虚拟存储器与物理存储器 虚拟存储器(VM)被组织为一个由存放在磁盘上的N个连续的字节大小的单元组成的数组.每一个字节都有一个唯一的虚拟地址,这个唯一的虚拟地址作为数组的索引.磁盘上的数组内容被缓存在主 ...

  3. 读完了csapp(中文名:深入理解计算机系统)

    上个星期最终把csapp看完了. 我买的是中文版的,由于除了貌似评价不错以外,由于涉及到些自己不了解的底层东西,怕是看英文会云里雾里.如今看来,大概不能算是个长处,可是的确可以加快我的看书速度,否则一 ...

  4. NB学校的NB课程的NB教材——CSAPP

    CMU是全美以至全球公认的CS最猛的大学之一,没办法,作为CS的发源地,再加上三位神一样的人先后在此任教:Alan Perlis(CS它祖宗+第一届Turing奖获得者).Allen Newell(A ...

  5. CSAPP Tiny web server源代码分析及搭建执行

    1. Web基础 webclient和server之间的交互使用的是一个基于文本的应用级协议HTTP(超文本传输协议). 一个webclient(即浏览器)打开一个到server的因特网连接,而且请求 ...

  6. csapp读书笔记-并发编程

    这是基础,理解不能有偏差 如果线程/进程的逻辑控制流在时间上重叠,那么就是并发的.我们可以将并发看成是一种os内核用来运行多个应用程序的实例,但是并发不仅在内核,在应用程序中的角色也很重要. 在应用级 ...

  7. CSAPP

    陆陆续续花了2个月的时间终于把这个久负盛名的CSAPP看完了,不愧为一本名副其实的经典书籍.有种相见恨晚的感觉,以至于从不会写书评的我也情不自禁的想说点什么.  这本书的书名叫"Comput ...

  8. CSAPP =1= 计算机系统漫游

    思维导图 预计阅读时间:15min 阅读书籍 <深入理解计算机系统> 参考视频 [精校中英字幕]2015 CMU 15-213 CSAPP 深入理解计算机系统 课程视频 参考文章 < ...

  9. CSAPP =2= 信息的表示和处理

    思维导图 预计阅读时间:30min 阅读书籍 <深入理解计算机系统 第五版> 参考视频 [精校中英字幕]2015 CMU 15-213 CSAPP 深入理解计算机系统 课程视频 参考文章 ...

  10. 异常控制流(csapp)

    [前言]程序按照一定顺序执行称为控制转移.最简单的是平滑流,跳转.调用和返回等指令会造成平滑流的突变.系统也需要能够对系统状态的变化做出反应,这些系统状态不能被内部程序变量捕获但是,操作系统通过使控制 ...

随机推荐

  1. 转:6款Java转C#的最佳工

    原文来自于:http://designzum.com/2014/03/27/best-tools-to-convert-java-to-c-source-code/ ava is the class ...

  2. 转:fopen()函数

    1.2 文件的输入输出函数 键盘.显示器.打印机.磁盘驱动器等逻辑设备, 其输入输出都可以通过文件管理的方法来完成.而在编程时使用最多的要算是磁盘文件, 因此本节主要以磁盘文件为主, 详细介绍Turb ...

  3. 转:fopen与open可以转换吗

    绝对不可以.fopen是C运行库级别的函数,而open是system call的wrapper routine.fopen返回FILE *的指针,这个结构本身维护着一些关于这个文件的信息,而open返 ...

  4. PHP 中的超全局变量

    (1)$_GET[].一个包含所有PHP 从客户端浏览器接收的GET变量的数组. (2)$_POST[].一个包含所有PHP 从客户端浏览器接收的POST变量的数组. (3)$_COOKIE[].一个 ...

  5. MCS-51单片机I/O端口的存取

    MCS-51单片机通常有4个8位I/O端口, 向各端口的写数据均写入到对应端口的锁存器中, 但对各端口的读操作却有两个方式:读锁存器和读引脚 1 读-修改-写操作    Pn(指P0,P1,P2,P3 ...

  6. 俄罗斯方块:Python实现

    网上搜到一个Pygame写的俄罗斯方块(tetris),大部分看懂的前提下增加了注释,Fedora19下运行OK的 主程序: #coding:utf8 #! /usr/bin/env python # ...

  7. left join 关联条件位置

    select e.last_name, e.department_id, d.department_name from hr.employees e left outer join hr.depart ...

  8. HDU_1239——再次调用外星智慧

    Problem Description A message from humans to extraterrestrial intelligence was sent through the Arec ...

  9. HDU_2056——相交矩形的面积

    Problem Description Given two rectangles and the coordinates of two points on the diagonals of each ...

  10. win7下自写驱动导致开机蓝屏调试过程

    之前没有接触过驱动调试.这里上手就要解决一个因为某个自定义驱动导致的系统登陆后蓝屏问题,记录下来.   问题: 从客户那边弄来的一个虚拟机,已知是加了我们的驱动之后才会导致蓝屏. 解决过程:   使用 ...