虚拟存储器

虚拟存储器可以分为三类:页式、段式和段页式。本节我们主要学习页式虚拟存储器。     在页式虚拟存储器中通过把主存空间和程序空间都机械等分成固定大小的页(页面大小随机器而定,一般为4KB到4MB),按页顺序编号,用相应的映像表机构来指明该程序的某页是否已经装入主存。若已经装入主存,则应同时指明其在主存中所处的位置;如果未装入主存,则去辅存中调页,并建立起程序空间和实存空间的地址映像关系。这样,程序执行时通过查映像表将程序地址(虚拟地址)变换成实际主存地址(物理地址)再访问主存。     此存储系统具有主存的速度和辅存的容量,提高了存储器系统的性能价格比。CPU直接访问主存,主存与辅存之间的信息交换由操作系统和硬件来完成,这种把辅存看作是主存的一部分,以扩大主存容量的技术,称之为虚拟技术。用虚拟技术设计的存储器,称为虚拟存储器。     这些主存与辅存之间实际存在的操作和辅助软、硬件,对应用程序设计者来讲是透明的。但虚拟存储器对系统程序员来讲基本上是不透明的,只是某些部分(如虚拟地址到主存地址的变换)由于采用硬件实现才是透明的。     虚拟地址----又称逻辑地址,是指访问虚拟空间的地址。由于指令中给出的地址码是按虚存空间来统一编址的,因此指令的地址码实际上是虚拟地址。     物理地址----是指访问主存空间的地址 虚拟存储器 虚拟存储器  virtual memory  为了给用户提供更大的随机存取空间而采用的一种存储技术。它将内存与外存结合使用,好像有一个容量极大的内存储器,工作速度接近于主存,每位成本又与辅存相近,在整机形成多层次存储系统。  虚拟存储器源出于英国ATLAS计算机的一级存储器概念。这种系统的主存为16千字的磁芯存储器,但中央处理器可用20位逻辑地址对主存寻址。到1970年,美国RCA公司研究成功虚拟存储器系统。IBM公司于1972年在IBM370系统上全面采用了虚拟存储技术。虚拟存储器已成为计算机系统中非常重要的部分。  虚拟存储器是由硬件和操作系统自动实现存储信息调度和管理的。它的工作过程包括6个步骤:①中央处理器访问主存的逻辑地址分解成组号a和组内地址b,并对组号a进行地址变换,即将逻辑组号a作为索引,查地址变换表,以确定该组信息是否存放在主存内。②如该组号已在主存内,则转而执行④;如果该组号不在主存内,则检查主存中是否有空闲区,如果没有,便将某个暂时不用的组调出送往辅存,以便将这组信息调入主存。③从辅存读出所要的组,并送到主存空闲区,然后将那个空闲的物理组号a和逻辑组号a登录在地址变换表中。④从地址变换表读出与逻辑组号a对应的物理组号a。⑤从物理组号a和组内字节地址b得到物理地址。⑥根据物理地址从主存中存取必要的信息。  调度方式有分页式、段式、段页式3种。页式调度是将逻辑和物理地址空间都分成固定大小的页。主存按页顺序编号,而每个独立编址的程序空间有自己的页号顺序,通过调度辅存中程序的各页可以离散装入主存中不同的页面位置,并可据表一一对应检索。页式调度的优点是页内零头小,页表对程序员来说是透明的,地址变换快,调入操作简单;缺点是各页不是程序的独立模块,不便于实现程序和数据的保护。段式调度是按程序的逻辑结构划分地址空间,段的长度是随意的,并且允许伸长,它的优点是消除了内存零头,易于实现存储保护,便于程序动态装配;缺点是调入操作复杂。将这两种方法结合起来便构成段页式调度。在段页式调度中把物理空间分成页,程序按模块分段,每个段再分成与物理空间页同样小的页面。段页式调度综合了段式和页式的优点。其缺点是增加了硬件成本,软件也较复杂。大型通用计算机系统多数采用段页式调度。  虚拟存储器地址变换基本上有3种形虚拟存储器工作过程式:全联想变换、直接变换和组联想变换。任何逻辑空间页面能够变换到物理空间任何页面位置的方式称为全联想变换。每个逻辑空间页面只能变换到物理空间一个特定页面的方式称为直接变换。组联想变换是指各组之间是直接变换,而组内各页间则是全联想变换。  替换规则用来确定替换主存中哪一部分,以便腾空部分主存,存放来自辅存要调入的那部分内容。常见的替换算法有4种。①随机算法:用软件或硬件随机数产生器确定替换的页面。②先进先出:先调入主存的页面先替换。③近期最少使用算法:替换最长时间不用的页面。④最优算法:替换最长时间以后才使用的页面。这是理想化的算法,只能作为衡量其他各种算法优劣的标准。  虚拟存储器的效率是系统性能评价的重要内容,它与主存容量、页面大小、命中率,程序局部性和替换算法等因素有关。

  虚拟存储器的核心思路: 根据程序运行的局部性原理,一个程序运行时,在一小段时间内,只会用到程序和数据的很小一部分,仅把这部分程序和数据装入主存储器即可。更多的部分可以在用到时随时从磁盘调入主存。在操作系统和相应硬件的支持下,数据在磁盘和主存之间按程序运行的需要自动成批量地完成交换。  

    虚拟存储器中经常使用两种基本管理技术:段式存储管理,页式存储管理。 

    核心问题都在于处理数据的存放与调度。 

    一、段式存储管理 

    1、段:通常一个大的程序是由在逻辑上、处理功能上有一定的独立性的程序段组成的,可用段名或段号来标明程序段,每个段的长度是随意的,由指令的条数确定。 

    2、段式存储管理:当运行有若干段组成的程序时,把主存按段进行分配与管理,以段作为信息单位,实现在主存-辅存之间的传送。这种管理方式称为段式存储管理。  

    3、逻辑地址的组成:段式存储管理的核心问题是:变逻辑地址中的逻辑段号为主存中的一个存储区的起始地址,这是通过在系统中(一般在主存中)设置一个段表来完成。段表由多个表项组成:段起始地址,段长,段的装入位。 

    二、页式存储管理 

    1、页:把虚拟逻辑地址空间和主存实际物理地址空间都划分容量相等(为2的幂)的大小区域,称为页。所有的地址都可以用页号拼接页内地址来表示。 

    2、页式存储管理:在一个计算机系统中页的长度是人为划分的,并通过分页方式进行存储器管理,实现以页为单位来完成在虚存和主存之间信息交换,称为页式存储管理


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值