操作系统第四章课件第四章存储器管理.ppt
《操作系统第四章课件第四章存储器管理.ppt》由会员分享,可在线阅读,更多相关《操作系统第四章课件第四章存储器管理.ppt(192页珍藏版)》请在三一办公上搜索。
1、,Page 1,2023/6/25,第四章 存储器管理,操作系统,刘 刚,Page 2,2023/6/25,第四章 存储器管理,重点理解重定位的基本概念 掌握动态分区分配方式 掌握理解分页和分段存储管理方式 理解虚拟存储器的基本概念 掌握请求分页系统的基本原理 难点动态分区分配算法 分页和分段地址转换请求分页系统的地址转换及页面置换算法,Page 3,2023/6/25,第四章 存储器管理,知识点重定位的基本概念 动态分区分配方式及分配算法、分区保护分页存储管理及地址变换、分段存储管理及地址变换,信息共享和保护虚拟存储器的基本概念、特征,页面置换技术 请求分页系统,页表机制、地址变换及页面置换
2、算法,Page 4,2023/6/25,第四章 存储器管理,存储器是计算机系统重要的组成部分虽然存储器的容量不断扩大,但仍不能满足要求,因此存储器管理是操作系统的重要工作,Page 5,2023/6/25,第四章 存储器管理,存储器包括内存(主存)和外存(磁盘)存储器的功能是保存数据,存储器的发展方向是高速、大容量和小体积。内存在访问速度方面的发展:DRAM、SDRAM、SRAM等;硬盘技术在大容量方面的发展:接口标准、存储密度等;主存储器管理技术分为两大类实存储器管理虚拟存储器管理,Page 6,2023/6/25,第四章 存储器管理,存储器的物理组织、多级存储器存储组织是指在存储技术和CP
3、U寻址技术许可的范围内组织合理的存储结构。其依据是访问速度匹配关系、容量要求和价格。“寄存器-内存-外存”结构“寄存器-缓存-内存-外存”结构;微机中的存储层次组织:访问速度越慢,容量越大,价格越便宜;最佳状态应是各层次的存储器都处于均衡的繁忙状态(如:缓存命中率正好使主存读写保持繁忙);,Page 7,2023/6/25,第四章 存储器管理,快速缓存:Data CacheTLB(Translation Lookaside Buffer)内存:DRAM,SDRAM等;外存:软盘、硬盘、光盘、磁带等;,Page 8,2023/6/25,第四章 存储器管理,主存储器管理功能存储分配和回收:分配和回
4、收算法及相应的数据结构。地址变换和重定位:可执行文件生成中的链接技术程序加载(装入)时的重定位技术进程运行时硬件和软件的地址变换技术和机构存储共享和保护:代码和数据共享地址空间访问权限(读、写、执行)存储器扩充:存储器的逻辑组织和物理组织;由应用程序控制:覆盖;由OS控制:交换(整个进程空间),虚拟存储的请求调入和预调入(部分进程空间),Page 9,2023/6/25,第四章 存储器管理,程序的装入和链接 连续分配方式 基本分页存储管理 基本分段存储管理虚拟存储器的基本概念请求分页存储管理方式页面置换算法请求分段存储管理方式,Page 10,2023/6/25,程序的装入和链接,程序的装入程
5、序的链接,Page 11,2023/6/25,程序的装入,多道程序环境下,程序要运行必须为之创建进程,而创建进程的第一件事就是分配内存源程序要运行通常经过编译(compile)链接(link)装入(load)等几个步骤,Page 12,2023/6/25,4.1 程序的装入和链接,图 4-1 对用户程序的处理步骤,Page 13,2023/6/25,4.1.1 程序的装入,1.绝对装入方式(Absolute Loading Mode),2.可重定位装入方式(Relocation Loading Mode),3.动态运行时装入方式(Dynamic Run-time Loading),Page 1
6、4,2023/6/25,程序的装入,绝对装入方式(Absolute Loading Mode)事先确定了程序将驻留在内存的什么位置,即在内存中的绝对地址装入模块被装入内存后,由于程序中的逻辑地址与实际内存地址完全相同,故不需对程序和数据的地址进行修改绝对地址的产生程序员直接赋予。不仅要求程序员熟悉内存使用情况,而且一旦程序或数据被修改后,可能要改变程序中的所有地址。通常在程序中采用符号地址,在编译或汇编时,再将符号地址转换为绝对地址。编译或汇编时产生,Page 15,2023/6/25,程序的装入,可重定位装入方式(Relocation Loading Mode)绝对装入方式只能将目标模块装入
7、到内存中事先指定的位置在多道程序环境下,不可能预知目标模块放在内存中的地址,因此绝对装入方式不适合在多道环境下使用程序中目标模块的地址通常从0开始,其他地址都是相对于0计算相对地址把在装入时对目标程序中指令和数据的地址修改过程称为重定位,又因为地址变换通常是在装入时一次完成的,以后不再改变,故称为静态重定位,Page 16,2023/6/25,程序的装入,作业装入内存时的情况,缺点:不断的分配和回收,造成内存中小空闲块很多,总空闲空间量够,但分配不了办法:紧凑(移动),但该装入方法不支持,Page 17,2023/6/25,将程序加载到10000?,程序的装入,将程序移动到20000?,Pag
8、e 18,2023/6/25,程序的装入,动态运行时装入方式(Denamic Run-time Loading)可重定位方式不允许程序运行时在内存中移动位置动态运行时的装入程序,是在把装入模块装入内存后,并不立即把装入模块中的相对地址转换为绝对地址,而是把这种地址转换推迟到程序真正要执行时才进行。因此,装入内存后的所有地址都仍是相对地址,Page 19,2023/6/25,程序的装入和链接,程序的装入程序的链接,Page 20,2023/6/25,4.1 程序的装入和链接,图 4-1 对用户程序的处理步骤,Page 21,2023/6/25,4.1.2 程序的链接,1.静态链接方式(Stati
9、c Linking),2.装入时动态链接(Load-time Dynamic Linking),3.运行时动态链接(Run-time Dynamic Linking),Page 22,2023/6/25,程序的链接,静态链接方式(Static Linking)在程序运行前,先将各目标模块及所需的库函数链接成一个完整的装配模块,以后不再拆开在将这几个目标模块装配成一个装入模块时,须解决以下两个问题 对相对地址进行修改 变换外部调用符号,Page 23,2023/6/25,程序的链接,Page 24,2023/6/25,程序的链接,装入时动态链接(Loadtime Dynamic Linking)
10、将用户的源程序编译后所得的一组目标模块在装入内存时采用边装入边链接的方式便于修改和更新 便于实现对目标模块的共享,Page 25,2023/6/25,程序的链接,Page 26,2023/6/25,程序的链接,运行时动态链接(Run-time Dynamic Linking)应用程序在每次运行的模块可能不相同运行时动态链接方式将对某些模块的链接推迟到执行时才进行,即在执行过程中,当发现一个被调用模块尚未装入内存时,立即由OS去找到该模块并将之装入内存,把它链接到调用者模块上凡在执行过程中未被用到的目标模块,都不会被调入内存和被链接到装入模块上,这样不仅可加快程序的装入过程,而且可节省大量的内存
11、空间,Page 27,2023/6/25,Page 28,2023/6/25,第四章 存储器管理,程序的装入和链接 连续分配方式 基本分页存储管理 基本分段存储管理虚拟存储器的基本概念请求分页存储管理方式页面置换算法请求分段存储管理方式,Page 29,2023/6/25,连续分配方式,单一连续分配固定分区分配动态分区分配可重定位分区分配对换(Swapping),Page 30,2023/6/25,单一连续分配,连续分配方式为一个用户程序分配一个连续的内存空间单一连续分配是最简单的一种存储管理方式,但只能用于单用户、单任务的操作系统中把内存分为系统区:OS使用,通常放在内存低址部分用户区:用户
12、可使用的全部内存空间存储器保护机构不健全,易造成系统破坏优点:易于管理缺点:对要求内存空间少的程序,造成内存浪费;程序全部装入,很少使用的程序部分也占用内存,Page 31,2023/6/25,单一连续分配,用户程序,位于,RAM,中的,操作系统,0,xFFF,.,0,位于,RAM,中的,操作系统,用户程序,0,ROM,中的,设备驱动程序,用户程序,位于,RAM,中的,操作系统,0,单一连续区存储管理,Page 32,2023/6/25,连续分配方式,单一连续分配固定分区分配动态分区分配可重定位分区分配对换(Swapping),Page 33,2023/6/25,固定分区分配,最简单的可运行多
13、道程序的存储管理方式内存用户空间划分为若干个固定大小的区域,每个分区中只装入一道作业划分分区的方法 分区大小相等:即使所有的内存分区大小相等太大:浪费太小:不够用 分区大小不等:划分为多个大、中、小搭配的分区根据程序大小决定所使用的分区 大班在大教室、小班在小教室,Page 34,2023/6/25,内存分配 分区的信息根据分区使用表管理,固定分区分配,20,使用界地址寄存器采用静态重定位,问题:并发进程数受分区个数的制约!出现:有内存却不能运行程序或大进程无法运行!,Page 35,2023/6/25,连续分配方式,单一连续分配固定分区分配动态分区分配可重定位分区分配对换(Swapping)
14、,Page 36,2023/6/25,动态分区分配,根据进程的实际需要,动态地为之分配内存空间分配中数据结构 空闲分区表 记录每个空闲分区的情况空闲分区链 实现对空闲分区的分配和链接,Page 37,2023/6/25,动态分区分配,分区分配算法 首次适应算法FF 循环首次适应算法最佳适应算法最差适应算法,Page 38,2023/6/25,动态分区分配,分区分配算法 首次适应算法FF 空闲分区链以地址递增顺序链接分配时从链首开始查找,找到一个大小可满足的空闲分区,划出一块给请求者优点:简单;优先利用低地址空闲区,保留高地址大空闲区缺点:会造成在低地址部分很多难以利用的小空闲分区,查找效率低循
15、环首次适应算法每次分配时从上一次找到空闲分区的下一个空闲区开始查找优点:减少查找空闲分区开销,空闲分区分布更均匀缺点:缺乏大的空闲区,Page 39,2023/6/25,动态分区分配,最佳适应算法空闲区按容量由小到大排序每次分配时,把能满足要求、又是最小的分区分配给作业优点:不缺乏大的空闲区缺点:会在存储器中留直许多难以利用的小分区“零头(或碎片)”;查找效率低最差适应算法空闲区按容量由大到小排序每次分配时,把能满足要求、又是最大的分区分配给作业优点:剩余的空间最大化,不出现太小的“零头”缺点:缺乏大的空闲区,首次适应被认为最好、最快,其次是循环,最佳最差(每次分配后剩下小碎片,难再分,不得不
16、经常压缩内存,反而浪费CPU),Page 40,2023/6/25,动态分区分配,分区分配操作 分配内存,解决碎片问题,Page 41,2023/6/25,动态分区分配,分区分配操作 回收内存进程运行结束释放内存时,系统根据回收区的首地址,把它插入到空闲链表中。根据回收区的位置,有四种情况需处理:回收区与插入点的前一个空闲分区相邻接回收区与插入点的后一个空闲分区相邻接 回收区同时与插入点的前、后两个分区相邻接回收区不与任何空闲区邻接,Page 42,2023/6/25,动态分区分配,Page 43,2023/6/25,2)回收内存,回收区,F1,F2,回收区,F2,回收区,F1,回收区,回收区
17、,Page 44,2023/6/25,动态分区分配,碎片问题经过一段时间的分配回收后,内存中存在很多很小的空闲块。它们每一个都很小,不足以满足分配要求;但其总和满足分配要求。这些空闲块被称为碎片造成存储资源的浪费碎片问题的解决紧凑技术:通过在内存移动程序,将所有小的空闲区域合并为大的空闲区域(紧缩技术,紧致技术,浮动技术,搬家技术)问题:开销大;移动时机,Page 45,2023/6/25,动态分区分配,分区式存储管理的优缺点 优点:便于动态申请内存 便于共享内存 便于动态链接 缺点:碎片问题(外碎片),要求连续的内存空间,内存利用率不高,受实际内存容量限制,Page 46,2023/6/25
18、,连续分配方式,单一连续分配固定分区分配动态分区分配可重定位分区分配对换(Swapping),Page 47,2023/6/25,可重定位分区分配,动态重定位的引入连续分配存在的问题必须有足够大的连续空间才能分配解决方法:“拼接”或“紧凑”的引入,Page 48,2023/6/25,可重定位分区分配,动态重定位的实现作业装入内存后的所有地址仍是相对地址,将相对地址转换成物理地址的工作在指令执行时进行需要有硬件地址变换机构的支持,Page 49,2023/6/25,可重定位分区分配,动态重定位分区分配算法在一个分区释放后立即移动当请求得不到满足时再移动,Page 50,2023/6/25,可重定
19、位分区分配,可重定位分区的优缺点优点:解决了可变分区分配所引入的“外零头”问题。消除内存碎片,提高内存利用率。缺点:提高硬件成本,紧凑时花费时间。,Page 51,2023/6/25,可重定位分区分配,多重分区即一个程序可以占据主存中不连续的多个分区可以解决碎片问题支持结构化程序设计,操作系统往往把一道作业分成若干片段如子程序、主程序、数据组等。需要硬件支持(多对界地址寄存器,重定位寄存器)管理复杂,Page 52,2023/6/25,可重定位分区分配,多重分区,Page 53,2023/6/25,分区的保护 为了防止一道作业有意或无意地破坏操作系统或其它作业。一般说来,没有硬件支持,实现有效
20、的存储保护是困难的。通常采取:界限寄存器方式保护键方式两种措施,或二者兼而有之。,可重定位分区分配,Page 54,2023/6/25,保护过程防止地址越界 一般由硬件提供一对寄存器:基址寄存器:存放起始地址 限长寄存器:存放长度(上界寄存器/下界寄存器),可重定位分区分配,Page 55,2023/6/25,界限寄存器保护60K 访问地址=124K 则产生访问地址界中断,可重定位分区分配,Page 56,2023/6/25,基址、限长寄存器保护相对地址 限长寄存器的值则产生访问地址界中断,可重定位分区分配,Page 57,2023/6/25,防止操作越权 对于允许多个进程共享的存储区域,每个
21、进程都有自己的访问权限。如果一个进程对共享区域的访问违反了权限规定,则发生操作越权 即读写保护,可重定位分区分配,Page 58,2023/6/25,保护键方式,可重定位分区分配,Page 59,2023/6/25,连续分配方式,单一连续分配固定分区分配动态分区分配可重定位分区分配对换(Swapping),Page 60,2023/6/25,对换(Swapping),对换的引入 所谓“对换”,是指把内存中暂时不能运行的进程或者暂时不用的程序和数据,调出到外存上,以便腾出足够的内存空间,再把已具备运行条件的进程或进程所需要的程序和数据,调入内存。对换是提高内存利用率的有效措施如果对换是以整个进程
22、为单位,称为“整体对换”或“进程对换”如果对换是以“页”或“段”为单位进行的,则称为“页面对换”或“分段对换”,又统称为“部分对换”,Page 61,2023/6/25,对换(Swapping),对换空间的管理外存中对换区主要存放从内存中换出的进程,对换空间管理的主要目标是提高进程换入和换出的速度对换区中空闲盘块的管理:在系统中配置相应的数据结构,记录外存的使用情况。形式与内存在动态分区分配方式中所用数据结构相似,即用空闲分区表或空闲分区链。在空闲分区表中的每个表目中应包含两项,即对换区的首址及其大小,它们的单位是盘块号和盘块数对换区的分配采用连续分配方式,分配算法可以是首次适应算法、循环首次
23、适应算法或最佳适应算法,Page 62,2023/6/25,对换(Swapping),进程的换出与换入进程的换出系统先选择处于“阻塞”状态且优先级最低的进程作为换出进程,然后启动盘块,将该进程的程序和数据传送到磁盘的对换区上。若传送未出现错误,便回收其所占用的内存空间,并对该进程的进程控制块做相应的修改进程的换入系统应定时地查看所有进程的状态,从中找出“就绪”状态但已换出的进程,将其中换出时间(换出到磁盘上)最久的进程作为换入进程,将之换入,直至已无可换入的进程或无可换出的进程为止,Page 63,2023/6/25,第四章 存储器管理,程序的装入和链接 连续分配方式 基本分页存储管理 基本分
24、段存储管理虚拟存储器的基本概念请求分页存储管理方式页面置换算法请求分段存储管理方式,Page 64,2023/6/25,基本分页存储管理,页面与页表地址变换机构两级和多级页表,Page 65,2023/6/25,离散分配方式,连续分配方式要求为一个进程分配连续的内存空间,会形成许多“碎片”,尽管采用“紧凑”技术可以解决这个问题,但要为移动大量信息花去不少的处理机时间,代价较高如果允许一个进程直接分散地装入到许多不相邻接的分区中,称为离散分配方式离散分配方式有分页存储管理方式和分段存储管理方式分页:把用户程序按逻辑页划分成大小相等的部分,称为页或虚页。从0开始编制页号,页内地址是相对于0编址。,
25、Page 66,2023/6/25,页面与页表,页面页面和物理块页面:将一个进程的逻辑地址空间分成若干个大小相等的片,称为页面或页,并加以编号,从0开始编制页号,页内地址是相对于0编址。物理块:内存按页的大小划分为大小相等的区域,称为物理块(物理页面,页框(frame),帧),同样加以编号,如0块、1块等等在为进程分配内存时,以块为单位将进程中的若干个页分别装入到多个可以不相邻接的物理块中。由于进程的最后一页经常装不满一块而形成了不可利用的碎片,称之为“页内碎片”,Page 67,2023/6/25,页面与页表,页面页面大小页面的大小应选择的适中,且页面大小应是2的幂,通常为512 B8 KB
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 第四 课件 存储器 管理
链接地址:https://www.31ppt.com/p-5316299.html