存储管理

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2.请求分页存储管理
1) 分页管理的基本概念
2.请求分页存储管理
1) 分页管理的基本概念 (2)地址结构 分页存储管理系统的地址结构与页的大小有关 页的尺寸太大,和可重定位分区分配没什么不同了 页的尺寸太小,页表就得加长,太碎,调度增加。 通常选择页的大小为2的幂。 分页系统中用户的逻辑地址是一个有序对(P,W),P 是被访问项的页号,W是被访问项在页P内的位移量。
2.地址映射

通常,程序的起始地址都是从“0”开始的,程序中的其 它地址都是相对于起始地址计算的,该地址被称为逻辑地 址(或相对地址)。由这些地址所形成的地址范围称为( 作业)地址空间。此外,主存单元的编号称为物理地址( 或绝对地址),由主存中的一系列单元所限定的地址范围 称为存储空间。
2.地址映射
重定位 寄存器 14000 CPU 逻辑地址 346 内存
+
物理地址 14346
MMU
3.内存保护



内存保护是为多个程序共享内存提供保障,使在内存中的 各道程序只能访问自己的区域,避免各道程序间相互干扰 ,特别是当一道程序发生错误时, 不致影响其它程序的运 行。通常由硬件完成保护功能,由软件辅助实现。实现方 法有界限寄存器和存储保护键等方法。 1)界限寄存器 每个进程都有自己独立的进程空间,如果 哪个进程在运行时所产生的地址在其地址空间之外,则发 生地址越界。即当程序要访问某个内存单元时,由硬件检 查是否允许,如果允许则执行,否则产生地址越界中断, 由操作系统进行相应处理。一般提供一对寄存器,即基址 寄存器/限长寄存器,分别存放起始地址和长度;或者是一 对上界寄存器/下界寄存器。 2)存储保护键 给操作系统区和各个进程空间分别分配不 同的整数作为键值,每个进程分别保存自己的键值,进行 内存访问的时候匹配当前键值和被访问分区的键值,相等 则同意,否则拒绝访问。


9.3 虚拟存储管理
1. 2. 3. 4. 虚拟存储器的原理 请求分页存储管理 请求分段存储管理 段页式存储管理
1. 虚拟存储器的原理
基于对大量程序运行特征的观察结果发现,程序在执 行过程中一个较短的时期,所执行的指令地址和指令 的操作数地址,分别局限于一定的区域,即程序对主 存的访问是不均匀的,这种特性叫做程序的局部性原 理(Principle of Locality)。 基于局部性原理,程序装入时,不必全部装入内存, 而只需要将当前需要的执行的部分读入内存,就可以 开始程序执行,在执行过程中,若需要的部分不在内 存,由操作系统将其调入,如果没有多余的主存空间, 则把暂时不用的部分调出。

2.请求分页存储管理
1) 2) 3) 4) 分页管理的基本概念 地址变换机构 页面置换算法 分页存储管理的优缺点
2.请求分页存储管理
1) 分页管理的基本概念 (1) 页面、页框 分页是把主存存储空间按大小一定的块划分,称为 物理块,或页框;同时按同样的尺寸去划分作业的 地址空间,形成一个个相等的页面,称为逻辑页或 虚页。因此,作业可以按页为单位,零散地放在主 存的不连续的页框中。 在主存中设一个页表,或叫页面映象表(Page map table), 实现逻辑地址到物理地址的转换.
3.动态分区
① 分区分配
0K 15K
始址 0K 38K 68K 110K 80K 85K
长度 15K 10K 12K 10K 5K 13K b)已分配区表
标志 J1 J2 J3 J4 J5 J6
38K 48K
68K
始址 15K 48K 98K
长度 23K 20K 12K
标志 未分配 未分配 未分配 空 空
进程2
进程2
进程2
进程2
3.动态分区
① ② ③ ④ 分区分配 空闲分区分配算法 分区的回收 可重定位的动态分区
3.动态分区
① 分区分配 为了实现动态分配,操作系统必须记录分区的使 用情况,一般采用分区表(或者分区链表)来实 现。为了便于管理,分区表可以分成两部分:空 闲分区表和已分区分配表,分别表示空闲分区和 已使用分区的信息
(1)先进先出算法(FIFO)

例:设有一用户程序共分为5页,其执行时页面变化的规律 称为页面走向P,分配给该程序的页架数M为3,其页面淘汰 过程如下图,其中F为“+”号表示页面有交换。
页面走向
P=
3 3
M=3
2 3 2 +
F=
+
1 3 2 1 +
0 0 2 1 +
3 0 3 1 +
2 0 3 2 +
第9章 存储管理
计算机软件技术基础
机械工业出版社
本章基本内容与要求

基本内容



存储器层次结构 存储管理任务 实存储管理 虚拟存储管理
本章基本内容与要求
要求




掌握存储管理任务 掌握存储管理、 实存储管理 了解存储器层次结构
9.1存储管理的概念与任务
一、存储器层次结构 二、存储管理任务
2.请求分页存储管理
2) 地址变换机构
页表寄存器 页表始址 页表长度 逻辑地址L
>
越界中断
页号P
页内地址W
+
页号 块号 b
其它信息
页号 块号 输 入 寄 存 器 快表 b d b
页表
物理地址
2.请求分页存储管理
3) 页面置换算法 (1)先进先出算法(FIFO) 先进先出算法是当需要淘汰一页时,选择在主存中 驻留时间最长的那页被淘汰掉。 这一算法适用于按线性顺序访问地址的程序,否则 效率不高。因为最先进入内存的页面可能是经常被 使用的页面,这样会引起页面频繁的变换。 算法简单, 但性能较差,表现为: 内存利用率不高。原因:基于“cpu按线性顺序访问 存储空间”假设,而事实并非如此,如循环语句; 存在 Belady 异常现象:内存块增加,缺页率增加。 原因:该算法根本没有考虑程序执行的动态特性。

固定分区的优点是可以多道运行,比较简单,要求硬件支 持少。缺点是存在内部碎片问题.
3.动态分区

动态分区的概念是主存不是预先划分好的,而是当作业装 入时,根据作业的需求和主存空间的使用情况来动态决定 是否分配。
OS 进程5 OS 进程5 OS 进程5 进程9 进程8 OS 进程5 进程9 进程10
80K 85K 98K 110K 120K a)内存
c)空闲区表
3.动态分区
② 空闲分区分配算法 1)首次适应算法(First Fit) 2)下次适应算法(Next Fit) 3)最坏适应算法(Worst Fit) 4)最佳适应算法(Best Fit)
3.动态分区
② 空闲分区分配算法 1)首次适应算法(First Fit) 为作业选择分区时总是按地址从低到高搜索,找到第一个 可以容纳该作业的空白块,就把该空白块分割并分配给该 作业。 为了提高查找速度,可以把空闲分区链表按照地址递增的 次序排列。 该算法简单,快速分配 在低地址区,大的分区不易被保留,大的分区被保留在高 地址区,并且时间一长,低地址区不断被分割,往往留下 很多难以利用的、很小的空闲分区,这些分区存在于别的 分区之外,是单独的分区,叫做“外部碎片”,而每次查 找又从低地址开始查找,这又增加了查找开销。
3.动态分区
② 空闲分区分配算法 2)下次适应算法(Next Fit) 类似首次适应法,又叫做循环首次适应算法。 每次分区时,总是从上次查找结束的地方开始,只要 找到一个足够大的空白区,就把它划分后分配出去。 优点:解决了首次适应算法低地址区会产生很多碎片 的问题,使内存中空闲分区分布比较均匀 缺点:大的空闲分区在内存中不易保留。
ห้องสมุดไป่ตู้
一、 存储器层次结构
二、存储管理任务
1. 2. 3. 4. 主存空间分配 地址映射 内存保护 内存“扩充”
1.主存空间分配




主存空间分配的任务是动态地为不断进进出出的作业分配 主存空间,作业运行完成后,及时回收主存空间。操作系 统在实现内存分配时,可采取以下两种方式: 1)静态分配方式 每个作业的主存空间是在作业装入时确 定的;在作业装入后的整个运行期间,不允许再申请新的 主存空间,也不允许作业在主存中“移动”。 2)动态分配方式 每个作业的主存空间是在作业装入时确 定的;但在作业运行过程中,允许继续申请新的附加主存 空间,以适应程序和数据的动态增长,也允许作业在主存 中“移动”。 为了实现主存分配,在主存分配的机制中应具有以下结构 和功能:1) 记住状态;2) 决定主存分配策略;3 )主存分 配功能;4) 主存回收的技术和策略。
2.固定分区

预先把可分配的主存储器空间分割成若干个连续区域,称 为分区。每个分区的大小可以相同也可以不同。
20K 32K 64K 128K 256K 操作系统 作业A 作业B 作业C
分区号 1 2 3 4
大小(K) 12 32 64 128
起址(K) 20 32 64 128
状态 已分配 已分配 已分配 未分配
2.请求分页存储管理
1) 分页管理的基本概念 (3)页表结构 页表负责从逻辑地址到物理地址的映射,请求分页 存储系统中的页表结构一般如下图所示:
页号
存储块 号
中断位
辅存地 址
引用位
修改位
存取控 制
2.请求分页存储管理
2) 地址变换机构 采用一组硬件寄存器,可以按照内容并行查找,存 放当前访问页的物理块号,此硬件寄存器即超高速 缓存,称为“快表”(Translation Lookaside Buffers),又称为联想寄存器
3.动态分区
② 空闲分区分配算法 3)最坏适应算法(Worst Fit) 在作业选择存储块时,总是寻找最大的空白区。为了 提高查找速度,可以把空闲分区链表按照空闲块大小 递减的次序排列。 优点:当分割后空闲块仍为较大空块 缺点:大的空闲区不易被保留,并且相对其它几种算 法来说,主存利用率较低。 。
9.2 实存储管理
1. 2. 3. 单一连续分区 固定分区 动态分区
1.单一连续分区



在单道环境下,除了系统占用一部分主存外,剩下的主存 区域全部归进程(作业)占用。 主存可以划分为三部分:系统区、用户区和空闲区。用户 占用区是一个连续的存储区,主存除操作系统所用之外, 全部给一个用户,故又称单一连续区存储管理。 2.0以下的DOS操作系统即采用单一连续区主存管理方法。 优点:该方法实现简单,便于操作。 缺点: 主存利用不充分,空白区不能利用 作业必须全部装入主存 处理机利用不充分,如作业等待I/O时,处理机空闲 主存不能扩充,当主存可用空间小于作业时,由用户将 作业分割成几部分,一部分一部分地运行。
3.动态分区
③ 分区的回收 当进程结束或终止时,要进行内存回收。如果回收的 分区与其它的分区相邻,则合并成一个较大的分区, 修改空闲分区表,并检查是否满足阻塞在内存空间的 等待进程的需求。 动态分区便于动态申请内存、共享内存和动态链接, 但缺点是有碎片问题(外部碎片)。

3.动态分区
④ 可重定位的动态分区 主要使用紧凑技术,即当空闲内存被分成很小的块时, 即使全部的空间满足需求,也不能分配给请求进程, 因为它们并不连续。 为了消除外部碎片,进一步提高主存的利用率,定时 地(或者在主存空间紧张时)把主存中的作业“搬家 ”集中在主存的一端,使另一端产生一个大的空闲区, 这种技术称为存储器的“紧凑”。 紧凑仅仅在动态重定位时才可以用,并且在运行时执 行。
3.动态分区
② 空闲分区分配算法 4)最佳适应算法(Best Fit) 接到内存申请时,在空闲块表中找到一个不小于请求 的最小空闲块进行分配。为了提高查找速度,可以将 空白区按大小递增的顺序链在一起。 优点:比较容易保留大的空闲区 缺点:从整体来看,整个主存容易留下许多难以利用 的小空闲区,即外部碎片。
4.内存“扩充”

用户在编制程序时,不应该受内存容量限制,所以要采用 一定技术从逻辑上来“扩充”内存的容量,使用户得到比 实际内存容量大的多的内存空间,这就是内存“扩充”。 具体实现方法是在硬件支持下,软硬件相互协作,将内存 和外存结合起来统一使用。通过这种方法把内存扩充,使 用户在编制程序时不受内存限制。通常的内存扩充技术有 覆盖、交换和虚拟存储器。
4 4 3 2 +
3 4 3 2
2 4 3 2
1 4 1 2 +
0 4 1 0 +
4 4 1 0
缺页中断率f
相关文档
最新文档