《操作系统ppt课件第5章.ppt》由会员分享,可在线阅读,更多相关《操作系统ppt课件第5章.ppt(56页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第第5章章 内存管理内存管理本章知识点:本章知识点:5.1 概述概述5.2 存储管理的基本技术存储管理的基本技术 5.3 分页存储管理分页存储管理 5.4 分段存储管理分段存储管理5.5 段页式存储管理段页式存储管理 5.6 虚拟内存的置换算法虚拟内存的置换算法5.7 系统举例(略)系统举例(略)15.1 概述概述在计算机系统中,内存管理在很大程度上影响着这个系统的性能,这使得存储管理成为人们研究操作系统的中心问题之一。虽然随着硬件技术和生产水平的迅速发展,内存的成本急速下降,但是,内存容量仍是计算机资源中最关键且最紧张的资源。因此,对内存的有效管理仍是现代操作系统中十分重要的问题。25.1.
2、1 基本概念基本概念1.存储器的层次3级存储器结构35.1.1 基本概念基本概念2.存储管理 在单道程序系统中,存储管理就是分配和回收内存区。在多道程序系统中,要求存储管理具有内存空间管理、地址转换、内存扩充、内存保护和共享等功能。45.1.2 虚拟存储器虚拟存储器 虚拟存储器是具有请求调入和交换功能、能从逻辑上对内存容量进行扩充、给用户提供了一个比真实的内存空间大得多的地址空间,在作业运行前可以只将一部分装入内存便可运行的、以逻辑方式存在的存储器。虚拟存储器的核心,实质上是让程序的访问地址和内存的可用地址相脱离。虚拟存储器最显著的特性是虚拟性,在此基础上它还有离散性、多次性和交换性等基本特征
3、。55.1.3 重定位重定位 把地址空间中使用的逻辑地址转换为内存空间中的物理地址的地址转换叫做重定位,也称为地址映射或地址映像。根据地址转换的时间及采用技术手段的不同,把重定位分为静态重定位和动态重定位两种。65.1.3 重定位重定位1.静态重定位 静态重定位是由专门设计的重定位装配程序来完成的,是在目标程序装入到内存区时由装配程序来完成地址转换。优点:无需增加地址转换机构 缺点:不能实现重新分配内存 用户必须事先确定所需的存储量 每个用户进程需各自使用一个独立的副本。75.1.3 重定位重定位2.动态重定位 动态重定位是在目标程序执行过程中,在CPU访问内存之前,由硬件地址映射机构来完成将
4、要访问的指令或数据的逻辑地址向内存的物理地址的转换。优点:内存的使用更加灵活有效;几个作业共享一程序段的单个副本比较容易;无需用户干预,由系统来负责全部的存储管理。缺点:需附加硬件支持;实现存储器管理的软件比较复杂。85.2 存储管理的基本技术存储管理的基本技术 最基本的4种存储管理技术是分区法、可重定位分区法、覆盖技术、交换技术。95.2.1 分区法分区法 分区管理是满足多道程序设计的一种最简单的存储管理方法。其基本原理是给每一个内存中的进程划分一块适当大小的存储块,以连续存储各进程的程序和数据,使各进程能并发进行。105.2.1 分区法分区法1.固定分区法 固定分区法就是把内存固定划分为若
5、干个不等的区域,划分的原则由系统决定。在整个执行过程中保持分区长度和分区个数不变。固定分区法管理方式虽然简单,但内存利用率不高。115.2.1 分区法分区法2.动态分区法 动态分区分配是根据进程的实际需要,动态地为它分配连续的内存空间,各个分区是在相应作业装入内存时建立的,其大小恰好等于作业的大小。为了实现分区分配,系统中设置了相应的数据结构来记录内存的使用情况,常用的数据结构形式有空闲分区表和空闲分区链 125.2.2 可重定位分区法可重定位分区法 使用动态分区法会出现“碎片”问题,解决碎片问题的方法,是允许存储块的大小可动态变化,采用动态重定位技术可以较好地解决这个问题。动态重定位分区分配
6、算法,与动态分区分配算法基本上相同;差别仅在于:在这种分配算法中,增加了“紧凑”功能,通常是在找不到足够大的空闲分区来满足用户需求时,进行紧凑处理。135.2.2 可重定位分区法可重定位分区法动态重定位的实现过程145.2.3 覆盖覆盖技术技术 覆盖是在程序运行过程中,把同一存储区在不同时刻分配给不同的程序段或数据段来共享的一种存储分配技术。使用覆盖技术时的缺点是程序员必须小心地设计程序及其数据结构,使得要覆盖的段块具有相对独立性,不存在直接联系或相互交叉访问。155.2.4 交换技术交换技术 交换是指将一个进程从内存拷贝到磁盘上,以腾出空间给其他进程使用。需要时,再将该进程调入内存。交换进程
7、由换出和换进两个过程组成,换出是把内存中的数据和程序换到外存的交换区,而换进则是把外存交换区中的数据和程序换到内存的分区中。在交换系统中,交换所占用的时间相当多。165.3 分页存储管理分页存储管理 分页管理也是解决碎片问题的一种有效办法,它允许程序的存储空间是不连续的,用户程序的地址空间被划分为若干个固定大小的区域。175.3.1 基本概念基本概念1.页面和物理块 在分页存储管理中,将一个进程的逻辑地址空间划分成若干个大小相等的部分,每一部分称为页面或页,并且每页都有一个编号。同样,将内存空间也划分成与页面大小相同的若干个存储块,即为物理块或页框。页面和物理块的大小由硬件即机器的地址结构所决
8、定的。分页系统中的逻辑地址由页号P和页内位移d组成。185.3.1 基本概念基本概念2.页表 每个进程都有自己的页面映象表,简称页表,页表中包含每个帧的基址及相应的页号。页表的作用是实现从页号到物理块号的地址映射。页表的表项中常设置一存取控制字段,用于对该存储块中的内容进行保护。如果要利用分页系统去实现虚拟存储器,还需要增加另外的数据项。195.3.1 基本概念基本概念3.分页系统中的地址转换 地址转换机构就是将逻辑地址中的页号转换为内存中的物理块号。地址转换任务是借助于页表来完成的,所以人们有时也把页表称为地址变换表或地址映像表。205.3.1 基本概念基本概念(1)基本的地址转换215.3
9、.1 基本概念基本概念(2)快表的地址转换225.3.2 纯分页系统纯分页系统纯分页系统的地址转换过程如下:235.3.3 请求式分页系统请求式分页系统 请求式分页系统是目前常用的一种实现虚拟存储器的方式。其基本思想是,作业在运行之前,只把当前需要的一部分页面装入内存,当需要其他页面时,才自动选择一些页交换到辅存,同时调入所需的页到内存中。在请求式分页系统中,其地址转换类似于纯分页系统的地址转换,如果访问的页已在内存中,则与纯分页系统的地址转换过程类似;如果发生缺页,通常的作法是由硬件发出中断信号,再由操作系统的相应软件负责调入其所缺的页面。245.3.4 硬件支持及缺页处理硬件支持及缺页处理
10、 为了实现请求式分页,系统必须有一定的硬件支持,这包括页表、快表硬件设施,除此之外,还需要依赖内存管理单元来完成地址转换的任务,并且当出现缺页时,在硬件方面,还须增加缺页中断响应机构。255.3.4 硬件支持及缺页处理硬件支持及缺页处理1.页表 分页系统中的从逻辑地址到物理地址的转换是通过页表来实现的。页表是数组,每一表目对应进程中的一个虚页,页表表目通常为32位,它不仅包含该页在内存的基地址,还包含有页面、内存块号、改变位、状态位、引用位和保护权限等信息。265.3.4 硬件支持及缺页处理硬件支持及缺页处理2.快表快表是为了加快地址转换速度而使用的一个联想高速缓存,使用快表进行地址转换的速度
11、比页表要快很多倍。快表由硬件实现,每个表目对应一个物理页框,包含如下信息:页号、物理块号、数据快表、指令快表和保护权限。275.3.4 硬件支持及缺页处理硬件支持及缺页处理3.内存管理单元 内存管理单元MMU主要是用来完成地址转换,它具有如下功能:将逻辑地址分为页号和页内位移,在页表中先找到与该页对应的物理块号,再将其与页内位移一起组成物理地址;管理硬件的页表地址寄存器;当页表中的状态位为“0”,或页面访问越界,或出现保护性错误时,内存管理单元会出现页面失效异常,并将控制权交给操作系统内核的相应程序处理;设置页表中相应的引用位、改变位、状态位和保护权限等。285.3.4 硬件支持及缺页处理硬件
12、支持及缺页处理4.缺页中断机构 缺页中断是一种特殊的中断,它与一般中断的区别为:在指令执行期间产生和处理中断信号;一条指令在执行期间可能产生多次缺页中断。右图为页面中断处理算法流程图。295.3.5 页的共享和保护页的共享和保护 分页存储管理技术使每个作业分别存储在内存的不连续的存储块中,这种灵活性允许两个和多个作业共享程序库中的例程或公共数据段的同一副本,共享的方法是使这些相关进程的逻辑空间中的页指向相同的内存块。并非所有页面都可共享,故实现信息共享的前提是提供附加的保护措施,对共享信息加以保护。305.4 分段存储管理分段存储管理 分段方法是将程序分成若干逻辑段,并对这些段分别分配存储空间
13、。这些段的长度可以不同,也不必连续进行分配。这种存储管理方式已成为当今所有存储管理方式的基础。315.4.1 基本概念基本概念 1.分段 在分段存储管理方式中,段是一组逻辑信息的集合。每个段都有自己的名字和长度,通常用一个段号来代替段名,每个段都从0开始编址,并采用一段连续的地址空间,段的长度由相应的逻辑信息组的长度决定。分段系统中的逻辑地址由段号s和段内地址d组成。325.4.1 基本概念基本概念2.分页和分段的主要区别 页是信息的物理单位,分页是为了便于系统管理;而段是信息的逻辑单位,分段是为了满足用户需要。分页式存储管理的作业地址空间是一维的;而分段式存储管理作业地址空间是二维的。页的长
14、度由系统确定,是等长的;而段的长度由具有相对完整意义的信息长度确定,是不固定的。335.4.2 基本原理基本原理 分段管理,就是管理由若干段组成的作业,并且按分段来进行存储分配,由于分段的作业地址空间是二维的,所以分段的关键在于如何把分段地址结构变成一维的地址结构。和分页管理一样,可以采用动态重定位技术来进行地址转换。345.4.2 基本原理基本原理 分段地址转换过程355.4.3 硬件支持和缺段处理硬件支持和缺段处理 为了实现分段式存储管理,系统必须有一定的硬件支持,以完成快速请求分段的功能,这包括段表机制、地址转换机构。当出现缺段的问题时,需要有缺段中断机构来进行及时地处理。365.4.3
15、 硬件支持和缺段处理硬件支持和缺段处理1.段表机制 请求分段管理中的主要数据结构是段表,在段表项中,除了段号(名)、段长、段在内存的始址外,它还包含存取方式、访问字段、改变位、状态位、增补位、外存起址。段表可以存放在一组寄存器中,这样有利于提高地址转换速度;但更常见的是将段表放在内存中。在配置了段表后,执行中的进程可通过查找段表,找到每个段所对应的内存区。375.4.3 硬件支持和缺段处理硬件支持和缺段处理2.地址转换机构 请求分段式的地址转换过程如右图所示385.4.3 硬件支持和缺段处理硬件支持和缺段处理3.缺段中断机构请求分段系统中的中断处理过程 395.4.4 段的共享和保护段的共享和
16、保护1.段的共享 段的共享是指两个以上的作业,使用某个子程序或数据段,而在内存中只保留该信息的一个副本。具体地说,只需在每个进程的段表中,用相应的表项来指向共享段在内存的起始地址即可。405.4.4 段的共享和保护段的共享和保护2.段的保护 在分段系统中,由于每个分段在逻辑上是独立的,因而比较容易实现信息保护。段的保护是为了实现段的共享和保证作业正常运行的一种措施。分段存储管理中的保护主要有地址越界保护和存取方式控制保护。415.4.4 段的共享和保护段的共享和保护分段式存储管理的优点:提供了内外存统一管理的虚存,每次调入一段有意义的信息。允许段长动态增长。便于对具有完整逻辑功能的信息段进行共
17、享。便于实现动态链接。分段式存储管理的缺点:需要更多的硬件支持,诸多功能会使系统的复杂性大大增加;段的长度受内存可用区大小的限制;若替换算法选择不恰当就有可能产生抖动现象。425.5 段页式存储管理段页式存储管理 分页存储管理能有效地提高内存的利用率,分段存储管理能很好地满足用户的需要,段页式存储管理则是分页和分段两种存储管理方式的结合,它同时具备了两者的优点。435.5.1 基本概念基本概念 段页式存储管理既方便使用又提高了内存利用率,是目前用得较多的一种存储管理方式 等分内存 作业或进程的地址空间 段内分页 逻辑地址结构 内存分配 段表、页表和段表地址寄存器 445.5.2 地址转换地址转
18、换 段页式系统中的地址转换机构 455.5.3 管理算法管理算法 在地址转换过程中,软、硬件应密切配合,这在分页和分段式存储管理中已体现出来,段页式存储管理也是如此。地址转换过程中硬、软件的相互作用如下图所示465.5.3 管理算法管理算法段页式存储管理的优点:提供了虚存的功能无紧缩问题,也没有页外碎片的存在便于处理变化的数据结构便于共享和控制存取访问权限。缺点:增加了软件的复杂性和管理开销,需要更多的硬件支持;各种表格要占用一定的存储空间;存在着系统抖动现象;存在着页内碎片的问题。475.6 虚拟内存的置换算法虚拟内存的置换算法 实现请式调页,必须解决的主要问题是选择合适的页面置换算法和块分
19、配算法。在置换页面时,通常选择这样一些牺牲者,即在对它们进行替换时,可达到最低缺页中断率。可利用访问串对替换算法的性能进行评价。访问串是由程序规定的内存地址访问表列。485.6.1 先进先出页面置换算法先进先出页面置换算法 FIFO方法是将最先进入队列的页号所对应的页面最先选择为牺牲者。这种方法易于理解,但性能不是在任何场合都是好的。使用FIFO方法可能会出现Belady异态,这是一种在增加帧的情况下反而使缺页中断率增加的异常情况。495.6.2 最佳页面置换算法最佳页面置换算法 较理想的页面替换方法是优化(OPT)或最小(MIN)缺页中断方法。这种方法总是替换最长将来时间不被使用的那个页面。
20、它需要访问将来知识。通常用来同其他方法进行比较。505.6.3 最近最少使用页面置换算法最近最少使用页面置换算法 最近最少使用(Least Recently Used,LRU)页面置换算法则是根据页面调入内存后的使用情况,选择最近最少使用的页面予以淘汰。该算法的主要出发点是,如果某页被访问了,则它可能马上又要被访问;反之,如果某页长时间未被访问,则它在最近一段时间内不会被访问。515.6.4 第第2 2次机会页面置换算法次机会页面置换算法 这种方法将页面按FIFO次序安排,且每个页有一个访问位。先选择“最老”的页,若其访问位被清除,则它就是牺牲者;若它的访问位已置值,则先清除它,然后选择下一页,重复前述过程。525.6.5 时钟页面置换算法时钟页面置换算法 把所有的页面保存在一个类似钟表面的环形链表中,用一个指针指向最老的页面,就如表针指向某一时刻一样。它和第2次机会算法的区别仅是实现的方法不同。535.6.6 其他页面置换算法其他页面置换算法 1.最近未使用置换算法545.6.6 其他页面置换算法其他页面置换算法2.页面缓冲算法 该算法规定将一个被淘汰的页放入两个链表中的一个,即如果页面未被修改,就将它直接放入空闲链表中,否则便放入已修改页面的链表中。这时页面在内存中并不做物理上的移动,而只是将页表中的表项移到上述两个链表之一中。55The endThanks!56