虚拟存储器的基本概念
在早期的单用户单在务操作系统(加DX8)中,每台计算机只有一个用户,每次运个程序,且程序不是很大,单个程序完全可以存放在实际内存中,这时里存并没有大
但角着程序占同存错菩容量的增长和多户多任务系统的出现,在程序设计时,在所需的存储器容慧与计算机系统实际配备的主存错器的容量之间往往存在着矛盾,例尔,某些饭挡的计算机中,物理内存的容量较小,而某些程序却需要很大的内存才能运行:多用户多任务系统中,多个用户或多个任务共享全部主存,要求间时扶行多道程序。这些对运行的程序到底占用实际内存中的哪一部分,在编南程序时是无法确定的,必须等到附运行时才动态分配
为此,希望在编制程序时知立编址,既不考虑程序是否能在物理存储器中存放得下为这与程序运行时的系统配置和当时其他程序的运行情况有关,在编程时一般无法确定也不考患程序应该存放在什么物理位置。而在程序运行时,用分配给每个程序一定的运行里间,由地址转换部件(硬作或软件)将编租时的地址转换成实际内存的物理地址,如果分配内存不够,则只调人当就正在运行的或将要运行的程序块(或数据块),其余部分暂时驻留用存中。
这样:用户编制程序时竺用的地址称为虚地址或逻辑地址,其对应的存销空间称为虚可间電辑地址空间:直计算机物建内存的达问地址剧往人表地地或物理地址,其对应的储空创称为物理行信空间或主存空间。程序进行重地址到实地址转顶的过段移为程序的定位
据当时分配给该程序的实地址空间把程序的 部分调入宝整
每次语有对,首先判断该虚地址所对应的部分是告在实存中。如果是
共同实地址访问主存:否用, 则进行她址转推
我烈某种算法将填存中的部分程序制度达内存, 再视同样的方
法动国主存。
由此可见,每个程序的虚共址心 以远大于实地址空间,也可以这小干实地址空间-和情况以提高存储容量为目的,后种情况则以地址变换为目的、后者通常出现在多用正或多任务系统中:实存空间较大,南单个任务并不需要很大的地组空间,较小的虚存空例更可以暗国指令中地址字段的长度。
有了虚存机制后,应用程序就可以透用地使用整个速存之间。对应用理序图言,如果主有的合中车很奇, 虚存的访间时间就援近于主存访句时间,而医存的大小仅仅依赖于辅存的大小。
这样,每个程字就可以拥有个虑报的存留器,它具有辅存的容量和接近主存的访问速度。但这个虚夺是白主存和销存以及就存管理部件构成的概念模型,不是实际的物理存储器
虚存是在主有和用存之外附知一些硬件和软件实现的,由于软件的介入,使虚存对设计存储管理软件的系统程序面言是不透明的,但对应用程序员能言仍然是透明的。
cht与虚存的弄到
从虚存的概念可以看出,主有-圳存的访问机制与cache上存的访问机制景类似的。这是由csche存储器、主存和植存构成的三级存储体系中的两个层次,
cochc 和土存之间以及主存和辅存之间分别有铺助硬件和辅助软硬件负责迫址变换与骨应,以便各级存储器能够组成有机的三级存储体系。enbx和上存构成了系统的内存,而主齐和制存依靠销助软硬件的支持构成了虚抵存储管
在二级存储体系中,czche主存和主存-辅这两个有储层次有许多相问点
(1)出发点相同 二者都是为了提高有翻系统的性能价格比而构造的分票有
力图使存储系统的性能接近高速存销替,而价接和容量接近低遍存该器,
(2)原理相同 都是利用了程序运行时的局部性球现产最近常用的信息块从相对慢现有大容量的存错长词入相对高建而小容量的存保器。
但coche 主存和主存-辅存这两个存储用次也有许多不之处:
(3)侧重点不同cache主要解决主存与CPU的进度美异问题:国就性能价格比的提高距言,虚存主要是解决存储容量问面,另外还包益存储管理,主存分配和存信保护等方面
(4)数据通路不同 CPU与cache 和主存之间均有直按访问酒路,cache不命中时可言接访问主存;而虚
(6)未命中时的损失不同 由于主存的存取时间是cache的有取时间的存的存取速度通常比照存的存取速度快上千倍,放主存来 中时系统
nhe主命中时的损失
盘存机制要解决的关键问题
虚存机制也要解决一些关键问题
(1)调度问题 决定哪些程序和数据应被调入主存。
2)地址映射问题在访问主存时把虚地址变为主存物理地址(这一过程称为内地址换):在访问辅存时把虚地址变成辅存的物理地址《这一过程称为外地址变换) 便此外还要解决主存分配、存储保护与程序再定位等问题
(3》替换问题 决定哪些程序和数据应被调出主存。
(4)更新问题 确保主存与辅存的致性
在操作系统的控制下,硬件和系统软件为用户解换了上述问题,从而使应用程序的编大大简化