《深入计算机系统》(第十章)

虚拟存储器为每个进程提供了一个大的、一致的、私有的地址空间,保护了进程的地址空间不被破坏。它通过虚拟地址到物理地址的翻译进行工作,利用页表进行地址转换,并通过缓存策略提高效率。虚拟存储器还有助于存储器保护、简化存储器管理和程序加载。地址翻译过程需与硬件缓存协同,存储器映射则将磁盘文件与虚拟地址空间关联。
摘要由CSDN通过智能技术生成

                                            第十章、虚拟存储器

一个系统中的进程是与其他进程共享CPU和主存资源。存储器很容易被破坏,如果某个进程不小心写了另一个进程使用的存储器,那么进程可能以某种完全和程序无关的令人迷惑的方式失败。为了更加有效地管理存储器并且少出错,现代系统提供了一种对主存的抽象概念,叫做虚拟存储器(是硬件异常、硬件地址翻译、主存、磁盘文件盒内核软件的完美交互,它为每个进程提供了一个大的一致的、私有地址空间)保护了每个进程的地址空间不被其他进程破坏。它成功的一个主要原因是因为它是沉默地,自动地工作的,不需要应用程序员的任何干涉。

计算机系统的主存被组织成一个由M个连续的字节大小的单元组成的数组。每个字节都有一个唯一的物理地址(PA)。

当CPU执行加载指令时,它会产生一个有效的物理地址,通过存储器总线,把它传递给主存。

根据虚拟寻址,CPU通过生成一个虚拟地址(VA)来访问主存,这个虚拟地址在被送到存储器之前先转换成适当的物理地址。将一个虚拟地址转换为物理地址的任务叫做地址翻译。

地址空间是一个非负整数地址的有序集合。如果地址空间中的整数是连续的,那么我们说它是一个线性地址空间。

一个地址空间的大小是由表示最大地址所需要的位数来描述的。

一个系统换由一个物理地址空间,它与系统中物理存储器的M个字节相对应

地址空间很重要的,因为它清楚地区分了数据对象(字节)和它们的属性(地址)。一旦我们认识了这种区别,那么我们可以允许每个数据对象有多个独立的地址,,其中每个地址都选自一个不同的地址空间,这就是虚拟存储器的基本思想,主存中的每一个字节都有一个选自虚拟地址空间的虚拟地址,和一个选自物理地址空间的物理地址。

物理存储器被分割为物理页,大小也为P字节(物理页也被称为页帧)

在任意时刻,虚拟页面的集合都有三个不相交的子集;1、未分配的 2、缓存的  3、未缓存的

DRAM比 SRAM要慢大约10倍,而磁盘要比DRAM慢大约100000多倍。

页表:虚拟存储器系统必须有某种方法来判定一个虚拟页是否存放在DRAM中的某个地方,如果是,系统换必须确定这个虚拟页存放在哪个物理页中,如果不命中,系统必须判断这个虚拟页存放在磁盘的哪个位置,在物理存储器中选择一个牺牲页,并将虚拟页从磁盘拷贝到DRAM中,替换这个牺牲页。

缺页:在虚拟存储器的习惯说法中,DRAM缓存不命中称为缺页。

了解虚拟存储器概念后,我们会认为不命中处罚大,我们会担心页面调度会破坏程序性能,实际上,虚拟存储器工作的相当好,主要归功于局部性。

独立的地址空间允许每个进程为它的存储器映像使用相同的基本格式,而不管代码和数据实际存放在物理存储器的何处。

一般而言,每个进程都有自己私有的代码、数据、堆以及栈区域,是不和其他进程共享的。但是独立地址空间为操作系统提供了一个管理用户进程和操作系统自身之间共享的一致机制。

虚拟存储器为向用户进程提供了一个简单的分配额外存储器的机制。(当一个运行在用户进程中的程序要求额外的堆空间时,操作系统分配一个适当数字(例如K)个连续的虚拟存储器页面,并且把

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值