操作系统讲义第四章存储器管理优秀PPT.ppt
《操作系统讲义第四章存储器管理优秀PPT.ppt》由会员分享,可在线阅读,更多相关《操作系统讲义第四章存储器管理优秀PPT.ppt(56页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、操作系统讲义第四章存储器管理操作系统讲义第四章存储器管理2022/12/3第四章 存储器管理1你现在浏览的是第一页,共56页主要内容主要内容 4.1 存储器管理的层次结构存储器管理的层次结构 4.2 程序的装入和链接程序的装入和链接 4.3 连续分配方式连续分配方式 4.4 基本分页存储管理方式基本分页存储管理方式 4.5 基本分段存储管理方式基本分段存储管理方式 4.6 虚拟存储器的基本概念虚拟存储器的基本概念 4.7 请求分页存储管理方式请求分页存储管理方式 4.8 页面置换算法页面置换算法 4.9 请求分段存储管理方式请求分段存储管理方式你现在浏览的是第二页,共56页存储器管理概述存储器
2、管理概述 存储器是计算机系统的重要组成部分,随着存储器是计算机系统的重要组成部分,随着计算机技术的发展,系统软件和应用软件在种类、计算机技术的发展,系统软件和应用软件在种类、功能及其所需存储空间等方面,都在急剧地膨胀,功能及其所需存储空间等方面,都在急剧地膨胀,虽然存储器的容量也不断扩大,但是仍不能满足虽然存储器的容量也不断扩大,但是仍不能满足现在软件发展的需要,它仍然是一种紧俏的资源,现在软件发展的需要,它仍然是一种紧俏的资源,所以如何有效地管理存储器,不仅影响到存储器所以如何有效地管理存储器,不仅影响到存储器的利用率,而且还对系统性能有重大的影响。的利用率,而且还对系统性能有重大的影响。存
3、储器管理的主要对象:内存内存。你现在浏览的是第三页,共56页存储器管理概述存储器管理概述p有的作业很大,所要求的内存空间超过内存总容量,作业有的作业很大,所要求的内存空间超过内存总容量,作业不能全部装入,致使该作业无法运行;不能全部装入,致使该作业无法运行;p有大量作业要求运行,但内存不足以容纳所有的作有大量作业要求运行,但内存不足以容纳所有的作业,只能让少数作业装入内存先运行,而将大量作业,只能让少数作业装入内存先运行,而将大量作业留在外存等待。业留在外存等待。显而易见,一种解决办法就是从物理上增加内存的容量,另显而易见,一种解决办法就是从物理上增加内存的容量,另一种方法就是从逻辑上扩充内存
4、的容量,也就是利用虚拟存一种方法就是从逻辑上扩充内存的容量,也就是利用虚拟存储技术解决。储技术解决。如果某存储器管理方式要求一个作业全部装入内存才能够运行,那么就会出现两种情况:你现在浏览的是第四页,共56页4.1 存储器管理的层次结构存储器管理的层次结构速度非常快,能跟上处理机的速度速度非常快,能跟上处理机的速度容量非常大,能容纳所有要运行的作业容量非常大,能容纳所有要运行的作业价格很便宜,不需要花费额外的钱价格很便宜,不需要花费额外的钱 存储器的理想状态:存储器的理想状态:1.多级存储结构多级存储结构 计算机存储层次至少应具有三级:CPU寄存器,主存,辅存。注意注意:存储层次越往上,存储介
5、质的访问速度越快,价格:存储层次越往上,存储介质的访问速度越快,价格也越高,相对存储容量也越小。也越高,相对存储容量也越小。可移动存储介质可移动存储介质磁盘磁盘磁盘缓存磁盘缓存主存主存高速缓存高速缓存寄存器寄存器CPU存储器主存辅存你现在浏览的是第五页,共56页4.1 存储器管理的层次存储器管理的层次2.主存储器和寄存器主存储器和寄存器p主存储器(简称内存或主存):主存储器(简称内存或主存):计算机的主要部件,用于保存进程运行时的程序和数据,可称为可执行存储器;微机和大中型机:数十MB到数GB;嵌入式计算机:数十KB到几MB;CPU和外围设备交换信息的依托;访问速度远低于CPU执行指令的速度。
6、你现在浏览的是第六页,共56页4.1 存储器管理的层次存储器管理的层次2.主存储器和寄存器主存储器和寄存器p寄存器:寄存器:能够与CPU协调工作的计算机部件;微机和大中型机:数十到上百个Word;嵌入式计算机:几个到几十个Word;访问速度快;价格十分昂贵;容量很小。你现在浏览的是第七页,共56页4.1 存储器的层次结构存储器的层次结构3.高速缓存和磁盘缓存高速缓存和磁盘缓存p高速缓存:高速缓存:是计算机中的一个重要部件,其容量大于或远大于寄存器,而比内存小两到三个数量级左右,从几十KB到几MB,访问速度快于主存储器;(1)程序执行的局部性原理;(2)速度越高价格越贵,计算机系统中经常设置两级
7、或多级高速缓存;(3)紧靠内存的一级高速缓存速度最高,容量最小,二级缓存容量稍大,速度也稍低。你现在浏览的是第八页,共56页4.1 存储器的层次结构存储器的层次结构3.高速缓存和磁盘缓存高速缓存和磁盘缓存p磁盘缓存:磁盘缓存:并不是实际的存储介质,依托于固定磁盘,提供对主存储器存储空间的扩充。(1)磁盘的I/O速度远低于主存的访问速度;(2)主存也可以看做是辅存的高速缓存;(3)大容量的辅存常常使用磁盘,磁盘数据经常备份到磁带或者可移动的磁盘中,以防止硬盘故障时丢失数据。你现在浏览的是第九页,共56页4.2 程序的装入和链接程序的装入和链接 一个用户源程序要变成一个可在内存中执行的程序都要经一
8、个用户源程序要变成一个可在内存中执行的程序都要经过以下几个步骤:过以下几个步骤:编译:将用户源代码编译成目标代码;编译:将用户源代码编译成目标代码;链接:将目标模块及它们所需要的库函数链接在一起;链接:将目标模块及它们所需要的库函数链接在一起;装入:将装入模块装入内存。装入:将装入模块装入内存。库库链接链接程序程序编译编译程序程序产生产生的目的目标模标模块块装入模块装入模块装入装入程序程序内存内存第一步第一步第二步第二步第三步第三步你现在浏览的是第十页,共56页4.2 程序的装入和链接程序的装入和链接绝对装入方式(绝对装入方式(Absolute Loading Mode)编译时,知道程序所驻留
9、内存的具体位置,编译程序将产生绝对地址的目标代码,这个绝对地址可以在编译或者汇编时给出,也可由程序员赋予。1.程序的装入程序的装入p可重定位装入方式(可重定位装入方式(Relocation Loading Mode)多道程序环境下,编译程序不可能预知所编译的目标模块应放在内存何处,所以目标模块的起始地址通常从0开始,而程序中的其他地址则相对于起始地址计算而成。你现在浏览的是第十一页,共56页4.2 程序的装入和链接程序的装入和链接 1.程序的装入程序的装入p动态运行时装入方式(动态运行时装入方式(Dynamic Run-time Loading Mode)装入程序把装入模块装入内存,并不立即把
10、相对地址转换为绝对地址,而是把地址转换推迟到程序真正运行时再执行。0LOAD 1,2500100025005000365LOAD 1,250036510000110001250015000你现在浏览的是第十二页,共56页4.2程序的装入和链接程序的装入和链接 2.程序的链接程序的链接p静态链接方式(静态链接方式(Static Linking Mode)(1)对相对地址进行修改;(2)变换外部调用符号模块ACALL B;Return;0L-1模块BCALL C;Return;0M-1模块C Return;0N-1模块ACALL B;Return;0L-1模块BCALL C;Return;L+M-
11、1模块C Return;L+M+N-1LL+M你现在浏览的是第十三页,共56页4.2程序的装入和链接程序的装入和链接 2.程序的链接程序的链接p装入时动态链接方式(装入时动态链接方式(Load-time Dynamic Linking Mode)用户源程序编译后所得的目标模块,在装入内存时边装入边链接的,这种方式(1)便于修改和更新(2)便于实现对目标模块的共享。p运行时动态链接方式(运行时动态链接方式(Run-time Dynamic Linking Mode)许多情况下,应用程序每次要运行的模块可能不相同,如果把所有模块都装入非常低效,所以要在运行过程中动态装入所需模块。你现在浏览的是第十
12、四页,共56页4.3 连续分配方式连续分配方式 这是一种最简单的存储管理方式,只能用与单用户单任务的操作系统,内存分成系统区和用户区,系统区提供给OS使用,而用户区指除了系统区以外的全部内存空间,提供给用户使用。1.单一连续分配单一连续分配 这是一种最简单的可运行多道程序的存储管理方式,它将内存划为固定大小的区域,每个分区装入一道作业。2.固定分区分配固定分区分配你现在浏览的是第十五页,共56页4.3 连续分配方式连续分配方式 2.固定分区分配固定分区分配p分区的划分方法分区大小相等:所有分区大小相等,缺点是缺乏灵活性,程序太小时空间浪费,程序太大时无法运行;分区大小不等:克服了大小相等而缺乏
13、灵活性的缺点,把内存分成多个较小的分区、适量的中等分区及少量的大分区。p内存分配:将分区按照大小进行排队,并为之建立一张分区使用表,其各表项包括每个分区的起始地址、大小以及状态。你现在浏览的是第十六页,共56页4.3 连续分配方式连续分配方式 3.动态分区分配动态分区分配p分区分配中的数据结构分区分配中的数据结构空闲分区表;空闲分区链。p分区分配算法分区分配算法首次适应算法:首次适应算法:找到第一个大小能满足要求的空闲空间;循环首次适应算法:循环首次适应算法:从上次找到的空闲分区的下一个开始查找,找到一个能满足要求的空闲分区;最佳适应算法:最佳适应算法:找到一个满足要求、又是最小的空闲分区分配
14、给作业;最坏适应算法:最坏适应算法:挑选一个最大的空闲分区分割给作业;快速适应算法:快速适应算法:将空闲分区根据其容量大小分类,然后根据进程的长度,寻找到能容纳它的最小空闲分区链表,取下第一块进行分配。你现在浏览的是第十七页,共56页4.3 连续分配方式连续分配方式分区分配操作分区分配操作 1)分配内存:分配内存:系统利用某种分配算法,从空闲分区链(表)中找到所系统利用某种分配算法,从空闲分区链(表)中找到所需大小的分区。需大小的分区。从头开始查表检索完否?m.sizeu.size?m.size-u.sizesize?从该分区中划出u.Size大小的分区将该分区分配给请求者修改有关数据结构返回
15、返回继续检索下一个表项将该分区从链中移出YNNYYN你现在浏览的是第十八页,共56页4.3 连续分配方式连续分配方式分区分配操作分区分配操作 2)回收内存:回收内存:当进程运行完毕释放内存时,系统根据回收区的首址,从空闲区链(表)中找到相应的插入点。a)回收区与插入点的前一个空闲分区F1相邻接,将回收区与插入点前的分区合并,不必为回收分区分配表项,修改前一分区F1的大小;b)回收区与插入点的后一空闲分区F2相邻接,此时可将两分区合并,形成新的空闲分区,回收区的首址作为新空闲区的首址,大小为两者之和;F1回收区回收区F2(a)(b)你现在浏览的是第十九页,共56页4.3 连续分配方式连续分配方式
16、分区分配操作分区分配操作 2)回收内存回收内存 c)回收区同时与插入点的前、后两个分区邻接,此时将三个分区合并,使用F1的表项和首址,取消F2表项,大小为三者之和;d)回收区既不与F1邻接,又不与F2邻接,这时应为回收区单独建立一新表项,填写回收区的首址和大小,并根据首址插入到空闲链中的适当位置;F1回收区回收区F2(c)(d)你现在浏览的是第二十页,共56页4.3 连续分配方式连续分配方式固定分区方式的不足:固定分区方式的不足:限制了活动进程的数目,当进程大小和空闲分区大小不匹配时,空间利用率很低。动态分区方式的不足:动态分区方式的不足:算法复杂,回收空闲分区时需要进行分区合并等,系统开销大
17、。伙伴系统:伙伴系统:上面两种内存方式的一种折衷,伙伴系统规定,无论已分配分区或空闲分区,其大小均为2的k次幂,lkm,其中 是分配的最小分区的大小,表示分配的最大分区的大小,通常 是整个可分配内存的大小。4.伙伴系统伙伴系统伙伴系统的优点:算法在回收空闲分区时,需要对空闲分区进行合并,所以其伙伴系统的优点:算法在回收空闲分区时,需要对空闲分区进行合并,所以其时间性能比前面分类搜索算法差,但比顺序搜索算法好,而其空间性能则远优时间性能比前面分类搜索算法差,但比顺序搜索算法好,而其空间性能则远优于前面所述的分类搜索法,比顺序搜索法略差。于前面所述的分类搜索法,比顺序搜索法略差。你现在浏览的是第二
18、十一页,共56页4.3 连续分配方式连续分配方式哈希算法就是利用哈希快速查找的优点,以及空闲分区在可利用空间表中的分布规律,建立哈希函数,构造一张以空闲分区大小为关键字的哈希表。5.哈希算法哈希算法 6.可重定位分区分配可重定位分区分配p动态可重定位:动态可重定位:它的引入是为了解决系统中只有若干个小分区,即使它们容量之和大于要装入的程序,但由于这些分区不相邻接,无法装入该程序的情况。你现在浏览的是第二十二页,共56页4.3 连续分配方式连续分配方式 6.可重定位分区分配可重定位分区分配操作系统用户程序110KB用户程序330KB用户程序614KB用户程序926KB操作系统用户程序1用户程序3
19、用户程序6用户程序980KB采用的方法:采用的方法:将内存中的所有作业进行移动,使它们全部相邻接,这样,即可把原来分散的多个小分区拼接成一个大分区,这时就可以把作业装入该区。定义:通过移动内存中作业的位置,把原来多个分散的小分区拼定义:通过移动内存中作业的位置,把原来多个分散的小分区拼接成一个大分区的方法,称为接成一个大分区的方法,称为“拼接拼接”或或“紧凑紧凑”。你现在浏览的是第二十三页,共56页4.3 连续分配方式连续分配方式 6.可重定位分区分配可重定位分区分配p动态可重定位的实现:动态可重定位的实现:作业装入内存后的所有地址仍然是相对地址,将相对地址转换为物理地址的工作,被推迟到程序指
20、令要真正执行时运行。LOAD 1,250036550002500 100 0作业作业J250010000相对地址重定位寄存器+LOAD 1,25003651500012500 1010010000主存主存你现在浏览的是第二十四页,共56页4.3 连续分配方式连续分配方式 6.可重定位分区分配可重定位分区分配p动态重定位分区分配算法:动态重定位分区分配算法:类似于动态分区分配算法,不过是在算法中增加了紧凑功能,通常在找不到足够大的空闲分区来满足用户需求时进行紧凑。请求分配u.size分区检索空闲分区链(表)找到大于u.size的可用分区否?按动态分区方式进行分配修改有关的数据结构返回分区号及首批
21、空闲分区总和u.size?无法分配返回紧凑形成连续空闲区修改有关的数据结构否是是否你现在浏览的是第二十五页,共56页4.3 连续分配方式连续分配方式 7.对换(对换(Swapping)对换的引入的原因:对换的引入的原因:多道程序环境下,内存中的一些进程因某事件而被阻塞运行,却占用大量内存空间,甚至可能所有进程阻塞而迫使CPU停止下来等待的情况;另一方面,许多作业在外存上等待,因无内存而不能运行。p对换的定义:对换的定义:是指把内存中暂时不能运行的进程或者暂时不用的程序和数据调出内存上,以便腾出足够的内存空间,再把具备运行条件的进程或进程所需的程序和数据调入内存。你现在浏览的是第二十六页,共56
22、页4.3 连续分配方式连续分配方式 7.对换(对换(Swapping)p对换空间的管理:对换空间的管理:通常把外存分为文件区和对换区,其中文件区用于存放文件,对换区用于存放从内存换出的进程。p进程的换出与换入进程的换出与换入进程的换出:进程的换出:首先选择处于阻塞状态且优先级最低的进程作为换出进程,然后启动磁盘,将进程的程序和数据传送到磁盘的对换区上;进程的换入:进程的换入:系统应定时地查看所有进程的状态,找出“就绪”状态但已经换出的进程,将其中换出时间最久的进程作为换入进程,将之换入,直至已无可换入和无可换出进程为止。你现在浏览的是第二十七页,共56页4.4 基本分页存储管理方式基本分页存储
23、管理方式页面 1)页面和物理块)页面和物理块,适用于批处理系统或者实时性要求不高的系统;2)页面大小)页面大小,能更好地满足紧迫作业,适合于严格的实时系统或者对性能要求较高的批处理和分时系统中。1.页面和页表页面和页表p地址结构:分页地址中的地址结构包括两部分:前一部分是页号P,后一部分为位移量W(或称为页内地址)。位移量W页号P3112110p页表:在分页系统中,允许各个页离散地存储在内存不同的物理块内,但系统要保证进程的正确执行,所以系统又为每个进程建立了一张页面映射表。若给定一个逻辑地址空间中的地址为若给定一个逻辑地址空间中的地址为A,页面的大小为,页面的大小为L,则页号,则页号P和页内
24、和页内地址地址d可按下式求得:可按下式求得:你现在浏览的是第二十八页,共56页4.4 基本分页存储管理方式基本分页存储管理方式基本的地址变换机构基本的地址变换机构 2.地址变换机构地址变换机构页表长度页表首址当进程要访问某个逻辑地址中的数据时,分页地址变换机构会自动地将有效地址(相对地址)分为页号和页内地址两部分,再以页号为索引去检索页表。页表寄存器+页内地址页号(3)逻辑地址L1 b 页表物理地址块号页号0123越界中断你现在浏览的是第二十九页,共56页4.4 基本分页存储管理方式基本分页存储管理方式具有快表的地址变换机构具有快表的地址变换机构 2.地址变换机构地址变换机构页表长度页表首址在
25、CPU给出有效地址后,由地址变换机构自动将页号P送入高速缓冲寄存器,并将此页号与高速缓存中的所有页号进行比较,若找到匹配的页号,就表示要访问的页表项在快表中。页表寄存器+页内地址页号逻辑地址Lb 页表db物理地址块号页号越界中断输入寄存器b 快表块号页号 你现在浏览的是第三十页,共56页4.4 基本分页存储管理方式基本分页存储管理方式两级页表两级页表 3.两级和多级页表两级和多级页表P2P1对于32位的机器,采用两级页表结构是合适的;但对于64位的机器,可以支持2的64次方(1884744TB)规模的物理存储空间,一般可以利用三级页表结构来实现。外部页号+页表db物理地址 外部页表 d外部页表
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 讲义 第四 存储器 管理 优秀 PPT
限制150内