请求分页管理方式实现虚拟内存
操作系统的内存分页和虚拟内存实现内存的分页和虚拟内存的管理
操作系统的内存分页和虚拟内存实现内存的分页和虚拟内存的管理操作系统中的内存管理是计算机系统中至关重要的一部分。
在大部分计算机系统中,内存被划分为一系列连续的内存块,用于存储正在执行的程序、数据和系统内核。
然而,由于内存容量的限制和多任务操作系统的需要,操作系统需要采取一些技术来实现内存的分页和虚拟内存的管理。
本文将介绍操作系统中内存分页和虚拟内存的实现原理和管理方法。
一、内存分页的实现内存分页是操作系统中一种常见的内存管理技术。
它将物理内存和逻辑内存划分为固定大小的块,称为页。
每个页的大小通常为2的幂,例如4KB或8KB。
当程序加载到内存时,它会被分割成与页大小相匹配的若干页,每个页都被映射到内存中的一个页帧。
这种方式可以提高内存的利用率,减少碎片化问题。
在内存分页的实现中,操作系统会维护一个页表来跟踪每个页的映射情况。
页表中的每个表项包含了页号和页帧号的对应关系。
当程序需要访问一个逻辑地址时,操作系统先通过页表查找对应的页帧号,然后将逻辑地址转换为物理地址,最后将数据加载到内存中。
内存分页的实现需要支持页表的生成和维护,还需要处理内存地址的转换和访问权限的控制。
操作系统通常会使用硬件中的内存管理单元(MMU)来加速地址转换的过程。
MMU可以通过页表的基址寄存器和逻辑地址的偏移量,直接计算出物理地址,提高地址转换的效率。
二、虚拟内存的实现虚拟内存是一种在物理内存不足的情况下,将部分数据存储到磁盘上的技术。
它为每个进程提供了独立的地址空间,使得每个进程感觉自己独占了整个内存空间。
当进程访问虚拟内存中的数据时,操作系统会根据需求将数据从磁盘加载到内存中。
虚拟内存的实现依赖于操作系统中的内存管理单元(MMU)和页面置换算法。
当进程访问一个未加载到内存中的页时,MMU会触发缺页异常,操作系统需要根据页面置换算法来选择一些页将其从内存中换出,腾出空间来加载新的页。
常见的页面置换算法包括最佳置换算法(OPT)、先进先出置换算法(FIFO)、最近最久未使用置换算法(LRU)等。
基本分页存储管理方式和虚拟存储方式
基本分页存储管理方式和虚拟存储方式
基本分页存储管理方式是一种将主存储器划分为固定大小的页框和相同大小的页的方法。
程序在执行时被划分为固定大小的页,而主存储器划分为相同大小的页框。
当程序执行需要的某个页时,该页从辅助存储器加载到一个空闲的页框中,程序就可以继续执行。
虚拟存储方式是一种将程序按逻辑地址划分为多个大小固定的逻辑块,而主存储器被划分为固定大小的块。
逻辑块的大小可以不同于物理块的大小。
当程序执行需要的某个逻辑块时,该块可以从辅助存储器加载到主存储器中的任意一个空闲块中。
区别:
1.分页方式划分的是主存储器中的页框和程序的页,而虚拟存储方式划分的是主存储器中的块和程序的逻辑块。
2.分页方式中,页的大小是固定的,而虚拟存储方式中,逻辑块的大小可以不同于物理块的大小。
3.分页方式中,程序执行时需要的页会被加载到主存储器中的任意一个空闲页框中,而虚拟存储方式中,逻辑块会被加载到主存储器中的任意一个空闲块中。
综上所述,基本分页存储管理方式和虚拟存储方式都是一种将程序按组块管理的方法,但在具体的实现细节和块的大小上有所不同。
试述请求段式虚拟存储管理的实现原理
试述请求段式虚拟存储管理的实现原理1. 前言虚拟内存是计算机系统中的重要概念之一。
它可以让程序使用的内存空间超过实际物理内存大小,从而提高系统的运行效率。
对于请求段式虚拟存储管理,其实现原理主要包括以下几个方面:分段机制、请求分页和页面置换算法。
本文将对这些方面逐一进行详细解释,并阐述它们的原理和实现过程。
2. 分段机制在请求段式虚拟存储管理中,物理内存和逻辑内存都被分成若干个段。
每个段都有自己的地址空间和大小。
逻辑地址是由一对<段号,段内偏移地址>表示的。
当一个程序需要访问内存时,它会先把逻辑地址转化为物理地址。
转化过程需要通过查找与逻辑地址中的段号相对应的段表来完成。
段表是一个二维数组,它记录了每个段在物理内存中的起始地址和大小等信息。
当程序需要访问某个段时,操作系统会根据该段的段号查找对应的段表项,然后根据该表项中记录的物理地址和段内偏移地址计算出对应的物理地址,以进行访问。
3. 请求分页分段机制虽然能够有效提高内存的利用率和灵活性,但它也存在一些问题。
例如,当程序需要连续的存储空间时,由于分段大小的限制,可能会导致一些内存空间无法利用。
此外,分段机制也容易导致碎片问题,从而影响内存的利用效率。
为了解决这些问题,分段机制被分配为大块的内存,然而这种处理方式仍然不能最大化的利用内存。
为了进一步解决这个问题,一个名为请求分页(demand paging)的技术被开发出来。
请求分页技术基于分页机制,它把逻辑地址空间和物理地址空间都分成大小相等的块,称为页面。
每个页面有自己的页号和偏移地址。
当程序需要访问一个页面时,它只需要知道该页面的页号和页面内的偏移地址。
操作系统则根据该页号查找对应的页表项,从而得到该页面在物理内存中的地址。
4. 页面置换算法请求分页技术虽然可以极大地提高内存利用效率,但它也会引起一些新的问题。
例如,当程序需要访问的页面不在物理内存中时,需要从磁盘中将其读入物理内存中。
虚拟存储器的实现方法
虚拟存储器的实现方法
虚拟存储器是操作系统中的一个重要概念,用于扩展计算机的物理内存。
虚拟存储器的实现方法可以基于以下几种技术:
1. 分页机制:将物理内存和虚拟内存划分为固定大小的页,并将虚拟内存中的页面映射到物理内存中的页。
通过页面替换算法(如最近最久未使用算法)将虚拟内存中的页面从磁盘中加载到物理内存中的空闲页面,从而实现虚拟内存的扩展。
2. 分段机制:将程序按照逻辑结构划分为不同的段,每个段有不同的长度,可以动态地加载到物理内存中。
通过段表将虚拟内存中的段映射到物理内存中的段,并根据需要进行加载和替换。
3. 页面置换算法:虚拟存储器在物理内存空间不足时,需要选择一些页面置换出物理内存,从而将新的页面加载进来。
常见的页面置换算法包括FIFO(先进先出)、LRU(最近最久未
使用)、LFU(最不经常使用)等。
4. 页面回写机制:当页面被替换出物理内存时,如果其中的数据已被修改,需要将数据回写到磁盘中,以保持数据的一致性。
5. 页面预调度机制:根据程序运行的局部性原理,预测将来可能访问的页面,并提前将这些页面加载到物理内存中,减少缺页异常的发生。
需要注意的是,虚拟存储器的实现方法是操作系统的核心功能
之一,具体的实现方式会受到硬件架构、操作系统设计等多个因素的影响。
不同的操作系统可能会采用不同的实现方法来满足自身的需求。
简述请求分页存储管理方式
简述请求分页存储管理方式请求分页存储管理方式是一种非常实用的存储管理方式,它可以将大量数据分成多页存储,从而增加系统的可扩展性和可维护性。
本文将分步骤阐述请求分页存储管理方式的实现过程。
1. 设计数据库表结构首先,我们需要设计出适合分页存储的数据库表结构。
通常,我们需要将数据表按照某种规则分成多个页面,每个页面中包含相同数量的数据。
例如,如果需要将1000条数据分成10页,那么每个页面应该包含100条数据。
2. 编写查询语句在设计好数据库结构之后,我们需要编写查询语句来查询数据并将其分页。
我们可以使用LIMIT关键字来限制查询结果的数量,并使用OFFSET关键字来指定从哪个位置开始查询。
例如,如果需要查询第2页的数据,那么我们可以使用以下SQL语句:SELECT * FROM table_name LIMIT 100 OFFSET 100;这将返回第101到第200条数据。
3. 编写分页控件分页控件是实现分页存储的重要组成部分。
它通常包含一个页面选择器和一个数据显示区域。
我们可以使用JavaScript和CSS来创建翻页效果和样式。
例如,我们可以使用以下代码创建一个简单的页面选择器:```<div class="pagination"><a href="#">1</a><a href="#">2</a><a href="#">3</a><a href="#">4</a><a href="#">5</a></div>```4. 实现异步加载异步加载是将页面动态加载到用户界面中的一种技术。
它可以大大提高页面加载速度和用户体验。
我们可以使用AJAX等技术来实现异步加载。
虚拟存储器的工作原理
虚拟存储器的工作原理
虚拟存储器是一种计算机内存管理技术,它通过将应用程序所需的数据和指令分为多个页面(或称为块或帧)来实现。
虚拟存储器的工作原理包括以下几个步骤:
1. 分页:将应用程序的内存划分为固定大小的页面,通常为
4KB或8KB。
每个页面都有一个唯一的页面编号。
2. 页面映射:将每个页面映射到物理内存的一个帧(或页框),帧的大小与页面大小相同。
这个映射关系被记录在页表中,页表保存在主存储器中。
3. 页面调度:当应用程序需要访问内存中的某个页面时,先检查页表。
如果该页面已经在物理内存中,则直接访问对应的物理地址;如果该页面不在物理内存中,则发生页面错误(缺页错误)。
4. 页面置换:当发生页面错误时,操作系统需要选择一个页面来替换出去,以腾出空间来加载所需的页面。
常见的页面置换算法有最近最少使用(LRU)和先进先出(FIFO)。
5. 页面加载:一旦选择了要换出的页面,操作系统会从外部存储(如硬盘)中加载所需的页面,并更新页表中的映射关系。
6. 页面更新:当应用程序对页面进行写操作时,会先将数据写入缓存页面(缓冲区),然后再由操作系统将缓存页面写回到
外部存储。
虚拟存储器的工作原理使得应用程序能够访问比物理内存更大的内存空间,而且不需要将所有数据一次性加载到内存中。
这种分页和页面调度的技术可以提高程序的整体性能,并且允许多个应用程序同时运行,因为它们不会相互干扰彼此的内存空间。
简述实现虚拟存储器的基本原理
简述实现虚拟存储器的基本原理虚拟存储器是计算机系统中一种技术,可以将物理内存和磁盘空间组合使用,使得计算机系统可以处理大型程序和数据集。
它的基本原理是将物理内存中未使用或频繁不用的部分换出到磁盘中,以增加可用物理内存空间。
当程序需要这些数据时,虚拟存储器会将其换入物理内存。
下面将介绍实现虚拟存储器的基本原理。
一、分段和分页实现虚拟存储器的首要任务是对物理内存和磁盘空间进行分割,以便于管理。
分段和分页是两种基本的内存管理技术。
分页将物理内存空间划分为固定大小的块,称为页面,而分段则将内存空间分为不同段,每个段具有不同的长度和属性。
虚拟存储器的实现通常采用分页技术,因为它可以更好地利用内存空间。
二、页面交换在虚拟存储器中,磁盘空间被称为页面文件,操作系统会将物理内存中的页面换出到页面文件中,以空出空间。
当程序需要访问这些页面时,操作系统会将页面从磁盘中换入到物理内存中。
这个过程被称为页面交换。
页面交换的首要目的是增加可用的物理内存空间。
每个程序使用的内存不能超过物理内存的大小,因此,操作系统必须决定哪些页面需要换出,以便于后续的访问。
三、页面置换算法在虚拟存储器中,操作系统必须确定哪些页面需要换出,并决定哪些页面需要换入,这个过程是页面置换算法。
页面置换算法的目的是将频繁不用或未使用的页面换出到磁盘中,以便于释放物理内存空间。
常见的页面置换算法有FIFO、LRU和钟表算法,它们各自有不同的实现细节和效率。
FIFO算法通过维护一个页面队列来确定需要换出的页面,LRU算法则使用页面访问时间来确定页面的访问频率。
钟表算法可以更好地处理循环访问问题。
四、页面保护机制虚拟存储器还需要有页面保护机制,以确保程序之间的内存不受到互相干扰。
页面保护机制需要暴露页面是否可以被访问的信息,以及访问权限是否正确。
当程序访问一个页面时,操作系统会检查该页面是否被保护,以及访问权限是否正确。
如果访问权限不正确,操作系统会产生一个异常,以防止程序继续访问这个页面。
请求分页存储管理设计
实验八请求分页存储管理设计一、虚拟存储器的相关知识:1.概述:虚拟存储器(Virtual Memory):在具有层次结构存储器的计算机系统中,自动实现部分装入和部分替换功能,能从逻辑上为用户提供一个比物理贮存容量大得多,可寻址的“主存储器”。
虚拟存储区的容量与物理主存大小无关,而受限于计算机的地址结构和可用磁盘容量。
作用:虚拟内存的作用内存在计算机中的作用很大,电脑中所有运行的程序都需要经过内存来执行,如果执行的程序很大或很多,就会导致内存消耗殆尽。
为了解决这个问题,Windows中运用了虚拟内存技术,即拿出一部分硬盘空间来充当内存使用,当内存占用完时,电脑就会自动调用硬盘来充当内存,以缓解内存的紧张。
举一个例子来说,如果电脑只有128MB物理内存的话,当读取一个容量为200MB的文件时,就必须要用到比较大的虚拟内存,文件被内存读取之后就会先储存到虚拟内存,等待内存把文件全部储存到虚拟内存之后,跟着就会把虚拟内存里储存的文件释放到原来的安装目录里了。
下面,就让我们一起来看看如何对虚拟内存进行设置吧。
2.请求分页虚拟存储系统是将作业信息的副本存放在磁盘这一类辅助存储器中,当作业被调度投入运行时,并不把作业的程序和数据全部装入主存,而仅仅装入立即使用的那些页面,至少要将作业的第一页信息装入主存,在执行过程中访问到不在主存的页面时,再把它们动态地装入。
用得较多的分页式虚拟存储管理是请求分页(demand paging),当需要执行某条指令或使用某个数据,而发现它们并不在主存时,产生一个缺页中断,系统从辅存中把该指令或数据所在的页面调入内存。
3.替换算法:替换规则用来确定替换主存中哪一部分,以便腾空部分主存,存放来自辅存要调入的那部分内容。
常见的替换算法有4种。
随机算法用软件或硬件随机数产生器确定替换的页面。
先进先出先调入主存的页面先替换。
近期最少使用算法替换最长时间不用的页面。
最优算法替换最长时间以后才使用的页面。
虚拟内存原理
虚拟内存原理虚拟内存是计算机系统中的重要概念,它通过将硬盘空间作为临时内存使用,从而扩大了计算机的内存容量。
虚拟内存的原理涉及到页面置换、页面错误处理等多个方面,下面我们将逐一介绍虚拟内存的原理和相关知识。
首先,虚拟内存的原理基于计算机系统中的分页管理机制。
在分页管理中,物理内存被分割成固定大小的页面,而虚拟内存也被分割成同样大小的页面。
当程序需要访问内存时,操作系统会将虚拟地址转换成物理地址,如果所需的页面不在物理内存中,就会发生页面错误。
页面错误是虚拟内存原理中一个重要的概念。
当程序访问的页面不在物理内存中时,操作系统会将页面从硬盘加载到内存中,并更新页表。
这个过程可能会导致其他页面被置换出内存,这就是页面置换的过程。
页面置换算法有很多种,例如最佳置换算法、先进先出算法、最近最久未使用算法等,它们的目标都是尽可能减少页面错误率。
虚拟内存的另一个重要原理是页面置换算法的选择。
不同的页面置换算法会对系统的性能产生不同的影响。
例如,最佳置换算法可以保证最低的页面错误率,但是实现起来比较复杂;而先进先出算法则比较简单,但是可能会导致“负载倾斜”现象。
因此,选择合适的页面置换算法对系统性能至关重要。
除了页面置换算法,虚拟内存还涉及到页面替换策略、页面置换的时机等多个方面。
不同的操作系统对虚拟内存的实现也有所不同,例如Windows系统和Linux系统对虚拟内存的管理方式就有所区别。
总之,虚拟内存原理涉及到分页管理、页面错误处理、页面置换算法等多个方面,它是计算机系统中一个非常重要的概念。
了解虚拟内存的原理不仅可以帮助我们更好地理解计算机系统的工作原理,还可以帮助我们优化程序性能,提高系统稳定性。
希望本文对你有所帮助,谢谢阅读!。
基本分页和请求分页内存管理方式
基本分页和请求分页内存管理方式下载提示:该文档是本店铺精心编制而成的,希望大家下载后,能够帮助大家解决实际问题。
基本分页和请求分页内存管理方式该文档下载后可定制修改,请根据实际需要进行调整和使用,谢谢!本店铺为大家提供各种类型的实用资料,如教育随笔、日记赏析、句子摘抄、古诗大全、经典美文、话题作文、工作总结、词语解析、文案摘录、其他资料等等,想了解不同资料格式和写法,敬请关注!Download tips: This document is carefully compiled by this editor. I hope that after you download it, it can help you solve practical problems. The document 基本分页和请求分页内存管理方式 can be customized and modified after downloading, please adjust and use it according to actual needs, thank you! In addition, this shop provides you with various types of practical materials, such as educational essays, diary appreciation, sentence excerpts, ancient poems, classic articles, topic composition, work summary,word parsing, copy excerpts, other materials and so on, want to know different data formats and writing methods, please pay attention!基本分页和请求分页是计算机内存管理中常用的两种方式,用于控制内存的分配和释放,以提高系统的性能和效率。
分页式虚拟内存管理及Linux实现
分页式虚拟内存管理及Linux实现摘要:本文分析了操作系统的页式虚拟存储管理机制,并结合当前支持多平台的Linux操作系统,根据其中虚拟存储的特点,详细分析了在Linux系统下的页式内存虚拟实现,重点指出了Linux所独特的具体实现过程,其中包括请页机制,物理内存分配与回收和交换机制等。
关键词:内存;分页;虚拟;Linux现代大多数计算机操作系统由于内存空间的限制,都采用了虚拟内存空间管理的方法。
虚拟存储管理器通过在辅存中建立一个虚拟地址空间,提供了一个物理存储器的抽象,并且在任意时刻“自动地”确定哪部分地址空间被加载在内存中,系统处理在内存和辅存之间地址空间块的来回传送,而无须人工干预。
现在大部分的虚拟内存系统都采用了分页式虚拟内存管理。
提高其管理性能可增强计算机的运行速率和工作效率。
本文即介绍分页式虚拟内存管理的过程并结合Linux操作系统介绍其实现。
一、实现过程1、地址转换。
在分页式虚拟内存管理系统中,虚拟地址空间划分成许多页,页是一段连续的虚拟地址空间。
相应的,物理内存空间也划分成多个页帧。
页和页帧的大小是相同的,一个页可以映射到一个页帧。
页表项(Page Table Entry,PTE)包含有与主存中的页相对应的帧号,对应的页是否在主存中的存在位(P),页的内容从上次装入至今是否改变的修改位(M)。
图示如下:为了将逻辑地址转换成物理地址,系统中必须设置地址变换机构。
但是现在计算机使用的虚拟地址一般是32位的,而且每次访问内存都要进行地址转换,这将严重影响系统效率。
现实中使用TLB(Translation Lookaside Buffer)以及三级页表等解决上述问题。
2、请求页面调度。
虚拟内存管理中,进程驻留在次级存储器。
当访问到某页中的一个单元时才将该页取入内存。
当一个进程第一次启动时,会出现大量的页错误,当越来越多的页被取入内存时,根据局部性原理,在一段时间后错误会逐渐平息下来,页错误的数目会降的很低。
请求分页,请求分段段表机制和请求分配过程
请求分页,请求分段段表机制和请求分配过程【最新版】目录1.请求分页的概念与作用2.请求分段段表机制的原理与实现3.请求分配过程的流程与方法正文一、请求分页的概念与作用在计算机系统中,请求分页是一种内存管理技术,用于将虚拟内存划分为固定大小的块,以提高内存的利用率。
请求分页是操作系统用来管理虚拟内存的一种机制,它允许进程访问比物理内存更大的地址空间。
当进程需要访问一个不在物理内存中的地址时,操作系统会将这个地址转换成物理内存中的一个地址,然后访问该地址。
这个过程中,操作系统会使用请求分页机制来管理虚拟内存和物理内存之间的映射关系。
请求分页技术的作用主要体现在以下几点:1.提高内存利用率:通过将虚拟内存划分为固定大小的块,可以减少内存碎片的产生,从而提高内存的利用率。
2.简化内存管理:请求分页机制将虚拟内存和物理内存之间的映射关系交给操作系统来管理,从而简化了程序员的内存管理操作。
3.支持大内存访问:请求分页机制允许进程访问比物理内存更大的地址空间,为程序员提供了更大的编程空间。
二、请求分段段表机制的原理与实现请求分段段表机制是请求分页机制的重要组成部分,它负责维护虚拟内存和物理内存之间的映射关系。
请求分段段表机制的原理如下:1.建立段表:操作系统将虚拟内存划分为大小相等的块,称为页框,同时建立一个段表,用来记录每个页框的状态信息,如页框是否已被分配、页框中的数据是否已被修改等。
2.页表项:每个进程都有一个对应的页表,页表中包含多个页表项,每个页表项对应一个页框。
页表项中包含物理内存地址、页框状态信息等。
3.地址转换:当进程需要访问一个虚拟地址时,操作系统会将虚拟地址转换成物理地址。
这个过程中,操作系统会根据请求分段段表机制来查找对应的页表项,然后根据页表项中的物理内存地址进行访问。
请求分段段表机制的实现主要包括以下几个步骤:1.创建页表:操作系统创建一个页表,用来记录每个页框的状态信息。
2.填充页表:操作系统将虚拟内存划分为大小相等的块,并将这些块的状态信息填充到页表中。
操作系统课程设计-虚拟页式存储管理系统的实现
课程设计课程设计名称:计算机操作系统专业班级:计算机科学与技术学生姓名:学号:指导教师:课程设计时间:操作系统专业课程设计任务书说明:本表由指导教师填写,由教研室主任审核后下达给选题学生,装订在设计(论文)首页目录一、设计目的为了掌握Linux环境下常用编译工具如gcc/g++/nasm及开源虚拟机bochs 的下载、安装、使用,掌握x86架构下分页式存储管理系统的基本原理,设计一个请求分页式虚拟存储系统。
掌握Linux系统下程序的编写及运行等方面展开实验。
二、设计要求2.1要求熟练掌握sudo apt-get install的用法。
2.2要求能够掌握分页存储管理系统的基本原理。
2.3要求学会在Linux系统下编写程序、执行程序。
三、设计内容3.1运行环境3.1.1虚拟机系统下3.1.2使用Ubuntu下提供的apt-get软件包安装工具安装vim、 g++ 、nasm 、bochs等3.2 2.详细设计1)回顾虚拟页式存储系统:作业分页,内存分块,只有当进程要使请认真阅读readme.txt文件,弄清楚各个文件的作用2)用其虚拟内存时,其对应的数据才装入物理内存。
3)完成frame_pool.H 、frame_pool.C 、page_table.C三个文件,其中page_table.H已经提供,我们需要添加page_table.C,自己设计并实现这些函数。
4)在frame_pool.H定义所需要的数据结构,在frame_pool.C完成这些函数。
添加代码如下所示:class FramePool {private: unsigned long base_frame_no; unsigned long nframes;unsigned long info_frame_no; unsigned char* free_frames;public:static const unsigned char USED -1;static const unsigned char UNUSED -0;static const unsigned int FRAME_SIZE -4096;public:FramePool(unsigned long _base_frame_no,unsigned long_nframes,unsigned long _info_frame_no);5)建立Frame_pool.C文件系统中使用位示图bitmap标识页面是否使用,start_frame表示第一个页面的起始地址(如系统内存池从2M开始),pool_size表示在用户池中页框的总数(如系统内存池的页框从2M~4M,因此共有(4M-2M)/4KB=512个页框)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
缺页中断机构在请求分页系统中,每当所要访问的页面不在内存时,便产生一个缺页中断,请求操作系统将所缺的页调入内存。此时应将缺页的进程阻塞(调页完成唤醒),如果内存中有空闲块,则分配一个块,将要调入的页装入该块,并修改页表中相应页表项,若此时内存中没有空闲块,则要淘汰某页(若被淘汰页在内存期间被修改过,则要将其写回外存)。
请求分页中的地址变换过程
在进行地址变换时,先检索快表:
若找到要访问的页,便修改页表项中的访问位(写指令则还须重置修改位),然后利用页表项中给出的物理块号和页内地址形成物理地址。
若未找到该页的页表项,应到内存中去查找页表,再对比页表项中的状态位P,看该页是否已调入内存,未调入则产生缺页中断,请求从外存把该页调入内存。
为了实现请求分页,系统必须提供一定的硬件支持。除了需要一定容量的内存及外存的计算机系统,还需要有页表机制、缺页中断机构和地址变换机构。页表机制请求分页系统的页表机制不同于基本分页系统,请求分页系统在一个作业运行之前不要求全部一次性调入内存,因此在作业的运行过程中,必然会出现要访问的页面不在内存的情况,如何发现和处理这种情况是请求分页系统必须解决的两个基本问题。为此,在请求页表项中增加了四个字段.
请求分页系统建立在基本分页系统基础之上,为了支持虚拟存储器功能而增加了请求调页功能和页面置换功能。请求分页是目前最常用的一种实现虚拟存储器的方法。
在请求分页系统中,只要求将当前需要的一部分页面装入内存,便可以启动作业运行。在作业执行过程中,当所要访问的页面不在内存时,再通过调页功能将其调入,同时还可以通过置换功能将暂时不用的页面换出到外存上,以便腾出内存空间。
请求分页系统中的页表项
增加的四个字段说明如下:
状态位P:用于指示该页是否已调入内存,供程序访问时参考。
访问字段A:用于记录本页在一段时间内被访问的次数,或记录本页最近己有多长时间未被访问,供置换算法换出页面时参考。
修改位M:标识该页在调入内存后是否被修改过。
缺页中断作为中断同样要经历,诸如保护CPU环境、分析中断原因、转入缺页Байду номын сангаас断处理程序、恢复CPU环境等几个步骤。但与一般的中断相比,它有以下两个明显的区别:
在指令执行期间产生和处理中断信号,而非一条指令执行完后,属于内部中断。
一条指令在执行期间,可能产生多次缺页中断。地址变换机构请求分页系统中的地址变换机构,是在分页系统地址变换机构的基础上,为实现虚拟内存,又增加了某些功能而形成的。