操作系统——Linux篇 教学课件 ppt 作者 李成大 第09章

上传人:E**** 文档编号:89370358 上传时间:2019-05-24 格式:PPT 页数:84 大小:476KB
返回 下载 相关 举报
操作系统——Linux篇 教学课件 ppt 作者  李成大 第09章_第1页
第1页 / 共84页
操作系统——Linux篇 教学课件 ppt 作者  李成大 第09章_第2页
第2页 / 共84页
操作系统——Linux篇 教学课件 ppt 作者  李成大 第09章_第3页
第3页 / 共84页
操作系统——Linux篇 教学课件 ppt 作者  李成大 第09章_第4页
第4页 / 共84页
操作系统——Linux篇 教学课件 ppt 作者  李成大 第09章_第5页
第5页 / 共84页
点击查看更多>>
资源描述

《操作系统——Linux篇 教学课件 ppt 作者 李成大 第09章》由会员分享,可在线阅读,更多相关《操作系统——Linux篇 教学课件 ppt 作者 李成大 第09章(84页珍藏版)》请在金锄头文库上搜索。

1、第 9 章 存 储 器 管 理,9.1 存储器管理概述 9.2 连续分配存储管理方式 9.3 覆盖与对换技术 9.4 分页存储管理方式 9.5 分段存储管理方式 9.6 虚拟存储器的基本概念 9.7 请求分页存储管理方式 9.8 Linux中的存储管理,9.1 存储器管理概述,9.1.1 存储器管理中的基本概念 1地址空间 地址空间中的每个地址单元编号称为逻辑地址。 2存储空间 所谓存储空间是指内存中存储数据的物理单元的集合。这些物理单元的编号称为物理地址或绝对地址。,图9.1 名空间、地址空间和物理空间,3地址映射,图9.2 程序装入举例,由于一个作业装入到与其地址空间不一致的存储空间所引起

2、的,把作业地址空间中使用的逻辑地址变换成内存中物理地址的过程称为地址映射。,9.1.2 存储器管理的目的和功能 1存储器管理的目的 2存储器管理的功能 (1)内存分配 (2)地址映射 (3)内存保护 (4)内存扩充,9.1.3 存储器管理方式 (1)连续分配存储管理方式 单一连续分配 固定分区式 动态分区式 (2)离散分配存储管理方式 分页存储管理 分段存储管理 段页式存储管理,(3)虚拟存储系统 请求分页存储管理 请求分段存储管理 请求段页式存储管理 在本章以后各节中,将详细介绍以上存储器管理方式的具体实现。,9.2 连续分配存储管理方式,9.2.1 单一连续分配 在这种分配方案中,存储器在

3、概念上被分成两部分:一部分供操作系统使用,另一部分为用户空间。但实际上用户程序往往只占用用户空间的一部分,最后要剩下一块连续空间,这部分空间将被浪费掉。 单一连续分配方案的优点是方法简单、易于实现。缺点是它仅适用于单道系统,因而不能使处理机和内存得到充分利用。,图9.3 单一连续分配举例,9.2.2 固定分区分配 固定分区是把内存划分为若干个大小不等的分区,分区的大小和分区总数由操作系统在系统初启时建立,一旦建好,在系统运行其间,每个分区的大小和分区总数是固定不变的。由于每一分区大小固定,可容纳作业的大小便受到限制。为此,作业在申请分配内存时,应提供对内存资源的最大请求容量。,图9.4 固定分

4、区分配举例,9.2.3 动态分区分配 1动态分区管理原理 (1)分区建立时刻。动态分区管理中的内存分区不是在系统初启时建立的,而是在系统运行过程中,即在作业装入时动态建立。 (2)分区大小。分区大小不是事先设定的,而是根据作业对内存的需求量来确定。 (3)分区个数。分区个数是变化不定的。,当系统初启时,用户区是一个完整的空闲区。当有作业申请内存时,则从空闲区中划出一块与作业的内存需求量相等的分区分配之;在作业运行结束时,系统回收作业释放的分区;若与回收的分区邻接的是空闲区,则将它们合并为一个大的空闲区。当系统运行一段时间后,随着一系列的内存分配与回收,原来的一个完整空闲区便形成了若干个占用区和

5、空闲区交错的布局。,图9.5 动态分区分配举例,2动态分区管理中的数据结构 与固定分区相同,在动态分区中也可使用分区说明表对内存进行管理。但在动态分区中,由于内存分区的个数不固定,对表格的管理就比较困难。一般使用分区链来管理内存,即利用指针将内存中所有分区连成一条存储区链。其实现方法是在每个分区的起始部分,设置一个指向前一个分区的指针;在每个分区的尾部,则设置一个指向后一个分区的指针,并设置状态位(用以区分分区是否空闲,当分区被分配出去以后,把状态位由“0”改为“1”)和分区大小表目。,3分区分配算法 (1)最佳适应算法 所谓最佳适应算法,是指在为作业分配内存时,总是把能满足作业的内存要求、又

6、是最小的空闲分区分配给作业。这样,把作业放入内存后分区内剩下的空闲部分,即新生成的空闲分区容量最小。,这种算法的优点是:如果存储空间中具有正好是所要求大小的空闲区,则必然被选中;如果不存在这样的空闲区,也只对比容量稍大的空闲区进行划分,而绝不会去划分一个更大的空闲区。因此,系统如果有大的作业到来时,作业所要求的存储空间就比较容易得到满足。但同时也会在存储器中留下许多难以利用的小空闲区。 为了加快查找速度,应将分区按其大小递增的顺序排列。,(2)最坏适应算法 与最佳适应算法相反,最坏适应算法在为作业选择存储空间时,总是选择最大的空闲分区。,(3)首次适应算法 最佳适应算法和最坏适应算法各有利弊,

7、首次适应算法则是对这两种算法进行折衷考虑后设计出来的。首次适应算法是将分区按其在存储空间中的起始地址递增的顺序排列,为作业分配存储空间时,总是从分区链的始端开始查找,选择第一个满足要求的空闲区,而考虑此空闲区的大小。,4分区分配操作 (1)内存的分配 系统利用某种分区分配算法,从分区链中找到所需的空闲分区。 若这个空闲分区比所要求的大,则将它分成两部分:一部分成为已分配的分区,剩下部分仍为空闲区。 修改两个分区的有关信息,并回送一个所分配分区的序号或该区的首地址。,(2)内存的回收 若回收分区不与其他空闲区邻接,则修改该回收分区的有关信息。 若回收分区与其他空闲区邻接,则把相关分区合并,使之成

8、为一个连续的大空闲区,并修改分区链和相关分区的信息。 回收区与空闲区邻接的3种情况如图9.6所示,其中F1和F2为空闲区。,图9.6 回收区与空闲区邻接的情况,9.2.4 可重定位分区分配 可采用的解决办法是采用“紧凑”技术(也称“拼接”技术),通过移动内存中作业的位置,把外零头集中起来形成一个大的空闲区。 可重定位分区分配算法和动态分区分配算法基本相同。两者的差别仅在于可重定位分区分配需要将空闲分区进行拼接,以减少碎片,使存储器的利用率提高。,9.3 覆盖与对换技术,9.3.1 覆盖技术 覆盖技术基于这样一种思想:一个程序并不需要一开始就把它的全部信息装入内存再开始执行,不妨把程序划分成若干

9、个功能上相对独立的程序段,并按照程序的逻辑结构,让那些不会同时执行的程序段共享同一块内存区。,通常,这些程序段都被保存在外存(如磁盘)中,当有关程序段的先头程序段执行结束后,再把后续程序段调入内存中覆盖前面的程序段。这使得在用户看来,内存好像扩大了,从而达到了内存扩充的目的。 共享同一块内存区的程序段,可以属于同一作业,也可以是不同作业的。把可以进行覆盖的内存区称为覆盖区,而可以相互覆盖的程序段称为覆盖。覆盖的基本原理可用如图9.8所示例子予以说明。,图9.8 覆盖示例,覆盖技术的主要特点是:它打破了需要将一个程序的全部信息装入内存后程序才能运行的限制;它利用了相互独立的程序段之间的相互覆盖,

10、逻辑上扩充了内存空间,从而在某种程度上实现了在小容量内存上运行较大的程序。 9.3.2 对换技术,所谓“对换”(或称交换),是指把内存中暂不能运行的进程,或暂时不用的程序和数据换出到外存上,以便腾出足够的内存空间,把已具备运行条件的进程或进程所需要的程序和数据,换入内存。 如果对换是以整个进程为单位,称之为“进程对换”;若对换以“页”或“段”为单位进行,则分别称之为“页面对换”或“分段对换”。进程对换的目的是用来解决内存紧张问题,并可进一步提高内存的利用率。,为了实现进程对换,系统必须实现3个方面的功能:对换空间的管理、进程的换出以及进程的换入。 1对换空间的管理 2进程的换出 3进程的换入,

11、9.4 分页存储管理方式,9.4.1 分页存储管理的基本原理 1等分内存 把内存的存储空间划分成大小相等的若干个存储块,称为块或页框,并为各块从“0”开始依次编以连续的块号,如0块、1块等。,2逻辑地址空间分页 把逻辑地址空间划分成若干个与块大小相等的片,称之为页或页面,并为各页从“0”开始依次编以连续的页号,如0页、1页等。 在分页系统中,页长是由硬件决定的。通常页长的大小是2的幂,且常在512字节4KB之间。,3地址结构 在分页系统中,每个逻辑地址用一个数对(P,d)来表示。其中,P是页号,d是页内地址或称位移量。分页系统中的地址结构如图9.9所示。,图9.9 分页系统中的地址结构,4内存

12、分配原则 5页表和页表地址寄存器 进程地址空间内的所有页(0n),依次在页表中有一页表项,其中记录了相应页在内存中对应的物理块号,如图9.10所示的中间部分。,图9.10 页表的作用,9.4.2 分页系统的地址变换机构 在分页系统中,设置了一个页表寄存器(Page Table Register,PTR),用以存放页表在内存中的始址和页表的长度。平时进程未执行时,页表始址和长度放在该进程的进程控制块中。当调度程序调度到某个进程时,才把该进程的页表始址和页表长度装入PTR中。,当进程要访问某个逻辑地址时,地址变换机构先将逻辑地址分为页号和页内地址两部分,再根据页号和PTR中的数据去检索页表:首先将

13、页号与PTR中的页表长度进行比较,若页号小于或等于页表长度,说明访问是合法的;若页号大于页表长度,则表示本次访问地址已超越进程的地址空间,于是产生地址越界中断。,如果访问合法,则将PTR中的页表始址加上页号和页表项长度的乘积(注:页表项长度是指页表中的一行信息所占的字节数),便得到该页对应的页表表项在内存中的位置,于是可从中得到该页的物理块号。最后将物理块号与逻辑地址中的页内地址拼接(物理地址=块号块的长度+页内地址),便形成最终访问的物理地址。上述地址变换过程全部由系统地址变换机构自动完成。,图9.11 分页系统的地址变换机构,值得注意的是,分页存储管理中每存取一个数据时,都要两次访问内存:

14、第一次是通过访问内存中的页表,得到待存取数据的物理地址;第二次是根据得到的物理地址向该地址中写入数据(或从该地址中取所需数据)。 为了提高地址变换速度,可在地址变换机构中,增设一个具有并行查寻能力的特殊高速缓冲寄存器,又称为“快表”,用以存放当前访问的那些页表项。,图9.12 具有快表的地址变换机构,9.5 分段存储管理方式,9.5.1 分段存储管理方式的引入 1方便编程 2信息共享 3信息保护 4动态增长 5动态链接,9.5.2 分段存储管理的基本原理 1分段 在分段存储管理方式中,作业地址空间被划分成若干个段,每个段定义了一组逻辑信息。例如,有主程序段、子程序段、数据段及栈段等,如图9.1

15、3所示。,图9.13 利用段表实现地址映射,由于每个作业地址空间被分成多个段,因而作业的地址空间是二维的,逻辑地址由段号和段内地址组成,逻辑地址表示成有序偶(S,d)。其中,S是段号,d是段内地址。分段存储管理的地址结构如图9.14所示。,图9.14 分段存储管理的地址结构,2段表 通过查找段表,就可找到每个段所对应的内存区的起始地址,3地址变换机构 为了把逻辑地址变换为物理地址,在分段系统中设置了段表寄存器,用于存放段表始址TA和段表长度TL。当进程访问逻辑地址(S,d)时,分段地址变换机构将地址中的段号S与段表长度TL进行比较: (1)若STL,表示段号太大,是访问越界,于是产生越界中断信

16、号; (2)若STL,表示未越界。,未越界情况下,根据段表始址TA和段号S计算该段号所对应段表项的位置:TA+S段表项长度,并从此位置中读出该段在内存的起始地址b和段长SL。然后,再检查段内地址d是否超过该段的段长SL: (1)若超过(即dSL),则发生越界中断信号; (2)若未超过(即dSL),则将该段S的内存起始地址b加上段内地址d,即得到要访问的内存物理地址。,4段的共享与保护,图9.15 分段系统的地址变换过程,5分页和分段的主要区别 (1)页是信息的物理单位。段则是信息的逻辑单位。 (2)页的大小固定且由系统决定,段的长度决定于用户所编写的程序。 (3)分页的作业地址空间是一维的,而分段的作业地址空间则是二维的。,9.5.3 段页式存储管理方式 1段页式存储管理的基本原理 段页式存储管理的基本思想如下所述。 (1)用分段方法来管理地址空间。 即按程序的自然逻辑关系把作业的地址空间分成若干段,每一段有自己的段号。

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

当前位置:首页 > 高等教育 > 大学课件

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