《操作系统虚拟内存.ppt》由会员分享,可在线阅读,更多相关《操作系统虚拟内存.ppt(85页珍藏版)》请在第壹文秘上搜索。
1、2023-3-27操作系统虚拟内存操作系统虚拟内存操作系统虚拟内存操作系统虚拟内存由于受到计算机结构限制和系统成本限制,计算机系统的内存容量总是有限的。在传统存储器管理中,如果一个作业需要运行,系统必须将作业的全部信息装入内存,并在整个作业运行结束后,才能释放内存。如果一个作业信息大于内存容量,则无法装入内存,也无法运行;如果系统有大量的作业申请进入内存,则系统只能接纳相当有限的作业,系统的多道度和性能都难以得到提高。通过对进程运行的分析而发现:在进程执行时,并非同时需要作业的全部信息。虚拟存储器概念操作系统虚拟内存在进程的执行过程中,作业的某部分信息,可能从来不会使用;也可能运行完一次后,再
2、也不会使用。如果将这些不使用的信息存放在物理内存中,对内存是一种浪费。同样,既然作业的全部信息是分阶段需要,则可以分阶段将作业信息调入内存,而不需要一次将作业的全部信息调入内存。于是,提出了这样的问题:能否将作业不执行的部分暂时存放在外存,待到进程需要执行时,再将其从外存调入内存。将外存作为内存的补充,从逻辑上扩充内存,是虚拟存储管理的虚拟存储管理的基本思想基本思想。虚拟存储器概念操作系统虚拟内存人们通过对Fortran语言程序、操作系统过程和通用科学计算程序的分析,发现了对程序和数据的访问具有如下特点:(1)顺序性 程序在运行时除了少部分的分支和过程调用指令外,大部分都是顺序执行。对大程序没
3、有必要把所有的信息一次都放入内存。(2)局限性 程序在运行时,如果有若干个过程调用,程序执行的轨迹会转移至调用区域,但过程调用一般由相对较少的指令组成。当程序在某个局部范围内运行时,系统可以只将相关的局部信息放入内存,其它不相关或暂时不相关的信息放入外存。虚拟存储器概念操作系统虚拟内存(3)多次性 虽然程序中可能包含许多循环结构,但是这些循环结构通常只由少数指令构成。这些集中在一起的少数指令被多次执行,在内存中可以只放入一个版本,在需要时才将该版本调入内存。(4)独立性 程序中可能存在彼此互斥或相互独立的部分,每次运行时总有部分程序不被使用,没有必要将不被使用的部分放入内存。 虚拟存储器概念操
4、作系统虚拟内存 虚拟存储器定义:是指具有请求调入功能和置换功能,能够虚拟存储器定义:是指具有请求调入功能和置换功能,能够从逻辑上对内存空间进行扩展,允许用户的逻辑地址空间大从逻辑上对内存空间进行扩展,允许用户的逻辑地址空间大于物理内存地址空间的存储管理系统。于物理内存地址空间的存储管理系统。虚拟存储器的组织形式如下图所示。虚拟存储器的组织形式如下图所示。虚拟存储管理的组织虚拟存储器概念操作系统虚拟内存在虚拟存储器中,一般将硬盘作为外存,因此,硬盘也被称为对换设备。虚拟存储器的逻辑地址空间大小与物理内存大小没有直接关系,由计算机系统的地址结构决定。 如果计算机系统的地址为32位,则可寻址的范围为
5、04G;如果计算机系统的地址为20位,则可寻址的范围为01M。计算机系统的可寻址范围为虚拟存储器的最大范围。 虚拟存储器概念操作系统虚拟内存虚拟存储器完成了逻辑地址空间和物理地址空间的分离,能够在一个小的物理存储空间上提供给程序一个巨大的虚拟存储器空间。虚拟存储器的基础是内存的离散管理,实现的方式为请求请求分页式虚拟存储器管理分页式虚拟存储器管理或请求分段式虚拟存储器管理请求分段式虚拟存储器管理。虚拟存储器概念操作系统虚拟内存以页为单位置换需硬件支持请求分页的页表机构缺页中断机构地址变化机构需实现请求分页的软件用于实现请求调页的软件实现页面置换的软件请求分页系统操作系统虚拟内存请求分段系统以段
6、为单位置换需硬件支持请求分段的段表机构缺段中断机构地址变化机构需实现请求分段的软件用于实现请求调段的软件实现段面置换的软件操作系统虚拟内存虚拟存储器特征多次性:最重要的特征 虚拟存储器在实现上需要将一个作业分多次调入内存运行。对换性 虚拟存储器允许作业在运行过程中将暂时不运行的部分换出,在需要时再换入,对换性使得作业运行所需内存更少,系统的多道度提高。虚拟性 虚拟存储器从逻辑上扩充内存容量,使得用户能够使用的内存容量远远大于实际内存容量,提高了系统运行程序的能力。 操作系统虚拟内存 虚拟存储管理的方式之一为基于内存的分页管理。分页虚拟存储器管理的实现需要增加请求调页增加请求调页和页面置换页面置
7、换功能。 虚拟存储管理首先将需要运行的作业放在外存。当作业被调度时,系统只将作业的少数页面装入内存,随着作业运行,再通过页面请求功能、调页功能和页面置换功能,逐次将作业需要运行的页面调入内存运行,并将暂时不运行的页面换出到外存。虚拟存储管理的主要功能为请求调页及页面置换。请求分页存储管理操作系统虚拟内存请求分页存储管理请求分页的硬件支持包括:请求分页的硬件支持包括: 请求分页的页表机制、缺页中断机构和地址变换机构请求分页的页表机制 除了页号和物理块号外,增加了页的状态位、外存地址、修改位、访问字段等信息虚拟存储器管理下的页表操作系统虚拟内存页表增加字段的用途:状态位:用于标志一个页面是否已经装
8、入内存。外存地址:页面在外存中的地址。当需要将某页面调入内存时,查询页表中的外存地址,通常是物理块号。修改位:页面到内存后是否被修改过的标志,以确定如果页面被换出内存时,是否需要写入外存。如果页面在内存没有被修改过,页面中的内容和外存中的内容一致,则被换出内存时不需要再写入外存,节约了写入外存的时间。如果页面在内存中已经被修改过了,被换出内存时需要写入外存。请求分页存储管理操作系统虚拟内存访问字段:标志页面在内存时是否被访问过。用于页面置换算法时系统是否将页面换出内存时参考。如果页面被访问过,在页面置换时,系统考虑该页面可能以后会被再次访问而不将其换出。请求分页存储管理操作系统虚拟内存请求分页
9、存储管理缺页中断机构 在进程运行过程中,当发现所访问的页面不在内存时,缺页中断机构便产生一缺页中断信号,通知操作系统将所需要的页面调入内存。 缺页中断与一般中断一样,都需要经历保护CPU环境、分析中断原因、转入中断程序处理、中断处理后恢复CPU环境等步骤。操作系统虚拟内存请求分页存储管理缺页中断又是非常特殊的一种中断,与一般中断有如下不同:CPU检测中断的时间不同 对一般中断信号对一般中断信号,CPU是在一条指令执行完后检测其是否存在,检测时间以一个指令周期为间隔以一个指令周期为间隔。而对缺页中断信号缺页中断信号,CPU是在一条指令执行期间,只要有中断信息就可检测,不需要等待一个指令周期。因此
10、,CPU检测缺页中断更及时。CPU可以多次处理 如果在一个指令周期中多次检测到缺页中断,CPU都会及时处理。 由于缺页中断的独特性,缺页中断的处理过程需要由硬件和软件共同需要由硬件和软件共同完成完成。硬件寄存器硬件寄存器主要用于保护缺页时CPU未完成指令状态和恢复原指令的执行。软件软件为实现缺页中断的相应算法程序操作系统虚拟内存缺页中断处理流程图请求分页存储管理操作系统虚拟内存 虚拟存储器管理不可能在程序执行前将所有的程序页面放入内存,因此,在程序执行过程中需要逐步将程序页面调入内存。这样,在程序运行过程中完成逻辑地址逻辑地址到内存物理地址的变换,是动态重定位装入到内存物理地址的变换,是动态重
11、定位装入。请求分页存储管理操作系统虚拟内存具有快表的请求分页虚拟存储地址变换机构请求分页存储管理地址变换机构操作系统虚拟内存请求分页存储管理当进程被调度时,操作系统将进程PCB中的页表起始地址和长度装入页表寄存器中。CPU从逻辑地址中取得页号,根据页号查询快表查询快表,如果快表中有该如果快表中有该页面的内存块号页面的内存块号,则将内存块号与页内偏移一起作为该页在内存的物理地址;如果快表中没有该页面的内存块号如果快表中没有该页面的内存块号,CPU从页表寄存器得到页表在内存中的起始地址,查询页表查询页表,得到该页的内存块号,则将该块号与页内偏移一起作为该页在内存中的物理地址,同时将该页的页号和内存
12、块号写入快表,以备下次查询时使用。如果查询如果查询页表而没有得到该页的内存块号页表而没有得到该页的内存块号,即表示该页不在内存,产生一缺产生一缺页中断信号页中断信号,请求操作系统将该页面调入内存。操作系统虚拟内存请求分页存储管理在页面调入过程中,如果进程空间没有空余的页框,则系统需要调出一个页面后再将该页面调入内存,同时系统修改页表。请求分页的虚拟存储器管理采用请求页面调入方式,其实现需要硬件支持,增加了机器成本和系统开销。 用于地址变换和各种数据结构的存储开销、执行地址变换指令的时间开销、内存与外存之间对换页面的I/O开销等与单纯的分页存储管理相比,虚拟存储器管理是以牺牲系统开销为以牺牲系统
13、开销为代价,换取内存的逻辑扩充代价,换取内存的逻辑扩充,换取系统运行程序的增大和吞吐量的提高。操作系统虚拟内存请求分页存储管理 请求分页的硬件支持完成了分页虚拟存储器管理中的地址变换,但是,在实施分页虚拟存储器管理中需要解决如下的策略问题:调页策略调页策略用于决定何时将进程所需要的页面调入到内存分配策略分配策略决定系统应该给一个进程分配多少内存中的物理块,进程才能运行。内存置换策略 内存置换策略用于决定内存中的哪些页面被换出内存。操作系统虚拟内存请求分页存储管理 在虚拟存储器管理中,有两种调页策略:请求页(demand paging)调入和预先页(prepaging)调入:请求页调入请求页调入
14、是在在CPUCPU需要访问进程页面需要访问进程页面时,所访问的进程页面不在内存,则CPU发出缺页中断,请求将页面调入内存。操作系统接收到缺页中断请求后,分配内存页框并完成从外存调入页面优点:只有在需要时才将页面调入内存,节省了内存空间。操作系统虚拟内存请求分页存储管理缺点:在进程初次执行时,开始会有大部分的页面调入内存,这时的进程切换开销很大。如果发生缺页时系统调入页面,而每次又仅调入一个页面,则启动磁盘作I/O的频率很高。由于每次启动磁盘时会产生一个时间延迟,因此,会造成系统用于I/O的时间增长,系统效率降低。对于执行顺序跳跃性大的程序,缺页情况变化大,难以趋向稳定的水平,从而引起系统不稳定
15、。操作系统虚拟内存请求分页存储管理预先页调入预先页调入由操作系统根据某种算法,预先动态估计进程可能要访问的页面,并在处理器需要访问页面之前先将页面预先调入内存优点 一次可将多个页面调入内存,减少了缺页中断的次数和I/O操作次数,系统付出的开销减少。如果预先动态估计准确率高,该调入策略会大大提高系统效率。缺点: 如果预先动态估计准确率较低,调入的页面不被使用的可能性大,系统效率较低如果程序员不能预先提供所需程序部分的信息,则该调度策略难以实施。操作系统虚拟内存请求分页存储管理物理块的分配策略物理块的分配策略: :为了合理和有效分配内存,内存物理块可以按照进程平均分配法、进平均分配法、进程按比例分
16、配法和进程优先权分配法程按比例分配法和进程优先权分配法进行分配。进程平均分配法 在内存物理块的分配上,早期采用的是各进程机会均等进行分配的方法,即进程平均分配法。进程按比例分配法: 根据进程的大小,进程按比例分配法为按照比例分配内存物理块数。如果系统中有m个内存物理块,n个并发进程,每个进程的页面数为si,则系统中每个进程能够分得的内存物理块数为:操作系统虚拟内存内存物理块数也应该取整数。 例如,如果内存能够提供62个内存物理块,并发进程有P1(有10个页面)和P2(有127个页面),则进程P1和P2分配到的内存物理块分别为:请求分页存储管理操作系统虚拟内存请求分页存储管理进程优先权分配法对于在系统中所处地位重要、时间要求紧迫的进程,系统应该考虑给其分配较多的内存空间,使其加速完成。在实际应用中,将按比例分按比例分配法和进程优先级结合配法和进程优先级结合起来考虑,系统把内存中可以分配的物理块分为两部分,一部分按照比例分配给各并发进程,另一部分根据进程的优先权进行适当增加。对内存物理块分配还要考虑系统的多道度情况还要考虑系统的多道度情况。如果随着系统运行,多道度增加了,则每个进程需要释放