《计算机操作系统-第4章存储管理.ppt》由会员分享,可在线阅读,更多相关《计算机操作系统-第4章存储管理.ppt(63页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、清华大学出版社 计算机操作系统刘 腾 红 主编Computer Operating System第4章 存储管理要求学生了解存储管理的一般性概念;重点掌握分区式管理、分页式管理、分段式管理以及段页式管理的原理,在学习中要注意每种管理方式提出的背景和解决的问题,还要了解系统内部提供的软硬件支持。第4 章 存储管理q 4.1 存储管理概述q 4.2 简单的存储管理q 4.3 分页式存储管理q 4.4 请求分页存储管理q 4.5 分段存储管理q 4.6 段页式存储管理q 4.7 Windows XP的内存管理4.1.1 内存概念与存储器层次 计算机系统由计算子系统(处理机与CPU)、存储子系统、I/
2、O子系统组成。如图4-1所示4.1 存储管理概述图41 计算机系统中内存的位置4.1.1 内存概念与存储器层次 1存储层次(如图4-2所示)。4.1 存储管理概述图42 计算机存储层次关系4.1.2 存储管理 1.内存空间管理 负责内存区域的分配与回收 2重定位 程序存在名字空间、逻辑地址空间和物理地址空间(如图4-3所示)4.1 存储管理概述B+NM0BN0符号指令 数据说明 I/O 说明 名字空间 地址空间 存储空间 目标程序作业i图4-3 程序的名空间、逻辑地址空间和物理地址空间举例:如图4-4所示4.1 存储管理概述图4 4 进程的寻址要求2重定位含义:由相对地址到物理地址的地址变换(
3、1)静态重定位 程序运行之前进行重定位 缺点:一旦程序装入后,不能在内存中移动 它要求分配给程序的内存空间连续,不易实现 不利于多进程共享程序4.1 存储管理概述(2)动态重定位程序运行过程中通过硬件来实现虚-实地址变换,如图4-5所示 4.1 存储管理概述图4 5 动态重定位的过程(2)动态重定位优点:高效 内存移动简单,为存储空间紧缩与内存碎片处理提供了可能 一个程序可以存放在连续的内存空间,有利于充分利用内存。多个进程共享程序或数据段时,可以只要一个副本。4.1 存储管理概述3内存共享4存储保护(1)上下界限保护如图4-6(a)所示,基址、限长寄存器保护如图4-6(b)4.1 存储管理概
4、述(a)上下界限寄存器保护(b)基址、限长寄存器保护图4 6 界限寄存器的存储保护4存储保护(2)存储键保护:如图4-7所示4.1 存储管理概述图4 7 存储保护键的内存保护5逻辑组织程序被逻辑化地组织成一系列的模块6物理组织7虚拟存储器这种技术的实质是将外存作为内存的外延对于应用程序,以为系统提供了一个足以存放当前系统运行的所有用户进程的程序与数据集的、比实际内存空间大的多的存储空间,这个存储空间就是虚拟存储器。4.1 存储管理概述4.2.1 单一连续区分配 在个人计算机中,管理方法如图4-8所示4.2 简单的存储管理256KB-1图4-8 单一连续区的存储空间的组织256KB-10RAM
5、中的操作系统用户程序ROM 中的操作系统(a)操作系统占用低地址区256KB-100RAM 中的操作系统用户程序用户程序ROM 中的操作系统(b)操作系统占用高地址区(c)操作系统分隔在存储器的两端4.2.1 单一连续区分配 主要缺点有:(1)存储器得不到充分利用(2)处理机的利用率比较低(3)周转时间长(4)缺乏灵活性4.2 简单的存储管理4.2.2 分区分配 根据分区方式的不同,可分为:1固定式分区(又称为静态分区)如图4-9 4.2 简单的存储管理图4-9 固定式分区分配4.2.2 分区分配2可变式分区:如图4-10所示4.2 简单的存储管理图4-10 可变式分区主存分配情况2可变式分区
6、(1)分区说明表如图4-11所示:图中的两张表的内容是对图4-10(d)情况的描述。4.2 简单的存储管理始址 大小 占用标志20KB 32KB J152KB 6KB J666KB 58KB J5130KB 100KB J4空表目空表目始址 大小 占用标志158KB 8KB可用124KB 6KB可用230KB 26KB可用空表目空表目空表目(a)已分配区表(b)未分配区表图4-11 可变式分区说明2可变式分区 一个回收区R邻接空闲区的情况有三种,如图4-12所示。4.2 简单的存储管理(c)回 收 区R 与 上 下 空 闲区邻接128KB-1 128KB-1图4-12 回收区邻接空闲区的三种情
7、况0空闲区F1R空闲区F2(a)回 收 区R 与 上 空 闲 区邻接128KB-10 0空闲区F1R作业X作业XR空闲区F2(b)回 收 区R 与 下 空 闲 区邻接2可变式分区(2)空闲区链4.2 简单的存储管理图4-13 附有表格信息的分区格式2可变式分区常用空闲区链的管理方法有三种:首次适应算法(First-Fit)图4-11(b)的未分配区表用空闲区链表示时,变为图4-14。4.2 简单的存储管理图4-14 首次适应算法的空闲区链2可变式分区常用空闲区链的管理方法有三种:最佳适应算法(Best-Fit)图4-11(b)的未分配区表用空闲区链表示时,变为图4-15。4.2 简单的存储管理
8、图4-15 最佳适应算法的空闲区链2可变式分区常用空闲区链的管理方法有三种:最坏适应算法(Worst-Fit)图4-11(b)的未分配区表用空闲区链表示时,变为图4-16。4.2 简单的存储管理图4-16 最坏适应算法的空闲区链4.2.2 分区分配3分区管理的存储保护(1)存储保护键(2)界限寄存器上、下界防护如图4-17(a)基址、限长防护 如图4-17(b)4.2 简单的存储管理图4-17 界限寄存器保护4.2.2 分区分配4碎片问题碎片:是指在已分配区之间存在着的一些没有被充分利用的空闲区解决办法之一:采用拼接技术如图4-18所示。4.2 简单的存储管理4-18 分区分配中的空闲区拼接4
9、碎片问题拼接技术的缺点是:消耗系统资源,为移动已分配区信息要花费大量的CPU时间。当系统进行拼接时,它必须停止所有其他的工作。对交互作用的用户,可能导致响应时间不规律;对实时系统的紧迫任务而言,由于不能及时响应,可能造成严重后果。拼接需要重新定义已存入主存的作业。4.2 简单的存储管理5分区管理的优、缺点主要优点为:实现了主存的共享实现分区管理的系统设计相对简单,不需要更多的系统软硬件开销。实现存储保护的手段也比较简单。4.2 简单的存储管理5分区管理的优、缺点主要缺点为:主存利用仍不够充分,存在严重的碎片问题不能实现对主存的“扩充”和单一连续区分配一样,要求一个作业运行之前必须全部装入主存。
10、4.2 简单的存储管理4.2.3 覆盖与交换 1虚拟存储器 部分装入程序 实现虚拟存储技术要求:外存、主存、地址变换机构 2覆盖 覆盖:是指同一主存区可以被不同的程序段重复使用 覆盖的基本原理可用图4-19加以说明。4.2 简单的存储管理2覆盖覆盖的基本原理可用图4-19加以说明。4.2 简单的存储管理图4-19 覆盖示例3交换 采用交换技术,实际上是用辅存作缓冲,让用户在较小的存储空间中通过不断地换出作业而运行较大的作业,以提高作业周转速度和主存利用率。交换主要是在作业间进行,而覆盖主要是在作业内进行。4.2 简单的存储管理页面与物理块 1虚拟存储器 内存物理块或块:从地址0开始递增编号 页
11、或页面:与内存块大小相等的逻辑地址空间,也从地址0开始顺序编号。按照分页式的概念:逻辑地址=页号+页内地址 如图4-20所示4.3 分页式存储管理图4 20 逻辑地址空间的分页4.3.2 页表对于图4-21中的作业2的页表,如图 4-21所示4.3 分页式存储管理图421 内存的分页和页表4.3.3 分页式系统的地址变换4.3 分页式存储管理图422 分页系统的地址变换示意图4.3.4 采用快表的地址变换4.3 分页式存储管理图4-23 分页系统中采用快表的地址变换页表页表应该包括下列信息:4.4请求分页存储管理页号 内存块号 状态位 修改位 引用位 保护信息 4.4.2 请求分页系统的地址变
12、换与缺页中断处理请求分页系统的地址变换如图4-24所示请求的页3被调入后的情况如图425所示请求页式系统的地址变换与缺页中断处理如图426所示图424 请求页式的地址变换图425 请求的页3被调入后的情况图426 请求页式系统的地址变换与缺页中断处理4.4.3 页面淘汰算法1最佳算法:如图427(a)选择距下次被引用时间间隔最大的页来淘汰2先进先出算法:如图427(b)3最近最久未使用算法:如图427(c)所示把到目前为止最长时间没有被使用的页淘汰近似的LRU算法:如图427(d)所示4时钟算法时钟算法是寻找一个从上次检查以来没有被访问过的页面4.4请求分页存储管理2 3 2 1 5 2 4
13、5 3 2 5 22 2 2 2 2 2 4 4 4 2 2 23 3 3 3 3 3 3 3 3 3 315 5 5 5 5 5 5 5F F F2 2 2 2 3 1 5 5 2 2 4 33 3 3 1 5 2 2 4 4 3 515 2 4 4 3 3 5 2F F F F F F2 2 2 2 3 1 5 2 4 5 3 33 3 3 1 5 2 4 5 3 2 515 2 4 5 3 2 5 2F F F F F2 2 2 2 3 1 5 2 4 3 3 33 3 3 1 5 2 4 3 2 2 51 5 2 4 5 5 5 5 2F F F F F(a)最佳算法(b)先进先出算法
14、(c)最近最久未使用算法(d)近似的LRU算法图427 不同淘汰算法对同一页面请求序列的效果4.5.1 有关分段的基本概念1.分段 每个分段是由从0开始编址的连续的地址空间,它的长度由逻辑信息的内容多少决定 分段系统中 逻辑地址=段号S+段内地址W4.5 分段存储管理段号S 段内地址W段号 内存起始地址 段长2.段表4.5.2 段式系统的地址变换1.地址变换:如图4-28所示4.5 分段存储管理图428分段存储管理的地址变换4.5.2 段式系统的地址变换2段表扩展 段在内存首址外还增加:状态位、访问位、修改位、存取方式、外存起址、增补位 这样段表中包括了缺段中断处理时所要的各项信息。4.5 分
15、段存储管理3缺段中断:如图4-29所示4.5 分段存储管理图429 分段管理的内存访问与缺段处理4.5.3 分段式系统共享与保护1段的共享 4.5 分段存储管理图430 分段的共享4.5.3 分段式系统共享与保护2段的保护 分段存储管理中段的保护主要:1)地址越界保护 2)存取方式控制 4.5 分段存储管理4.6.1 基本概念 在段页式系统中,逻辑地址=段号+段内页号+页内地址 4.6 段页式存储管理段号s 段内页号p 页内地址w4.6.2 段页式系统地址变换 4.6 段页式存储管理图431 段页式存储管理的地址变换4.7.1 Windows XP的虚地址映射 默认情况下,32位的Window
16、s XP系统能提供4G的地址空间,如图4-32所示 4.7 Windows XP的内存管理0 xFFFFFFFF064KB 的区域,用于空指针赋值(不可访问)64KB 的 区 域,用 于 坏指针赋值(不可访问)2GB 的 用 户 地 址 空 间(可使用)2GB 的 区 域,用 于 操作系统(不可访问)图4-32 Windows XP 默认的虚拟地址空间4.7.2 Windows XP中进程页面的状态 Windows XP采用分页管理技术管理系统内存 Windows XP的一个进程页面状态:1)空闲 2)保留:可通过Win32 VirtualAlloc和VirtualAllocEx函数实现 3)
17、提交 4.7 Windows XP的内存管理4.7.3 Windows XP分页系统的数据结构与地址变换 Windows XP分页系统采用了二级页表结构,其虚拟地址结构如图4-33所示 4.7 Windows XP的内存管理0 12 11 22 21 31 页目录索引 页表索引 字节索引 虚页号图4-33 32位虚拟地址结构4.7.3 Windows XP分页系统的数据结构与地址变换Windows XP虚拟地址变换过程(图4-34)如下:1)由页目录寄存器的内容确定当前进程的页目录在内存中的位置。2)利用虚拟地址中的“页目录索引”找到所需页表在页目录中对应的页目录项。页目录项中包含有对应页表在
18、内存中的物理页框号,由此查找指定页表在内存中的位置。4.7 Windows XP的内存管理4.7.3 Windows XP分页系统的数据结构与地址变换Windows XP虚拟地址变换过程(图4-34)如下:3)再利用虚拟地址中的“页表索引”查找指定页面在该页表中对应的页表项。页表项中包含有指定页面在内存中的物理页框号。4)最后,利用虚拟地址中的“字节索引”查找指定数据在物理页框中的位置。Windows XP分页系统的主要数据结构除了页目录和页表以外,还有支持快速地址变换的快表TLB。4.7 Windows XP的内存管理物理页物理内存页表集页目录页目录索引 页表索引 字节索引页目录寄存器页框号
19、页框号图4-34 虚拟地址转换为物理地址的变换过程4.7.4 Windows XP的内存分配技术1)用户空间存储分配技术:以页为单位的虚拟内存分配方法、内存映射文件方法、内存堆栈方法2)系统空间存储分配技术:系统初始化时,内存管理程序会创建两种动态大小的内存缓冲池,非分页缓冲池和分页缓冲池。3)快速内存分配机制,称为后备链表(Look-Aside List)4.7 Windows XP的内存管理4.7.5 Windows XP的缺页中断处理过程引起缺页错误的情形:1)用户空间存储分配技术:1)进程访问的页面在磁盘上的某个页文件或映射文件中,尚未进入内存。处理:为进程分配一个物理页框,将所需的页
20、面从外存装入,并放入进程的工作集。2)所访问的页面在后备链表或修改链表中 处理:将该页移到进程或系统的工作集中。4.7 Windows XP的内存管理 3)所访问的页面不包含在进程页目录中,但该页面存在于系统空间且有效。处理:从主系统页目录结构复制相应的页目录项,并消除异常。4)对于一个写时复制的页面执行写操作。处理:为进程复制一个私有页面备份。5)几类属于非法访问的操作4.7 Windows XP的内存管理4.7.5 Windows XP的缺页中断处理过程 线程也可能发生同样的缺页错误。类似情况包括:1)冲突页错误;2)页面可能已经从虚拟地址空间中删除,并重新映射;3)页面的保护权限可能已经
21、被修改等。4.7 Windows XP的内存管理4.7.6 Windows XP的页面调度策略 Windows XP采用了请求调页技术,并以簇为单位装入页面。当线程发生缺页中断时的“置页策略”页面置换:在多处理机系统中,Windows XP采用了局部“先进先出”置换策略。在单处理机系统中,Windows XP采用了类似“最近最久未用(LRU)”置换策略。Windows XP采用了可变工作集管理策略。4.7 Windows XP的内存管理4.7.7 Windows XP的工作集管理 Windows XP使用的工作集管理采用“可变分配,局部置换”策略 工作集的调整只能局限在默认最小和最大尺寸之间 进程工作集和系统工作集 4.7 Windows XP的内存管理 本章首先介绍存储管理的一般性概念,然后从存储管理解决问题的过程与技术发展分别讨论了分区式管理、分页式管理、分段式管理以及段页式管理的原理,学习中要注意每种管理方式提出的背景和解决的问题,还要了解系统内部提供的软硬件支持。4.8小结