华中科技大学电信系操作系统课件-chapter8

上传人:kms****20 文档编号:51632159 上传时间:2018-08-15 格式:PPT 页数:67 大小:481KB
返回 下载 相关 举报
华中科技大学电信系操作系统课件-chapter8_第1页
第1页 / 共67页
华中科技大学电信系操作系统课件-chapter8_第2页
第2页 / 共67页
华中科技大学电信系操作系统课件-chapter8_第3页
第3页 / 共67页
华中科技大学电信系操作系统课件-chapter8_第4页
第4页 / 共67页
华中科技大学电信系操作系统课件-chapter8_第5页
第5页 / 共67页
点击查看更多>>
资源描述

《华中科技大学电信系操作系统课件-chapter8》由会员分享,可在线阅读,更多相关《华中科技大学电信系操作系统课件-chapter8(67页珍藏版)》请在金锄头文库上搜索。

1、第八章 实存储器管理技术存储器是计算机系统的重要组成部分, 如何对它们实施有效管理,不仅直接影 响到存储器的利用率,而且还对系统性 能有重大影响,对存储器的管理和有效 使用仍然是当今OS十分重要的内容。 8.1 主存储器的物理组织、多级存储器 n存储器:能接收和保存数据、而且能根据 命令提供数据的装置。 n当今许多计算机把存储器分为三级:n高速缓冲存储器(缓存)、主存储器(主存) 和外部存储器(外存)。n三级存储器的比较n速度:缓存主存外存n价格:缓存主存外存n大小:缓存主存外存n内存储器(简称内存 、主存、物理存储器 )n处理机能直接访问的 存储器。用来存放系 统和用户的程序和数 据,其特点

2、是存取速 度快,存储方式是以 新换旧,断电信息丢 失。n外存储器(简称外存 、辅助存储器)n处理机不能直接访问 的存储器。用来存放 用户的各种信息,存 取速度相对内存而言 要慢得多,但它可用 来长期保存用户信息 。在文件系统中介绍 。3、为何要采用高速缓存?n引入缓存主要是解决主存与CPU速度不匹配问 题。 缓存最初应用于大型计算机系统中,但随着 CPU速度越来越高,动态存储器(即内存、主 存)的速度难以满足CPU对速度的要求,一般 情况下,CPU访问主存需要插入等待周期,因 而不能充分利用CPU的性能,缓存是面向CPU 的存储器,用于存放CPU访问比较频繁的数据 和代码,采用缓存可明显改善系

3、统的性能。 4、内存的物理组织n物理地址:把内存分成若干个大小相等 的存储单元,每个单元给一 个编号,这个编号称为内存 地址(物理地址、绝对地址 、实地址),存储单元占8位 ,称作字节(byte)。n物理地址空间:物理地址的集合称为物理地 址空间(主存地址空间), 它是一个一维的线性空间。5、程序的逻辑结构n程序地址:用户编程序时所用的地址(或称逻 辑地址 、虚地址 ),基本单位可与内存的基本 单位相同,也可以不相同。n程序地址空间(逻辑地址空间、虚地址空间): 用户的程序地址的集合称为逻辑地址空间,它 的编址总是从0开始的,可以是一维线性空间 ,也可以是多维空间。n为什么程序使用逻辑地址而不

4、是物理地 址?用户需要精确计算空间与存放地址;支持多道程序运行十分困难;程序的可移植性差。5、主存管理的主要功能n主存分配和回收:n主要任务:将主存分配给多个程序,以提高主 存利用率。n选择合适的分配和回收算法及相应的数据结构 ,以提高主存利用率和分配、回收的速度。n地址转换和重定位:n主要任务:屏蔽物理内存使用细节,解决用户 程序装入(可以部分装入)。n可执行文件生成中的链接技术n程序加载(装入)时的重定位技术n进程运行时硬件和软件的地址变换技术和机构5、主存管理的主要功能n存储保护和主存共享:n解决如何在多用户和多任务环境下,实现程序 代码和数据共享和保护。n代码和数据共享n地址空间访问权

5、限(读、写、执行)n存储器扩充:n解决用户对内存容量要求与内存实际容量之间 的矛盾,使运行的程序不受主存大小的限制。n由应用程序控制:覆盖;n由OS控制:交换(整个进程空间),虚拟存储 的请求调入和预调入(部分进程空间)8.2 固定分区 1、基本概念 : 把主存分成若干个固定大小的存储区, 每个分区给一个作业使用,直到该作业 完成后才将该区归还系统。 n固定指各分区的位置和大小固定。通常在系 统启动后就确定了。n分区可分为用户分区和系统分区,用户分区 存放用户程序,系统分区存放系统程序和管 理信息。 8.2 固定分区2、固定分区分单道作业和多道作业 n单道作业下:固定分区中只划分了一个用户 分

6、区,用于用户程序,其他为系统分区。 n多道作业下:固定分区中只划分了若干个用 户分区和若干个系统分区,因此,主存中可 以同时存放多个用户程序。 8.2 固定分区3、用户分区的划分可用两种方式 n分区大小相等:指所有的用户分区大小都相等。 n缺点: n程序小于分区大小,可能出现内部碎片,造成主存 浪费 n程序大于分区,程序无法在一个分区内装入,导致 程序无法运行。 n分区大小不等:指所有用户分区的大小并不都相等 n克服分区大小相等的缺点,一般划分出多个较小的分 区、适量中等分区和少量大分区。小程序分配小分区 。 固定分区(大小相同)固定分区(多种大小)8.2 固定分区4、存储分块表(MBT)n当

7、分区大小不等时,系统需要对每个分区的信 息进行记录,以便管理。n用来存储分区管理信息的数据基。nMBT中一般记录三项信息 n大小:存储块的大小,以字节为单位 n位置:存储块在主存中的起始地址 n状态:存储块是否使用标记 8.2 固定分区大小位置状态8K300K正使用8K308K未使用16K316K正使用16K332K正使用32K348K未使用128K380K正使用n MBT一般放在系统分区内,通常由存储分配和释 放两个模块对它进行操作。 n MBT在系统分区占用一个连续的内存空间8.2 固定分区n优点n管理简单;n硬件支持要求少,一对界地址寄存器;n缺点n主存利用率不高,存在内部碎片。n分区总

8、数固定,限制了并发执行的程序数目。 n采用静态重定位。n可以采用一对界地址寄存器实现储存器保护 。8.3 可变分区多道管理技术 n起因:固定分区主存利用率不高,使用 不灵活。n定义:指事先并未将主存划分为一块块 分区,而是在作业进入主存时,按作业 的大小动态地建立分区,分给作业使用 。 工作过程例子:计算机系统有2560KB主存,按照 可变分区方式,系统首先为OS分配一个 系统分区,剩余的作为一个整的分区作 为用户分区。OS需要400KB,则用户区 为2160KB。系统启动后,其主存分配图 (a),此时有5个作业依次进入内存, 其内存要求和进入时间如表: 进程主存时间P1600KB10P210

9、00KB5P3300KB20P4700KB8P5500KB15n由于作业的大小以及进入主存的时间不同。形 成以下特点:n分区个数可变,分区大小不固定。n主存中分布着个数和大小都是变化的自由分区。 n必须解决的问题 n记录分区信息的数据结构 n分配算法 n分配和回收操作 n数据基 由于可变分区的特点,系统需要建立一个记录分区信息 的数据基,可变分区的数据基有以下几种组织方法: n存储分块表(MBT): 与固定分区的MBT结构一样。但用于可变分区存在以下缺 点:n表长难确定,由于分区个数变化,因此MBT表项也需变化;n查找速度慢,由于空闲分区在表中一般没有按大小排序,查找 一个可供分配的分区需要察

10、看更多的表项。 n两个存储管理表: 为了提高查找速度,将主存分区用两个表来管 理: n已分分区表(UBT):存放已在分配使用的分区 信息。n空闲分区表(FBT):存放空闲、尚未分配使 用的分区信息。 这样,分配内存只需查找FBT。 注意:表中的空表目是由于存储块在分配和回收 过程中,没有对表项进行删除维护造成的。 大小位置状态 8k312k已分 32k320k已分 -空表目 120k384k - 大小位置状态 32k352k空闲 -已分 520k504k空闲 -空表目 -空表目 UBTFBTn空闲存储块链(FBC): n原因:以上两种方式采用表格方式,表长难以确定 的问题仍未解决。 n定义:采

11、用链指针方式将空闲分区块链结在一起。 n实现方法:系统中单独在主存中申请一个空间,存 放链表头指针,空闲存储块按大小组成链表,链表 指针放在空闲存储块的起始位置,最后空闲存储块 的链表指针存放链尾标志。 n已分存储块的管理:由于存储块分配给作业或进程 后,存储块信息(大小和起始位置)在JCB或PCB中 有记录,无需链表来管理。 存储分配算法 可变分区的主存分配算法一般有以下三种:n最佳适应法: n定义:按分区的在内存的次序从头查找,找到其大小与 要求相差最小的满足要求的空闲分区进行分配。 n思想:避免“大材小用”,使分区内未用部分最少。 n为了便于查找,一般对空闲存储块由小到大顺序排列, 这样

12、,第一次找到的满足要求的空闲块就是最佳的空闲 块。n缺点:孤立地看,该方法似乎是最佳的,然而,从宏观 和长远看,由于每次剩余的部分重是最小的,这样,在 主存中会留下许多难以利用的小空闲区(外部碎片)。 n优点:较大的空闲分区可以被保留。 最先适应法n定义:按分区在内存的先后次序从头查找,找到符合要 求的第一个分区进行分配。n分析:由于分区序号通常由低向高排列,因此,该算法 倾向于优先利用主存的低地址部分的空闲分区,高地址 的空闲分区很少被利用,可以保留高端大空闲区。 n一般要求对空闲分区按地址递增的次序排列。 n优点:该算法的分配和回收的时间性能较好,可以保留 高端大空闲区。 n缺点:随着低端

13、分区不断划分,低端会出现很多较小的 空闲分区,由于分配查找从低端开始,因此查找时间开 销会增大。 最坏适应法 n定义:按分区在内存的先后次序从头查 找,找到最大的满足要求的空闲分区进 行分配。 n一般要求对空闲存储块按其大小以递增 顺序排列。 n优点:减少了最佳适应法中出现过多外 部碎片的缺点。 n缺点:不利于大作业的分配。 n以上分配方法各有其有优 缺点,不同情况下,不同 的结果 。 例:某一时刻,内存分布如 右图,有进程P1(190K), P2(300K),P3(20K)。 问:下列情况下,采用哪种方式 可使所有进程装入内存? (a):进入内存次序为P1,P2,P3。 (b):进入内存次序

14、为P3,P2,P1。200K350K(a):进入内存次序为P1,P2,P3时,最佳、 最先可以;最坏不可以。 (b):进入内存次序为P3,P2,P1时,最坏可 以;最佳、最先不可以。存储器的紧缩和程序的浮动 n原因:固定分区和可变分区都是一种连 续分配方式。 n连续分配方式:指为用户程序分配的是一个 地址连续的内存空间。 n在可变分区中,会出现大量小的空闲分区, 即使这些分区的总容量大于一个用户程序的 要求,由于地址离散,而不能为程序所用, 形成外部碎片,造成内存的浪费。 存储器的紧缩和程序的浮动n解决方法: n改变连续分配方式:把程序分成若干部分,装入不 同的分区中,可以解决碎片问题,但同时

15、也带来了 程序管理和执行上的复杂性。 n紧缩和浮动:通过移动程序,将碎片集中起来形成 一个大分区。 n存储器紧缩 :指在主存中把离散的碎片集中起 来形成一个完整的大分区的方法。 n程序浮动:指在主存中将用户程序移动。 n紧缩和浮动带来的问题: n经过紧缩后,用户程序在内存中的位置 发生了变化,若要程序能正确运行,必 须对程序代码和数据的地址进行变换, 即进行重定位。 n重定位有两种:静态和动态重定位。 n静态重定位不行,最好的方法是采用动 态重定位。 动态重定位的可变分区多道管理 n动态重定位: 指在程序执行过程中,每当访问指令或数据时,将 要访问的程序或数据的逻辑地址转换为物理地址。 由于重

16、定位过程是在程序执行期间随着指令的执行 逐步完成的,故称为动态重定位。 n说明: 采用动态重定位技术,由于地址转换在程序执行期 间,随着对每条指令和数据的访问而自动进行,因 此,当系统进行紧缩和程序浮动时,不需要对程序 做任何修改,只需将程序在主存的起始地址进行更 新即可。 动态重定位的具体过程n硬件支持 n重定位寄存器 n加法器 n界地址寄存器 n动态重定位可变分区分配算法 n动态重定位可变分区分配算法与无重定位的分区 算法基本上相同,采用的数据基也一样。 n区别在于:动态重定位可变分区算法中,增加了 “紧缩算法”。 紧缩算法的实施时机 n通常有两种 :n在某分区被释放后立即进行紧缩。 n优点:系统主存非常整洁,只有一个连续的空闲分区 ,没有任何碎片,有利于空闲分块表的管理和主存分 配 。n缺点:紧缩工作需要耗费系统资源,会降低CPU利用 率和系统吞吐量。 n当“请求分配模块”找不到足够大的空闲分区时, 再进行紧缩 n优点:减少紧缩次数,提高CPU利用率和系统吞吐量 。 n缺点:增加了空闲分块表管理的复杂性。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号