虚拟存储器的基本概念
虚拟存储器的基本原理
虚拟存储器的基本原理虚拟存储器是一种计算机系统的组成部分,它扩展了计算机的主存储器,使得计算机可以同时执行更多的程序,提高了计算机的性能和效率。
虚拟存储器的基本原理包括内存管理、地址转换、页面置换和磁盘交换等。
首先,虚拟存储器的内存管理是通过将主存划分成固定大小的块,称为页(Page),与此同时,将磁盘划分成与页大小相等的块,称为页框(Page Frame)。
当一个程序被加载到内存时,将会依次将程序的页放入内存的页框中。
这种将程序划分为页的方式称为分页管理。
虚拟存储器的核心概念是虚拟地址和物理地址的转换。
每个进程都有自己的虚拟地址空间,虚拟地址是由进程所见到的地址,而不是物理内存的地址。
虚拟地址由两部分组成,即页号和页内偏移。
页号表示进程中的某个页面,页内偏移表示页面中的具体位置。
虚拟地址被通过一种页表机制转换为物理地址。
页面置换是虚拟存储器中重要的一环。
由于程序的页可能无法一次加载到内存中,因此当一个程序在执行过程中需要访问一个尚未调入内存的页面时,就会发生缺页中断(Page Fault)。
操作系统会根据缺页中断处理程序来选择进行页面置换。
常用的页面置换算法有最佳置换算法(OPT)、先进先出置换算法(FIFO)、最近最久未使用置换算法(LRU)等。
磁盘交换是虚拟存储器中的重要机制。
当物理内存不足以容纳所有的进程或者进程所需的数据时,操作系统会将一部分进程或者数据从内存交换到磁盘上,以释放物理内存空间给其他进程使用。
这种将页面从内存交换到磁盘的过程称为页面换出(Page Out),相反的过程称为页面换入(Page In)。
通过磁盘交换,计算机可以在有限的物理内存下运行更多的任务。
虚拟存储器的使用带来了诸多优势。
首先,它能够扩展主存的容量,使得计算机可以执行更多的程序。
其次,虚拟存储器可以提高内存的利用率,避免内存浪费。
同时,它允许多个进程共享同一份代码,减少内存占用。
另外,虚拟存储器还可以实现对进程的保护和隔离,使得不同的进程在执行过程中不会相互干扰。
虚拟存储的名词解释
虚拟存储的名词解释虚拟存储是计算机科学领域中的一个重要概念,它是指通过逻辑上的存储空间组织与管理物理上的主存和辅助存储设备,以实现多道程序设计和更高效的内存利用。
虚拟存储的出现与计算机硬件性能与软件需求之间的矛盾密切相关,它使得计算机能够在有限的内存资源下,处理更多的程序和数据。
虚拟存储的核心思想是将虚拟地址空间和物理地址空间进行映射,通过页表机制实现。
操作系统会将程序需要访问的虚拟地址空间划分成大小相等的页面,同时将主存划分成和虚拟地址空间同样大小的物理页面,并通过页表记录这两者之间的映射关系。
当程序运行时,只有当前需要的页面会被加载到主存中,其他页面则存储在磁盘等辅助存储设备中,从而充分利用计算机的内存资源。
虚拟存储的引入带来了许多好处。
首先,它允许程序的地址空间超出物理内存的大小。
在之前的计算机系统中,主存的大小限制了程序的规模,而虚拟存储的应用使得程序能够在更大的地址空间中运行。
其次,虚拟存储对于多道程序设计非常重要。
多道程序设计允许多个程序同时运行,而虚拟存储通过将程序的页面划分成更小的单位,使得每个程序可以在内存中运行的页面数量更多,从而提高了多道程序设计的效率。
最后,虚拟存储的引入也加强了对内存的保护和安全性,每个程序只能访问自己的虚拟地址空间,不会干扰其他程序的运行。
虚拟存储的实现离不开硬件和软件的协同工作。
在硬件方面,计算机需要支持分页机制和内存管理单元(MMU)等功能,从而实现虚拟地址空间和物理地址空间的映射。
而在软件方面,操作系统需要提供相应的内存管理策略和算法,例如页面置换算法,用于在主存空间不足时决定将哪些页面置换出去。
在虚拟存储中,常用的页面置换算法有最佳置换算法、先进先出(FIFO)算法、最近最久未使用(LRU)算法等。
最佳置换算法是一种理论上最优的算法,它会选择未来不会再被使用的页面进行置换,但由于未来的行为很难预测,该算法难以实现。
FIFO算法会按照页面进入主存的顺序进行置换,但它没有考虑各个页面的使用频率,可能导致常用的页面被置换出去。
虚拟存储器的基本构成
虚拟存储器的基本构成虚拟存储器是计算机系统中的一个重要组成部分,它扩展了计算机的存储容量,提高了系统的性能和可用性。
虚拟存储器由主存储器和辅助存储器两部分组成,通过一系列的管理机制,使得程序能够以透明的方式访问较大容量的存储空间。
1. 主存储器主存储器是虚拟存储器的核心组成部分,也是计算机系统中最快的存储器。
它通常由DRAM(动态随机存取存储器)构成,用于存储当前正在执行的程序和数据。
主存储器通过地址总线和数据总线与CPU直接连接,可以快速地读写数据。
虚拟存储器通过将主存储器的地址空间划分为若干固定大小的页面(page)来管理主存储器的使用。
2. 辅助存储器辅助存储器是虚拟存储器的扩展部分,它通常由硬盘、固态硬盘(SSD)等设备构成。
辅助存储器的容量远大于主存储器,用于存储不常用的程序和数据。
辅助存储器的读写速度较慢,但它具有持久性,数据不会因为断电而丢失。
虚拟存储器通过将辅助存储器的地址空间划分为若干固定大小的页面来管理辅助存储器的使用。
3. 页面表页面表是虚拟存储器管理的关键数据结构,用于记录主存储器和辅助存储器之间的映射关系。
每个页面表由多个页表项组成,每个页表项记录了一个页面在主存储器和辅助存储器中的对应位置。
当程序访问一个虚拟地址时,操作系统会通过页面表查找对应的物理地址,并将数据从主存储器或辅助存储器中读取出来。
4. 页面置换算法由于主存储器的容量有限,当主存储器中的页面不足以存放所有正在运行的程序和数据时,就需要使用页面置换算法将部分页面从主存储器中换出到辅助存储器中。
常用的页面置换算法有最佳(OPT)、先进先出(FIFO)、最近未使用(LRU)等。
这些算法根据页面的访问模式和重要性来决定换出哪些页面,以保证系统的性能和可用性。
5. 页面调度算法页面调度算法用于确定哪些页面应该被加载到主存储器中。
常用的页面调度算法有最低频率优先(LFU)、先进先出(FIFO)、最近最久未使用(LRU)等。
《计算机操作系统》虚拟存储管理
7.2 请求分页存储管理
7.2.1 工作原理 7.2.2 驻留集管理 7.2.3 调页策略 7.2.4 页面置换算法
7.2.1工作原理
♦ 若内存中没有可用的物理块,则还需根据页面置 换算法淘汰一些页,若淘汰的页曾做过改动,还 需将此页重写回外存,最后将缺页调入内存指定 的物理块。
开始
根据页表记录的外 存始址找到缺页
内存有可用 Y 物理块吗?
N 由页面置换算法选
择一页换出 Y
N 该页被改动 过吗? Y
将该页写回外存
启动磁盘I/O,从外 存读入缺页
►显然,一方面,内存中存在一些不用或暂时不用的程序占据了大量的内存 空间;另一方面,一些需要运行的程序因没有足够的内存空间而无法装入 内存运行。
►人们不禁考虑,“一次性”和“驻留性”在程序运行时是否是必要的?
7.1.1 引入背景
2.局部性原理
►程序在执行时,在一段时间内,CPU总是集中地访问程序中的某一个部分 而不是随机地对程序所有部分具有平均访问概率,这种现象称为局部性原 理。局部性表现在下述两个方面:
7.2.3 调页策略
►调页策略用于确定何时将进程所需的页调入内存。常用的调页策略有: ♦ 预调页策略 ● 系统预测进程接下来要访问的页,将一个或多个页提前调入内存。 ● 常用的预测原理是局部性原理,即每次调页时,将相邻的若干个页 一并调入内存。 ♦ 请求调页策略 ● 发生缺页时,再将其调入内存的方法。 ● 实现简单,增加磁盘I/O开销。
♦ 状态位:用于表示该页是否已调入内存。若没有调入内存,则产生一个 缺页中断。
操作系统第5章存储管理3虚拟存储
举例:某进程依次访问如下地址:
0100,0432,0101,0612,0102,0103, 0104,0101,0611,0102,0103,0104, 0101,0610,0102,0103,0104,0101, 0609,0102,0105。若页面大小为100, 上述访问串可简化为: 1,4,1,6,1,6,1,6,1,6,1
4 0 3
2 3 4 2 0 4
是 是 是 是 否 是 是 是 是 是 是 否 否
7 0 1 2 3 0 4
结果:缺页次数共10次。
次序
页 面 分 配 情 况 是否 缺页 换出 的页
7
0
1 1
2 2
0
3 3
0 0
4 4
2 2
3 3
0 0
3
2
0
7 7
0
7
1
0
2
1
3
2
0
3
4
0
2
4
3
2
是 是 是 是 否 是 是 是 是 是 是 否 否 7 0 1 2 3 0 4
4 0 3
是 是 是 是 否 是 是 是 是
7 0 1 2
次序
7
0
1
2
0
3
0
4
2
3
0
3
2
页 面 分 配 情 况
是否 缺页 换出 的页
1 2 0 7 7 0 1 7 0
3 0 2 3 1 2
4 0 3
2 4 0
是 是 是 是 否 是 是 是 是 是
7 0 1 2 3
次序
7
0
1
2
0
3
0
第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拼接得到主 存的实地址
2016年计算机操作系统名词解释简答计算
计算机操作系统2016复习资料1.操作系统的基本特征P5采用多道程序设计技术的现代操作系统都具有如下的基本特征。
1)并发性(名词解释)并发性是指两个或多个事件在同一时间间隔内发生。
在多道处理程序额环境下,并发性是指一段时间内,宏观上有多个程序在同时进行。
2)共享性(名词解释)共享性是指系统中的资源可供内存中多个并发程序执行的进程同时使用。
根据资源性质的不同可将资源共享分为以下两种。
1)互斥共享。
系统中可供共享的某些资源,如打印机,变量,队列等,一段时间内只能给一个进程使用,只有当这个进程使用完毕并且释放资源后,其他进程才能使用它们。
2)同时访问。
系统中的另一类资源,如磁盘,可写入代码等,它们在同一段时间内可以被多个进程同时访问。
虽然这种同时是指宏观上的同时,微观上可能时进程交替地访问该资源,但进程交替访问资源的顺序不会影响访问的结果。
3)虚拟性(名词解释)虚拟性是指通过某种技术,将一个物理实体变成若干个逻辑上的对应物。
4)异步性(名词解释)异步性是指在多道程序的环境下,每个程序何时执行、何时暂停都是未知的,即它们以不可预知的速度向前推进。
但同时操作系统应保证程序的执行结果是可再现的,即只要运行环境相同,一个作业的多次运行会得到相同的结果。
2、什么是多道程序设计?在OS中引入该技术,带来了哪些好处?P10答:多道程序技术是指在内存中同时存放若干个作业,并使他们共享系统的资源且同时运行的技术。
好处:(1)提高CPU的利用率(2)可提高内存和I/O 设备的利用率(3)增加系统的吞吐量3、试从交互性、及时性以及可靠性三个方面,比较分时系统和实时系统P11答:1)交互性:交互性问题时分时系统的关键问题。
在分时系统中,用户可以通过终端与系统进行广泛的人机交互,如文件编辑、数据处理和资源共享。
实时系统也具有交互性,但在实时系统中交互性仅限于访问系统中某些特定的专用服务程序,也就是说它的交互性具有很大的局限性。
虚拟存储器实验报告
虚拟存储器实验报告一、实验目的本次虚拟存储器实验的目的在于深入理解虚拟存储器的工作原理,掌握其基本概念和关键技术,通过实际操作和观察,分析虚拟存储器对系统性能的影响,并能够运用所学知识解决在实验过程中遇到的问题。
二、实验环境本次实验使用的操作系统为 Windows 10,开发工具为 Visual Studio 2019,编程语言为 C++。
实验所使用的计算机配置为:Intel Core i7 处理器,16GB 内存,512GB 固态硬盘。
三、实验原理虚拟存储器是一种利用硬盘等辅助存储器来扩充主存容量的技术。
它将程序的逻辑地址空间与物理地址空间分开,使得程序可以使用比实际物理内存更大的地址空间。
当程序访问的地址不在物理内存中时,系统会通过页面置换算法将暂时不用的页面换出到硬盘,将需要的页面换入到物理内存中。
虚拟存储器的实现主要依赖于页式存储管理和地址转换机制。
页式存储管理将逻辑地址空间划分为固定大小的页面,物理地址空间也划分为相同大小的页框。
地址转换通过页表来完成,页表记录了逻辑页面与物理页框的对应关系。
四、实验内容1、页面置换算法的实现首先实现了先进先出(FIFO)页面置换算法。
创建一个固定大小的物理内存页框数组,模拟物理内存。
当需要装入新页面时,如果物理内存已满,按照先进入的页面先被置换的原则选择置换页面。
接着实现了最近最少使用(LRU)页面置换算法。
为每个页面设置一个访问时间戳,当需要置换页面时,选择访问时间最久远的页面进行置换。
2、虚拟地址到物理地址的转换设计了一个简单的页表结构,包括逻辑页号、物理页框号和有效位等字段。
输入一个虚拟地址,通过查找页表将其转换为物理地址。
如果页面不在物理内存中,触发页面置换算法进行页面调入。
3、性能分析对不同大小的程序和不同的页面置换算法,测量其页面缺失率和执行时间。
分析页面大小、物理内存大小等因素对虚拟存储器性能的影响。
五、实验步骤1、初始化实验环境设定物理内存大小、页面大小等参数。
5.5 虚拟存储器
主存地址 实存地址
河南科技大学
虚拟存储器虚实地址变换
明德
博学
日新
笃行
段页式管理方式下的地址变换
在段页式虚拟存储系统中,每道程序是通过一个段表和一组页表来进行 定位的。
段表中每个表目对应一个段,每个表目有一个指向该段的页表起始地址 (页号)及该段的控制保护信息。由页表指明该段各页在主存中的位置以及 是否装入、已修改等状态信息。
地址。 虚拟地址是由编译程序生成的。工作在虚拟地址模式下的CPU理解这些虚拟
地址,并将他们转换为物理地址。 实际上,虚拟存储器的内容是要保存在磁盘上的,因此虚拟地址空间的大小
受辅助存储器容量的限制。
河南科技大学
虚拟存储器的基本概念
明德
博学
日新
笃行
3、虚拟存储器的工作原理
从原理上看,主存—外存层次和cache—主存层次有很多相似之处,他们都 是基于程序局部性原理,把程序最近常用的部分驻留在高速的存储器中;一旦 这部分不常用了,就送回到低速存储器中;这种换入换出是由硬件或操作系统 完成,无需用户干预;最终达到使存储系统的性能接近高速存储器,而价格接 近低速存储器。他们采用的地址映射和替换策略,从原理上看也是相同的。但 是由于磁盘的存取速度是主存的上千倍,而cache的存取速度是主存的5~10倍, 因此在虚拟存储器中未命中的性能损失要远大于cache系统中的损失。
河南科技大学
虚拟存储器虚实地址变换
明德
博学
日新
笃行
页式虚拟存储器地址变换:页式管理下的虚实地址的变换是通过页表实现的。
页表基址寄存器
虚存地址
页面基地址
逻辑页号
页内行地址
+ 有效位 主存页面号
408 2024 大纲
408 2024 大纲408 2024 大纲是指2024考研408计算机考试大纲,具体内容如下:第一部分:数据结构考纲【考查目标】1.掌握数据结构的基本概念、基本原理和基本方法。
2.掌握数据的逻辑结构、存储结构及基本操作的实现,能够对算法进行基本的时间复杂度与空间复杂度的分析。
3.能够运用数据结构基本原理和方法进行问题的分析与求解,具备采用C 或C++语言计与实现算法的能力。
一、线性表(一)线性表的基本概念(二)线性表的实现1.顺序存储2.链式存储(三)线性表的应用二、栈、队列和数组(一)栈和队列的基本概念(二)栈和队列的顺序存储结构(三)栈和队列的链式存储结构(四)多维数组的存储(五)特殊矩阵的压缩存储(六)栈、队列和数组的应用三、树与二叉树(一)树的基本概念(二)二叉树1.二叉树的定义及其主要特征2.二叉树的顺序存储结构和链式存储结构3.二叉树的遍历4.线索二叉树的基本概念和构造(三)树、森林1.树的存储结构2.森林与二叉树的转换3.树和森林的遍历(四)树与二叉树的应用1.哈夫曼(Huffman)树和哈夫曼编码2.并查集及其应用四、图(一)图的基本概念(二)图的存储及基本操作1.邻接矩阵2.邻接表3.邻接多重表、十字链表(三)图的遍历1.深度优先搜索2.广度优先搜索(四)图的基本应用1.最小生成树2.最短路径3.拓扑排序4.关键路径五、查找(一)查找的基本概念(二)顺序查找法(三)分块查找法(四)折半查找法(五)树型查找1.二叉搜索树2.平衡二叉树3.红黑树:红黑树的概念和性质(六)B 树及其基本操作、B+树的基本概念(七)散列(Hash)表(八)字符串模式匹配(九)查找算法的分析及应用六、排序(一)排序的基本概念(二)直接插入排序(三)折半插入排序(四)起泡排序(bubble sort)(五)简单选择排序(六)希尔排序(shell sort)(七)快速排序(八)堆排序(九)归并排序(merge sort)(十)基数排序(十一)外部排序(十二)排序算法的分析和应用1、对于考纲内要求的排序算法,能够做对比分析2、对于给出一个新的排序算法,能够综合分析其排序思想第二部分:计算机组成原理考纲【考查目标】1.掌握单处理器计算机系统中主要部件的工作原理、组成结构以及相互连接方式。
第四章 存储器管理(1-2)
物理地址空间
Load A data1
100
Load A 200
1100
Load A 1200
编译 连接
data1 3456 200 3456
地址映射
1200 3456 。 。
第四章 存 储 器 管 理
地址映射的方式
静态地址映射: 1)程序被装入内存时由操作系统的连接装入程序完成 程序的逻辑地址到内存地址的转换; 2)地址转换工作是在程序执行前由装入程序集中一次 完成。 假定程序装入内存的首地址为BR,程序地址为VR,内存 地址为MR,则地址映射按下式进行:MR=BR+VR
② 便于实现对目标模块的共享:将内存中的一个模块可 以连接到多个程序中。 ③ 要运行的程序都必须在装入时,全部连接调入内存。
第四章 存 储 器 管 理
3. 运行时动态链接(Run-time Dynamic Linking) 动态链接方式:将对某些模块的链接推迟到执行时才实施, 亦即,在执行过程中,当发现一个被调用模块尚未装 入内存时,立即由OS去找到该模块并将之装入内存, 把它链接到调用者模块上。特点如下: 特点:凡在执行过程中未被用到的目标模块,都不会被调 入内存和被链接到装入模块上,这样不仅可加快程序 的装入过程,而且可节省大量的内存空间。
硬件支持:在动态地址重定位机构中,有一个基地址寄存器BR和一 个程序地址寄存器VR,一个内存地址寄存器MR。
转换过程:MR=BR+VR
第四章 存 储 器 管 理
把程序装入起始地址为100的内存区
0 100
重定位寄存器 1000
…
MOV r1,[50]
0 1000 1100
… …
MOV r1பைடு நூலகம்[50]
4-5 虚拟存储器的基本概念
第四讲存储器管理主讲教师:夏辉丽4.6 虚拟存储器的基本概念4.6.1 虚拟存储器的引入4.6.2 虚拟存储器的实现方法4.6.3 虚拟存储器的特征4.6.1 虚拟存储器的引入1. 常规存储器管理方式的特征:•一次性、驻留性•情况一:内存空间装不下的大作业无法运行•情况二:作业量大时,无法允许更多的作业并发•扩充内存容量的方法:物理上、逻辑上4.6.1 虚拟存储器的引入2. 局部性原理:•程序在执行时常呈现局部性规律,并表现在两个方面:(1)时间局限性(2)空间局限性4.6.1 虚拟存储器的引入3. 虚拟存储器的概念:•逻辑上扩充内存容量的方案:(1)允许作业部分装入,其他页(段)在运行中需要访问时再调入----增加请求调入功能(2)若内存已满,将某些暂时不用的页(段)调出内存---增加置换功能4.6.1 虚拟存储器的引入3. 虚拟存储器的概念:•定义:虚拟存储器是指具有请求调入功能和置换功能,能从逻辑上对内存容量加以扩充的一种存储器系统。
•实质:物理上不存在,利用海量外存进行内存“空间”的扩展。
•逻辑容量:取决于内存容量和外存容量之和。
4.6.2 虚拟存储器的实现方法必须基于“离散分配的内存管理技术”1.请求分页系统(页式虚拟存储系统)•=基本分页系统+请求调页功能+页面置换功能•硬件支持:请求分页的页表机制、缺页中断机构、地址变换机构。
•软件支持:请求分页、页面置换4.6.2 虚拟存储器的实现方法2.请求分段系统(段式虚拟存储系统)•=基本分段系统+请求调段功能+分段置换功能•硬件支持:请求分段的段表机制、缺段中断机构、地址变换机构。
•软件支持:请求分段、段的置换4.6.3 虚拟存储器的特征1.离散性:在内存分配时采用离散分配方式;2. 多次性:一个作业被分成多次调入内存运行;3. 对换性:允许在作业的运行过程中进行换进、换出;4. 虚拟性:能从逻辑上扩充内存容量,使用户“看到”的内存容量远大于实际大小。
虚拟存储器
虚拟存储器☐虚拟存储器是建立在主存—辅存物理结构的基础之上,由附加的硬件装置存储管理软件虚拟存储器物理存储器不同之处常为几百~几百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*调入调入调入替换命中命中替换命中。
第八章虚存管理技术
启动要处理的指令
给出虚地址
形成页号
准备执行下条指令
该页在主存
Y
执行完该指令
N
缺页中断
有空闲块
Y
从外存读入需要的页
调整存贮分块表和页表
重新启动被中断的指令和页表
N
要重新写入
Y
该页写入外存
由硬件和软件相配合实现的,虚线上面部分是
由硬件实现的,而下部是由软件实现的。
在多进程环境下,一个进程在等待传输页面时, 它处于阻塞态,此时系统可以调度另一进程运行, 当传输完成时,唤醒原先被阻塞的那个进程,等到 下次再调度到它时,才能恢复到断点,继续运行下 去。
基本原则:
淘汰在将来再也不被访问,或者是在最远的 将来才能被访问的页。
特点:
无法预测作业将用到哪些页!所以此算 法是无法实现的——理论上的算法。
例:某进程分配页架数为3,其运行期间页面访问 序列:A,B,C,D,A,B,E,A,B,C,D,E,分析其按照OPT 算法进行页面置换时的缺页情况。
在实际系统中一般采用快表与普通页表 相结合的方式实现地址转换
页表与快表相结合
在查找与给 定的p对应的 p’时,快表 表与页表同 时进行。若 在快表中找 到,则页表 结束查找。 若在页表中 找到,则要 更新快表。
pd p输
入 p P’
虚地址(分页) 快表 p P’
P’
页表
输 P’ 出
P’ d 物理地址
基本原则:淘汰最近未使用的页,且希望其在主存逗留期间页面 内的数据未被修改过!
页表扩充:
页号 块号 修改位 引用位 状态位 辅存地址
过程: 开始时所有页的访问位、修改位都为0。访问/修改时再置1。 当选择淘汰页时,按照 访问位 0 0 1 1 的顺序淘汰。 修改位 0 1 0 1
3.6 虚拟存储器
jiaojiye, -计算机组成原理-
3.6.5 替换算法
3.7 虚拟存储器
虚拟存储器中的页面替换策略和cache中的行替 换策略有很多相似之处,但有三点显著不同: (1)缺页至少要涉及一次磁盘存取,读取所缺的 页,缺页使系统蒙受的损失要比cache未命中大得多 。 (2)页面替换是由操作系统软件实现的。 (3)页面替换的选择余地很大,属于一个进程的 页面都可替换。
jiaojiye, -计算机组成原理-
2
3.7 虚拟存储器
2. 早期CPU是根据物理地址直接访问内存。
好处: CPU就根据某个寄存器中相应的值,直接到物理内存 去取值,非常直接和容易理解。 缺点: 需要知道物理地址的值,每次程序开始执行,也就是 执行程序从磁盘被load到物理内存中之后,我们必须告诉 CPU,程序是从哪一个地址开始执行的(即PC寄存器的 值); 程序使用的内存会被物理内存所限制,比如我们的机 器上只有512M内存,那我们的程序就不能使用需占1G内 存的程序了
jiaojiye, -计算机组成原理12
3.7 虚拟存储器
jiaojiye, -计算机组成原理-
该图显示了两个 64 位进程的虚 拟地址空间:Notepad.exe 和 MyApp.exe。每个进程都有其各 自的虚拟地址空间,范围从 0x000'0000000 至 0x7FF'FFFFFFFF。每个阴影框都 表示虚拟内存或物理内存的一个 页面(大小为 4 KB)。注意, Notepad 进程使用从 0x7F7'93950000 开始的虚拟 地址的三个相邻页面。但虚拟地 址的这三个相邻页面会映射到物 理内存中的非相邻页面。而且还 注意,两个进程都使用从 0x7F7'93950000 开始的虚拟 内存页面,但这些虚拟页面都映 13 射到物理内存的不同页面。
计算机操作系统管理 内存管理
简单存储管理
定位和重定位 程序的装入 绝对装入方式(Absolute Loading Mode)
程序中所使用的绝对地址,既可在编译或汇编时给出, 也可由程序员 直接赋予
例如:ORG 1000H
可重定位装入方式(Relocation Loading Mode)
静态 动态
简单存储管理
选择
分区分配内存管理方式的主要保护措施是
A.界地址保护 B.程序代码保护 C.数据保护 D.栈保护
综合题
页号 0 1 2
页框号 101H ---254H
有效位 1 0 1
请求分页管理系统中,假设某进程的页表内容如左表所示,页面大 小为4KB,一次内存的访问时间是100ns,一次快表(TLB)的访问 时间是10ns,处理一次缺页的平均时间为108ns(己含更新TLB和页 表的时间),进程的驻留集大小固定为2,采用最近最少使用置换算 法(LRU)和局部淘汰策略。假设①TLB初始为空;②地址转换时先 访问TLB,若TLB未命中,再访问页表(忽略访问页表之后的TLB更新 时间);③有效位为0表示页面不在内存,产生缺页中断,缺页中断
若工作集的窗口大小为6,则在t时刻的工作集为 A.{6,0,3,2} B.{2,3,0,4} C.{0,4,3,2,9} D.{4,5,6,0,3,2}
虚拟存储管理
Belady’s 异常 Thrashing 抖动
选择
在页式虚拟存储管理系统中,采用某些页面置换算法,会出现 Belady异常现象,即进程的缺页次数会随着分配给该进程的页框个 数的增加而增加。下列算法中,可能出现Belady异常现象的是
A.28字节 B.216字节 C.224字节 D.232字节
选择
某计算机采用二级页表的分页存储管理方式,按字节编址, 页大小为210字节,页表项大小为2字节,逻辑地址结构为 下图所示,逻辑地址空间大小为216页,则表示整个逻辑
操作系统习题4-1
来划分。
(3) 分页的作业地址空间是一维的
分段的作业地址空间则是二维的,程序员在标识一
个地址时,既需给出段名, 又需给出段内地址。
4.4.4
段页式存储管理方式
主程序段 子程序段 数据段
1. 基本原理
0 4K 8K 12K 15K 16K 0 4K 8K 0 4K 8K 10K 12K
(a) 段号(S) 段内页号(P) (b) 段内地址(W)
15 11 10 页号 页内位移 0
(2)每个进程最多有32个页面,因此,进程的页表项最多 为32项;若不考虑访问权限等,则页表项中只需给出页所 对应的物理块号,1M的物理空间可分成29个物理块,故每 个页表项至少有9位。 (3)如果物理空间减少一半,则页表中页表项数仍不变, 但每项的长度可减少1位。
继续
2.分区分配算法
从表或链中选出一分区分配给该作业 (1)首次适应算法FF 要求:空闲分区链按照地址递增顺序排列
分配:从链首顺序查找Y 分配;否则,分配失败
优点:优先利用内存中低址部分,保留了高址部分大空闲 缺点:低址部分不断被划分,留下许多碎片; 顺序查找,增加了时间开销
(2)循环首次适应算法 由FF演变而来 要求:从上次找到的空闲分区的下一个分区开 始查找; 设置查询指针,循环查找
允许几道作业并发
1. 划分方法
大小相等 缺乏灵活性:作业太小,浪费; 作业太大,不足 用途:控制多个相同对象场合, 炉温群控系统 划分为多个较小、适量中等和少量大分区
大小不等
灵活性:根据程序大小为之分配适量分区;
2.内存分配 将分区按大小顺序排列,建立分区使用表 表项:起始地址,大小,状态 图4-4
定义:为用户程序分配一块连续的内存空间
虚拟存储器
虚拟存储器什么是虚拟存储器?它存储介质是什么?1、虚拟内存的作用内存在计算机中的作用很大,电脑中所有运行的程序都需要经过内存来执行,如果执行的程序很大或很多,就会导致内存消耗殆尽。
为了解决这个问题,Windows中运用了虚拟内存技术,即拿出一部分硬盘空间来充当内存使用,当内存占用完时,电脑就会自动调用硬盘来充当内存,以缓解内存的紧张。
举一个例子来说,如果电脑只有128MB物理内存的话,当读取一个容量为200MB的文件时,就必须要用到比较大的虚拟内存,文件被内存读取之后就会先储存到虚拟内存,等待内存把文件全部储存到虚拟内存之后,跟着就会把虚拟内里储存的文件释放到原来的安装目录里了。
下面,就让我们一起来看看如何对虚拟内存进行设置吧。
2、虚拟内存的设置对于虚拟内存主要设置两点,即内存大小和分页位置,内存大小就是设置虚拟内存最小为多少和最大为多少;而分页位置则是设置虚拟内存应使用那个分区中的硬盘空间。
对于内存大小的设置,如何得到最小值和最大值呢?你可以通过下面的方法获得:选择“开始→程序→附件→系统工具→系统监视器”(如果系统工具中没有,可以通过“添加/删除程序”中的Windows安装程序进行安装)打开系统监视器,然后选择“编辑→添加项目”,在“类型”项中选择“内存管理程序”,在右侧的列表选择“交换文件大小”。
这样随着你的操作,会显示出交换文件值的波动情况,你可以把经常要使用到的程序打开,然后对它们进行使用,这时查看一下系统监视器中的表现值,由于用户每次使用电脑时的情况都不尽相同,因此,最好能够通过较长时间对交换文件进行监视来找出最符合您的交换文件的数值,这样才能保证系统性能稳定以及保持在最佳的状态。
找出最合适的范围值后,在设置虚拟内存时,用鼠标右键点击“我的电脑”,选择“属性”,弹出系统属性窗口,选择“性能”标签,点击下面“虚拟内存”按钮,弹出虚拟内存设置窗口,点击“用户自己指定虚拟内存设置”单选按钮,“硬盘”选较大剩余空间的分区,然后在“最小值”和“最大值”文本框中输入合适的范围值。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
虚拟存储器是为扩大主存而采用 的一种设计技巧,它的容量与主存大 小无直接关系,而受限于计算机的地 址结构及可用的辅助存储器的容量。
12
4. 虚拟存储器的容量
• 1一个虚拟存储器的最大容量是由计算机 的 地 址 结 构 确 定 的 。 如 : 若 CPU 的 有 效 地址长度为32位,则程序可以寻址范围 是0~(2^32)-1 ,即虚存容量为 4GB。
9
第三,很少出现连续的过程调用,相反, 程序中过程调用的深度限制在小范围 内,一段时间内,指令引用被局限在 很少几个过程中。
第四,对于连续访问数组之类的数据结 构,往往是对存储区域中相邻位置的 数据的操作。
第五,程序中有些部分是彼此互斥的, 不是每次运行时都用到的,如出错处 理程序。
10
3.虚拟存储器的定义: 在具有层次结构存储器的计算机系统中, 具有请求调入功能和置换功能,能从逻辑 上对内存容量进行扩充的存储器系统, 为用户提供一个比物理主存容量大得多 的,可寻址的一种“主存储器”。
7
5. 局部性原理
• 程序局部性原理 在一段时间内一个程序的执行往往呈现出 高度的局部性,表现在时间与空间两方面
• 时间局部性: 一条指令被执行了,则在不久的将来它可 能再被执行
• 空间局部性: 若某一存储单元被使用,则在一定时间
内,与该存储单元相邻的单元可能被使用
8
第一,程序中只有少量分支和过程调用, 大都是顺序执行的指令。 第二,程序包含若干循环,是由相对 较少的指令组成,在循环过程中,计 算被限制在程序中很小的相邻部分中。
• 2虚拟存储器的容量与主存的实际大小没 有直接的关系,而是由主存与辅存的容量 之和所确定。
13
虚拟存储管理主要采用以下技 术实现:
•分页请求虚拟存储管理 •分段请求虚拟存储管理 •段页式请求虚拟存储管理
14
一. 请求式分页存储管理
请求式分页也称虚拟页式存储管理 与纯分页存储管理不同,请求式分
页管理系统在进程开始运行之前,不是 装入全部页面,而是装入一个或零个页 面,之后根据进程运行的需要,动态装 入其它页面;当内存空间已满,而又需 要装入新的页面时,则根据某种算法淘 汰某个页面,以便装入新的页面
页号、驻留位、内存块号、外存地址、访问位、 修改位、(存取控制、辅存地址)
• 状态位:表示该页是在内存还是在外存 • 访问位:表示该页最近被访问过,根据访问
位来决定淘汰哪页 • 修改位:查看此页是否在内存中被修改过
17
3.地址变换与缺页中断
查页表时,当存在位指示该页不在 主存时,则引起一个缺页中断发生,相应 的中断处理程序把控制转向缺页中断子程 序。执行此子程序,即把所缺页面装入主 存。然后处理机重新执行缺页时打断的指 令。这时,就将顺利形成物理地址。
15
1.需要解决的问题
系统需要解决下面三个问题: • 系统如何获知进程当前所需页面不在主存。 • 当发现缺页时,如何把所缺页面调入主存。 • 当主存中没有空闲的页框时,为了要接受
一个新页,需要把老的一页淘汰出去,根 据什么策略选择欲淘汰的页面。
16
2. 页描述子的扩充
页号 状态位 内存块号 外存地址 访问位 修改位
• 如果页面替换算法的作用范围局限于本进程, 称为局部页面替换算法,它实际上需要为每个 进程分配固定的页框。
• 置换范围 –全局 与 局部
三种组合:固定 + 局部 可变 + 全局 可变 + 局部
23
固定分配和局部替换策略配ቤተ መጻሕፍቲ ባይዱ使用
•进程分得的页框数不变,发生缺页中 断,只能从进程的页面中选页替换,保 证进程的页框总数不变。 •策略难点:应给每个进程分配多少页 框?给少了,缺页中断率高;给多了,使内 存中能同时执行的进程数减少,进而造 成处理器和其它设备空闲。
2
2. 虚拟存储器
• 具有请求调入功能和置换功能,能从逻辑 上对内存容量进行扩充的存储器系统。虚 拟存储器就是一个地址空间,且具有比实 存大得多的容量。
3
虚拟存储器(续)
• 对用户:指令地址部分所限定的比 实存大得多的地址实间。
• 对系统:借助于各种表格机构,体 现虚拟实间。
4
3. 虚拟存储
1.常规存储器的基本思路: • 1)一次性 • 2)驻留性 2.虚拟存储器的特征 • 1)虚拟性 • 2)对换性 • 3)多次性
• 系统为进程分配主存,需考虑因素: ①最小物理块数的确定 ②物理块的分配策略 ③物理块的分配算法
21
• 分配给一个进程多少页面? –固定数目分配 与 可变数目分配
–进程保持页框数固定不变,称固定 分配;进程分得的页框数可变, 称 可变分配;
22
页面替换策略:局部替换和全局替换
• 如果页面替换算法的作用范围是整个系统, 称全局页面替换算法,它可以在运行进程间动 态地分配页框。
以CPU时间和外存空间换取昂贵内存空间, 这是操作系统中的资源转换技术
5
• 作业信息不全部装入主存,能否保证作业 的正确运行?
• 回答是肯定的,1968年P.Denning研究了程 序执行时的局部性原理。
6
2.程序的局部性原理: 指程序在执行过程中的一个较短时间内, 所执行的指令地址或操作数地址分别局 限于一定的存储区域中。又可细分时间 局部性和空间局部性。
19
请求分页虚存地址转换过程(2)
逻辑地址
无登记
有登记
查快表
在辅存
在主存 查页表
形成绝对地址
发缺页中断
登记入快表
继续执行指令 硬件
保护现场 无
主存有空闲块
有
装入所需页面
调整页表和 主存分配表
恢复现场
重新执行 被中断指令
操作系统
未修改
选择调出页面 该页是否修改
已修改
把该页写回 辅存相应位置
20
4.6.2页面分配策略和分配算法
18
请求分页虚存地址转换过程(1)
逻辑空间地址
CPU
逻辑地址 进程切换时装入
MMU
页号 页内地址
快表
①分解 地址
②查快表
④查页表 运行进程页表基址
⑥装入快表
③命中
物理地址
主存(用户区)
运行进 程映象
辅存
主存(系统 区)运行进 程页表
④不命中
⑤页表命中
页框 页内地址
③ ⑤
访 问
⑨装入 、改表
⑧调页
⑦发缺页中断 缺页中断处理
4.5 虚拟存储器的基本概念
1
1. 概 述
问题的提出 : ➢ 程序大于内存 ➢ 程序暂时不执行或运行完是否还要占用内存
虚拟存储器的基本思想是:程序、数据、 堆栈的大小可以超过内存的大小,操作系统 把程序当前使用的部分保留在内存,而把其 它部分保存在磁盘上,并在需要时在内存和 磁盘之间动态交换
虚拟存储器支持多道程序设计技术