虚拟存储器
虚拟存储器是一个容量非常大的存储器的逻辑模型,不是任何实际的物理存储器。
虚拟存储器指的是主存——外存层次。它以透明的方式给用户提供
了一个比实际主存空间大得多的程序地址空间。
实地址与虚地址
用户编制程序时使用的地址称为虚地址或逻辑地址。其对应的存储空间称为虚存空间或逻辑地址空间;而计算机物理内存的访问地址则称为实地址或物理地址,其对应的存储空间称为物理存储空间或主存空间。程序进行虚地址到实地址转换的过程称为程序再定位。
虚存的访问过程
每次访存是,首先判断该虚地址所对弈的部分是否在实存中,如果是,则进行地址转换并用实地址访问主存;否则,按照某种算法将辅存中的部分程序调度进内存,再按同样的方法访问主存。
cache与虚存的异同
在三级存储体系中 ,cache-主存和主存-辅存这两个存储层次有许多相同点:
(1)出发点相同:二者都是为了提高存储系统的性能价格比而购置的分层存储体系,都力图使存储系统的性能接近高速存储器,而价格和容量接近低速存储器。
(2)原理相同:都是利用了程序运行时的局部性原理吧最近常用的信息块从相对慢速而大容量的存储器调入相对高速而小容量的存储器。
(3)侧重点不同:cache主要解决主存与CPU的速度差异问题;而就性能价格比的提高而言,虚存主要是解决存储容量问题。
(4)数据通路不同:CPU与cache和主存之间均有直接访问通路,cache不命中时可直接访问主存,而虚存所一栏的辅存与CPU之间不存在直接的数据通路,而主存不命中时只能通过调页解决,CPU最终还是要访问主存。
(5)透明性不同:cache的管理完全有硬件完成,对系统程序员和应用程序员均透明;而虚存管理由软件(操作系统)和硬件共同完成,由于软件的介入,虚存对实现存储管理的系统程序员不透明,而支队应用程序员透明。
(6)未命中时的损失不同:由于主存的存取时间是cache的存取时间的5-10倍,而主存的存取速度通常比辅存的存取速度快上千倍,故主存未命中时系统的性能损失要远岛屿cache未命中时的损失。