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)相关推荐

  1. bilibili深入理解计算机系统笔记(2):第一次代码重构,汇编模拟器,递归,指令周期实现。

    文章目录 深入理解计算机系统笔记(2) 第一次代码重构 可变参数输出print函数 bitmap学习 P10 有限自动机 指令周期 递归求和函数c语言和汇编语言 回调函数的实现 call和ret指令的 ...

  2. bilibili深入理解计算机系统笔记(1):汇编模拟器能跑了

    文章目录 深入理解计算机系统笔记 P1笔记 p2笔记 p3笔记 p4笔记 汇编模拟器(p5-7) 封装访存接口 输出计算机状态 实现指令 call指令的实现 bug 积累 include重复包含的bu ...

  3. 1、深入理解计算机系统 笔记,系统综述

    1.系统的硬件组成 Figure1 Hardware organization of a typical system. CPU: Central Processing Unit, ALU: Arit ...

  4. 3、深入理解计算机系统笔记:程序的机器级表示

    1.Intel现在称其指令集为IA32,即Intel 32位体系结构(Intel Architecture 32-bit),这个处理器也俗称为"x86". 2.Linux使用了平面 ...

  5. 深入理解计算机系统笔记_程序的机器级表示_3.9异质的数据结构

    C语言提供了两种将不同类型的对象组合到一起创建数据类型的机制:结构(structure),用关键字 struct来声明,将多个对象集合到一个单位中:联合(union),用关键字 union来声明,允许 ...

  6. 深入理解计算机系统9个重点笔记

    引言 深入理解计算机系统,对我来说是部大块头.说实话,我没有从头到尾完完整整的全部看完,而是选择性的看了一些我自认为重要的或感兴趣的章节,也从中获益良多,看清楚了计算机系统的一些本质东西或原理性的内容 ...

  7. 深入理解计算机系统 第三章笔记,《深入理解计算机系统》笔记.PDF

    <深入理解计算机系统>笔记 <深入理解计算机系统>笔记 目錄 介紹 0 第1章计算机漫游 1 1.1信息就是位+上下文 1.1 1.2程序被其他程序翻译成不同的格式 1.2 1 ...

  8. 《深入理解计算机系统》读书笔记

    <深入理解计算机系统>读书笔记 注:<深入理解计算机系统>是我们<系统级编程>课程的参考书.这里主要记载的是在看<深入理解计算机系统>这本书的过程中,遇 ...

  9. 【《深入理解计算机系统》读书笔记(3)】 第3章 程序的机器级表示

    [时间]2021.11.19 [题目]<深入理解计算机系统>读书笔记(3)  第3章 程序的机器级表示 目录 一.简介 二.一些重点图 1.常见数据类型格式 2.16个整数寄存器 3.寄存 ...

最新文章

  1. 进击webpack4 (优化篇)
  2. Tensorflow csv文件读写与分批训练
  3. Java 打印菱形星块
  4. Selenium自动化测试框架
  5. 计算机硬盘read,为你解答电脑开机提示a disk read error occurred怎么办
  6. 新建虚拟机与window的连接
  7. 解决 A component required a bean of ‘XXX.RoleService‘ that could not be found.
  8. iconfont 无法导入 svg_Figma绘制图标上传至iconfont的正确姿势
  9. MFC 教程【10_内存分配方式和调试机制 】
  10. java学习——线程
  11. yudian温控表a1温度怎么补偿_贴片电容怎么确定型号
  12. hmcl手机版下载_hmcl启动器正版-hmcl启动器手机版下载hmclv1.0.0-七度网
  13. graphpad prism8教程柱状图_Graphpad Prism 8作图教程(4):散点图
  14. matlab中数字分频器的,一种基于FPGA的数字分频器设计详解
  15. cisco设备的mib库
  16. perl pack和unpack的使用详解
  17. 交换友情链接要怎么做才能完美
  18. win下安装mmcv的一些报错
  19. IDEA 运行时出现 too long 异常
  20. 计算机毕业设计Node.js+uniapp安卓劳务派遣APP(源码+程序+lw+远程调试)

热门文章

  1. 考不上本科就是低智商?用python爬3000条数据狠打脸
  2. Red5 9的安装配置以及AS3连接red5简单示例 .
  3. atr netty长连接_基于Netty实现Web容器Netty版Tomcat(三)
  4. python操作sql_Python Mysql数据库操作,sql文件操作
  5. 不加密,DES加密 RSA加密图
  6. 实验5.5 定义一个Employee类
  7. 实验5.3 编程实现两字符串的连接(使用字符数组)
  8. CentOS发行版本介绍
  9. 如何在终端编辑文件并保存
  10. SpringMVC中的Controller默认单例