N计算机操作系统教程第四章(B)

上传人:油条 文档编号:2691805 上传时间:2017-07-26 格式:PPT 页数:160 大小:2.68MB
返回 下载 相关 举报
N计算机操作系统教程第四章(B)_第1页
第1页 / 共160页
N计算机操作系统教程第四章(B)_第2页
第2页 / 共160页
N计算机操作系统教程第四章(B)_第3页
第3页 / 共160页
N计算机操作系统教程第四章(B)_第4页
第4页 / 共160页
N计算机操作系统教程第四章(B)_第5页
第5页 / 共160页
点击查看更多>>
资源描述

《N计算机操作系统教程第四章(B)》由会员分享,可在线阅读,更多相关《N计算机操作系统教程第四章(B)(160页珍藏版)》请在金锄头文库上搜索。

1、计算机操作系统教程,-Linux实例分析,程骅信息科学与工程学院,第 4 章 存储器管理,第一节 存储管理的功能,存储器是计算机系统的重要资源之一,存储管理直接影响系统性能。三级存储体系结构一级缓存(cache)内存外存存储管理的基本功能空间分配/回收,地址转换,共享与保护,空间扩充目标:提供足够的容量,快速的存取速度,可靠的稳定性能虚拟存储器,4.1 存储管理的基本概念,重要性直接存取要求内存速度尽量快到与CPU取指速度相匹配,大到能装下当前运行的程序与数据,否则CPU执行速度就会受到内存速度和容量的影响而得不到充分发挥重要资源,“瓶颈”帕金森定律内存多大,程序多长,内存:由存储单元(字节或

2、字)组成的一维连续的地址空间,简称内存空间。用来存放当前正在运行程序的代码及数据,是程序中指令本身地址所指的、亦即程序计数器所指的存储器。分为:系统区:用于存放操作系统用户区:用于装入并存放用户程序和数据存储管理的目的:充分利用内存,为多道程序并发执行提供存储基础尽可能方便用户使用,如:自动装入用户程序,用户程序中不必考虑硬件细节解决程序空间比实际内存空间大的问题,存储系统的组织与四大功能,高速缓存Cache:少量的、非常快速、昂贵、易变内存RAM:若干兆字节、中等速度、中等价格、易变 磁盘:数百兆或数千兆字节、低速、价廉、不易变,存储器的功能是保存数据,存储器的发展方向是高速、大容量和小体积

3、。内存在访问速度方面的发展: SRAM 、DRAM、SDRAM等;硬盘技术在大容量方面的发展:接口标准、存储密度等;存储组织是指在存储技术和CPU寻址技术许可的范围内组织合理的存储结构。其依据是访问速度匹配关系、容量要求和价格。“寄存器-内存-外存”结构“寄存器-缓存-内存-外存”结构;微机中的存储层次组织:访问速度越慢,容量越大,价格越便宜;最佳状态应是各层次的存储器都处于均衡的繁忙状态(如:缓存命中率正好使主存读写保持繁忙);,存储管理的四大功能,(1)存储空间的管理、分配和回收记录内存的使用情况设置相应的内存分配表(内存分配回收的依据)静态存储分配;动态存储分配分配和回收算法及相应的数据

4、结构。(2)地址再定位(地址变换、地址映射):可执行文件生成中的链接技术程序加载(装入)时的重定位技术进程运行时硬件和软件的地址变换技术和机构,(3)存储共享和保护:两个或多个进程共用内存中相同区域代码和数据共享地址空间访问权限、基址限长存储保护 上、下界存储保护 保护过程-防止地址越界、防止操作越权,(4)存储器扩充:存储器的逻辑组织和物理组织,虚拟存储;由应用程序控制:覆盖;由OS控制交换(整个进程空间)虚拟存储的请求调入和预调入(部分进程空间),从源程序到程序执行,编译:编译程序由编译程序(Compiler)将用户源代码编译成若干个目标模块。链接:链接程序由链接程序(Linker)将编译

5、后形成的一组目标模块,以及它们所需要的库函数链接在一起,形成装入模块。装入:装入程序由装入程序(Loader)将装入模块复制到内存中。,库,地址空间的概念,物理(绝对)地址程序执行每个内存单元的固定顺序地址(编号)。逻辑(相对)地址装入(汇编编译)被链接装配(或汇编、编译)后的目标模块所限定的地址的集合;相对于某个基准量(通常为:0)的编址。,重定位的概念,重定位概念:把程序装入内存时,修改程序中所有与地址有关的项。逻辑地址变换为物理地址。重定位的类型静态重定位:程序执行前,一次性,链接装入程序。动态重定位:处理机每次访问主存时,有动态地址变换机构(硬件)自动执行。,地址再定位,名空间:程序中

6、由符号名组成的空间。物理地址(绝对地址,实地址):内存中存储单元的地址。物理地址可直接寻址。逻辑地址(相对地址,虚地址):用户的程序经过汇编或编译后形成目标代码,目标代码通常采用相对地址的形式。是指相对于某个基准量(通常用0)编址时所使用的地址。其首地址为0,其余指令中的地址都相对于首地址来编址。不能用逻辑地址在内存中读取信息。逻辑地址空间通过地址再定位机构转换到绝对地址空间。,逻辑地址、物理地址和地址映射,地址的再定位方法,将逻辑地址空间的程序装入到物理地址空间时,由于两个空间不一致,需要进行地址变换,所引起的对有关地址部分的调整过程称为地址再定位。程序在成为进程前的准备工作编辑:形成源文件

7、(符号地址)编译:形成目标模块(模块内符号地址解析)链接:由多个目标模块或程序库生成可执行文件(模块间符号地址解析)装入:构造PCB,形成进程(使用物理地址)再定位方法静态再定位动态再定位,静态地址再定位,在程序执行之前进行地址再定位,由装配程序完成。在可执行文件中,列出各个需要重定位的地址单元和相对地址值。当用户程序被装入内存时,一次性实现逻辑地址到物理地址的转换,以后不再转换(一般在装入内存时由软件完成)。即:装入时根据所定位的内存地址去修改每个重定位地址项,添加相应偏移量。优点:不需硬件支持,可以装入有限多道程序。缺点:程序装入内存后不能移动一个程序通常需要占用连续的内存空间不易实现共享

8、,可执行文件在内存中的重定位,重定位修改:重定位表中的150-绝对地址2150(=2000+150)内容修改:内容100变成2100(=100+2000)。,动态地址再定位,在执行寻址时重定位在程序运行过程中要访问数据时再进行地址变换,即在逐条指令执行时完成地址映射。一般为了提高效率,此工作由硬件地址映射机制来完成。硬件支持,软硬件结合完成硬件上需要一对寄存器的支持:基址寄存器、变址寄存器。,+,动态地址映射过程示意图,动态地址映射的优缺点,优点:程序占用的内存空间是动态可变的,当程序从某个存储区移到另一个区域时,只需要修改相应的寄存器BR的内容即可。一个程序不一定要求占用一个连续的内存空间。

9、可以部分地装入程序运行。便于多个进程共享同一个程序的代码。动态地址重定位的代价:需要硬件的支持。实现存储管理的软件算法较为复杂。, IBM. PC的情况,.com绝对地址:装入即可运行,.com文件64k(可以),程序的链接,链接:把一个程序相关的一组目标模块和系统调用模块(库函数)链接形成一个整体装入模块的过程。具体工作:对相对地址的修改;变换外部调用符号。链接方式: 静态链接 装入时动态链接:便于修改和更新;便于共享。运行时动态链接:最小化快速装入,节省内存。,链接,程序的装入,就是把链接好的装入模块装入“内存”。装入方式绝对装入:单道(任务);装入位置是固定的。程序员直接编址或由汇编、编

10、译程序完成地址重定位。可重定位装入(静态重定位)动态运行时装入(动态重定位)提示:通常链接、装入程序是一体的。,第二节 连续分配方式,为用户程序分配一个连续的内存空间。单一连续分配固定分区分配动态分区分配可重定位分区分配实存扩充技术,单一连续分区,内存分为两个区域:系统区,用户区。应用程序装入到用户区,可使用用户区全部空间。最简单,适用于单用户、单任务的OS。优点:易于管理。缺点:对要求内存空间少的程序,造成内存浪费;程序全部装入,很少使用的程序部分也占用内存。,单一连续区存储管理,分区存储管理,原理:把内存分为一些大小相等或不等的分区,每个应用进程占用一个或几个分区。操作系统占用其中一个分区

11、。特点:适用于多道程序系统和分时系统问题:内碎片:占用分区之内未被利用的空间; 外碎片:占用分区之间难以利用的空闲分区(通常是小空闲分区)。分区方式:固定分区(fixed partitioning)动态分区(dynamic partitioning)分区分配算法,分区的数据结构:分区表,或分区链表只记录空闲分区,或同时记录空闲和占用分区内存紧缩(compaction):将各个占用分区向内存一端移动。使各个空闲分区聚集在另一端,然后将各个空闲分区合并成为一个空闲分区。对占用分区进行内存数据搬移占用CPU时间如果对占用分区中的程序进行浮动,则其重定位需要硬件支持。紧缩时机:每个分区释放后,或内存分

12、配找不到满足条件的空闲分区时,固定分区(fixed partitioning),把内存划分为若干个固定大小的连续分区。分区大小相等:只适合于多个相同程序的并发执行(处理多个类型相同的对象)。分区大小不等:多个小分区、适量的中等分区、少量的大分区。根据程序的大小,分配当前空闲的、适当大小的分区。优点:易于实现,开销小。缺点:内碎片造成浪费;分区总数固定,限制了并发执行的程序数目。采用的数据结构:分区表记录分区的大小和使用情况,固定分区(大小相同),固定分区(多种大小),存储保护与重定位(地址转换)每个分区(一道程序)对应一对界地址寄存器:上/下限寄存器。采用静态重定位方式,即由链接/装入程序完成

13、。优缺点优点:简单,要求的硬件支持少(一对R);缺点:存在大的碎片,主存利用率低。,动态分区分配,动态创建分区:在装入程序时按其初始要求分配,或在执行过程中通过系统调用进行分配或改变分区大小。数据结构的两种形式: 空闲分区表;空闲分区链存储分配算法 最佳适应算法:大小最接近的,保证较小的碎片;最先适应算法:最先找到的合适分区,短的时间;最坏适应算法:找到最大的合适分区,不适于固定分区管理。,动态分区(dynamic partitioning),优点:没有内碎片。缺点:有外碎片;如果大小不是任意的,也可能出现内碎片。,Job1,Job2,Job3,Job4,Job5,Job6,Job7,Job7

14、,Job6,空闲分区的组织形式,已分配分区表 UBT表,自由分区表FBT,分区分配算法,分区分配算法:寻找某个空闲分区,其大小需大于或等于程序的要求。若是大于要求,则将该分区分割成两个分区,其中一个分区为要求的大小并标记为“占用”,而另一个分区为余下部分并标记为“空闲”。分区的先后次序通常是从内存低端到高端。分区释放算法:需要将相邻的空闲分区合并成一个空闲分区。(这时要解决的问题是:合并条件的判断和合并时机的选择),分区分配操作(分配算法流程)分配内存分区大小与所需空间大小“匹配”:M.Size - U.Size Size (不再分割的小分区的尺寸)剩余部分挂接到空闲分区链(表)上。回收内存回

15、收区与插入点的前一个空闲分区相邻接;回收区与插入点的后一个空闲分区相邻接;回收区与插入点的前后两个空闲分区相邻接;回收区不与任何一个空闲分区相邻接;优缺点管理复杂,总会有闲置的小分区“碎片”。,最先匹配法(first-fit):按分区的先后次序,从头查找,找到符合要求的第一个分区该算法的分配和释放的时间性能较好,较大的空闲分区可以被保留在内存高端。但随着低端分区不断划分而产生较多小分区,每次分配时查找时间开销会增大。下次匹配法(next-fit):按分区的先后次序,从上次分配的分区起查找(到最后分区时再回到开头),找到符合要求的第一个分区该算法的分配和释放的时间性能较好,使空闲分区分布得更均匀,但较大的空闲分区不易保留。最佳匹配法(best-fit):找到其大小与要求相差最小的空闲分区从个别来看,外碎片较小,但从整体来看,会形成较多外碎片。较大的空闲分区可以被保留。最坏匹配法(worst-fit):找到最大的空闲分区基本不留下小空闲分区,但较大的空闲分区不被保留。,例:,有四块空白区(从低地址高地址),来了一个作业需分配19k内存。,(i)首次适应算法(First Fit: FF),在高地址空白区中保持较大空白区(每次从10k开始分配寻找)。,解:,FF特点:,

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

当前位置:首页 > 行业资料 > 其它行业文档

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