第4章存储管理.ppt
《第4章存储管理.ppt》由会员分享,可在线阅读,更多相关《第4章存储管理.ppt(162页珍藏版)》请在咨信网上搜索。
1、第第4 4章章_ _存储管理存储管理所以,即使是现代的计算机系统,存储容量极大,速度所以,即使是现代的计算机系统,存储容量极大,速度也飞快,内存管理的重要性丝毫没有削弱。也飞快,内存管理的重要性丝毫没有削弱。对于一个单用户、单任务的操作系统的实现相对非常简单,对于一个单用户、单任务的操作系统的实现相对非常简单,支撑这种系统甚至不需要任何存储保护的硬件。在最严重的情支撑这种系统甚至不需要任何存储保护的硬件。在最严重的情况下即使内存崩溃也不会引起严重后果。况下即使内存崩溃也不会引起严重后果。对于一个多用户、多任务的操作系统的实现就复杂的多,对于一个多用户、多任务的操作系统的实现就复杂的多,支撑这种
2、系统必需要有存储保护的硬件,单靠软件是无法胜任支撑这种系统必需要有存储保护的硬件,单靠软件是无法胜任的。在要求具有高可靠性的条件下,内存崩溃会引起严重的后的。在要求具有高可靠性的条件下,内存崩溃会引起严重的后果。果。4.1 4.1 程序的装入和链接的有关概念程序的装入和链接的有关概念用高级、汇编语言上机步骤:编译、链接、装入。用高级、汇编语言上机步骤:编译、链接、装入。编辑:编辑:得到如得到如test.cpp,a.asmtest.cpp,a.asm等源文件等源文件编译:编译:从每个源文件得到对应的目标文件(从每个源文件得到对应的目标文件(PCPC机系统后缀为机系统后缀为OBJOBJ的文件的文件
3、)链接:链接:将若干有关目标文件(在将若干有关目标文件(在VC+VC+环境中为一个环境中为一个workspaceworkspace中中的文件)及有关系统支撑的库目标文件进行链接,得到相应的可的文件)及有关系统支撑的库目标文件进行链接,得到相应的可执行文件(执行文件(PCPC机系统后缀为机系统后缀为EXEEXE的文件或动态连接文件的文件或动态连接文件DLL)DLL)重定位:可执行文件平时驻留在外存上,需要执行时作为作重定位:可执行文件平时驻留在外存上,需要执行时作为作业首先装载到内存。业首先装载到内存。?这种可执行文件在外存?这种可执行文件在外存与内存格式一样吗与内存格式一样吗一样:一样:意味着
4、意味着OS只要读入内存即可只要读入内存即可绝对装入。绝对装入。所以:所以:象象JMPL1指令在变成可执行代码后,该指令的地址场的数据是指令在变成可执行代码后,该指令的地址场的数据是固定的。这就意味该程序只能放在固定的地方。固定的。这就意味该程序只能放在固定的地方。diskJMP200loadJMP200MOVAX,201100200在多任务下在多任务下OS无法保证无法保证执行程序在执行程序在同一个位置,同一个位置,所以比如下所以比如下次装在次装在1000开始开始一、程序的装入一、程序的装入重定位:可执行文件平时驻留在外存上,需要执行时作为作重定位:可执行文件平时驻留在外存上,需要执行时作为作业
5、首先装载到内存。业首先装载到内存。一样:一样:意味着意味着OS只要读入内存即可只要读入内存即可绝对装入。绝对装入。所以:所以:象象JMPL1指令在变成可执行代码后,该指令的地址场的数据是指令在变成可执行代码后,该指令的地址场的数据是定。这就意味该程序只能放在固定的地方。定。这就意味该程序只能放在固定的地方。diskJMP200loadJMP200MOVAX,20110001200一、程序的装入一、程序的装入重定位:可执行文件平时驻留在外存上,需要执行时作为作重定位:可执行文件平时驻留在外存上,需要执行时作为作业首先装载到内存。业首先装载到内存。一样:一样:意味着意味着OS只要读入内存即可只要读
6、入内存即可绝对装入。绝对装入。不一样:不一样:意味着意味着OS只要读入内存时需要对地址场部分做调整只要读入内存时需要对地址场部分做调整可重定位装入。该工作有可重定位装入。该工作有OS中专门的程序负责,一般称为装载中专门的程序负责,一般称为装载(装入,加载)程序。(装入,加载)程序。方法:执行的目标码相对与方法:执行的目标码相对与0编址,涉及到地址的操作指令地址编址,涉及到地址的操作指令地址场称为一个浮动项,在目标码文件的头上有一个浮动项说明表,场称为一个浮动项,在目标码文件的头上有一个浮动项说明表,表中给了浮动项的个数,每个浮动项在文件中的位置(相对于表中给了浮动项的个数,每个浮动项在文件中的
7、位置(相对于0的偏移量),的偏移量),OS的装载程序根据这些信息将本次分配的的装载程序根据这些信息将本次分配的内存地内存地址址+浮动项的内容浮动项的内容-浮动项的位置中。浮动项的位置中。一、程序的装入一、程序的装入例:例:MZMZ10100201头标志头标志MOVE AX,MOVE AX,JMPJMP指令码指令码JMPJMP(200200)0100300300201头部分头部分代码部分代码部分200MZMZ10100201头部分头部分例:例:MOVE AX,MOVE AX,JMPJMP指令码指令码JMPJMP(200200)0100300300201200MOVE AX,MOVE AX,JMP
8、JMP指令码指令码JMP(200)JMP(200)0+1000100+1000300300201+10001000(2)装入)装入(1)头部分由)头部分由OS读入读入(3)OS根据读入根据读入的头对内存浮动项的头对内存浮动项装配装配MZMZ10100201头部分头部分例:例:MOVE,AXMOVE,AXJMPJMP指令码指令码JMPJMP(200200)0100300300201200MOVE AX,MOVE AX,JMPJMP指令码指令码JMP(JMP(12001200)0+1000100+1000300300201+10001000(2)装入)装入(1)头部分由)头部分由OS读入读入(3)
9、OS根据读入根据读入的头对内存浮动项的头对内存浮动项装配装配MZMZ10100201头部分头部分例:例:MOVE AX,MOVE AX,JMPJMP指令码指令码JMPJMP(200200)0100300300201200MOVE AX,MOVE AX,JMPJMP指令码指令码JMP(JMP(12001200)0+1000100+100013001300201+10001000(2)装入)装入(1)头部分由)头部分由OS读入读入(3)OS根据读入根据读入的头对内存浮动项的头对内存浮动项装配装配装入后,进程装入后,进程整体可以移动整体可以移动吗?吗?动态运行装入方式把装入模块装入内存后,并不立即把
10、装入模块中的相对地址(逻辑地址)转换为相对地址(绝对地址),只有在执行的时候才把逻辑地址转换为绝对地址。通常需要重定位寄存器支持。CPU执行过程中的地址都是内执行过程中的地址都是内存的物理地址存的物理地址装入方式汇总绝对装入方式可重定位装入方式动态运行时装入方式简单分析比较简单分析比较 4.1.2 4.1.2 程序的链接程序的链接源程序经过编译后,可能会得到一组目标模块,各个模块都有源程序经过编译后,可能会得到一组目标模块,各个模块都有自己的独立空间,从执行的角度看这些模块又是一个整体,各自己的独立空间,从执行的角度看这些模块又是一个整体,各个模块所涉及的地址最终都要合并为统一的地址。个模块所
11、涉及的地址最终都要合并为统一的地址。静态静态链接:链接:将一个程序运行中所有的目标文件、所需要的将一个程序运行中所有的目标文件、所需要的库文件等链接成一个可执行模块。库文件等链接成一个可执行模块。链接分类链接分类静态静态链接链接动态链接动态链接载入时动态链接载入时动态链接运行时动态链接运行时动态链接对多用户、多任务系统显然有冗余,比如用户用对多用户、多任务系统显然有冗余,比如用户用sin(x),则目标,则目标代码中都有这部分代码,装入到内存则也都有这部分代码。代码中都有这部分代码,装入到内存则也都有这部分代码。二、二、程序的链接程序的链接静态静态链接链接处理后将多个目标模块合并成为一个整体。处
12、理后将多个目标模块合并成为一个整体。装入时动态装入时动态链接链接合并成为一个整体的过程在装入内存的时合并成为一个整体的过程在装入内存的时候才执行,在加载到内存之前各个模块仍然分离。候才执行,在加载到内存之前各个模块仍然分离。运行时动态运行时动态链接链接程序在执行过程中根据需要把各个模块链程序在执行过程中根据需要把各个模块链接起来,不需要的模块可以仍然留在外存上。接起来,不需要的模块可以仍然留在外存上。链接方式汇总静态链接方式装入时动态链接方式运行时动态链接方式简单的比较4.2 4.2 连续分配存储管理方式连续分配存储管理方式 因为程序的执行是根据指令计数器顺序执行,在执行本指令时,它已是下条指
13、令的位置,跳转指令会自动置为跳转的目标地址,所以决定了程序必须占有连续的一段存储区,连续分配是指为一个用户程序分配一个连续的内存空间。4.2.1 4.2.1 单一连续分配单一连续分配 1)1)内存分为两个区域:系统区,用户区。应用程序装入内存分为两个区域:系统区,用户区。应用程序装入 到用户区,可使用用户区全部空间。到用户区,可使用用户区全部空间。特点:适用于单用户、单任务的特点:适用于单用户、单任务的OSOS。DOSDOS驻留部分驻留部分用户程序区用户程序区COMMANDCOMMAND可覆盖部分可覆盖部分MS_DOSMS_DOS的分布的分布:2)静态与动态重定位静态与动态重定位静态重定位:静
14、态重定位:在程序装入内存时由在程序装入内存时由OSOS进行浮动项的定位进行浮动项的定位此后不在变化。此后不在变化。动态重定位:动态重定位:在程序装入内存时不进行装配,一般直接在程序装入内存时不进行装配,一般直接将程序装入内存。定位问题由系统提供的硬件解决。所以,将程序装入内存。定位问题由系统提供的硬件解决。所以,前提是前提是动态重定位问题需借助于硬件支持动态重定位问题需借助于硬件支持,否则无法解决。否则无法解决。在为单用户、单任务设计的系统中一般不会有此硬件。如在为单用户、单任务设计的系统中一般不会有此硬件。如Intel 8080Intel 8080、80868086、80888088CPU界
15、限界限寄存器寄存器重定位重定位寄存器寄存器基址基址内存内存逻辑地址逻辑地址物理地址物理地址+否否是是地址错地址错带有存储保带有存储保护的地址变换护的地址变换机构机构4.2.2 4.2.2 固定分区分配固定分区分配1 1、把内存划分为若干个固定的连续分区。、把内存划分为若干个固定的连续分区。分区大小相等:只适合于多个相同程序的并发执行(处理多分区大小相等:只适合于多个相同程序的并发执行(处理多个类型相同的对象)。个类型相同的对象)。分区大小不等:多个小分区、适量的中等分区、少量的大分分区大小不等:多个小分区、适量的中等分区、少量的大分区。根据程序的大小,分配当前空闲的、适当大小的分区。区。根据程
16、序的大小,分配当前空闲的、适当大小的分区。分配策略:分配策略:当作业到达时,选择适合作业要求的最小空闲区分给作业,若当作业到达时,选择适合作业要求的最小空闲区分给作业,若该分区不空,让其在该分区队列中等待。该分区不空,让其在该分区队列中等待。为了充分利用存储器,系统只维持一个等待存贮器的队列。为了充分利用存储器,系统只维持一个等待存贮器的队列。任何时候,只要有一个分区变为空闲,队列中的一个作业就可任何时候,只要有一个分区变为空闲,队列中的一个作业就可装入运行。装入运行。多输入作业队列多输入作业队列分区分区4分区分区3分区分区2分区分区1操作系统操作系统700K400K200K100K0单输入作
17、业队列单输入作业队列分区分区4分区分区3分区分区2分区分区1操作系统操作系统 这种操作员在清晨设置好,以后不能再修改的固定分区这种操作员在清晨设置好,以后不能再修改的固定分区的存储系统,曾经在的存储系统,曾经在IBMOS/360大型机上运行了许多年。大型机上运行了许多年。多输入作业队列多输入作业队列分区分区4分区分区3分区分区2分区分区1操作系统操作系统700K400K200K100K0单输入作业队列单输入作业队列分区分区4分区分区3分区分区2分区分区1操作系统操作系统 管理:管理:采用分区表采用分区表记录分区的大小和使用情况记录分区的大小和使用情况4.2.3 4.2.3 动态分区分配动态分区
18、分配一、分区分配的数据结构:一、分区分配的数据结构:分区表可同时记录空闲和占用情况,也可用两张表分别记分区表可同时记录空闲和占用情况,也可用两张表分别记录空闲(空闲分区表)与占用(使用分区表),表项数目随着录空闲(空闲分区表)与占用(使用分区表),表项数目随着内存的分配和释放而动态改变;对顺序组织,表容量就决定了内存的分配和释放而动态改变;对顺序组织,表容量就决定了分区的最大个数。分区的最大个数。用分区表记录使用情况用分区表记录使用情况链表组织链表组织顺序存储顺序存储二、二、分区分配算法分区分配算法 分区分配算法:分区分配算法:寻找某个空闲分区,其大小需大于或寻找某个空闲分区,其大小需大于或等
19、于程序的要求。若是大于,则将该分区分割成两个分等于程序的要求。若是大于,则将该分区分割成两个分区,其中一个分区为要求的大小并标记为区,其中一个分区为要求的大小并标记为“占用占用”,而,而另一个分区为余下部分并标记为另一个分区为余下部分并标记为“空闲空闲”。分区的先后。分区的先后次序通常是从内存低端到高端排列。次序通常是从内存低端到高端排列。分区释放算法:分区释放算法:注意需要将相邻的空闲分区合并成一注意需要将相邻的空闲分区合并成一个空闲分区。个空闲分区。依依寻找空闲分区的方法分成:寻找空闲分区的方法分成:1 1、首次适应法首次适应法(first-fit)(first-fit):按分区的先后次序
20、,从头查:按分区的先后次序,从头查找,找到符合要求的第一个分区。找,找到符合要求的第一个分区。特点:特点:该算法的分配和释放的时间性能较好,较大的空该算法的分配和释放的时间性能较好,较大的空闲分区可以被保留在内存高端。但随着低端分区不断划分闲分区可以被保留在内存高端。但随着低端分区不断划分而产生较多小分区,每次分配时查找时间开销会增大。而产生较多小分区,每次分配时查找时间开销会增大。3 3、最佳适应法最佳适应法(best-fit)(best-fit):找其容量与要求最接近的空闲分找其容量与要求最接近的空闲分区。区。特点:特点:从个别来看,外碎片较小,但从整体来看,会形成从个别来看,外碎片较小,
21、但从整体来看,会形成较多外碎片。较大的空闲分区可以被保留。另外,为了能较较多外碎片。较大的空闲分区可以被保留。另外,为了能较快的定位空闲块,所以空闲分区表若以链表方式组织,则表快的定位空闲块,所以空闲分区表若以链表方式组织,则表应按空闲区大小递增排列。因此,在释放一个占用区时,应应按空闲区大小递增排列。因此,在释放一个占用区时,应按区大小插入链中并可能有区合并(此时合并比较麻烦)。按区大小插入链中并可能有区合并(此时合并比较麻烦)。2 2、下次适应法下次适应法(next-fit)(next-fit):按分区的先后次序,从上次分配按分区的先后次序,从上次分配的分区起查找(到最后分区时再回到开头)
22、,找到符合要求的的分区起查找(到最后分区时再回到开头),找到符合要求的第一个分区。第一个分区。特点:特点:该算法的分配和释放的时间性能较好,使空闲分区分该算法的分配和释放的时间性能较好,使空闲分区分布得更均匀,但较大的空闲分区不易保留。布得更均匀,但较大的空闲分区不易保留。4.2.4 4.2.4 动态重定位分区分配动态重定位分区分配 在多任务前提下,分配一个区后大部分情况下都是有剩余零在多任务前提下,分配一个区后大部分情况下都是有剩余零头的,因此在一个新任务到达时,就有可能零头分区的和超过头的,因此在一个新任务到达时,就有可能零头分区的和超过新任务要求的分区,但每一个空闲区容量都不够。新任务要
23、求的分区,但每一个空闲区容量都不够。一、一、紧凑紧凑 将各个占用分区向内存一端移动。使各个空闲分区聚集在将各个占用分区向内存一端移动。使各个空闲分区聚集在另一端,然后将各个空闲分区合并成为一个空闲分区。另一端,然后将各个空闲分区合并成为一个空闲分区。操作系统操作系统用户程序用户程序130KB10KB用户程序用户程序9用户程序用户程序614KB用户程序用户程序326KB操作系统操作系统80KB用户程序用户程序9用户程序用户程序6用户程序用户程序3用户程序用户程序1 问题:紧缩后程序如何重新执行?问题:紧缩后程序如何重新执行?没有重定位硬件支持是无法实现的。没有重定位硬件支持是无法实现的。二、二、
24、动态重定位动态重定位2、什么时候紧缩、什么时候紧缩一旦有任务释放分区一旦有任务释放分区在找不到容量满足的空闲区时在找不到容量满足的空闲区时50001、重定位示意图、重定位示意图2500相对地址相对地址1000MOVE AXMOVE AX,25002500.25003653651010010000MOVE AXMOVE AX,25002500.36536510000重定位寄存器重定位寄存器15000+125004.2.5 PC 4.2.5 PC 微机中的存储管理(实方式)微机中的存储管理(实方式)1 1、重定位机构、重定位机构 四个段寄存器四个段寄存器CSCS、DSDS、ESES、SSSS,每个
25、每个1616位;位;段大小段大小:64K16:64K16位表示段内地址位表示段内地址;逻辑地址:段址:段内偏移逻辑地址:段址:段内偏移 物理地址:段地址左移物理地址:段地址左移4 4位位+偏移偏移2020位物理地址位物理地址 若程序不超过若程序不超过6464K K,可以写成,可以写成COMCOM格式的可执行文件格式的可执行文件 2 2、DOS DOS存储管理接口存储管理接口 通过通过DOSDOS功能调用功能调用INT 21HINT 21H,涉及三个调用号,存储分配,涉及三个调用号,存储分配(48H)(48H)、释放、释放(49H)(49H)和改变分区大小和改变分区大小(4AH)(4AH)3 3
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 存储 管理
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【精***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【精***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。