虚拟存储器

  虚拟存储器(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. 设计模式 ( 十六 ): Mediator中介者模式 -- 行为型

    1.概述 在面向对象的软件设计与开发过程中,根据“单一职责原则”,我们应该尽量将对象细化,使其只负责或呈现单一的职责,即将行为分布到各个对象中. 对于一个模块或者系统,可能由很多对象构成,而且这些对象 ...

  2. U8800安装软件显示无效的URI问题

    看到很多人遇到这个问题,其中包括我自己,最后找到可行的解决办法,现整理出来一个新帖,有同样问题的U友可以参考下. 手机先连接电脑,进入USB存储状态,然后在计算机上找到SD卡目录下的.android_ ...

  3. 《深度解析SDN》学习小结

    SDN(软件定义网络),顾名思义,通过软件来控制或驱动整个网络.SDN的核心概念有两个,第一是转发面与控制面的分离:第二是开放的可编程接口.另外,SDN强调集中式控制,通过软件来控制整个网络,但这并不 ...

  4. ORACLE表空间

    在ORACLE数据库中,所有数据从逻辑结构上看都是存放在表空间当中,当然表空间下还有段.区.块等逻辑结构.从物理结构上看是放在数据文件中.一个表空间可由多个数据文件组成. 如下图所示,一个数据库由对应 ...

  5. NSDateFormatter整理

    dd/MM/yyyy hh:mmaaa                          10/05/2010 03:49PM yyyy:MM:dd G 'at' HH:mm:ss zzz       ...

  6. linux-ln命令

    ln分为软链接和硬链接 1.软连接 -s   ln -s /mnt/hgfs/SHARE hvshare2 相当于在当前目录下新建一个名为hvshare2的快捷方式指向/mnt/hgfs/SHARE路 ...

  7. 作业三 ATM

    模拟实现一个ATM+购物商场程序 1.额度15000自定义 商城和银行两个帐户 2.实现购物商城,买东西加入购物车,调用信用卡接口结账 3.可以提现,手续费5%,提现额度不能超过50% 4.每月22日 ...

  8. pd的django To do list教程-----(2)models模型的建立

    1:在models.py中建表 from django.db import models class Tcontent(models.Model): content = models.CharFiel ...

  9. 前端笔试题目总结——应用JavaScript函数递归打印数组到HTML页面上

    数组如下: var item=[{ name:'Tom', age:70, child:[{ name:'Jerry', age:50, child:[{ name:'William', age:20 ...

  10. (转)SQL Server 2005附加2008的数据库

    1. 生成for 2005版本的数据库脚本  2008 的manger studio  -- 打开"对象资源管理器"(没有的话按F8), 连接到你的实例  -- 右键要转到2005 ...