四章节存储管理.ppt
《四章节存储管理.ppt》由会员分享,可在线阅读,更多相关《四章节存储管理.ppt(108页珍藏版)》请在三一办公上搜索。
1、第四章 存储管理,4.1 引言4.2 存储管理的功能4.3 实存管理4.4虚拟存储器管理4.5 碎片与抖动问题,存储管理是指存储器资源(主要指内存并涉及外存)的管理。存储器资源的组织(如内存的组织方式)地址变换(逻辑地址与物理地址的对应关系维护)虚拟存储的调度算法,4.1 存储组织,存储器的功能是保存数据,存储器的发展方向是高速、大容量和小体积。内存在访问速度方面的发展硬盘技术在大容量方面的发展存储组织是指在存储技术和CPU寻址技术许可的范围内组织合理的存储结构。其依据是访问速度匹配关系、容量要求和价格。“寄存器-内存-外存”结构“寄存器-缓存-内存-外存”结构;微机中的存储层次组织:访问速度
2、越慢,容量越大,价格越便宜;,返回,存储层次结构,快速缓存:Data CacheTLB(Translation Lookaside Buffer)内存:DRAM,SDRAM等;外存:软盘、硬盘、光盘、磁带等;,4.2 存储管理的功能,存储分配和回收:分配和回收算法及相应的数据结构。地址变换:可执行文件生成中的链接技术程序加载(装入)时的重定位技术进程运行时硬件和软件的地址变换技术机构存储共享和保护:代码和数据共享地址空间访问权限(读、写、执行)存储器扩充:存储器的逻辑组织和物理组织;,4.2.1 内存的分配与回收,内存分配按分配的时机不同,可分为静态存储方式和动态存储方式。静态存储分配:指内存
3、分配是在作业运行之前各目标模块连接后,把整个作业一次性全部装入内存,并在作业运行过程中,不允许作业再申请其它内存空间,或是在内存中移动位置。内存分配在作业运行前一次性完成。,动态存储分配:作业要求的基本内存空间是在目标模块装入内存时分配,但在作业运行过程中,允许作业申请附加的内存空间,或是在内存中移动,即分配工作可以在作业运行前及运行过程中逐步完成。动态存储分配具有较大灵活性,内存利用率高。,4.2.2 地址重定位,重定位:把逻辑地址(编写程序时使用的地址)转变为内存的物理地址的过程,由操作系统中的装入程序loader来完成。,返回,1.逻辑地址、物理地址和地址映射,逻辑地址(相对地址,虚地址
4、):用户的程序经过汇编或编译后形成目标代码,目标代码通常采用相对地址的形式。其首地址为0,其余指令中的地址都相对于首地址来编址不能用逻辑地址在内存中读取信息。物理地址(绝对地址,实地址):内存中存储单元的地址。物理地址可直接寻址。地址映射:将用户程序中的逻辑地址转换为运行时由机器直接寻址的物理地址。当程序装入内存时,操作系统要为该程序分配一个合适的内存空间,由于程序的逻辑地址与分配到内存物理地址不一致,而CPU执行指令时,是按物理地址进行的,所以要进行地址转换。,逻辑地址、物理地址和地址映射,地址映射,300,Mov R1 1200,1100,3456,2.地址重定位,优点:不需硬件支持,可以
5、装入有限多道程序缺点:一个程序通常需要占用连续的内存空间,程序装入内存后不能移动,不易实现共享,内存利用率低。,地址重定位分为:静态地址重定位和动态地址重定位。静态地址重定位:在可执行文件中,列出各个需要重定位的地址单元和相对地址值。当用户程序被装入内存时,一次性实现逻辑地址到物理地址的转换,以后不再转换(一般在装入内存时由软件完成)。即:装入时根据所定位的内存地址去修改每个重定位地址项,添加相应偏移量。,可执行文件在内存中的重定位,说明:重定位表中列出所有修改的位置。如:重定位表的150表示相对地址150处的内容为相对地址(即100为从0起头的相对位置)。在装入时,要依据重定位后的起头位置(
6、2000)修改相对地址。重定位修改:重定位表中的150-绝对地址2150(=2000+150)内容修改:内容100变成2100(=100+2000)。,动态重定位,动态运行时的装入程序,在把装入模块装入内存后,并不立即把装入模块中的相对地址转换为绝对地址,而是把这种地址转换推迟到程序真正要执行时才进行,通过硬件机构来完成,硬件机构一般采用的是重定位寄存器,完成虚拟地址到实际内存地址的变换。因此,装入内存后的所有地址都仍是相对地址。,动态重定位的实现,在每次进行存储器访问时,对取出的逻辑地址加上重定位寄存器的内容,形成内存地址,重定位寄存器的内容是程序装入内存的起始地址。,优点:OS不要求将程序
7、装入连续的内存空间,可以将一个程序分散存放于不连续的内存空间,内存中程序可以移动,有利于实现共享。部分地装入程序,也便于作业共享同一程序副本。缺点:需要硬件支持(通常是CPU),OS实现较复杂。它是虚拟存储的基础。,4.2.3 存储保护,在多道程序设计环境中,要保证各道程序只能在自己的存储区中活动,不能对别的程序产生干扰和破坏,不能破坏操作系统的内存区。由于存储保护检查是针对每个存储访问操作进行的,必须由相应的处理器硬件机构支持。存储保护的目的:保护系统程序区不被用户侵犯(有意或无意的)不允许用户程序读写不属于自己地址空间的数据(系统区地址空间,其他用户程序的地址空间),普遍采用的硬件界限寄存
8、器保护法:(1)上、下界存储保护:是一种简单的存储保护技术。系统为每一个作业设置一对上、下界寄存器,分别用来存放当前运行作业在内存空间的上、下边界地址,来限制用户程序的活动范围。(2)基址限长存储保护:系统为每个作业设一个基址寄存器和一个限长寄存器,基址寄存器存放该作业在内存的首址,限长寄存器存放该作业的长度。,对于存储保护除了防止越界外,还可对某一区域指定专门的保护。常见的对某一区域的保护方式有四种:(1)禁止做任何操作(2)只执行(3)只读(4)读/写,4.2.4 虚拟存储器,内存不够用的矛盾。作业全部装入内存造成浪费。程序执行具有局部性规律。,返回,1.问题的引出,在程序装入时,不必将其
9、全部读入到内存,而只需将当前需要执行的部分页或段读入到内存,就可让程序开始执行。在程序执行过程中,如果需执行的指令或访问的数据尚未在内存(称为缺页或缺段),则由处理器通知操作系统将相应的页或段调入到内存,然后继续执行程序。另一方面,操作系统将内存中暂时不使用的页或段调出保存在外存上,从而腾出空间存放将要装入的程序以及将要调入的页或段。只需程序的一部分在内存就可执行。,返回,2.虚拟存储的基本原理,3.虚拟存储器定义,所谓虚拟存储器,是指具有请求调入功能和置换功能,能从逻辑上对内存容量加以扩充的一种存储器系统。其运行速度接近于内存速度,而每位的成本却又接近于外存。可见,虚拟存储技术是一种性能非常
10、优越的存储器管理技术,故被广泛地应用于大、中、小型机器和微型机中。在虚拟存储管理中,一般将硬盘作为外存,并且其逻辑地址空间大小与物理内存大小没有直接关系,由计算机系统的地址结构决定.,4.引入虚拟存储技术的好处,大程序:可在较小的可用内存中执行较大的用户程序;大的用户空间:提供给用户可用的虚拟内存空间通常大于物理内存(real memory)并发:可在内存中容纳更多程序并发执行;易于开发:不必影响编程时的程序结构,4.3 实存管理,实存管理与虚存管理相对应,其特点是作业运行时,整个作业的逻辑地址空间必须全部装入内存,当作业尺寸大于主存可用空间时,该作业无法运行。常见的实存管理技术有固定分区存储
11、管理、可变式分区存储管理和纯分页存储管理。内存分为两个区域:系统区,用户区。系统区仅提供给OS使用,通常是放在内存的低址部分;用户区是指除系统区以外的全部内存空间,提供给用户使用,应用程序装入到用户区,可使用用户区全部空间。,4.3.1 固定分区存储管理,基本思想:在作业未装入内存之前,就由操作员或操作系统把内存划分为若干个固定大小的存储区,除操作系统占用一个区外,其余区域为操作系统中多个用户共享,在系统运行期间,分区大小、数目都不变。在固定分区存储管理系统中,每个用户作业运行时可分配到一块足够大的区域,用户作业一次性装入到分配区,并限制只能在这个区中运行。特点:适用于多道程序系统和分时系统支
12、持多个程序并发执行难以进行内存分区的共享。问题:可能存在内碎片和外碎片。内碎片:占用分区之内未被利用的空间外碎片:占用分区之间难以利用的空闲分区(通常是小空闲分区)。,为了进行分区的分配和回收,在固定分区存储管理系统中,有一张记录 内存配和使用情况的说明表,分区说明表用来记录各分区的起始地址、分区大小和分区分配状态。,固定分区分配中的分区表,优点:易于实现,开销小。缺点:内碎片造成浪费分区总数固定,限制了并发执行的程序数目。采用的数据结构:分区表记录分区的大小和使用情况,4.3.2 可变分区存储管理,在作业装入时,按其对内存空间的实际要求要求进行分配,每个分区的尺寸与进入它的作业大小相同。优点
13、:没有内碎片。缺点:有外碎片。,在可变式存储管理中,常把空闲区组织成空闲分区表和空闲分区链表。,空闲分区表。空闲分区包括分区序号、分区起始地址、分区大小的数据,空闲分区表要占用一定数量的存储单元存放表,增加了系统开销。(2)空闲分区链表。空闲分区链表的组织形式:在每个空闲分区的起始部分开辟出一个单元,存放一个链表指针和该分区的大小,链表指针指向下一个空闲分区。系统中用一个固定单元作为空闲分区链表的链表头指针,指向第一块空闲分区首指针,最后一块空闲分区的链表指针存放链尾标志。链表按空闲分区在内存的位置顺序由小到大链接起来。空闲分区链表的组织时,空闲分区的信息放在空闲区内,不会额外增加系统开销。,
14、1.空闲分区的组织形式,2.内存的分配和回收,内存的分配 在可变式分区存储管理中,当作业要求一个Xk 大小的存储空间时,系统从链表头指针开始依次检索空闲区,找到第一个大于等于Xk的空间。若系统中所有空闲区都小于Xk,无法分配。若有空闲区等于Xk大小,则修改链表指针,取消该空闲块,并向用户返回该空闲区首地址。若该空闲区大于Xk,则将空闲区一分为二,一个为Xk,分给用户,另一个为余下部分,仍留在空闲分区链表中,修改相应链表指针所指向的地址和空闲区大小。,分区释放算法:系统进行回收时,应该检查回收区与内存中前后空闲区是否相邻,若相邻,需要将相邻的空闲分区合并成一个空闲分区。若不相邻,应将空闲区插入到
15、空闲区链表的适当位置。,分区回收,3.分区分配算法,分区分配算法:寻找某个空闲分区,其大小需大于或等于程序的要求。若是大于要求,则将该分区分割成两个分区,其中一个分区为要求的大小并标记为“占用”,而另一个分区为余下部分并标记为“空闲”。分区的先后次序通常是从内存低端到高端。,返回,首次适应法(first-fit):将空闲分区按照地址递增的顺序组织成空闲分区链.为作业分配内存时,系统根据作业大小,从头查找,找到符合要求的第一个分区,如果不等于分区大小,将其分为两部分,一部分给作业,另一部分仍留在空闲区链表中。该算法的分配和释放的时间性能较好,较大的空闲分区可以被保留在内存高端。但随着低端分区不断
16、划分而产生较多小分区,每次分配时查找时间开销会增大。最佳适应法(best-fit):把空闲分区链表按照分区大小由小到大进行组织。当有作业申请内存时,扫描整个分区链,找到进程满足的最小分区(其大小与要求相差最小的空闲分区)从个别来看,外碎片较小,但从整体来看,会形成较多外碎片。较大的空闲分区可以被保留。回收一个分区时,为了把它插入到空闲区链表的合适位置,比较费时间。,最坏适应算法(worst-fit):把空闲区按大小递减的顺序组织成空闲区链表。当用户申请一个存储区时,检查空闲区链表的第一个空闲区是否满足要求,若不满足,分配失败;若满足,则将空闲分区分配给用户,然后修改和调整空闲区链表。优点是:查
17、询简单,每次分配的总是最大的空闲区。缺点是:基本不留下小空闲分区,但较大的空闲分区不被保留。,内存紧凑(compaction):改变进程在内存中的位置,移动存储器中某些已分配分区中的信息,使分散在内存中的碎片能汇集成一片,能分配给其他进程使用。增加了系统开销影响了进程正常运行需要重新定义内存地址,内存紧凑,4.可变式分区的地址重定位,可变式分区的地址重定位采用静态重定位,内存中不能再分配利用的小碎片会越来越多。解决这个问题的办法就是采用紧凑技术,即把小碎片集中起来使之成为一个大的分区。实现的方法是移动各用户分区中的程序,是他们集中于内存的一端,而使碎片集中于另一端。从而将空闲的碎片连成一个较大
18、的分区,共需求的作业使用。可变式分区的地址重定位采用动态重定位,在执行内存分配时,如无足够大空闲块,可实现紧凑操作。,可变分区的存储保护采用基址限长存储保护方式。可变分区存储管理的优点:可以有效解决固定式分区的内部碎片问题,能有效利用主存空间,提高多道程序对内存的共享。缺点是容易产生外部碎片问题,要解决外部碎片问题增加了计算机硬件成本。,4.3.3 分页存储管理,页式和段式存储管理是通过引入进程的逻辑地址,把进程地址空间与实际存储位置分离,从而增加存储管理的灵活性。分页存储管理的思想:可以将一个作业分配到几个不连续的区域内,从而不需要移动主存原有的信息,可以有效地解决碎片问题。,基本原理,1.
19、页面(1)页面和物理块 分页存储管理,是将一个进程的逻辑地址空间分成若干个大小相等的页,称为页面或页,并为各页加以编号,从0开始,如第0页、第1页等。程序加载时,分配其所需的所有页,这些页不必连续。需要CPU的硬件支持。相应地,也把内存空间分成与页面相同大小的若干个存储块,称为(物理)块或页框(frame),也同样为它们加以编号,如0块、1块等等。在为进程分配内存时,以块为单位将进程中的若干个页分别装入到多个可以不相邻接的物理块中。由于进程的最后一页经常装不满一块而形成了不可利用的碎片,称之为“页内碎片”。,分页式存储管理,(2)页面大小 在分页系统中的页面其大小应适中。页面若太小,一方面虽然
20、可使内存碎片减小,从而减少了内存碎片的总空间,有利于提高内存利用率,但另一方面也会使每个进程占用较多的页面,从而导致进程的页表过长,占用大量内存;此外,还会降低页面换进换出的效率。然而,如果选择的页面较大,虽然可以减少页表的长度,提高页面换进换出的速度,但却又会使页内碎片增大。因此,页面的大小应选择得适中,且页面大小应是2的幂,通常为512 B4MB。小内碎片小;大页表短,管理开销小,交换时对外存I/O效率高。,2.分页存储管理中存储块的分配和回收,当作业有存储分配请求时,可以根据逻辑地址的大小计算出需要的存储块,然后将空闲块分配给作业使用,记录空闲存储块的方法:位示图和链表法。,(1)位图法
21、是用存储单元中的二进制位与存储块相对应,某位的值为0,表示对应的存储块空闲,其值为1,表示已分配。将这些二进制位组合在一块,就构成一张位图。特点:方法简单查找空闲块费时,但回收比较简单。,(2)链表法 系统设定一个空闲块链表头指针指向链表的第一个空闲块,在每一个空闲块中包含下一个空闲块的指针信息。当用户申请内存时,根据链表头指针顺序分配,回收时,只需将该块插入表头。,2.地址结构,分页地址中的地址结构如下:,15,10,9,0,对某特定机器,其地址结构是一定的。若给定一个逻辑地址空间中的地址为A,页面的大小为L,则页号P和页内地址d可按下式求得:,页表 用于记录进程的一个页面和对应的内存物理块
22、号.借助于页表可以实现逻辑地址与物理地址之间的转换.,图 4-11 页表的作用,指令所给出地址分为两部分:逻辑页号,页内偏移地址查进程页表,得物理块号物理地址,把页表放入内存,存取一个数据至少要两次访问内存。,3.地址变换机构,基本的地址变换机构,页式地址变换举例,快表,为缩短查找时间,可以将内存中的页表中最常用的页号和与之对应物理块号装入到关联存储器(TLB,Translation Lookaside Buffer),按内容查找(associative mapping),即逻辑页号物理页号,和页表具有并行查找的能力。,具有快表的地址变换机构,将最近访问的页面的页表信息存放在高速缓存中,其中的
23、页表就是快表.访问快表的速度远远大于访问内存中页表的速度.,存储保护,(1)进行地址变换时,产生的页号应小于页表长度,否则视为越界。(2)在页表中增加存取控制和存储保护的信息,对每一个存储块,可允许四个保护方式:禁止做任何操作、只执行、只读、读/写,当要访问某页时,先判断该页的存取控制和存储保护信息是否允许。,优点:没有外碎片,每个内碎片不超过页大小。一个程序不必连续存放。主存利用率高,内存分配和回收算法简单。缺点:程序全部装入内存。,分段存储管理方式的引入,引入分段存储管理方式,主要是为了满足用户和程序员的下述一系列需要:1)方便编程 2)信息共享 3)信息保护 4)动态增长 5)动态链接,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 章节 存储 管理
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-5989049.html