四章节存储器管理.ppt
《四章节存储器管理.ppt》由会员分享,可在线阅读,更多相关《四章节存储器管理.ppt(87页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第四章 存 储 器 管 理 四章节存储器管理 Still waters run deep.流静水深流静水深,人静心深人静心深 Where there is life,there is hope。有生命必有希望。有生命必有希望第四章 存 储 器 管 理 4.1 程序的装入和链接程序的装入和链接 图4-1对用户程序的处理步骤第四章 存 储 器 管 理 4.1.1 程序的装入程序的装入1.绝对装入方式绝对装入方式(单道系统中单道系统中)程程序序中中所所使使用用的的绝绝对对地地址址,既既可可在在编编译译或或汇汇编编时时给给出出,也可也可由程序员直接赋予。由程序员直接赋予。通通常常是是在在编编译译或或汇
2、汇编编时时,再再将将这这些些符符号号地地址址转转换换为为绝绝对地址。对地址。第四章 存 储 器 管 理 2.可重定位装入方式可重定位装入方式(Relocation Loading Mode)图4-2作业装入内存时的情况第四章 存 储 器 管 理 3.动态运行时装入方式动态运行时装入方式(Denamle Run-time Loading)动动态态运运行行时时的的装装入入程程序序,在在把把装装入入模模块块装装入入内内存存后后,并不立即并不立即把装入模块中的把装入模块中的相对地址转换为绝对地址相对地址转换为绝对地址,而而是是把把这这种种地地址址转转换换推推迟迟到到程程序序真真正正要要执执行行时时才才
3、进进行。行。因此,因此,装入内存后的所有装入内存后的所有地址都仍是地址都仍是相对地址相对地址。第四章 存 储 器 管 理 4.1.2 程序的链接程序的链接 1.静态链接方式静态链接方式(Static Linking)图4-3程序链接示意图第四章 存 储 器 管 理 在在将将这这几几个个目目标标模模块块装装配配成成一一个个装装入入模模块块时时,须须解解决以下两个问题:决以下两个问题:(1)对相对地址进行修改。对相对地址进行修改。(2)变换外部调用符号。变换外部调用符号。第四章 存 储 器 管 理 2.装入时动态链接装入时动态链接(Loadtime Dynamic Linking)目标模块是目标模
4、块是边装入内存边链接边装入内存边链接的。的。优点:优点:(1)便于修改和更新。便于修改和更新。(目标模块是分开存放的)(目标模块是分开存放的)(2)(2)便于实现对目标模块的共享。便于实现对目标模块的共享。(3)(一个目标模块可链接到几个应用模块(一个目标模块可链接到几个应用模块)第四章 存 储 器 管 理 3.运行时动态链接运行时动态链接(Run-time Dynamic Linking)在在执执行行过过程程中中,当当发发现现一一个个被被调调用用模模块块尚尚未未装装入入内内存存时,再装入内存,时,再装入内存,把它链接到调用者模块上。把它链接到调用者模块上。未未被被用用到到的的目目标标模模块块
5、,都都不不会会被被调调入入内内存存和和被被链链接接到到装入模块上,装入模块上,(如:错误处理用的目标模块)(如:错误处理用的目标模块)优点:优点:加快程序的装入过程,可节省大量的内存空间。加快程序的装入过程,可节省大量的内存空间。第四章 存 储 器 管 理 4.2 连续分配方式连续分配方式4.2.1 单一连续分配单一连续分配(单用户、单任务)单用户、单任务)把内存分为把内存分为系统区系统区和和用户区用户区两部分两部分系统区系统区仅提供给仅提供给OS使用,通常是放使用,通常是放在内存的在内存的低址低址部分;部分;用用户户区区是是指指除除系系统统区区以以外外的的全全部部内内存存空空间间,提提供供给
6、给用用户户使使用。用。第四章 存 储 器 管 理 4.2.2 固定分区分配固定分区分配 1.划分分区的方法划分分区的方法(1)分区大小相等。分区大小相等。(2)程序太小时程序太小时浪费内存,浪费内存,程序太大时程序太大时可能不足以装入。可能不足以装入。(3)(2)分区大小不等。分区大小不等。(4)多个较小的分区,适量的中等分区,少量大分区多个较小的分区,适量的中等分区,少量大分区第四章 存 储 器 管 理 2.内存分配内存分配 图4-4固定分区使用表第四章 存 储 器 管 理 4.2.3 动态分区分配动态分区分配 1.分区分配中的数据结构分区分配中的数据结构(1)空闲分区表空闲分区表。表目:序
7、号,始址表目:序号,始址大小大小(2)空闲分区链。空闲分区链。图4-5空闲链结构第四章 存 储 器 管 理 2.分区分配算法分区分配算法(1)首次适应算法首次适应算法FF。以以地址递增地址递增的次序链接空闲分区的次序链接空闲分区分配内存时,从链首顺序查找,找到为止,若找不到则分配失败分配内存时,从链首顺序查找,找到为止,若找不到则分配失败优点:优点:优先利用低址,从而保留高址的大空间优先利用低址,从而保留高址的大空间缺点:缺点:低址不断利用,留下碎片;增加查找开销低址不断利用,留下碎片;增加查找开销(2)循环首次适应算法,该算法是由首次适应算法演变而成的。循环首次适应算法,该算法是由首次适应算
8、法演变而成的。由首次适应算法演变而来,只是从上次找到的空闲分区的下一个开由首次适应算法演变而来,只是从上次找到的空闲分区的下一个开始查找始查找采用循环查找的方式采用循环查找的方式优点:优点:空闲分区的分布得更均匀;空闲分区的分布得更均匀;缺点:缺点:会缺乏大空闲分区;会缺乏大空闲分区;(3)最佳适应算法。最佳适应算法。找到满足要求,又是最小的空闲分区找到满足要求,又是最小的空闲分区从小到大形成一空闲分区链从小到大形成一空闲分区链但切割剩余部分是最小的但切割剩余部分是最小的第四章 存 储 器 管 理 3.分区分配操作分区分配操作 1)分配内存图4-6内存分配流程第四章 存 储 器 管 理 2)回
9、收内存(四种情况)图4-7内存回收时的情况第四章 存 储 器 管 理 4.2.4 可重定位分区分配可重定位分区分配 1.动态重定位的引入动态重定位的引入(要求连续空间,移动后的程序须重定位)图4-8紧凑的示意第四章 存 储 器 管 理 2.动态重定位的实现动态重定位的实现动态装入方式中,内存中的作业仍是相对地址,在程动态装入方式中,内存中的作业仍是相对地址,在程序序执行时执行时,才转换为绝对地址,才转换为绝对地址为加快转换速度,增设重为加快转换速度,增设重定位寄存器定位寄存器,用于存放起始,用于存放起始地址地址在小分区在小分区“拼凑拼凑”时,时,不需对程序作任何修改不需对程序作任何修改第四章
10、存 储 器 管 理 2.动态重定位的实现动态重定位的实现 图4-9动态重定位示意图第四章 存 储 器 管 理 3.动态重定位分区分配算法动态重定位分区分配算法 图4-10动态分区分配算法流程图请求分配u.size分区检索空闲分区链(表)找到大于u.size的可用区否?按动态分区方式进行分配修改有关的数据结构返回分区号及首址空闲分区总和u.size?进行紧凑形成连续空闲区修改有关的数据结构否是无法分配返回否第四章 存 储 器 管 理 4.2.5 对换对换(Swapping)1.对换的引入对换的引入 所所谓谓“对对换换”,是是指指把把内内存存中中暂暂时时不不能能运运行行的的进进程程或或数数据据,调
11、调出出到到外外存存上上,再再把把已已具具备备运运行行条条件件的的进进程程或或数数据据,调入内存。调入内存。对换是对换是提高内存利用率提高内存利用率的有效措施。的有效措施。第四章 存 储 器 管 理 2.对换空间的管理对换空间的管理在外存中设一在外存中设一对换区对换区,用于存放换出的进程,用于存放换出的进程进进程程在在对对换换区区中中驻驻留留是是短短暂暂的的,对对换换是是频频繁繁的的,故故采采用用连连续续分分配配方方式式,以提高速度以提高速度对对换换区区的的分分配配同同样样可可以以用用空空闲闲分分区区表表或或空空闲闲分分区区链链。在在空空闲闲分分区区表表中中的的每每个个表表目目中中应应包包含含两
12、两项项,即即对对换换区区的的首首址址及及其其大大小小,它它们们的的单单位位是是盘块号和盘块数盘块号和盘块数。第四章 存 储 器 管 理 3.进程的换出与换入进程的换出与换入 (1)进程的换出。进程的换出。1、系统首先选择处于、系统首先选择处于阻塞状态且优先级最低阻塞状态且优先级最低的进程作为换出进程,的进程作为换出进程,2、将该进程的程序和数据、将该进程的程序和数据传送到传送到磁盘的对换区上。磁盘的对换区上。3、若若传传送送过过程程未未出出现现错错误误,便便可可回回收收该该进进程程所所占占用用的的内内存存空空间间,并并对对该进程的该进程的PCB做相应的做相应的修改。修改。第四章 存 储 器 管
13、 理 (2)进程的换入。进程的换入。将将换换出出时时间间(换换出出到到磁磁盘盘上上)最最久久的的进进程程作作为为换换入入进进程程,将将之换入,直至已无可换入的进程或无可换之换入,直至已无可换入的进程或无可换出的进程为止。出的进程为止。第四章 存 储 器 管 理 4.3 基本分页存储管理方式基本分页存储管理方式 4.3.1 页面与页表页面与页表 1.页面页面 1)页面和物理块页面和物理块页页面面或或页页:将将进进程程的的逻逻辑辑地地址址空空间间分分成成若若干干个个大大小小相相等等的的片片,并并为为各各页从页从0开始加以编号。开始加以编号。(物物理理)块块或或页页框框(frame):把把内内存存空
14、空间间分分成成与与页页面面相相同同大大小小的的若若干干个个存储块,加以编号。存储块,加以编号。在在为为进进程程分分配配内内存存时时,以以块块为为单单位位将将进进程程中中的的若若干干个个页页分分别别装装入入到到多多个可以个可以不相邻接不相邻接的的物理块物理块中。中。“页页内内碎碎片片”:由由于于进进程程的的最最后后一一页页经经常常装装不不满满一一块块而而形形成成了了不不可可利利用的碎片。用的碎片。第四章 存 储 器 管 理 2)页面大小页面大小页面若太小页面若太小:内存碎片减小内存碎片减小但会导致进程的但会导致进程的页表过长页表过长,占用更多的内存;,占用更多的内存;还会降低页面换进换出的还会降
15、低页面换进换出的效率效率。若页面较大:若页面较大:虽然可以减少页表的长度,提高页面换进换出的速度,虽然可以减少页表的长度,提高页面换进换出的速度,但却又会使但却又会使页内碎片增大页内碎片增大。合适的页面大小:合适的页面大小:应是应是2的幂,的幂,通常为通常为512 B8 KB。第四章 存 储 器 管 理 2.地址结构地址结构 分页地址中的地址结构如下:分页地址中的地址结构如下:页号P位移量W3112110对对某某特特定定机机器器,其其地地址址结结构构是是一一定定的的。若若给给定定一一个个逻逻辑辑地地址址空空间间中中的的地地址址为为A(2170),页页面面的的大大小小为为L(1024),则页号则
16、页号P(2)和页内地址和页内地址d(122)可按下式求得:可按下式求得:第四章 存 储 器 管 理 3.页表页表(每个进程一个页表,将页号转换为块号)(每个进程一个页表,将页号转换为块号)图4-11页表的作用第四章 存 储 器 管 理 4.3.2 地址变换机构地址变换机构 1.基本的地址变换机构基本的地址变换机构(始址和长度是平时放在(始址和长度是平时放在PCB中,运行时调入寄存器)中,运行时调入寄存器)图4-12分页系统的地址变换机构第四章 存 储 器 管 理 2.具有快表的地址变换机构具有快表的地址变换机构(一次访存一次访存)图4-13具有快表的地址变换机构第四章 存 储 器 管 理 快表
17、也叫“联想寄存器”,IBM系统中也称“TLB”CPU给出有效地址,先查快表,若找到则直接读物理块,若没找到则找内存中的页表,并把表项送到快表中,若快表满则找不再需要的页表项换出。第四章 存 储 器 管 理 4.3.3 两级和多级页表两级和多级页表 一一般般计计算算机机系系统统逻逻辑辑地地址址空空间间(232264),页页表表就就变变得得非非常常大大,要要占占很很大大内内存空间。存空间。如如,一一个个32位位逻逻辑辑地地址址空空间间的的分分页页系系统统,页页面面大大小小为为4 KB即即212 B,则则每每个个进进程程页页表表中中的的页页表表项项可可达达1兆兆个个。每每个个页页表表项项占占一一个个
18、字字节节,其其页页表表就就要要占占用用1MB的的内内存存空间,而且还要求是空间,而且还要求是连续的连续的。可以采用这样两个方法来解决这一问题:可以采用这样两个方法来解决这一问题:采用采用离散分配方式离散分配方式来解决难以找到一块连续的大内存空间的问题:来解决难以找到一块连续的大内存空间的问题:只只将将当当前前需需要要的的部部分分页页表表项项调调入入内内存存,其其余余的的页页表表项项仍仍驻驻留留在在磁磁盘盘上上,需要时再调入。需要时再调入。第四章 存 储 器 管 理 1.两级页表两级页表(Two-Level Page Table)逻辑地址结构可描述如下:逻辑地址结构可描述如下:第四章 存 储 器
19、 管 理 图4-14两级页表结构第四章 存 储 器 管 理 图4-15具有两级页表的地址变换机构第四章 存 储 器 管 理 两级页表采用两级页表采用离散离散分配空间的方法,但分配空间的方法,但并没有减少页并没有减少页表表所占所占空间空间。故采用只将故采用只将当前需要的当前需要的页表调入内存,以后再根据需页表调入内存,以后再根据需要陆续调入。要陆续调入。在外层页表中增设一个状态位在外层页表中增设一个状态位S,若为,若为0表示页表不在表示页表不在内存,若为内存,若为1表示在内存。表示在内存。第四章 存 储 器 管 理 2.多级页表多级页表对对于于64位位的的机机器器,如如果果页页面面大大小小仍仍采
20、采用用4 KB,此此时时在在外外层层页页表表中中可可能能有有4096 G个个页页表表项项,要要占占用用16384 GB的的连连续内存空间。续内存空间。必须采用多级页表,将外层页表再进行分页。必须采用多级页表,将外层页表再进行分页。对对于于64位位的的计计算算机机,如如果果要要求求它它能能支支持持2(=1844744 TB)规规模模的的物物理理存存储储空空间间,则则即即使使是是采采用用三三级级页页表表结结构构也也是是难以办到的;而在当前的实际应用中也无此必要。难以办到的;而在当前的实际应用中也无此必要。第四章 存 储 器 管 理 4.4 基本分段存储管理方式基本分段存储管理方式 4.4.1 分段
21、存储管理方式的引入分段存储管理方式的引入 引引入入分分段段存存储储管管理理方方式式,主主要要是是为为了了满满足足用用户户和和程程序序员员的下述一系列需要:的下述一系列需要:1)方便编程方便编程(按逻辑关系分段)(按逻辑关系分段)2)信息共享信息共享(以段为逻辑单位,便于共享,如函数)(以段为逻辑单位,便于共享,如函数)3)信息保护信息保护 4)动态增长动态增长 (便于段(数据段)的增长)(便于段(数据段)的增长)5)动态链接动态链接(目标程序)段动态链接(目标程序)段动态链接第四章 存 储 器 管 理 4.4.2 分段系统的基本原理分段系统的基本原理 1.分段分段 分段地址中的地址具有如下结构
22、:分段地址中的地址具有如下结构:段号段内地址3116150按主程序,子程序,数据,栈等分段按主程序,子程序,数据,栈等分段每段从每段从0开始编号,段长不定开始编号,段长不定第四章 存 储 器 管 理 为每一个段分配一个连续分区为每一个段分配一个连续分区各个段离散地放在内存中不同的分区中各个段离散地放在内存中不同的分区中建立一段表,用于从建立一段表,用于从逻辑段逻辑段到到物理内存区物理内存区的映的映射射段表中的表项存放段的段表中的表项存放段的基址和段的长度基址和段的长度段表通常放在内存中段表通常放在内存中2.段表段表 第四章 存 储 器 管 理 图4-16利用段表实现地址映射第四章 存 储 器
23、管 理 图4-17分段系统的地址变换过程3.地址变换机构第四章 存 储 器 管 理 4.分页和分段的主要区别分页和分段的主要区别(1)页页是是信信息息的的物物理理单单位位,分分页页是是为为实实现现离离散散分分配配方方式,分页仅仅是由于式,分页仅仅是由于系统管理的需要系统管理的需要而不是用户的需要。而不是用户的需要。段段则则是是信信息息的的逻逻辑辑单单位位,它它含含有有一一组组其其意意义义相相对对完完整整的信息。的信息。分段的目的是为了能更好地满足分段的目的是为了能更好地满足用户的用户的需要需要。第四章 存 储 器 管 理(2)页页的的大大小小固固定定且且由由系系统统决决定定,由由系系统统把把逻
24、逻辑辑地地址址划分为划分为页号和页内地址页号和页内地址两部分,是由机器硬件实现的;两部分,是由机器硬件实现的;而而段段的的长长度度却却不不固固定定,通通常常由由编编译译程程序序在在对对源源程程序序进进行编译时,根据信息的性质来划分。行编译时,根据信息的性质来划分。(3)分分页页的的作作业业地地址址空空间间是是一一维维的的,即即单单一一的的线线性性地地址空间,程序员只需利用一个记忆符,即可表示一个地址;址空间,程序员只需利用一个记忆符,即可表示一个地址;而而分分段段的的作作业业地地址址空空间间则则是是二二维维的的,程程序序员员在在标标识识一一个地址时,个地址时,既需给出段名,又需给出段内地址。既
25、需给出段名,又需给出段内地址。第四章 存 储 器 管 理 4.4.3 信息共享信息共享 图4-18分页系统中共享editor的示意图第四章 存 储 器 管 理 图4-19分段系统中共享editor的示意图第四章 存 储 器 管 理 4.4.4 段页式存储管理方式段页式存储管理方式 1.基本原理基本原理 图4-20作业地址空间和地址结构第四章 存 储 器 管 理 图4-21利用段表和页表实现地址映射第四章 存 储 器 管 理 2.地址变换过程地址变换过程 图4-22段页式系统中的地址变换机构第四章 存 储 器 管 理 4.5 虚拟存储器的基本概念虚拟存储器的基本概念 4.5.1 虚拟存储器的引入
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 章节 存储器 管理
限制150内