第六章虚拟存储器管理详解
虚拟存储管理优秀课件
8.1.2 虚拟存储器
虚拟存储器的定义:是指仅把进程的一部分
装入内存便可运行的存储器系统,它具有请 求调入功能和置换功能,能从逻辑上对内存 容量进行扩充的一种存储器系统。
虚拟存储器的逻辑容量:虚拟存储器的逻辑
容量由系统的寻址能力和外存容量之和所决 定。
8.1.2 虚拟存储器
虚拟存储管理主要采用以下技术实现: •请求分页虚拟存储管理 •请求分段虚拟存储管理 •请求段页式虚拟存储管理
8.1.1 局部性原理
程序执行呈现局部性规律的原因:
– 程序执行时,大多数情况下是顺序执行的。 – 很少出现连续的过程调用,相反,程序中过程调用
的深度限制在小范围内,一段时间内,指令引用被 局限在很少几个过程中。 – 程序中有许多循环语句,这些语句会重复多次执行。 – 程序中对数据结构的操作,往往局限在很小的范围 内。
8.2 请求分页式存储管理方式
请求分页式存储管理是在分页式存储管理的 基础上,增加了请求调页功能、页面置换功能而形 成的页式虚拟存储系统。它是目前常用的一种虚拟 存储器的方式。
8.2 请求分页式存储管理方式
• 基本原理:在请求分页式存储管理系统中,进程运行 之前将一部分页面装入内存,另外一部分页面则装入 外存。在进程运行过程中,如果所访问的页面不在内 存中,则发生缺页中断,进入操作系统,由操作系统 进行页面的动态调度。
算法选择一个内存块,将此块内容写回外存,修 改页表; 读入所需的页面,修改页表; 重新启动进程,执行被中断的指令。
8.2 .1 请求分页式存储管理的基本概念
页表机制:纯分页的页表只有两项:页号和物理块。
而请求分页存储管理增加了调入功能和置换功能, 故需在页表中增加若干项,供程序在换进换出时参 考。下面所示是一请求分页系统中的页表:
操作系统---虚拟存储器管理
作业1
空闲区 作业1 运行 进驻内存 空闲区
作业2
作业1被系统调 空闲区 出,进入外存, 作业2调入内存 运行 作业3 作业2 空闲区
出 , 调 入 作 业 3 运 行 将 作 业 2 的 部 分 内 容 换
作业1 作业3 作业3 作业2 作业1运行完毕, 将作业3的换出 部分重新装入 空闲区 将作业3的部分 内容换出,再 次调入作业1 运行
24
请求分页存储管理的实现
问题一:如何知道作业中的某一部分所在的位置?
【解答】 修改数据结构——页表。 需要在页表中添加相应的字段: 若页面在内存:给出物理块号; 若页面在外存:应给出在外存中的位臵; 为每个作业设臵新的页表,记录作业中的某一页在 虚拟存储空间的位臵。如图所示: 页号 号 物理块号 状态位 访问字段 修改位 外存地址
5
内存扩充技术
授课内容:
覆盖技术
对换技术
虚拟存储技术
6
教学目的和要求
通过本讲的学习,学生将能够:
了解内存扩充技术 描述常规存储管理方式的特征和程序局部性原理 给出虚拟存储器的定义,并理解虚拟存储器的特征 了解请求分页存储管理方式及实现 了解请求分段存储管理方式及实现 了解请求段页存储管理方式及实现 了解LINUX系统的存储器管理策略
14
课堂练习:对换
15
一、选择题
1. 对外存对换区的管理应以(A)为主要目标;对外存 文件区的管理应以(B)为主要目标。
A,B:(1)提高系统吞吐量;(2)提高存储空间 的利用率;(3)降低存储费用;(4)提高换入换出速度; 二、问答题 1. 在系统中引入对换会带来哪些好处?
2. 为实现对换,系统应具备哪几方面的功能?
存贮器管理虚拟存贮器管理基本概念PPT教案
会计学
1
§2 基 本 概 念
(1)为用户使用存贮器提供方便,这包含两个含义:一是 ,每个用户都以独立的方式编程,即用户只需在各自的逻辑 空间内编程,而不必关心他的程序在内存空间上的物理位置 ;其次是,为用户提供充分大的存贮空间,使得用户程序的 大小不受实际内存容量的限制,即用户不必关心内存空间的
第40页/共84页
① ② 若s≤ts,则根据t+s,找到段s在段表中 的相应表目,然后,检查位移量d是否超过段长l,超 过则发越界中断;否则将段s的内存起始地址b加上d
段号 段长 内存起 访问值 状态 址
第41页/共84页
6.3
(1)段是信息的逻辑单位,分段是出于作业逻辑上的要 求,对用户来说,分段是可见的;页是信息的物理单位,分 页并不是用户作业的要求,而仅仅是为了系统管理内存的方 便,分页活动对用户是不可见的。
(2)页的大小固定,由系统决定;段的大小不固定,
(3)把逻辑地址分解成页号和页内位移量是机器硬件 的功能,而定义成段号和段内位移量是由用户决定的,故页
(2)动态分配:作业要求的基本内存空间是在目标模块 装入时确定并分配的,但在作业运行过程中允许申请附加 的内存空间,即分配工作可以在作业运行前及运行过程中
第2页/共84页
2. 地址映射 高级语言或汇编语言程序形成的逻辑空间是符号名空 间,其中的地址是符号地址。源语言程序经编译或汇编后产 生的逻辑空间称之为该程序的地址空间,也叫虚空间。地址 空间中的地址都是相对地址(相对于地址“0”),称作逻辑地 址。任一程序的地址空间都是以地址0起始的逻辑地址之集 合,且可以是一维空间或二维空间。不同程序的地址空间可 以相同或局部重叠。整个内存 是个一维的物理空间,程序 必须被装入内存才能执行。一程序在执行时所占用的存贮空 间称作它的内存空间。一个内存空间是若干绝对地址(即物 理地址)之集合,它是一维空间。显然,不同程序的内存空 间不能冲突。
第6章 虚拟存储器管理
所谓工作集就是指在某段时间间隔∆内,进程访问页面的 集合。为了使进程有较低的缺页率,应在该段时间内把进程的 全部工作集装入内存中
6.2 分页虚拟存储器
抖动问题
-预防抖动的方法 采用局部置换策略 利用工作集算法防止抖动 利用“L=S”准则调节缺页率 挂起某些进程
6.3 分段虚拟存储器
分段虚拟存储管理
分页虚拟存储管理
基本原理
-分页虚拟存储管理方式是在分页系统的基础上,增加 了请求调页功能、页面置换功能所形成的虚拟存储器系统。
-在分页虚拟存储管理时使用的页表,是在原来页表的 基础上发展起来的,包括以下内容:物理块号、状态位、访 问位、修改位、外存地址
6.2 分页虚拟存储器
缺页中断机构
每当要访问的页面不在内存时,便产生一缺页中断,请 求操作系统把所缺页面调入内存。,请求操作系统把所缺页 面调入内存。缺页中断作为中断,它同样需要经历诸如保护 CPU现场环境、分析中断原因、转入缺页中断处理程序进行 处理、恢复CPU环境等几个步骤。 缺页中断与与一般的中断的区别
6.2 分页虚拟存储器
页面置换算法 如果内存空间己被装满而又要装入新页时,必须
按某种算法将内存中的一些页淘汰出去,以便调入新 页,这个工作称为“页面置换”。选择被淘汰页的方 法成为页面置换算法。
6.2 分页虚拟存储器
最佳置换算法 -算法:淘汰那些以后永不使用,或者是在最长时间内不再
被访问的页 -无法实现的,只能作为其它置换算法的衡量标准
操作系统(第四版)
第6章 虚拟存储器管理
第6章 虚拟存储器管理
6.1 概述 6.2 分页虚拟存储管理方式 6.3 分段虚拟存储管理 6.4 Linux的内存管理
操作系统原理虚拟存储器管理资料
光存储技术
通过垂直堆叠存储单元,提供更 高的存储密度和更低的延迟,有 望改变虚拟存储器的架构和设计。
利用激光在介质上刻写数据,具 有极高的存储密度和长达数百年 的数据保存期限,为虚拟存储器 提供了前所未有的容量和可靠性。
云计算与虚拟存储器的关系
云计算资源池化
分布式存储系统
云原生技术
云计算通过虚拟化技术将物理资源抽 象成逻辑资源,实现资源的动态分配 和共享,虚拟存储器是云计算资源池 化的重要组成部分。
物理地址空间
实际内存中的地址空间,与逻辑地址空间不一定连续。物理地址是内存单元的 实际地址,由硬件直接访问。
地址映射机制
1 2
动态重定位
程序执行时,将逻辑地址转换为物理地址的过程。 通过查页表或段表实现地址映射。
请求调页/请求分段
当所需页面/段不在内存中时,发出缺页/缺段中 断,将所需页面/段调入内存。
05
虚拟存储器与操作系统的关系
虚拟存储器对操作系统的影响
扩大内存容量
虚拟存储器通过内外存交换技术, 使得程序可以使用比实际内存更 大的容量。
内存保护
每个程序都在自己的虚拟地址空 间中运行,互不干扰,提高了系 统的安全性。
内存管理灵活
虚拟存储器实现了内存的逻辑扩 充,使得内存管理更加灵活,方 便用户和程序员使用。
03
内存回收策略
当进程不再需要某些内存空间时,操 作系统需要将这些空间回收并重新利 用。常见的内存回收策略包括引用计 数法、标记清除法和复制法等。
缓存技术
要点一
缓存命中与缺失
当CPU访问数据时,如果数据已经在 缓存中,则称为缓存命中;否则需要 从主存中读取数据到缓存中,称为缓 存缺失。
操作系统原理虚拟存储器管理
总结词
将内存划分为大小不等的段,每段存放 一个程序的段,以段为单位进行交换。
VS
详细描述
段式存储管理将内存空间划分为大小不等 的段框,每个段框可以存放一个程序的段 。程序被划分为多个段,每个段可以有不 同的长度。在进行段交换时,以段为单位 进行数据的存取和替换。
段页式存储管理
总结词
结合段式和页式存储管理的特点,将内存划分为固定大小的页框,程序分割为多个段,每段再分割为 固定大小的页。
虚拟存储器提供了一个统一的地址空间,使得应用程序可以 像访问内存一样访问硬盘上的数据,从而提高了程序的运行 效率。
虚拟存储器的实现方式
内存管理单元(MMU)
负责将虚拟地址转换为物理地址,实现虚拟存储器到物理存储器的 映射。
交换区
当物理内存不足时,操作系统会将部分内存数据交换到硬盘的交换 区中,以释放物理内存空间。
实现进程隔离
通过虚拟内存技术,每个进程都有独 立的内存空间,实现进程间的隔离, 防止数据冲突和相互干扰。
支持大内存程序
通过将内存分为物理内存和虚拟内存, 支持大内存程序的运行,满足不断增 长的程序需求。
02
虚拟存储器的基本概念
虚拟存储器的定义
虚拟存储器是一种将物理内存与硬盘存储相结合的技术,通 过将部分硬盘空间映射到物理内存中,实现内存的扩展。
操作系统原理虚拟存储器管 理
• 引言 • 虚拟存储器的基本概念 • 虚拟存储器的原理 • 虚拟存储器的管理策略 • 虚拟存储器的实现技术 • 虚拟存储器的性能优化
01
引言
主题简介
虚拟存储器是操作系统中用于管理物 理内存和磁盘存储的技术,通过将内 存分为物理内存和虚拟内存,实现进 程间的隔离和内存的动态分配。
虚拟存储器及其管理技术.
5.6 虚拟存储器及其管理技术虚拟存储器及其管理技术是现代操作系统的重要特征之一,它将外存资源与内存资源进行统一管理,解决了用较小容量的内存运行大容量软件的问题。
本节讲述虚拟存储器的概念,并讨论虚拟存储器管理的三种方法:分段存储管理、分页存储管理和段页存储管理。
5.6.1 虚拟存储器的基本概念从操作系统的角度看,微机系统的资源分为两大类:一类是硬件资源,包括微处理器、存储器和输入/输出设备;另一类是软件资源,即程序和数据。
这些资源构成了系统程序和用户作业赖以活动的物质基础和工作环境。
针对这些资源,操作系统的资源管理程序分为四个部分:处理器管理、存储器管理、外部设备管理和文件管理。
早期开发的操作系统只支持单任务、单用户系统,对存储器的管理比较简单。
如MS DOS就是在8086/8088环境下开发的磁盘操作系统,只支持单任务、单用户操作。
它管理的内存空间最大为1MB,其中供用户程序占用的空间只有640KB,且在内存管理上采用静态分配方式,不支持虚拟存储器。
在运行程序时,必须把用户程序一次调入内存。
而目前使用的Windows操作系统突破了DOS内存1MB的限制,内存最大可达4 096MB,支持多任务、多用户操作,采用动态内存分配管理方式,并且具有虚拟存储器管理功能。
虚拟存储器又称为虚拟存储系统,由主存储器和辅助存储器共同组成。
它把辅助存储器作为主存储器的扩充,对应用程序员来说,好像微机系统有一个容量很大的主存。
1.地址空间及地址CPU只能执行已装入主存的那一部分程序块,与此同时,为了提高主存的空间利用率,还应及时释放已不使用的信息所占用的空间,以便装入其他有用的信息。
这样,随着程序的运行,各种信息就会在主存与辅存之间不断地调入、调出。
在虚拟存储器中要注意如下三个概念。
① 虚拟地址空间。
又称为虚存地址空间,是应用程序员用来编写程序的地址空间,与此相对应的地址称为虚拟地址或逻辑地址。
② 主存(内存)地址空间。
组成原理课件 - 虚拟存储器
速4.度在虚拟存储器中,当程序正在执行时,由( )完成地址映
射A、程序员
B、编译器
D.装入程序
D.操作系统
5.若某单片机的系统程序不允用户在执行时改变,则可以选用
( )作为存储芯片。
A、SRAM
B、flash
C.Cache
Memory D.辅助
存储器
6.程序访问的局限性是使用(
)依据。
A、缓冲
B、
3.段页式虚拟存储器
它是将存储空间按逻辑模块分成段,每段以分成若干个页,这 种访问通过一段表和若干个页表进行。段的长度必须是页长的 数倍,段的起点必须是某一页的起点。在段页式虚拟存储器中 ,拟地址被分为基号、段号、页号、页内地址在进行地址映象 时:先根据基号查找段基址表,从表中查出段表的起始地址, 然后用号从段表中查找该 段的页表的起始地址,然后根据段内 页号在页中查找该页在内存中的起始地址(实页号),同时判 断该段是否入内存,如果该段已装入内存,则从段表中取出实 页号,与页内址字段拼成被访问数据的物理地址。
谢谢
一、填空
1、Cache是指(
)。
2.虚拟存储器是建立在( )结构上, 用来解决( )的问题
3.将辅助存储器当作主存来使用,从而扩大程序可访问的存储空 间,这样的存储结构称为( )。
4、地址映象(射)用来确定( )地址和( )地址之间的逻辑 关系。
5.常用的地址映射方法有( )、( )、组相联映射三种。
2、在主存和CPU之间增加Cache的目的是
)。
(A、增加内存容量
B、解决CPU与内存之间的速度匹配问
C.提高内存的可靠性 题 D.增加内存空量,同时加快存取速
3.采用虚拟存储器的主要度目的是(
第6章 虚拟存储技术及存储保护
(3)既分段又分页
处理器利用其内部的存储器管理部件MMU,对
存储器系统实行既分段又分页的两级管理; 段的大小随代码模块以及数据模块的大小而 异; 能对各段赋予属性与保护信息,在多任务环 境下对各模块有保护作用; 通常页的大小是固定的,可分为4KB或4MB。 分段分页地址转移过程参看图6-7所示。
6.1.1
虚拟存储器简介
虚拟存储(Vivtual Storage) 机制由CPU中的存储管理部件、计算机 的主存、辅存及操作系统共同组成。
6.1.2
Pentium工作的保护模式
保护模式是受保护的虚拟地址模 式(Protected Virtual Address Mode) 的简称。保护模式不仅可以实现虚拟存 储器,而且还可以实现对代码与数据的 安全保护及任务的隔离。
查,包括取段描述符时的检查与用段描述符时 的检查; ②防止一个程序对主存中其他程序的破坏,保 证不越界和不发生其他非法操作; ③会产生保护异常中断13。
1.段保护 (1)检查选择符的值 (2)检查段描述符 (3)用段描述符时的保护
2.页保护
在分页部件中,具有页保护功能,由页目录项 与页表项中的用户/管理员U/S、读/写R/W标志联 合确定。 分两种情况: (1)页目录项与页表项中的U/S、R/W一致。 (2)页目录项与页表项中的U/S、R/W不一致。
图6-12描述了特权级的保护原理: ①当前代码段描述符中的特权级记为CPL ,它 与 DPL1相等。 ②DPL是描述符提供的,每个段都对应有一个描 述符,数据段也就有一个DPL。 ③RPL则属于数据段选择符,是所要请求访问数 据段的特权级别。
应用例请见例【6-5】
表6-1
当前代码段 CPL 0
虚拟存储器管理
vm_operation_struct
void (*nopage)(int error_code, struct vm_area_struct * area, unsigned long address); /* 处理写保护异常,当往一个被保护的页面上写入数据时,就会调用 该命令。*/ void (*wppage)(struct vm_area_struct * area, unsigned long address); int (*share)(struct vm_area_struct * from, struct vm_area_struct * to, unsigned long address); /* 取消映射操作,当内核取消虚存区的部分或者全部映射时,调用该 命令; /* 当取消全部映射后,内核就会自动调用close()进行关闭操作。*/ int (*unmap)(struct vm_area_struct *area, unsigned long, size_t); };
};
vm_area_struct
struct vm_area_struct * vm_next; /* linked list,在链表中指向共享区域*/ struct vm_area_struct * vm_share; /* 指向虚存区所在文件的inode结构,若不涉及文件, 则为NULL */ struct inode * vm_inode; /* 虚存区相对于文件或设备在inode结构中的偏移量 */ unsigned long vm_offset; /* 指向vm_operation_struct结构 */ struct vm_operations_struct * vm_ops;
Linux的分页机制
虚拟存储器
虚拟存储器
虚拟出一个容量极大的内存储器
01 作用
目录
02 设置
03 调整分页位置
04 使用技巧
05 相关
பைடு நூலகம்
06 替换方法
07 虚实地址
09 页式调度 011 段页式调度
目录
08 异构体系 010 段式调度 012 变换算法
虚拟存储器(Virtual Memory):在具有层次结构存储器的计算机系统中,自动实现部分装入和部分替换功能, 能从逻辑上为用户提供一个比物理贮存容量大得多,可寻址的“主存储器”。虚拟存储区的容量与物理主存大小 无关,而受限于计算机的地址结构和可用磁盘容量。根据所用的存储器映像算法,虚拟存储器管理方式主要有段 式、页式、和段页式三种。
虚拟存储器(2)单独建立一个空白分区,在该分区设置虚拟内存,其最小值设置为物理内存的1.5倍,最大值 设置为物理内存的3倍,该分区专门用来存储页面文件,不要再存放其它任何文件。
相关
虚拟存储器
virtual memory
为了给用户提供更大的随机存取空间而采用的一种存储技术。它将内存与外存结合使用,好像有一个容量极 大的内存储器,工作速度接近于主存,每位成本又与辅存相近,在整机形成多层次存储系统。
如果你的硬盘够大,那就请你打开”控制面板“中的“系统”,在“性能”选项中打开“虚拟内存”,选择 第二项:用户自己设定虚拟内存设置,指向一个较少用的硬盘,并把最大值和最小值都设定为一个固定值,大小 为物理内存的2倍左右。这样,虚拟存储器在使用硬盘时,就不用迁就其忽大忽小的差别,而将固定的空间作为虚 拟内存,加快存取速度。虚拟内存的设置最好在“磁盘碎片整理”之后进行,这样虚拟内存就分布在一个连续的、 无碎片文件的空间上,可以更好的发挥作用。
计算机系统结构课件-虚拟存储器
13
页式存储管理
页式存储管理是把虚拟空间和主存空间都分成大 小相同的页(为二的整数幂个字), 并以页为单位进行虚存与主存间的信息交换。 此时虚存地址和主存地址分别被分为 虚存页号、页内地址和主存页号、页内地址, 虚、实二页号会不同,但使用相同的页内地址。
与段式存储管 理不一样,页不是程序本身的结构 特性,而是从管理的角度人为划分的结果。
虚拟存储器
1
内容提要
• 虚拟存储器的目的
– 给程序员提供比实际主存大得多的地址空间
• 虚拟存储器的管理
– 段式管理、页式管理、段页式管理
• 段页式管理的地址映射 • Pentium的虚拟存储管理
2
存储容量需求
• 应用需求
– 海量数据处理
• 天气预报、地震预测、石油勘探
– 多媒体信息处理
• 语音、图形、图象
CPU
Translation with a TLB
hit
VA
PA
TLB Lookup
Cache
miss
Main Memory
miss
hit
Translation
1/2 t
data t
20 t18
TLB 设计问题
• 访问频繁:速度是第一位的
• TLB 缺失将造成:
Virtual page
number
CPU 生成实地址
23
页面失效处理程序 操作系统指示CPU访问辅存
CPU 唤醒输入/输出硬件
将该页从辅存调入到主存
主存已满?
是
否
进行页面替换
修改页表
返回调用指令
24
段页式虚拟存储器管理
是段式虚拟存储器和页式虚拟存储器的综合。 它先把程序按逻辑单位分为段,再把每段分成 固定大小的页。操作系统对主存的调入调出是 按页面进行的,但它又可以按段实现共享和保 护,可以兼取页式和段式系统的优点。其缺点 是需要在地址映射过程中多次查表。其地址映 射通过一个段表和一组页表来进行。
第6章-虚拟存储器
最佳置换算法例
假定系统为某进程分配了3个物理块,页面访 问序列为:1、2、3、4、1、2、5、1、2、3、 4、5,开始时3个物理块均为空闲,采用最佳 置换算法时的页面置换情况如下所示:
采用最佳置换算法的页面置换情况
走向 1 2 3 4 1 2 5 1 2 3 4 5
块1 1 1 1 1
1
33
缺 缺缺缺
缺
缺缺缺
从上表中可以看出,共发生了8次缺页中断。其缺 页率为8/12=66.7% 。
LRU算法的实现
LRU算法实现时需要较多的硬件支持,以 记录进程中各页面自上次访问以来有多 长时间未被访问。下面介绍几种实现方 法。
计数器法 链表法
计数器法
为每个页面配置一个计数器,其初值为0。 当进程访问某页时,将计数器的最高位置1, 定时器每隔一定时间将计数器右移1位,则 数值最小的页是最近最久未使用的页面。
先进先出置换算法例
假定系统为某进程分配了3个物理块,页面 访问序列为:1、2、3、4、1、2、5、1、2、 3、4、5,开始时3个物理块均为空闲,采用 先进先出置换算法时的页面置换情况如下所 示:
采用先进先出算法的页面置换情况
走向 1 2 3 4 1 2 5 1 2 3 4 5
块1 1 1 1 4 4 4 5
最小物理块数是指能保证进程正常运行所需 的最少物理块数,若小于此值进程无法运行。
一般情况下:
单地址指令且采用直接寻址,则所需最少物理 块数为2。
若单地址指令且允许采用间接寻址,则所需最 少物理块数为3。
某些功能较强的机器,指令及源地址和目标地 址均跨两个页面,则最少需要6个物理块。
该算法比较复杂,但性能较好。
软件技术基础 虚拟存储器管理
抖动问题
页面
内存
22
段景山
页面置换带来的抖动问题
页面置换带来的问题
抖动问题
系统频繁地调进和调出页面,特别是被换出的 页面在短时间内又要被换入,系统开销显著增 加,以至于系统吞吐量大大下降
置换算法目标
减少抖动,降低同一页面的重复置换
系统吞吐量
抖动
t
23
段景山
请求式分页的页面置换算法
3、地址变换机构及过程
26
段景山
虚存管理系统信息例 利用Windows优化大师观察到的虚存信息
27
段景山
作业 虚拟存储管理的虚拟性体现在什么地方? 在分页式管理方式基础上实现请求式分页管
理,需要增加哪些重要技术?
28
内0存 将用置暂的换产 户 实 大时 第 出生 感 际 的不 去01给 觉 空 虚页磁用 比 间 拟盘对换区 1 空间
2
2
3
3
8
虚拟存储的特征
虚存的特征
离散性 虚拟存储建立在离散内存管理基础上
多次性 程序页面会多次进/出内存
对换性 在置换页面时需要在外存建立对换区
虚拟性 程序部分装入就可以执行 给用户感觉比实际空间大的虚拟空间
原有存储管理方法中存在的问题 解决问题的动机 问题产生的原因 解决方法的探索 解决方案的可行性分析
4
段景山
虚拟ቤተ መጻሕፍቲ ባይዱ储的引入
1)原有存储管理中存在的问题
当作业很大,超过内存剩余时,无法装入
装入的作业对内存利用率不高
99%空间内的指令在短时间内都不会得到执行
2)解决问题的动机
解决装入作业受限 提高内存利用率
局部性 时间的局部性 在短时间内多次被访问 空间的局部性 在较短程序范围内多次访问
《虚拟存储管理》PPT课件
9
缺页中断机构
主要表现在(与一般中断的主要区别): ●在指令执行期间产生和处理中断信号。
通常CPU外部中断,是在每条指令执行完毕后去 检查是否有中断请求到达。而缺页中断是在指令 执行期间,发现所要访问的指令或数据不在内存 时产生和处理。
10
缺页中断机构
主要表现在(与一般中断的主要区别): ●一条指令执行期间,可能产生多次缺页中 断。
70 1 20304 2 3 0 3 2 1 2 0 1 7 0 1
777 2 00 0 11
22 4 4 4 0 33 3 2 2 2 10 0 0 3 3
00 11 32
777 100 221
FIFO思想——淘汰最先进入内存的页。
OPT与FIFO的比较结果: OPT页面换出6次,缺页9次。 FIFO页面换出12次,缺页15次。
12
地址变换机构
缺页中断处理
保留CPU现场
从外存找到缺页 N
内存满否? Y
选择一页换出 N
该页修改过吗? Y
将该页写回外存
从外存读入缺页 修改页表
开始
页号>页表长度 N
查快表
Y 越界中断
Y 页在快表中?
N 查页表
N
页在内存?
Y
修改快表
修改访问字段和修改位 形成物理地址 结束 13
请求页式存储管理驻留集管理
3. 系统在采取可变分配策略时,尽可能采取局部置换。到 某进程发生缺页时,仅在进程自己的页面内进行置换, 不影响其他进程分配的存储块数。这样即使出现了抖动, 也局限在较小的范围内。
4. 当多道程序的道数出现偏高的情况时,简单而有效的方 法是挂起一些进程,以便腾出内存空间分配给出现抖动 的进程。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
6.2.1 程序局部性原理
2. 虚拟存储器的引入
虚拟存储器中存储的进程执行时并不把其全部内容 装入内存,而只将其中一部分先装入内存。进程执 行过程中用到那些不在内存中的信息时,再把它们 换入内存。
虚拟存储器容量=物理内存容量+辅存中用于虚存 的容量
16
6.2.1 程序局部性原理
2. 虚拟存储器的引入
14
6.2.1 Байду номын сангаас序局部性原理
局限性还表现在下述两个方面:
(1) 时间局限性。如果程序中的某条指令一旦执行, 则不久以后该指令可能再次执行;如果某数据被访 问过,则不久以后该数据可能再次被访问。产生时 间局限性的典型原因是由于在程序中存在着大量的 循环操作。
(2) 空间局限性。一旦程序访问了某个存储单元,在 不久之后,其附近的存储单元也将被访问,即程序 在一段时间内所访问的地址,可能集中在一定的范 围之内,其典型情况便是程序的顺序执行。
17
6.2.2 虚拟存储器及其特征
1. 虚拟存储器的定义
虚拟存储器的基本思想是:
应用程序在运行之前仅将那些当前要运行的少数页面或段 先装入内存便可运行,其余部分放在磁盘上。程序在运行 时,如果它所要访问的页(段)已调入内存,便可继续执 行下去; 但如果程序所要访问的页(段)尚未调入内存(称为缺页 或缺段),此时程序应利用操作系统提供的请求调页(段 )功能,将它们调入内存,以使进程能继续执行下去。 如果此时内存已满,无法再装入新的页(段),则还须再 利用页(段)的置换功能,将内存中暂时不用的页(段) 调至磁盘上,在腾出足够内存空间后,将要访问的页(段 )调入内存,使程序继续执行。 18
11
6.1 覆盖与交换技术
1.交换空间的管理
在具有对换功能的操作系统中,通常把外存分为文件 区和对换区。前者用于存放文件,后者用于存放从内 存换出的进程。系统对文件区一般采取离散分配方式。 进程在对换区中驻留的时间是短暂的,频繁进行对换 操作,故对对换空间管理的主要目标是提高进程的对 换速度。
分页是一维的,各个模块在链接时必须组织成同一个 地址空间; 分段是二维的,各个模块在链接时可以每个段组织成 一个地址空间。
3
重点回顾
基本段页式存储管理方式
每个作业仍按逻辑分段,但对每一段不是按单 一的连续整体存放到存储器中,而是把每个段 再分成若干个页面,每一段不必占据连续的主 存空间,可把它按页存放在不连续的主存块中 。 地址变换如下:
重点回顾
分段:在分段存储管理方式中,作业的地址空间 按照用户编程时划分的自然段被分为若干部分。 每个段定义了一组逻辑信息,有自己的段名。
进程各段在内存中可以不连续存放,但每段要求 在内存中连续存放。内存中各段的长度由用户程 序中的段长决定,因此各段长度不等。 段表 基本分段地址变换机构
采用覆盖技术后,系统可运行比现有内存空间大的进 程。
8
6.1 覆盖与交换技术
9
6.1 覆盖与交换技术
覆盖技术要求操作员对作业有全面的了解,以便为系 统提供一个清晰的覆盖结构。 由于覆盖的划分依据主要来自各程序段之间的调用关 系,因此,一个进程究竟划分为多少段,其中哪些程 序段可以共享同—块存储区,只有程序设计人员最清 楚。如果操作员不是程序员,那么覆盖技术就难以实 现。 覆盖技术主要应用于系统程序,很少应用于用户程 序。
4
重点回顾
段表地址寄存器 段表长度 起始地址 虚拟地址 s p d s p p’ 联想存储器
段表 … …
S段的页表 … 页面 …
5
p’
P’+d 物理地址
第六章 虚拟存储管理
6
本章内容
6.1 覆盖与交换技术 6.2 虚拟存储管理 6.3 请求分页存储管理方式 6.4 请求分段存储管理方式 6.5 请求段页存储管理方式 6.6 存储管理方案总结
为了能对对换区中的空闲盘块进行管理,系统应配置 相应的数据结构来记录外存的使用情况。其与内存动 态分区分配方式中所用数据结构相似,常采用空闲分 区表或空闲分区链。
12
6.1 覆盖与交换技术
2.进程的换出与换入
每当一进程由于创建子进程而需要更多的内存空间时,如 此时系统无足够的空闲内存空间供该进程使用,系统可将 某进程暂时换出。其过程是系统首先选择处于阻塞状态且 优先级最低的进程作为换出进程,然后启动磁盘,将该进 程的程序和数据传送到磁盘的对换区上。若传送过程未出 现错误,便可回收该进程所占用的内存空间,并对该进程 的进程控制块做相应的修改。
1
重点回顾
2
重点回顾
分段与分页系统中的段与页的区别如下 : (1) 段是信息的逻辑单位,它是根据用户的需要划 分的;页是信息的物理单位,是为了管理主存 的方便而划分的。 (2) 页的大小固定不变,由系统决定。段的大小是 不固定的,它由用户完成的功能决定。 (3) 通常段比页大,因而段表比页表短,可以缩短 查找时间,提高访问速度。 (4) 逻辑地址表示:
换出的进程最终还要被换入内存。操作系统应定时查看系 统内所有进程状态,在系统允许的条件下,从磁盘中找出 处于就绪状态且换出时间最久的进程,把它从磁盘换入内 存,供调度程序调度执行。 13
6.2 虚拟存储管理
6.2.1 程序局部性原理
1. 程序局部性原理
程序局部性原理是指程序在执行时将呈现出局部性 规律,即在一较短的时间内,程序的执行仅局限于 某个部分;相应地,它所访问的存储空间也局限于 某个区域。
7
6.1 覆盖与交换技术
6.1.1 覆盖技术
覆盖技术是指程序运行过程中,把同一存储区在不同 时刻分配给不同程序段或数据段,它是实现存储区共 享的一种内存分配技术。可相互覆盖的程序段叫覆盖 段,可进行覆盖操作的内存区域叫做覆盖区。
覆盖段不能超过已有内存空间大小,每个覆盖段分先 后顺序进入系统分配的内存空间,后进入内存空间的 段将先进入内存空间的段覆盖。
10
6.1 覆盖与交换技术
6.1.2 交换技术
交换技术是系统根据需要把内存中暂时不能运行的进 程或暂时不用的部分程序和数据移到外存,以便腾出 足够的内存空间,把外存中已具备运行条件的进程或 部分程序和数据换入,使其运行。交换是提高内存利 用率的一种有效措施。 为了实现交换技术,系统必须能实现两方面的功能: 对换空间的管理、进程的换出与换入。