虚拟存储器的缓存_15.09.20/1-第九章(9.3)

虚拟存储器作为存储器层次结构的一层,采用与高速缓存存储器和主存之间数据交换相同的方法,DRAM主存与虚拟存储器(磁盘)之间的传输单元叫做虚拟页Virtual Page。由于SRAM存储器速度相当于DRAM存储器的10倍,而DRAM存储器速度相当于磁盘速度的100 000倍,所以当DRAM缓存不命中时,时间开销(惩罚)是极大的,故而虚拟页往往很大,典型的是4KB~2MB.而且其往往是全相联的,并且操作系统采用了极其复杂精密的替换算法。

虚拟存储器系统需要判断一个虚拟页是否存放在DRAM中,如果存在则需要判断这个虚拟页放在哪个物理页中。如果没有,则需要找到这个虚拟页在在磁盘中的位置并在物理存储器中选择一个牺牲页,并将虚拟页从磁盘拷到物理存储器中,替换这个牺牲页。

这些功能是由操作系统软件、MMU中的地址翻译硬件和一个存放在物理存储器中的被称为页表page table的数据结构提供的。页表的功能是将虚拟页映射到物理页。它是一个由页表条目Page Table Entry,PTE构成的数组。

在虚拟存储器中,DRAM缓存不命中称之为缺页page fault。

时间: 2024-12-14 08:31:48

虚拟存储器的缓存_15.09.20/1-第九章(9.3)的相关文章

存储器的写操作、行组块的区别_15.09.17/1-第六章(6.4)

之前的说明全部都是有关存储器的读操作,现在进行关于写操作的学习: 在高速缓存的读的过程就是在高速缓存中查找所需关键字的拷贝,如果命中就将该字返回给CPU.如果不命中的话,就从存储器的层次结构的较低层中查找并取出包含该字的块存储到高速缓存行中,然后再将其返回给CPU. 但是在写的情况就会复杂些.如果在写的过程中,如果对一个已经缓存字发生了写命中write hit,在高速缓存中更新了这个字之后还要对低层次的存储器进行更新操作.有两种方式进行这个操作: 1.直写write-through:就是在高速缓

随机访问存储器、存储器模块数据的存取、局部性_15.09.15/2-第六章(6.2)

了解存储器的层次结构可以帮助程序员更好地了解系统如何将数据在存储器层次中上下移动,从而可以将自己编写的程序的数据放于较高的层次上,使得CPU能够更快地访问它们.  随机访问存储器: S(静态)RAM:其每个位存储在一个具有双稳态的bistable存储器单元里.该存储器单元的特性是只能稳定地保持在两个稳定状态中的任意一种,就像倒立的钟摆只有左边或者右边两种稳定状态一样,这种性质使得SRAM会从任意状态迅速地转移到两个稳定状态之一的状态.由于这种性质的存在,使这种存储器在有电的情况下会永久地保持它的

与存储器相关的代码优化策略_15.09.18/1-第六章(6.7)

一些代码在存储器方面优化的建议: 1.将你的注意力集中在内循环上,大部分计算和存储器访问都发生在这里 2.通过按照数据对象存储在存储器中的顺序,以步长为1来读数据,从而使得你的程序中空间局部性最大 3.一旦从存储器中读入了一个数据对象,就尽可能地多使用它,从而使得程序中的时间局部性最大

第九章 虚拟存储器

第九章 虚拟存储器 虚拟存储器是计算机系统最重要的概念之一,它是对主存的一个抽象 物理和虚拟寻址 计算机系统的主存被组织成一个由M个连续的字节大小的单元组成的数组,每字节都有一个唯一的物理地址PA. 根据物理地址寻址的是物理寻址. 虚拟存储器被组织为一个由存放在磁盘上的N个连续的字节大小的单元组成的数组. 使用虚拟寻址时,CPU通过生成一个虚拟地址VA来访问主存,这个虚拟地址在被送到存储器之前先转换成适当的物理地址(这个过程叫做地址翻译,相关硬件为存储器管理单元MMU) 虚拟存储器作为缓存的工具

[CSAPP笔记][第九章虚拟存储器][十分核心]

9.虚拟存储器 为了更加有效地管理存储器且少出错,现代系统提供了对主存的抽象概念,叫做虚拟存储器(VM). 虚拟存储器是硬件异常,硬件地址翻译,主存,磁盘文件和内核软件的完美交互. 为每个进程提供一个大的,一致的和 私有的地址空间. 提供了3个重要能力. 将主存看成磁盘地址空间的高速缓存. 只保留了活动区域,并根据需要在磁盘和主存间来回传送数据,高效使用主存. 为每个进程提供一致的地址空间 简化存储器管理 保护了每个进程的地址空间不被其他进程破坏. 程序员为什么要理解它? 虚拟存储器是中心的.

【转】DBMS_STATS.GATHER_TABLE_STATS详解 2012-04-22 09:20:10

[转]DBMS_STATS.GATHER_TABLE_STATS详解 2012-04-22 09:20:10 分类: Linux 由于Oracle的优化器是CBO,所以对象的统计数据对执行计划的生成至关重要! 作用:DBMS_STATS.GATHER_TABLE_STATS统计表,列,索引的统计信息(默认参数下是对表进行直方图信息收集,包含该表的自身-表的行数.数据块数.行长等信息:列的分析--列值的重复数.列上的空值.数据在列上的分布情况:索引的分析-索引页块的数量.索引的深度.索引聚合因子)

第九章、文件与文件系统的压缩与打包 3. 打包命令: tar

打包命令: tar gzip 与 bzip2 也能够针对目录来进行压缩, 不过,这两个命令对目录的压缩指的是『将目录内的所有文件 "分别" 进行压缩』! 将多个文件或目录包成一个大文件的,『打包命令』 tar [[email protected] ~]# tar [-j|-z] [cv] [-f 创建的档名] filename... <==打包与压缩 [[email protected] ~]# tar [-j|-z] [tv] [-f 创建的档名] <==察看档名 [[e

《觉醒之后》第九章 当觉醒穿透头脑、心脏与腹部时

http://blog.sina.com.cn/s/blog_6431fb990102x3tp.html 第九章 当觉醒穿透头脑.心脏与腹部时 只有在我们彻底释放之后,真相的光明才能毫无扭曲地投射出来. 25岁那一年,在获得我前面描述过的最初的觉醒经验之后,我本来可以认为,“哦,这便是觉醒,这便是觉醒的全部了.我已经见过实相的绝对本性了.”我本来可以忙着向世界宣扬我发现的真理,但幸运的是,我内在有一个小小的声音对我说,"这并不是真正的觉醒,这并不是觉醒的全部,你得继续前进.” 从某种意义上来说,

第九章、shell脚本编程基础

第九章.shell脚本编程基础 本章内容 编程基础 脚本基本格式 变量 运算 条件测试 配置用户环境 编程基础 程序:指令+数据 程序编程风格: 过程式:以指令为中心,数据服务于指令 对象式:以数据为中心,指令服务于数据 shell程序:提供了编程能力,解释执行 程序的执行方式 计算机:运行二进制指令 编程语言: 低级:汇编 高级: 编译:高级语言-->编译器-->目标代码 java,C# 解释:高级语言-->解释器-->机器代码 shell, perl, python (系统后台