第八章 虚拟存储器
组成原理课件 - 虚拟存储器
二、虚拟存储器的管理方法: 1、页式虚拟存储器:是把虚拟存储空间和实际存储空间等分成固 定 容量的页,各虚拟页可装入主存中不同的实 际页面位置。(4K~64K) 每个虚拟地址可看作由三部分组成:基号、页号和页内地址 基号:是操作系统给每个程序产生的地址附加的地址字段,用来区 分不同程序的地址空间。 实际地址分为页号和页内地址两部分
§7· 6
虚拟存储器
一、虚拟存储器: 是建立在主存和辅存层次上,由附加硬件装置和操作系统存储 管理软件组成的存储体系。它主要用于解决计算机中主存容量不足 的问 题,在虚拟存储器中,程序可以像访问内存一样访问外存, CPU根据程序指令生成的地址是虚拟地址(逻辑地址),虚拟地址 经过转 换后形成实际地址(物理地址)。虚拟地址空间可以大到 CPU的最大寻址范围,为提高平均访存速度,将虚拟地址空间中访 问最频繁 的一小部分 寻址范围映象到主存储器,其余的地址空间 映 象到外存储器,这样从程序员的角度看,存储系统具有外存的容量 又有接近于主存的访问速度。 虚拟存储器给用户提供了一个比实际主存空间大得多的虚拟地 址空间。
一、填空 1、Cache是指( )。 2、虚拟存储器是建立在( )结构上,用来解决( )的问题。 3、将辅助存储器当作主存来使用,从而扩大程序可访问的存储空 间,这样的存储结构称为( )。 4、地址映象(射)用来确定( )地址和( )地址之间的逻辑 关系。 5、常用的地址映射方法有( )、( )、组相联映射三种。 6、建立高速缓冲存储器的理论依据是( )。 7、在计算机中,主存的工作方式是( );辅存的工作方式是 ( )。 8、4体交叉存储器是一种高速存储器,它( )个存储模块,每 个模块有它自已的地址寄存器和( )寄存器。
3、段页式虚拟存储器 它是将存储空间按逻辑模块分成段,每段以分成若干个页, 这种访问通过一段表和若干个页表进行。段的长度必须是页长的整 数倍,段的起点必须是某一页的起点。在段页式虚拟存储器中,虚 拟地址被分为基号、段号、页号、页内地址在进行地址映象时:首 先根据基号查找段基址表,从表中查出段表的起始地址,然后用段 号从段表中查找该 段的页表的起始地址,然后根据段内页号在页表 中查找该页在内存中的起始地址(实页号),同时判断该段是否装
虚拟存储器的工作原理
虚拟存储器的工作原理
虚拟存储器是一种计算机内存管理技术,它通过将应用程序所需的数据和指令分为多个页面(或称为块或帧)来实现。
虚拟存储器的工作原理包括以下几个步骤:
1. 分页:将应用程序的内存划分为固定大小的页面,通常为
4KB或8KB。
每个页面都有一个唯一的页面编号。
2. 页面映射:将每个页面映射到物理内存的一个帧(或页框),帧的大小与页面大小相同。
这个映射关系被记录在页表中,页表保存在主存储器中。
3. 页面调度:当应用程序需要访问内存中的某个页面时,先检查页表。
如果该页面已经在物理内存中,则直接访问对应的物理地址;如果该页面不在物理内存中,则发生页面错误(缺页错误)。
4. 页面置换:当发生页面错误时,操作系统需要选择一个页面来替换出去,以腾出空间来加载所需的页面。
常见的页面置换算法有最近最少使用(LRU)和先进先出(FIFO)。
5. 页面加载:一旦选择了要换出的页面,操作系统会从外部存储(如硬盘)中加载所需的页面,并更新页表中的映射关系。
6. 页面更新:当应用程序对页面进行写操作时,会先将数据写入缓存页面(缓冲区),然后再由操作系统将缓存页面写回到
外部存储。
虚拟存储器的工作原理使得应用程序能够访问比物理内存更大的内存空间,而且不需要将所有数据一次性加载到内存中。
这种分页和页面调度的技术可以提高程序的整体性能,并且允许多个应用程序同时运行,因为它们不会相互干扰彼此的内存空间。
虚拟存储器工作原理
虚拟存储器工作原理
虚拟存储器是计算机系统中的一种技术,它通过将磁盘的部分空间用作与主存储器(RAM)交换数据的扩展,以提供更大的可用存储空间。
虚拟存储器工作原理如下:
1. 虚拟存储器将主存储器划分为固定大小的页面(也称为页框),通常是4KB或8KB等大小。
2. 当一个程序被加载到主存储器时,操作系统将其分为固定大小的块,称为页面。
3. 当程序需要访问某个页面时,操作系统会检查该页面是否已存在于主存储器中。
4. 如果所需页面已存在于主存储器中,则程序可以直接访问该页面,无需进行磁盘读取操作。
这是最理想的情况,因为主存储器的访问速度要比磁盘快得多。
5. 然而,如果所需页面不在主存储器中,操作系统会将主存储器中的某个页面(通常是最近最少使用的页面)替换成需要的页面。
替换页面的过程称为页面置换。
6. 被替换出的页面会被写回到磁盘上的一个空闲页面中,以便在后续需要时可以重新加载到主存储器中。
7. 在访问磁盘上的页面并将其加载到主存储器之前,操作系统会通过磁盘存储器管理单元(MMU)进行地址转换,以确保正确访问到磁盘上的页面。
通过使用虚拟存储器,计算机系统可以充分利用磁盘空间来扩展主存储器的大小。
这样,即使计算机系统的物理内存有限,也可以运行更大的程序或处理更多的数据,而不会出现严重的
内存不足问题。
虚拟存储器的工作原理可以使计算机系统在物理内存有限的情况下更加灵活和高效地管理内存资源。
操作系统原理虚拟存储器管理资料
光存储技术
通过垂直堆叠存储单元,提供更 高的存储密度和更低的延迟,有 望改变虚拟存储器的架构和设计。
利用激光在介质上刻写数据,具 有极高的存储密度和长达数百年 的数据保存期限,为虚拟存储器 提供了前所未有的容量和可靠性。
云计算与虚拟存储器的关系
云计算资源池化
分布式存储系统
云原生技术
云计算通过虚拟化技术将物理资源抽 象成逻辑资源,实现资源的动态分配 和共享,虚拟存储器是云计算资源池 化的重要组成部分。
物理地址空间
实际内存中的地址空间,与逻辑地址空间不一定连续。物理地址是内存单元的 实际地址,由硬件直接访问。
地址映射机制
1 2
动态重定位
程序执行时,将逻辑地址转换为物理地址的过程。 通过查页表或段表实现地址映射。
请求调页/请求分段
当所需页面/段不在内存中时,发出缺页/缺段中 断,将所需页面/段调入内存。
05
虚拟存储器与操作系统的关系
虚拟存储器对操作系统的影响
扩大内存容量
虚拟存储器通过内外存交换技术, 使得程序可以使用比实际内存更 大的容量。
内存保护
每个程序都在自己的虚拟地址空 间中运行,互不干扰,提高了系 统的安全性。
内存管理灵活
虚拟存储器实现了内存的逻辑扩 充,使得内存管理更加灵活,方 便用户和程序员使用。
03
内存回收策略
当进程不再需要某些内存空间时,操 作系统需要将这些空间回收并重新利 用。常见的内存回收策略包括引用计 数法、标记清除法和复制法等。
缓存技术
要点一
缓存命中与缺失
当CPU访问数据时,如果数据已经在 缓存中,则称为缓存命中;否则需要 从主存中读取数据到缓存中,称为缓 存缺失。
操作系统原理虚拟存储器管理
总结词
将内存划分为大小不等的段,每段存放 一个程序的段,以段为单位进行交换。
VS
详细描述
段式存储管理将内存空间划分为大小不等 的段框,每个段框可以存放一个程序的段 。程序被划分为多个段,每个段可以有不 同的长度。在进行段交换时,以段为单位 进行数据的存取和替换。
段页式存储管理
总结词
结合段式和页式存储管理的特点,将内存划分为固定大小的页框,程序分割为多个段,每段再分割为 固定大小的页。
虚拟存储器提供了一个统一的地址空间,使得应用程序可以 像访问内存一样访问硬盘上的数据,从而提高了程序的运行 效率。
虚拟存储器的实现方式
内存管理单元(MMU)
负责将虚拟地址转换为物理地址,实现虚拟存储器到物理存储器的 映射。
交换区
当物理内存不足时,操作系统会将部分内存数据交换到硬盘的交换 区中,以释放物理内存空间。
实现进程隔离
通过虚拟内存技术,每个进程都有独 立的内存空间,实现进程间的隔离, 防止数据冲突和相互干扰。
支持大内存程序
通过将内存分为物理内存和虚拟内存, 支持大内存程序的运行,满足不断增 长的程序需求。
02
虚拟存储器的基本概念
虚拟存储器的定义
虚拟存储器是一种将物理内存与硬盘存储相结合的技术,通 过将部分硬盘空间映射到物理内存中,实现内存的扩展。
操作系统原理虚拟存储器管 理
• 引言 • 虚拟存储器的基本概念 • 虚拟存储器的原理 • 虚拟存储器的管理策略 • 虚拟存储器的实现技术 • 虚拟存储器的性能优化
01
引言
主题简介
虚拟存储器是操作系统中用于管理物 理内存和磁盘存储的技术,通过将内 存分为物理内存和虚拟内存,实现进 程间的隔离和内存的动态分配。
虚拟储存器的名词解释
虚拟储存器的名词解释虚拟储存器是计算机科学中常用的概念之一,它是一种抽象的、实现在计算机内存和外部硬盘之间的储存机制。
虚拟储存器通过将内存中未使用的部分数据交换到硬盘上,以便释放内存空间供其他程序使用。
它的目的是扩大计算机的有效内存空间,并且使得系统能够同时运行更多的程序。
在本文中,我们将探讨虚拟储存器的工作原理、优点和应用等方面。
虚拟储存器的工作原理是利用操作系统的分页机制。
在操作系统中,将内存划分为大小固定的页面,与之相对应的是外部硬盘上分割成相同大小的页面。
当系统需要更多内存时,操作系统会将未被使用的页面从内存移到硬盘上,以便腾出空间给其他需要使用内存的程序。
这样,计算机系统可以运行大量程序,而不会因内存不足而出现崩溃或运行缓慢的问题。
虚拟储存器的一个重要概念是“页面置换算法”。
当操作系统需要从内存中选择一个页面将其移到硬盘上时,需要根据一定的算法来选择被替换的页面。
常见的算法有最佳(Optimal)算法、先进先出(FIFO)算法和最近最久未使用(LRU)算法等。
这些算法根据不同的指标(如最长未被使用时间、最近使用时间等)来进行页面的选择和置换,以达到最高的系统性能和效率。
虚拟储存器的应用范围非常广泛。
首先是在个人电脑和服务器中,虚拟储存器常用于解决内存不足的问题。
例如,当用户同时运行多个大型软件时,虚拟储存器可以将一部分未被使用的程序数据交换到硬盘中,从而释放内存空间给其他正在运行的程序使用。
其次是在操作系统中,虚拟储存器是实现进程间通信的重要工具。
进程可以通过虚拟储存器来共享数据,提高系统的并发性和协作性。
此外,虚拟储存器还被广泛应用于虚拟机技术、数据库管理系统等领域。
虚拟储存器的优点在于它可以扩大计算机的有效内存空间。
虚拟储存器使得用户无需关注实际物理内存的容量,而只需将更多的数据存储在虚拟内存中。
这样,即使计算机的内存容量有限,仍然可以运行大型的应用程序。
而且,通过虚拟储存器,计算机系统可以更高效地管理内存,提高整体系统的性能和响应速度。
虚拟存储器原理
虚拟存储器原理1. 概述虚拟存储器是一种操作系统提供的抽象概念,它将计算机的物理内存和磁盘空间结合起来,为应用程序提供了一个比实际物理内存更大的地址空间。
虚拟存储器的基本原理是通过将部分数据从内存转移到磁盘上,实现了对物理内存的扩展,并能够在需要时将数据重新调入内存。
虚拟存储器的出现解决了两个主要问题:一是应用程序通常需要比物理内存更大的地址空间,而物理内存受限;二是为了提高系统性能,操作系统可以将不常用的数据置换到磁盘上,以便为常用数据腾出更多的内存空间。
2. 分页机制虚拟存储器使用了分页机制来管理内存和磁盘空间。
在分页机制下,应用程序被划分为大小固定的页面(Page),同样大小的物理内存也被划分为页框(Page Frame)。
每个页面都有一个唯一的标识符,称为页号(Page Number),而每个页框也有一个唯一的标识符,称为页框号(Frame Number)。
当应用程序访问某个页面时,操作系统会通过页表(Page Table)将该页面映射到一个物理地址。
页表是一个数据结构,记录了每个页面对应的物理地址或磁盘上的位置。
当应用程序需要访问某个页面时,操作系统首先查找页表,如果该页面已经在物理内存中,则直接将对应的物理地址返回给应用程序;如果该页面不在物理内存中,则操作系统会将其从磁盘上调入内存,并更新页表。
分页机制的优点是简单、灵活且高效。
它可以将内存和磁盘空间划分为固定大小的块,从而方便管理和调度。
同时,由于每个页面的大小相同,使得操作系统可以更加高效地进行内存分配和回收。
3. 页面置换算法虚拟存储器中最重要的问题之一是如何选择哪些数据被置换到磁盘上。
一般来说,操作系统会根据一定的策略选择最适合置换的页面。
常见的页面置换算法有以下几种:3.1 先进先出(FIFO)先进先出算法是最简单和最直观的置换算法之一。
它按照页面进入内存的顺序进行置换,即最早进入内存的页面被置换出去。
这种算法的缺点是没有考虑页面的访问频率,可能会导致常用的页面被频繁置换出去。
简述虚拟存储器的工作原理
简述虚拟存储器的工作原理咱来说说这虚拟存储器呀,它就像是一个超级大魔术师!你看啊,我们的电脑或者其他设备,它的实际内存就那么大点儿,就好像是一个小房间,能放的东西有限。
但是呢,有了虚拟存储器,那就不一样啦!它可以让我们感觉好像有无限大的空间可以用呢!就好像我们本来只有一个小箱子装东西,现在突然有了一个超级大仓库,可以随便往里放。
虚拟存储器会在我们需要的时候,把数据从硬盘之类的地方调出来,就像是从仓库里把东西拿出来放到小箱子里,让我们能随时使用。
你想想,要是没有它,那我们用电脑的时候,稍微多开几个程序或者文件,可能就不行啦,会提示内存不足啥的,多烦人呀!但是有了虚拟存储器这个神奇的东西,就不用担心啦。
它就像是给我们的设备开了个外挂一样,让我们可以自由自在地在数字世界里遨游。
不用老是担心空间不够,只管尽情地去探索、去尝试各种新的东西。
比如说,你正在玩一个超好玩的游戏,玩得正嗨呢,突然提示内存不足,那得多扫兴呀!但是有了虚拟存储器,这种情况就不太容易发生啦。
它会默默地在背后帮我们搞定这些问题,让我们可以毫无顾忌地享受游戏的乐趣。
再比如,你在工作的时候,需要同时打开很多文档和软件,要是没有虚拟存储器,那可能一会儿就卡得不行了。
但是有了它,一切都变得那么顺畅,工作效率也能大大提高呢!虚拟存储器不就是我们数字生活中的好帮手吗?它让我们可以更加轻松、愉快地使用各种设备,不用再为内存不够而烦恼。
这难道不是很神奇、很厉害吗?总之呢,虚拟存储器就是这么一个不可或缺的存在,它让我们的数字世界变得更加丰富多彩,更加有趣!它就像是一个默默守护我们的超级英雄,虽然我们可能平时不太会注意到它,但它一直在那里,为我们的数字生活保驾护航!你说,它是不是很棒呀?。
虚拟存储器
虚拟存储器
虚拟出一个容量极大的内存储器
01 作用
目录
02 设置
03 调整分页位置
04 使用技巧
05 相关
பைடு நூலகம்
06 替换方法
07 虚实地址
09 页式调度 011 段页式调度
目录
08 异构体系 010 段式调度 012 变换算法
虚拟存储器(Virtual Memory):在具有层次结构存储器的计算机系统中,自动实现部分装入和部分替换功能, 能从逻辑上为用户提供一个比物理贮存容量大得多,可寻址的“主存储器”。虚拟存储区的容量与物理主存大小 无关,而受限于计算机的地址结构和可用磁盘容量。根据所用的存储器映像算法,虚拟存储器管理方式主要有段 式、页式、和段页式三种。
虚拟存储器(2)单独建立一个空白分区,在该分区设置虚拟内存,其最小值设置为物理内存的1.5倍,最大值 设置为物理内存的3倍,该分区专门用来存储页面文件,不要再存放其它任何文件。
相关
虚拟存储器
virtual memory
为了给用户提供更大的随机存取空间而采用的一种存储技术。它将内存与外存结合使用,好像有一个容量极 大的内存储器,工作速度接近于主存,每位成本又与辅存相近,在整机形成多层次存储系统。
如果你的硬盘够大,那就请你打开”控制面板“中的“系统”,在“性能”选项中打开“虚拟内存”,选择 第二项:用户自己设定虚拟内存设置,指向一个较少用的硬盘,并把最大值和最小值都设定为一个固定值,大小 为物理内存的2倍左右。这样,虚拟存储器在使用硬盘时,就不用迁就其忽大忽小的差别,而将固定的空间作为虚 拟内存,加快存取速度。虚拟内存的设置最好在“磁盘碎片整理”之后进行,这样虚拟内存就分布在一个连续的、 无碎片文件的空间上,可以更好的发挥作用。
虚拟存储器
虚拟存储器☐虚拟存储器是建立在主存—辅存物理结构的基础之上,由附加的硬件装置存储管理软件虚拟存储器物理存储器不同之处常为几百~几百K字节;不同之处4、主存—cache体系中,CPU与二者都有直接的通路;而虚存中辅存一些硬件进行块的划分及主-辅间调度,所以对设计系统软件的程☐虚地址和实地址☐页式虚拟存储器☐页表(Page Table)0虚页 1虚页 2虚页 3虚页 装入 位 修 改 位 替换控制 其 他 实页号 1 3 19 6 0页 1页 2页 3页 程 序A虚存空间 1页 3页 6页 19页实存空间 页表区中程序A 的页表页表的长度等于该程序虚页数,每一虚页的状况占据页表中一个存储字,叫页表信息字。
1111 装入位为1时,表示该虚页内容已从辅存调入主存,页面有效。
“修改记录位”记录虚页内容在主存中是否被修改过,如果被修改过,则这页在主存被新页覆盖时要把修改的内容写回到虚存去。
“替换控制位:与替换策略有关,如采用LRU ,替换控制位就可以用作计数位,记录这页在主存时被CPU 调用的历史,反映这页在主存的活跃程度。
页表首地址 页表基地址寄存器时间t 1 2 3 4 5 6 7 8 9 10 实际命中次数页地址流P1 P2 P1 P5 P4 P1 P3 P4 P2 P4先进先出FIFO算法1 1 1 1* 4 4 4* 4*2 22次2 2 2 2* 1 1 1 1* 45 5 5* 3 3 3 3*调入调入命中调入替换替换替换命中替换替换最久没使用LRU 算法1 1 1 1 1* 1 1 1*2 24次2 2 2* 4 4 4* 4 4 45 5 5* 3 3 3* 3*调入调入命中调入替换命中替换命中替换命中最优替换OPT算法1 1 1 1 1 1* 3* 3* 3 35次2 2 2 2* 2 2 2 2 25* 4 4 4 4 4 4调入调入命中调入替换命中替换命中命中命中Hp = 4/10 = 0.4时间t 1 2 3 4 5 6 7 8 实际命中次数页地址流P1 P2 P3 P4 P1 P2 P3 P4先进先出FIFO算法1 1 1* 4 4 4* 3 30次2 2 2* 1 1 1* 43 3 3* 2 2 2*调入调入调入替换替换替换替换替换最久没使用LRU算法1 1 1* 4 4 4* 3 30次2 2 2* 1 1 1* 43 3 3* 2 2 2*调入调入调入替换替换替换替换替换最优替换OPT算法1 1 1 1 1* 1 1 13次2 2 2 2 2* 3* 33* 4* 4 4 4 4*调入调入调入替换命中命中替换命中。
虚拟存储和高速缓冲存储器
工作原理
虚拟存储器是由硬件和操作系统自动实现存储信息调 度和管理的。 它的工作过程包括5个步骤:
①
中央处理器访问主存的逻辑地址,以确定该信息是否存放在主存内。
②
如该信息已在主存内,则转而执行④;如果该信息不在主存内,则 检查主存中是否有空闲区,如果没有,便将某个暂时不用的调出送 往辅存,以便将这组信息调入主存。 从辅存读出所要的信息,并送到主存空闲区。
最不经常使用算法(LFU)
LFU算法认为应将一段时间内被访问次数最少的那行数 据换出。为此每行设置一个计数器。新行建立后从0开始计 数,每访问一次,被访问行的计数器加1。当需要替换时, 对这些特定行的计数器进行比较,将计数值最小的换出,同 时将这些特定行的计数器都清零。
缺点:
这种算法将计数周期限定在这些特定行两次替换之间的 间隔内,不能严格反映近期访问情况。
二级缓存
二级缓存是为了协调一级缓存与内存之间的速度。它 比一级缓存速度更慢,容量更大,主要就是做一级缓存 和内存之间数据临时交换的地方用。
三级缓存
三级缓存是为读取二级缓存后未命中的数据设计的—种 缓存。在拥有三级缓存的CPU中,只有约5%的数据需要 从内存中调用,这进一步提高了CPU的效率。
三级缓存的性能影响
虚拟存储器发展背景
主存储器通常用动态随机存储器(DRAM)实现,它的存 储容量相对比较小,速度比较快,单位容量的价格比较贵。
虚拟存储器由主存储器和联机工作的外部存储器共同组成。 外部存储器通常为磁盘存储器,它的存储容量很大,与主 存储器相比,速度很低,单位容量的价格很便宜。
由于早起计算机系统的存储容量,特别是内存容量成本非常高、容 量也很小,对于大型应用程序或多程序应用就受到了很大的限制。为 了克服这样的限制,人们就采用了虚拟存储的技术。
第8章 虚拟存储器
8.3.5 页面缓冲算法
LRU和时钟算法性能都比FIFO算法好,但需 要硬件支持,且开销较大。而页面缓冲置换 算法采用FIFO选择被置换页面,它不仅改善 了页面调度性能,而且是一种较为简单的置 换策略。
为进程分配4个物理块
走向 块1 块2 块3 块4
缺
7 7
0 1 2 0 3 0 4 2 3 0 3 7 7 7 0 0 0 1 1 2
缺 缺 缺
3 0 1 2
缺
3 4 1 2
缺
3 4 0 2
缺
从上表中可以看出,共发生了7次缺页中 断。其缺页率为7/12=58.3% 。
8.3.3 最近最久未使用置换算法 (LRU)
页号和物理块号:其定义同分页存储管理。 存在位:用于表示该页是否在主存中。 访问字段:用于记录本页在一段时间内被访 问的次数,或最近已有多长时间未被访问。 修改位:用于表示该页调入内存后是否被修 改过。 外存地址:用于指出该页在外存上的地址。
缺页中断处理
在请求分页系统中,当所访问的页不在内存 时,便产生缺页中断,请求OS将缺页调入内 存。 指针 0 替换指针 1 2 3 4 5 6 7 5 1 0 1 2 1 4 0
简单时钟置换算法流程
入口 查询指针前进一步指向下一个表目 N 页面访问位=0? Y 选择该页面淘汰 返回 置页面访问位为0
改进的时钟算法
将一个修改过的页面换出需要写磁盘,其开 销大于未修改页面。为此在改进型时钟算法 中应考虑页面修改情况。设R为访问位,U为 修改位,将页面分为以下4种类型:
8.3 页面置换算法
页面置换算法又称为页面淘汰算法,是用来 选择换出页面的算法。 研究页面置换算法要考虑:
淘汰页面范围:是全局置换还是局部置换 页面分配:确定分配给进程的物理块数,有固定 分配和可变分配 页面置换算法的选择:应有较低的页面置换频率
第八讲 虚拟存储器
【例】设页面大小为1024字,求虚地址2050对应的实地址是多少? 【解】因为2050/1024=2,即该地址位于第2页。 2050 mod 1024=2,即页内地址为2。 虚地址码为:000010 00000010。设查找页表得到对应的实页号 为n,已装入内存,则实地址(用十进制数表示)为:n×1024+2
13
15:05:23
二、地址映像的实现
a. 首先由段表基址寄存器中取出段表首地址; b. 根据段表首地址访问段表,得到虚段号对应的页表在内存中 的 首地址。 c. 根据页表首地址访问页表,判断段内虚页号对应页是否已经 装入内存 d. 如该页已经装入内存,则从页表中取出对应的实页号,和虚 地址中的页内地址相加,得到实地址。
100
101 110 111
12
10
- - -
1
0 0 0
15:05:23
5.5.4
一、概述
段页式虚拟存储器
是段式管理和页式管理的结合。将存储空间先按逻辑功 能分成段,每段又分成若干页。 虚地址=虚段号+段内虚页号+页内地址; 实地址=实页号+页内地址。 虚地址和实地址中的页内地址相同。
特点:兼有段式管理和页式管理二者的优点,但地址变换的 速度较慢。目前大多数计算机系统都采用段页式管理。 注意:段的起点不能是任意的,必须是主存中某页的起点。 页表的个数与段数相同,即每个段都有自己的页表。
•
•
2
虚拟地址(或逻辑地址)——用户编程的地址。虚拟地址 的范围称为虚拟地址空间,是程序员看到的地址空间。
物理地址(实际地址)——实际主存单元地址。
chap8 虚拟存储器
页面大小的选择
• 设系统内每个进程的平均长度为s,页面大 小为p,每个页表项需e个字节,内存大小 为m。
– 内存中的进程数为:m/s – 页面数为:m/p
– 页表项占用空间:me/p
– 每进程碎片的平均大小:p/2 – 总碎片空间为:(p/2)×(m/s)=pm/2s
– 分页系统总开销:pm/2s+me/p
18/96
具有快表的地址变换过程
• 首先通过页表查看该页是否在主存中
– 若不在主存中,则发生缺页中断
• 更新TLB,使其包含新的页表项
19/96
缺页中断处理
OS通知CPU 从磁盘读取该页 否 CPU激活I/O硬件
开始 CPU检查TLB 是
页表项在 TLB中?
该页从磁盘 传送到主存中
访问页表
主存满? 否 页表更新
34/96
缺段中断处理流程
缺段中断处理 阻塞请求进程 淘汰实段以形成合适的空闲区 N N 空闲区容量总和能否满足
内存中有合适的空闲区吗? Y
从外存读入缺段 修改段表及内存空闲区链
Y
拼接以形成合适的空闲区
唤醒请求进程
返回
35/96
缺段中断涉及的几个问题
• 内存管理:请求分段的内存管理与与分区 管理类似,采用连续内存管理方式
10/96
页表中的修改位
• 修改位用于标识该页自调入内存后是 否被修改过
• 若没被修改过,则该页被换出内存时, 不必回写到磁盘
11/96
页表项
虚拟地址 页 号 偏移量
页表项 S M A 其它控制位 外存地址 S 页面存在位 M 修改位 A 访问字段
12/96
物理块号
物理地址
8 虚拟存储器
8
三. 页式虚拟存储器
某个程序有5页(逻辑页号0~4),各页分别装入主存 不连续的页面位置,用页表记录逻辑页号及其所对 应的实主存页号,页表是由操作系统建立的. 图中 页号0, 1, 3已分配实主存空间,所以装入位为“1”.
段是利用程序的模块化性质,按照程序的逻辑结 构划分成的多个相对独立部分. 段作为独立的 逻辑单位可以被其他程序段调用,这样就形成段 间连接,产生规模较大的程序.
一般用段表来指明各段在主存中的位置,每段都 有它的名称、段起点、段长等.
段表本身也是主存储器的一个可再定位段.
4
二. 段式虚拟存储器
虚拟存储器的发展
交换(Swapping) 分区(Partition)
固定分区 动态分区
分页 分段 请求式分页(虚拟) 请求式分段(虚拟)
3
一. 虚拟存储器概述
主存—辅存层次信息传送单位和存储管理
主存—辅存层次的信息传送单位可采用几种不 同的方案:段、页、段页。
16
三. 页式虚拟存储器
地址转换举例:
虚拟地址
0010 000000000100
程序页表
0 010 1 1 001 1 2 110 1 3 000 1 4 100 1 5 000 0
存在位
110
12 位偏移
实存(主存)地址 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0
页表(慢表)在主存中的地址由页表寄 存器指出
10
三. 页式虚拟存储器
图7.14 页式虚拟存储器结构
11
虚拟存储器的实现.ppt
请求段页式
段页式虚拟存储器是段式虚拟存储器和页式虚拟存储器的结合。它把程序按逻辑单位分段以后,再把每段分成固定大小的页。主存空间也划分为若干个同样大小的页。虚存和实存之间以页为基本传送单位,每个程序对应一个段表,每段对应一个页表。虚地址包含段号、段内页号、页内地址三部分。CPU访问时,首先将段表起始地址与段号合成,得到段表地址,然后从段表中取出该段的页表起始地址,与段内页号合成,得到页表地址,最后从页表中取出实页号,与页内地址拼接形成主存实地址。
请求页式
请求段式
请求段页式
请求页式
请求分页系统是在分页存储管理方式的基础上增加了请求调页功能、页面置换功能所形成的页式虚拟存储系统。程序启动运行时装入部分用户程序页和数据页,在以后的运行过程中,访问到其他逻辑页时,再陆续将所需的页调入内存。请求调页和置换时,需要页表机构、缺页中断机构、地址变换机构等软硬件支持。
为什么要采用虚拟存储器技术?
常规的存储器的管理方式具有一个共同特点,即要求将一个作业全部装入内存后才能运行,所以出现了以下两个问题 1.作业过大,所需内存空间超过内存总容量,作业不能完全装入内存,致使该作业无法运行 2.有大量作业要求运行,内存容量不足以容纳所有这些作业,只能将少数作业装入内存让他们先运行,有大量作业留在外存上等待。
特点
段页式虚拟存储器综合了页式和段式的优点,但是由于在由虚地址向主存地址的映射过程中需要多次查表,因而实现复杂度较高.
Thank You!
内存不足
物理扩充
逻辑扩充
虚拟存储器定义
虚拟存储器是指具有请求调入功能和置换功能,能从逻辑上对内存容量加以扩充的一种存储器系统。 其逻辑容量由内存容量和外存容量之和所决定,其运行速度接近于内存,而每位的成本又接近于外存。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
缺页率:缺页次数与进程页面总数的比值。
2. 页面置换算法
7 0 0 7 7 1 1 0 7 2 2 1 0 0 0 2 1 3 3 0 2 0 0 3 2 4 4 0 3 2 2 4 0 3 3 2 4 0 0 3 2 3 3 0 2 2 2 3 0 1 1 2 3 2 2 1 3 0 0 2 1 7 0 7 0 2 0 7 2 1 1 7 0
8.2 请求分页的存储器系统
(2)缺页中断机构
产生和处理缺页中断的机构。
缺页中断与一般中断的区别:
在指令执行期间产生和处理中断信号 一条指令执行期间可能产生多次缺页中断 6 5 4 3 2 1
B:
A:
COPY A TO B
8.2 请求分页的存储器系统
地址变换 在基本分页系统的地址变换机构的基础上增加了 产生和处理缺页中断的功能。 过程如图所示:
2. 页面置换算法
最佳置换算法(OPT)
最近未使用置换算法(NRU) 先进先出置换算法(FIFO) 二次机会置换算法 时钟页面置换算法(CLOCK)
最近最久未使用置换算法(LRU)
改进型Clock(近似LRU)算法
2. 页面置换算法
(1)最佳置换算法(OPT) 该算法是Belady在1966年提出的一种理论上的算 法。为保证缺页率最低,选择永久不使用,或在 最长时间内将不再被访问的页面淘汰。 这种算法在实际中一般很难实现。
例:假设分配给某进程的页架数为3,采用请 求调页方式,采用最佳置换算法,求下列页 面执行序列的缺页率。
7,0,1,2,0,3,0,4,2,3,0,3,2,1,2,0,1,1,7,0,1
2. 页面置换算法
(2)最近未使用置换算法(NRU) 淘汰最近未使用的页面,而且最好是未被修改的 页面。即淘汰的页面最好是访问位和修改位同 时为零的页面。 为了避免系统中所有的页面的访问位和修改位可 能都为“1”的情况,系统周期性地将主存中页 面的访问位清“0”。
2. 页面置换算法
(3)先进先出置换算法(FIFO) 淘汰页面时,选择最先进入的页面。 缺点:该算法只是在按线性顺序访问地址空间时 才具有较高的效率,否则可能出现抖动现象。 例:假设分配给某进程的页架数为3,采用请求 调页方式,页面置换算法用FIFO,求下列页 面执行序列的缺页率。
7,0,1,2,0,3,0,4,2,3,0,3,2,1,2,0,1,1,7,0,1
第八章
虚拟存储器管理
基本概念 请求分页的存储器系统 页面置换算法 请求分段的存储器系统
8.1 基本概念
1.虚拟存储器的引入 (1)局部性原理 时间的局部性 空间的局部性 (2)定义 把作业的一部分装入内存就可运行的存储器系统是虚拟 存储器系统。 虚拟存储器系统是指能从逻辑上对内存容量进行扩充, 并具有请求调入和置换功能的一种存储器系统。
空闲页面链表也称为页缓冲技术。
4.空闲页面链表
特点:
空闲页面链表的规模应适当保持(最大、最小页架数) 空闲链表中的页面并非真正“空闲”,空闲是指可分
配的含义 在进行页面置换时不需移动主存中的页面的内容,只 是把页表目从页表移入页面链表,或相反。 通常由一个专用的进程来负责页面的替换工作
2. 页面置换算法
(6)最近最久未使用(LRU)算法
原理 根据页面在内存中的使用情况,选择最近最久未使用 的页面予以淘汰。即以“最近的过去”预测“最近的将 来”。 硬件LRU法 1)寄存器 需为内存中的每一页配置一移位寄存器,用来记录各页 在内存中的使用情况。假设N位寄存器的表示形式为: R= Rn-1Rn-2Rn-3…R2R1R0
开始
是
页号≥页表长? 保存CPU现场
越界中断
是
否
该页在快表 中?
从外存中找到缺页
否
访问页表
否
读缺页
内存满否?
否
该页在内存否?
是
换页处理
是
修改快表
换缺页入内存
否
该页被修改否? 修改A和M
修改页表
是
将该页写回外存 形成物理地址
结束
8.2 请求分页的存储器系统
(3)MMU MMU是内核主存管理子系统依赖的低层硬件, 主要任务完成虚地址到物理地址的转换,包括: 管理硬件的页表基址寄存器 将虚地址分为虚页号和页内位移 页面失效处理 设置页表中相应的访问位、修改位、检查有效 位和保护权限
缺页率=13/20=65%
3)矩阵实现的LRU算法(参考教材P185~186) LRU算法虽然能够实现,但需要增加成本和开销。
2. 页面置换算法
(7)改进型Clock(近似LRU)算法 原理 为内存中所有的页面设置一访问位和一修改位,置初 值为0,并将这些页通过指针链接成循环队列。在选择 淘汰页时,尽量选择那些访问位和修改位都0的页面, 如果没有这样的页面,再考虑访问位为0,而修改为1 的页面做为淘汰页。 由访问位A和修改位M组成的页面类型有: 第一类页面:A=0,M=0; 第二类页面:A=0,M=1; 第三类页面:A=1,M=0; 第四类页面:A=1,M=1。
注:虚拟性是以多次性和对换性为基础。
5.1 基本概念
2. 虚拟存储器的实现方法 请求分页的存储器管理系统 请求分段的存储器管理系统 段页式的虚存管理系统 3.虚拟存储器的特征 离散性 多次性:作业被分成多次装入内存。 对换性 虚拟性:从逻辑上扩充内存容量。
5.1 基本概念
2. 页面置换算法
实现原理:当进程访问某物理块时,就将相应寄 存器的Rn-1位置1,各寄存器根据系统时钟, 每隔一定时间右移一位,各寄存器所中表示值 最小的那个页面将是下一个被淘汰的页面。
Rn-1 Rn-2 访问页1 页1 页2 0 1 0 0 1 1 1 0 0 0 0 0 0
1
0
0 0
0 0
3. 工作集
一个进程在t时刻的工作集: w(t, △)={t- △时刻到t时刻之间的页面集合}
1 633789162 3 434344434 43… △ △
t1时刻的工作集w(t1, △) ={1,2,3,6,7,8,9}
t2时刻的工作集w(t2, △) ={3,4}
4.空闲页面链表
原理: 在系统中维持一个空闲页面链表,当运行进程需 要空闲页架时直接从该链表中分配空闲页架给 当前请求的进程,并不断地按照某种页面置换 算法向空闲页面链表中加入可用页面。 空闲页面链表中空闲页面的一般排序是:终止进 程的数据和堆栈页面排在链的最前面,其后是 置换出来的可用页面。
页面淘汰过程
开始
第一次扫描循环队列 扫 描 下 一 个 页 扫 描 下 一 个 页
有A=0,M=0的页面?
有
有A=0,M=1的页面?
有 无
置A=0
无
否
扫描完否?
淘汰该页
完
第二轮扫描循环队列
调入新页结束 扫描完否?
否
完
页面置换算法实现目标:不发生抖动现象,缺页 率正常。
3. 工作集
(1)概念 一个运行进程在t- △到t时间间隔内所访问的页面 集合称为该进程在时间t的工作集,记为w(t, △)。 其中, △为“工作集的窗口尺寸”,工作集中所 包含的页面数称为“工作集尺寸”, 记w(t, △) 为 。 工作集是 t和△的函数:
(3)页面分配方法 平均分配:每个进程分配的物理块数相同 按比例分配:按进程页面数的多少进行分配
s
si
i 1
n
注:m为系统可用物理块数 si为每个进程的页面数 bi为每个进程分配的物理块数
si bi *m s
考虑优先权分配
8.2 请求分页的存储器系统
3.页面调入策略 (1)调入页面的时机
访问页1后右移一位: 页1
0
0 1
0
1
0
0
0
0
淘汰页2
页2 0
0ቤተ መጻሕፍቲ ባይዱ
1
1
0
0
0
0
2. 页面置换算法
2)栈实现的LRU法
存放当前使用的各页面的页号。
实现原理:当进程访问某页时,就将该页的页号 从栈底移出压入栈顶,或将新访问的页号压入栈 顶。处于栈底的就是最近最久未使用的页面号。 例:假设某进程的页面引用顺序为:7,0,1,2, 0,3,0,4,2,3,0,3,2,1,2,0,1, 7,0,1。假设系统分配给该进程的物理块为3, 并采用请求调页策略,则栈的变化情况如下图所 示:
空闲页面链表的作用: 提高缺页时的系统处理效率,提高进程的执行速 度。
5.交换区
在请求分页的存储器管理系统中,从内存淘汰出来的页面 存放在外存的交换区。 当交换区中的页面再次被访问时,内核页面失效处理函数 从交换区中读出。 为了记录所有被换出页面在交换区中的位置,需要设置一 交换区映射表。(交换区映射表驻留内核主存区) 交换区中一般存放淘汰的数据页面和堆栈页面,进程的正 文页面可以通过文件系统,从执行文件中得到。
2. 页面置换算法
(4)二次机会置换算法 该算法是 FIFO算法的一种改进。淘汰时, 首先检查FIFO链首页面的访问位,如果 为“0”,则立即淘汰,如果为“1”,则 将其移到当前FIFO链的链尾,再检查新 的链首页面,直到找到一个访问为“0” 的链首页面。
2. 页面置换算法
(5)时钟页面置换算法 将二次机会置换算法中的FIFO链组织成一个环 状队列,设一指针指向当前最老的页面。当产 生缺页中断时,如果指针所指向的页面的访问 位为“0”,则淘汰,将新调入的页面插入到指 针指向的位置,指针前移; 如果访问位为“1”,则将其清“0”, 指针前移,直到找到一个访问位 为“0”的页面。
1.请求分页的硬件支持 (1)页表、快表和反向页表
页表项 内容: