虚拟存储器

合集下载

实习五 虚拟存储器实验报告

实习五 虚拟存储器实验报告

实习五虚拟存储器实验报告一、实验目的本次虚拟存储器实验旨在深入理解计算机系统中虚拟存储器的工作原理和机制,通过实际操作和观察,掌握虚拟存储器的相关概念和技术,包括页式存储管理、地址转换、页面置换算法等。

同时,培养我们的实践能力和问题解决能力,为今后学习和工作中涉及到的计算机系统相关知识打下坚实的基础。

二、实验环境本次实验使用的操作系统为 Windows 10,开发工具为 Visual Studio 2019,编程语言为 C++。

三、实验原理1、虚拟存储器的概念虚拟存储器是一种利用硬盘等辅助存储器来扩充主存容量的技术。

它将程序和数据按照一定的页面大小划分,并在需要时将页面从硬盘调入主存,从而实现了使用有限的主存空间运行较大规模的程序。

2、页式存储管理页式存储管理将主存和辅存空间都划分为固定大小的页面。

程序的地址空间被分成若干页,主存也被分成相同大小的页框。

通过页表来记录页面和页框的对应关系,实现地址转换。

3、地址转换当 CPU 执行指令时,给出的是逻辑地址。

通过页表将逻辑地址转换为物理地址,才能在主存中访问相应的数据。

4、页面置换算法当主存空间不足时,需要选择一个页面换出到硬盘,以腾出空间调入新的页面。

常见的页面置换算法有先进先出(FIFO)算法、最近最少使用(LRU)算法等。

四、实验内容与步骤1、设计并实现一个简单的页式存储管理系统定义页面大小和主存、辅存的容量。

实现页表的数据结构,用于记录页面和页框的对应关系。

编写地址转换函数,将逻辑地址转换为物理地址。

2、实现页面置换算法分别实现 FIFO 和 LRU 页面置换算法。

在页面调入和调出时,根据相应的算法选择置换的页面。

3、测试和分析实验结果生成一系列的访问序列,模拟程序的运行。

统计不同页面置换算法下的缺页次数和命中率。

分析实验结果,比较不同算法的性能。

五、实验过程与结果1、页式存储管理系统的实现我们将页面大小设置为 4KB,主存容量为 16MB,辅存容量为 1GB。

计算机组成原理课件 虚拟存储器

计算机组成原理课件 虚拟存储器

4.2 虚拟存储器
例1:一个程序共有5个页面组成,分别为P1~P5。程序执行过程中的页地 址流(即程序执行中依次用到的页面)如下:P1,P2,P1,P5,P4,P1, P3,P4,P2,P4,假设分配给这个程序的主存储器共有3个页面。图中, 用"*"号标记下次将要被替换掉的页面。
4.2 虚拟存储器
内部地址变换:多用户虚拟地址Av变换成贮存实地址A 多用户虚拟地址中的页内偏移量D直接作为主存实地址中的页内偏移d 主存实页号p与它的页内偏移d直接拼接就得到主存是地址A
4.2 虚拟存储器
一个用户程序要访问虚拟存储器时,必须给出多用户虚拟地址Av。在操作系统和 有关硬件的共同管理下,首先进行内部地址变换。 如果变换成功(命中),得到主存实页号p。把主存实页号p与它的页内偏移d直 接拼接起来就得到主存实地址A,访问主存储器。 如果内部地址变换失败(未命中),表示要访问数据不在主存储器中,必须访问 磁盘存储器。这时,进行外部地址变换。 外部地址变换主要用软件实现,首先查外页表得到与虚页号P相对应的磁盘存储 器的实地址,然后再查内页表(主存实页表),看主存储器中是否有空页。如果主 存储器中还有空页,只要找到空页号。把磁盘存储器的实地址和主存储器的实页号 送入输入输出处理机(输入输出通道)等,在输入输出处理机的控制下,把要访问 数据所在的一整页都从磁盘存储器调入到主存储器。 如果主存储器中已经没有空页,则要采用某种页面替换算法,先把主存中暂时不 用的一页写回到磁盘存储器中原来的位置上,以便腾出空位置来存放新的页。 在进行外部地址变换时,如果没有命中,则表示所需要的页还不在磁盘存储器中。 这时,要在操作系统控制下,启动磁带机、光盘存储器等海量存储器,先把与所需 要数据相关的文件从海量存储器中调入磁盘存储器。

虚拟存储器的基本构成

虚拟存储器的基本构成

虚拟存储器的基本构成虚拟存储器是计算机系统中的一个重要组成部分,它扩展了计算机的存储容量,提高了系统的性能和可用性。

虚拟存储器由主存储器和辅助存储器两部分组成,通过一系列的管理机制,使得程序能够以透明的方式访问较大容量的存储空间。

1. 主存储器主存储器是虚拟存储器的核心组成部分,也是计算机系统中最快的存储器。

它通常由DRAM(动态随机存取存储器)构成,用于存储当前正在执行的程序和数据。

主存储器通过地址总线和数据总线与CPU直接连接,可以快速地读写数据。

虚拟存储器通过将主存储器的地址空间划分为若干固定大小的页面(page)来管理主存储器的使用。

2. 辅助存储器辅助存储器是虚拟存储器的扩展部分,它通常由硬盘、固态硬盘(SSD)等设备构成。

辅助存储器的容量远大于主存储器,用于存储不常用的程序和数据。

辅助存储器的读写速度较慢,但它具有持久性,数据不会因为断电而丢失。

虚拟存储器通过将辅助存储器的地址空间划分为若干固定大小的页面来管理辅助存储器的使用。

3. 页面表页面表是虚拟存储器管理的关键数据结构,用于记录主存储器和辅助存储器之间的映射关系。

每个页面表由多个页表项组成,每个页表项记录了一个页面在主存储器和辅助存储器中的对应位置。

当程序访问一个虚拟地址时,操作系统会通过页面表查找对应的物理地址,并将数据从主存储器或辅助存储器中读取出来。

4. 页面置换算法由于主存储器的容量有限,当主存储器中的页面不足以存放所有正在运行的程序和数据时,就需要使用页面置换算法将部分页面从主存储器中换出到辅助存储器中。

常用的页面置换算法有最佳(OPT)、先进先出(FIFO)、最近未使用(LRU)等。

这些算法根据页面的访问模式和重要性来决定换出哪些页面,以保证系统的性能和可用性。

5. 页面调度算法页面调度算法用于确定哪些页面应该被加载到主存储器中。

常用的页面调度算法有最低频率优先(LFU)、先进先出(FIFO)、最近最久未使用(LRU)等。

虚拟存储器的基本概念

虚拟存储器的基本概念
11
虚拟存储器是为扩大主存而采用 的一种设计技巧,它的容量与主存大 小无直接关系,而受限于计算机的地 址结构及可用的辅助存储器的容量。
12
4. 虚拟存储器的容量
• 1一个虚拟存储器的最大容量是由计算机 的 地 址 结 构 确 定 的 。 如 : 若 CPU 的 有 效 地址长度为32位,则程序可以寻址范围 是0~(2^32)-1 ,即虚存容量为 4GB。
9
第三,很少出现连续的过程调用,相反, 程序中过程调用的深度限制在小范围 内,一段时间内,指令引用被局限在 很少几个过程中。
第四,对于连续访问数组之类的数据结 构,往往是对存储区域中相邻位置的 数据的操作。
第五,程序中有些部分是彼此互斥的, 不是每次运行时都用到的,如出错处 理程序。
10
3.虚拟存储器的定义: 在具有层次结构存储器的计算机系统中, 具有请求调入功能和置换功能,能从逻辑 上对内存容量进行扩充的存储器系统, 为用户提供一个比物理主存容量大得多 的,可寻址的一种“主存储器”。
7
5. 局部性原理
• 程序局部性原理 在一段时间内一个程序的执行往往呈现出 高度的局部性,表现在时间与空间两方面
• 时间局部性: 一条指令被执行了,则在不久的将来它可 能再被执行
• 空间局部性: 若某一存储单元被使用,则在一定时间
内,与该存储单元相邻的单元可能被使用
8
第一,程序中只有少量分支和过程调用, 大都是顺序执行的指令。 第二,程序包含若干循环,是由相对 较少的指令组成,在循环过程中,计 算被限制在程序中很小的相邻部分中。
• 2虚拟存储器的容量与主存的实际大小没 有直接的关系,而是由主存与辅存的容量 之和所确定。
13
虚拟存储管理主要采用以下技 术实现:

虚拟存储器的都有哪些种类

虚拟存储器的都有哪些种类

虚拟存储器的都有哪些种类什么是虚拟存储器虚拟存储器是一种实现了虚拟地址空间与物理地址空间的转换与管理的技术。

实际上,计算机的硬件只能直接寻址有限的物理内存,而虚拟存储器技术可以将一个进程所使用的虚拟地址空间映射到实际物理内存上,从而实现了进程间内存的隔离、进程对内存的高效管理等目标。

虚拟存储器的种类虚拟存储器可以按照其实现方式的不同,分为以下几类:分页式虚拟存储器分页式虚拟存储器是将进程的虚拟地址空间划分为大小相同的若干个页,与此对应的,物理内存也被分成大小相等的若干页帧。

当进程需要访问某个虚拟地址时,虚拟内存管理单元根据该地址的高位部分确定所在的页目录项及页表项,从而得到该虚拟地址对应的物理页帧地址,然后利用物理地址访问实际的内存单元。

分页式虚拟存储器的优点是地址空间的划分更为灵活,页的大小可以根据不同的需求进行调整;而且相对于分段式虚拟存储器,分页式虚拟存储器更为适合大规模的系统,因为页表项存储需要的空间相对较少。

分段式虚拟存储器分段式虚拟存储器是将进程的虚拟地址空间划分为若干个大小不同的段,每个段以开始地址为基址,形成虚拟地址。

与此对应的,物理内存也被分成大小不等的若干段,每个段映射一个虚拟段,从而实现了虚拟地址空间到物理地址空间的映射。

分段式虚拟存储器让不同进程间可以使用相同的地址空间,从而简化了应用程序开发,提升了代码的重用性。

但是,分段式虚拟存储器需要维护大量的段描述信息以及段与页之间的映射关系,这使得在线管理开销很大,因此更适合于小型系统。

段页式虚拟存储器段页式虚拟存储器是分页式和分段式虚拟存储器的结合体,它将进程的虚拟地址空间划分为若干个段,每个段又被划分成大小相等的若干页。

段页式虚拟存储器既保留了分段式虚拟存储器的优点,也继承了分页式虚拟存储器的灵活性。

段页式虚拟存储器中,虚拟地址空间与物理地址空间之间的转换通过段页表来实现,段页表的每一项都包含了该页在物理地址空间中对应的页框地址以及该页在虚拟地址空间中的地址。

第5章 虚拟存储器 (1)

第5章  虚拟存储器 (1)
作业无法在小内存中运行,无法提高系统的多道程序度,限制了处理机的利用率 和系统的吞吐量。事实上,许多作业在运行时,并非需要用到全部程序和数据。
• (2)驻留性,是指作业被装入内存后,整个作业都一直驻留在内存中,其中 任何部分都不会被换出,直至作业运行结束。尽管运行中的进程被阻塞,而处于 长期等待状态,它们都仍将驻留在内存中,继续占用宝贵的内存资源。
虚拟存储ห้องสมุดไป่ตู้概述
虚拟存储器的定义和特征
虚拟存储器的特征
• (3)虚拟性。是指能够从逻辑上扩充内存容量,使用户所看到的内存容 量远大于实际内存容量。这样,就可以在小的内存中运行大的作业,或者 能提高多道程序度。它不仅能有效地改善内存的利用率,还可提高程序执 行的并发程度。
• 虚拟存储器目前已在大、中、小及微机上广泛采用。虚拟性是以多次 性和对换性为基础的,或者说,仅当系统允许将作业分多次调入内存,并 能将内存中暂时不运行的程序和数据换至盘上时,才能实现虚拟存储器。
虚拟存储器概述
5.1.3 虚拟存储器的实现方法 P167
• 在虚拟存储器中,允许将一个作业分多次调入内存。所以,虚拟存储器的 实现,都建立在离散分配存储管理方式的基础上。目前,所有的虚拟存储器都 是采用下述方式之一实现的。
• 1.分页请求系统
• 分页请求是在分页的基础上增加了请求调页功能和页面置换功能所形成的 页式虚拟存储系统。它允许用户程序只装入少数页面的程序(及数据)即可启 动运行。以后,再通过调页功能及页面置换功能陆续地把即将运行的页面调入 内存,同时把暂不运行的页面换出到外存上。置换时以页面为单位;为了能实 现请求调页和页面置换功能,系统必须提供硬件支持和请求分页的软件。
5.2 请求分页存储管理方式 P168

虚拟存储器工作原理

虚拟存储器工作原理

虚拟存储器工作原理
虚拟存储器是计算机系统中的一种技术,它通过将磁盘的部分空间用作与主存储器(RAM)交换数据的扩展,以提供更大的可用存储空间。

虚拟存储器工作原理如下:
1. 虚拟存储器将主存储器划分为固定大小的页面(也称为页框),通常是4KB或8KB等大小。

2. 当一个程序被加载到主存储器时,操作系统将其分为固定大小的块,称为页面。

3. 当程序需要访问某个页面时,操作系统会检查该页面是否已存在于主存储器中。

4. 如果所需页面已存在于主存储器中,则程序可以直接访问该页面,无需进行磁盘读取操作。

这是最理想的情况,因为主存储器的访问速度要比磁盘快得多。

5. 然而,如果所需页面不在主存储器中,操作系统会将主存储器中的某个页面(通常是最近最少使用的页面)替换成需要的页面。

替换页面的过程称为页面置换。

6. 被替换出的页面会被写回到磁盘上的一个空闲页面中,以便在后续需要时可以重新加载到主存储器中。

7. 在访问磁盘上的页面并将其加载到主存储器之前,操作系统会通过磁盘存储器管理单元(MMU)进行地址转换,以确保正确访问到磁盘上的页面。

通过使用虚拟存储器,计算机系统可以充分利用磁盘空间来扩展主存储器的大小。

这样,即使计算机系统的物理内存有限,也可以运行更大的程序或处理更多的数据,而不会出现严重的
内存不足问题。

虚拟存储器的工作原理可以使计算机系统在物理内存有限的情况下更加灵活和高效地管理内存资源。

第12讲 虚拟存储器

第12讲 虚拟存储器

(3) 近期最少使用算法 (LFU) 既充分利用了历史信息,又反映了程序的局 部性,但需要很长的计数器和时钟,实现起 来困难。 (4) 最优替换算法 (OPT) 是一种理想化的算法。用来作为评价其它页 面替换算法好坏的标准。
例1: 一个程序共有5个页面组成,程序执行过程中 的页地址流如下: P1, P2, P1, P5, P4, P1, P3, P4, P2, P4 假设分配给这个程序的主存储器共有3个页面。 给出FIFO、LRU、OPT 三种页面替换算法对 这3页主存的使用情况,包括调入、替换和命 中等。
主存页号 主存地址空间 虚存页号 程序地址空间 0 1 2 0 1
2
7
基号 用户号 0 页基址表 ... 4 N-1 页表长度 页表基址
虚页号 实页号
页内地址 页内地址
虚地址 实地址
页表 2 1 6 1 7 1 0 主存页号 装入位 访问方式
例2:一个虚拟存储器有8个页面,页面大小为 1024字,内存有4个页面框架。页表的内容为 虚页号 实页号 解: 0 3 4098÷1024 = 4......2, 1 1 所以虚页号为4,页内地址 2 为2。从表中查得实页号为 3 2,实际地址为 4 2 2×1024 + 2 = 2050 5 6 0 7 对应于虚拟地址4098的主存地址是什么?
段表
2 段(5K)
1段2页 1 段页表 2段0页 2段1页
用户程序
2 段页表
主存储器
段页式虚拟存储器的地址映象

地址变换方法:
多用户系统中,需要三层表,记录相关信息, 包括段表基址表、段表、页表。 (1) 先查段表,得到该程序段的页表起始地 址和页表长度, (2) 再查页表找到要访问的主存实页号, (3) 最后把实页号p与页内偏移d拼接得到主 存的实地址
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

虚拟存储器摘要纠错编辑摘要虚拟存储器源出于英国ATLAS计算机的一级存储器概念。

这种系统的主存为16千字的磁芯存储器,但中央处理器可用20位逻辑地址对主存寻址。

到1970年,美国RCA公司研究成功虚拟存储器系统。

IBM公司于1972年在IBM370系统上全面采用了虚拟存储技术。

虚拟存储器已成为计算机系统中非常重要的部分。

虚拟存储器只是一个容量非常大的存储器的逻辑模型,不是任何实际的物理存储器。

它借助于磁盘等辅助存储器来扩大主存容量,使之为更大或更多的程序所使用。

它指的是主存-外存层次。

以透明的方式给用户提供了一个比实际主存空间大得多的程序地址空间。

虚拟存储器-工作原理虚拟存储器模型虚拟存储器是由硬件和操作系统自动实现存储信息调度和管理的。

它的工作过程包括6个步骤:①中央处理器访问主存的逻辑地址分解成组号a和组内地址b,并对组号a进行地址变换,即将逻辑组号a作为索引,查地址变换表,以确定该组信息是否存放在主存内。

②如该组号已在主存内,则转而执行④;如果该组号不在主存内,则检查主存中是否有空闲区,如果没有,便将某个暂时不用的组调出送往辅存,以便将这组信息调入主存。

③从辅存读出所要的组,并送到主存空闲区,然后将那个空闲的物理组号a和逻辑组号a登录在地址变换表中。

④从地址变换表读出与逻辑组号a对应的物理组号a。

⑤从物理组号a和组内字节地址b得到物理地址。

⑥根据物理地址从主存中存取必要的信息。

存储模型调度方式有分页式、段式、段页式3种。

页式调度是将逻辑和物理地址空间都分成固定大小的页。

主存按页顺序编号,而每个独立编址的程序空间有自己的页号顺序,通过调度辅存中程序的各页可以离散装入主存中不同的页面位置,并可据表一一对应检索。

页式调度的优点是页内零头小,页表对程序员来说是透明的,地址变换快,调入操作简单;缺点是各页不是程序的独立模块,不便于实现程序和数据的保护。

段式调度是按程序的逻辑结构划分地址空间,段的长度是随意的,并且允许伸长,它的优点是消除了内存零头,易于实现存储保护,便于程序动态装配;缺点是调入操作复杂。

将这两种方法结合起来便构成段页式调度。

在段页式调度中把物理空间分成页,程序按模块分段,每个段再分成与物理空间页同样小的页面。

段页式调度综合了段式和页式的优点。

其缺点是增加了硬件成本,软件也较复杂。

大型通用计算机系统多数采用段页式调度。

虚拟存储器-虚实地址示意图1、实地址与虚地址用户编制程序时使用的地址称为虚地址或逻辑地址,其对应的存储空间称为虚存空间或逻辑地址空间;而计算机物理内存的访问地址则称为实地址或物理地址,其对应的存储空间称为物理存储空间或主存空间。

程序进行虚地址到实地址转换的过程称为程序的再定位。

2、虚存的访问过程虚存空间的用户程序按照虚地址编程并存放在辅存中。

程序运行时,由地址变换机构依据当时分配给该程序的实地址空间把程序的一部分调入实存。

每次访存时,首先判断该虚地址所对应的部分是否在实存中:如果是,则进行地址转换并用实地址访问主存;否则,按照某种算法将辅存中的部分程序调度进内存,再按同样的方法访问主存。

由此可见,每个程序的虚地址空间可以远大于实地址空间,也可以远小于实地址空间。

前一种情况以提高存储容量为目的,后一种情况则以地址变换为目的。

后者通常出现在多用户或多任务系统中:实存空间较大,而单个任务并不需要很大的地址空间,较小的虚存空间则可以缩短指令中地址字段的长度。

虚拟存储器-异构体系地址从虚存的概念可以看出,主存-辅存的访问机制与cache-主存的访问机制是类似的。

这是由cache存储器、主存和辅存构成的三级存储体系中的两个层次。

cache和主存之间以及主存和辅存之间分别有辅助硬件和辅助软硬件负责地址变换与管理,以便各级存储器能够组成有机的三级存储体系。

cache和主存构成了系统的内存,而主存和辅存依靠辅助软硬件的支持构成了虚拟存储器。

在三级存储体系中,cache-主存和主存-辅存这两个存储层次有许多相同点:(1)出发点相同:二者都是为了提高存储系统的性能价格比而构造的分层存储体系,都力图使存储系统的性能接近高速存储器,而价格和容量接近低速存储器。

(2)原理相同:都是利用了程序运行时的局部性原理把最近常用的信息块从相对慢速而大容量的存储器调入相对高速而小容量的存储器。

存储体系但cache-主存和主存-辅存这两个存储层次也有许多不同之处:(1)侧重点不同:cache主要解决主存与CPU的速度差异问题;而就性能价格比的提高而言,虚存主要是解决存储容量问题,另外还包括存储管理、主存分配和存储保护等方面。

(2)数据通路不同:CPU与cache和主存之间均有直接访问通路,cache不命中时可直接访问主存;而虚存所依赖的辅存与CPU之间不存在直接的数据通路,当主存不命中时只能通过调页解决,CPU最终还是要访问主存。

(3)透明性不同:cache的管理完全由硬件完成,对系统程序员和应用程序员均透明;而虚存管理由软件(操作系统)和硬件共同完成,由于软件的介入,虚存对实现存储管理的系统程序员不透明,而只对应用程序员透明(段式和段页式管理对应用程序员“半透明”)。

(4)未命中时的损失不同:由于主存的存取时间是cache的存取时间的5~10倍,而主存的存取速度通常比辅存的存取速度快上千倍,故主存未命中时系统的性能损失要远大于cache未命中时的损失。

示意图虚存机制要解决的关键问题(1)调度问题:决定哪些程序和数据应被调入主存。

(2)地址映射问题:在访问主存时把虚地址变为主存物理地址(这一过程称为内地址变换);在访问辅存时把虚地址变成辅存的物理地址(这一过程称为外地址变换),以便换页。

此外还要解决主存分配、存储保护与程序再定位等问题。

(3)替换问题:决定哪些程序和数据应被调出主存。

(4)更新问题:确保主存与辅存的一致性。

在操作系统的控制下,硬件和系统软件为用户解决了上述问题,从而使应用程序的编程大大简化。

虚拟存储器-页式调度页式虚拟存储系统1、页式虚存地址映射页式虚拟存储系统中,虚地址空间被分成等长大小的页,称为逻辑页;主存空间也被分成同样大小的页,称为物理页。

相应地,虚地址分为两个字段:高字段为逻辑页号,低字段为页内地址(偏移量);实存地址也分两个字段:高字段为物理页号,低字段为页内地址。

通过页表可以把虚地址(逻辑地址)转换成物理地址。

在大多数系统中,每个进程对应一个页表。

页表中对应每一个虚存页面有一个表项,表项的内容包含该虚存页面所在的主存页面的地址(物理页号),以及指示该逻辑页是否已调入主存的有效位。

地址变换时,用逻辑页号作为页表内的偏移地址索引页表(将虚页号看作页表数组下标)并找到相应物理页号,用物理页号作为实存地址的高字段,再与虚地址的页内偏移量拼接,就构成完整的物理地址。

现代的中央处理机通常有专门的硬件支持地址变换。

2、转换后援缓冲器由于页表通常在主存中,因而即使逻辑页已经在主存中,也至少要访问两次物理存储器才能实现一次访存,这将使虚拟存储器的存取时间加倍。

为了避免对主存访问次数的增多,可以对页表本身实行二级缓存,把页表中的最活跃的部分存放在高速存储器中,组成快表。

这个专用于页表缓存的高速存储部件通常称为转换后援缓冲器(TLB)。

保存在主存中的完整页表则称为慢表。

3、内页表和外页表页表是虚地址到主存物理地址的变换表,通常称为内页表。

与内页表对应的还有外页表,用于虚地址与辅存地址之间的变换。

当主存缺页时,调页操作首先要定位辅存,而外页表的结构与辅存的寻址机制密切相关。

例如对磁盘而言,辅存地址包括磁盘机号、磁头号、磁道号和扇区号等。

虚拟存储器-段式调度段式虚拟存储系统段是按照程序的自然分界划分的长度可以动态改变的区域。

通常,程序员把子程序、操作数和常数等不同类型的数据划分到不同的段中,并且每个程序可以有多个相同类型的段。

在段式虚拟存储系统中,虚地址由段号和段内地址(偏移量)组成。

虚地址到实主存地址的变换通过段表实现。

每个程序设置一个段表,段表的每一个表项对应一个段。

每个表项至少包含下面三个字段:(1)有效位:指明该段是否已经调入实存。

(2)段起址:指明在该段已经调入实存的情况下,该段在实存中的首地址。

(3)段长:记录该段的实际长度。

设置段长字段的目的是为了保证访问某段的地址空间时,段内地址不会超出该段长度导致地址越界而破坏其他段。

段表本身也是一个段,可以存在辅存中,但一般驻留在主存中。

段式虚拟存储器有许多优点:①段的逻辑独立性使其易于编译、管理、修改和保护,也便于多道程序共享。

②段长可以根据需要动态改变,允许自由调度,以便有效利用主存空间。

段式虚拟存储器也有一些缺点:①因为段的长度不固定,主存空间分配比较麻烦。

②容易在段间留下许多外碎片,造成存储空间利用率降低。

③由于段长不一定是2的整数次幂,因而不能简单地像分页方式那样用虚地址和实地址的最低若干二进制位作为段内偏移量,并与段号进行直接拼接,必须用加法操作通过段起址与段内偏移量的求和运算求得物理地址。

因此,段式存储管理比页式存储管理方式需要更多的硬件支持。

虚拟存储器-段页式调度字线示意图段页式虚拟存储器是段式虚拟存储器和页式虚拟存储器的结合。

实存被等分成页。

每个程序则先按逻辑结构分段,每段再按照实存的页大小分页,程序按页进行调入和调出操作,但可按段进行编程、保护和共享。

它把程序按逻辑单位分段以后,再把每段分成固定大小的页。

程序对主存的调入调出是按页面进行的,但它又可以按段实现共享和保护,兼备页式和段式的优点。

缺点是在映象过程中需要多次查表。

在段页式虚拟存储系统中,每道程序是通过一个段表和一组页表来进行定位的。

段表中的每个表目对应一个段,每个表目有一个指向该段的页表起始地址及该段的控制保护信息。

由页表指明该段各页在主存中的位置以及是否已装入、已修改等状态信息。

如果有多个用户在机器上运行,多道程序的每一道需要一个基号,由它指明该道程序的段表起始地址。

虚拟地址格式如下:虚拟存储器-变换算法段式管理图虚拟存储器地址变换基本上有3种形虚拟存储器工作过程式:全联想变换、直接变换和组联想变换。

任何逻辑空间页面能够变换到物理空间任何页面位置的方式称为全联想变换。

每个逻辑空间页面只能变换到物理空间一个特定页面的方式称为直接变换。

组联想变换是指各组之间是直接变换,而组内各页间则是全联想变换。

替换规则用来确定替换主存中哪一部分,以便腾空部分主存,存放来自辅存要调入的那部分内容。

常见的替换算法有4种。

①随机算法:用软件或硬件随机数产生器确定替换的页面。

②先进先出:先调入主存的页面先替换。

③近期最少使用算法:替换最长时间不用的页面。

④最优算法:替换最长时间以后才使用的页面。

这是理想化的算法,只能作为衡量其他各种算法优劣的标准。

相关文档
最新文档