操作系统原理与实践教程第二版第5章:存储管理.ppt
《操作系统原理与实践教程第二版第5章:存储管理.ppt》由会员分享,可在线阅读,更多相关《操作系统原理与实践教程第二版第5章:存储管理.ppt(99页珍藏版)》请在三一办公上搜索。
1、第5章 存 储 管 理,5.1 存储管理的概念5.2 连续内存分配5.3 内存不足时的管理5.4 分页存储管理5.5 分段存储管理5.6 段页式存储管理5.7 虚拟存储器5.8 请求分页存储管理技术,5.1 存储管理的概念,为了解决CPU和存储器之间速度上的不匹配,在现代计算机系统中,存储系统通常采用层次结构,存储层次可粗略分为三级:最高层为CPU寄存器,中间为主存,最底层是辅存。根据具体功能还可以细分为寄存器、高速缓存、主存储器、磁盘缓存、辅存储设备(固定磁盘、可移动存储介质)5层。,5.1 存储管理的概念,操作系统的存储管理负责对存储器空间的分配、回收以及提供存储层次间数据移动的管理机制。
2、例如主存与磁盘缓存、高速缓存与主存间的数据移动等。,5.1.1 多级存储结构,1.寄存器 寄存器是中央处理器的组成部份。寄存器访问速度最快,完全能与CPU协调工作,价格昂贵,容量不大。寄存器可用来暂存指令、数据和地址。寄存器的长度一般以字(word)为单位。寄存器可以加速对存储器的访问速度,用途包括:(1)暂存执行算术及逻辑运算的数据;(2)用于寻址,存于寄存器内的地址可用来指向内存的某个位置;(3)用来读写数据到计算机的外围设备。,5.1.1 多级存储结构,2.主存储器 主存储器(简称内存或主存)是用于保存当前进程运行时的程序和数据。CPU能直接随机存取内存中的数据和程序,CPU的控制部件从
3、内存中读取数据并将它们装入到寄存器中,或者从寄存器存入到内存。CPU与外围设备交换信息一般也借助于主存储地址空间。内存以字节为基本存储单位,每个存储单元分配一个唯一的地址,称为内存地址。主存储器的访问速度远低于CPU执行指令的速度,为缓和这一矛盾,在计算机系统中引入了寄存器和高速缓存。,5.1.1 多级存储结构,3.高速缓存 高速缓存介于中央处理器和主存储器之间的高速小容量存储器,其容量大于寄存器而小于主存储器,访问速度要快于主存储器而低于寄存器。工作原理为:根据程序局部性原理,正在使用的主存储器某一单元邻近的那些单元将被访问的可能性很大。由于高速缓存的速度越高价格也越贵,因此目前的计算机系统
4、中多设置两级或多级高速缓存。两级缓存比一级缓存速度慢,但容量更大,主要用做一级缓存和内存之间数据临时交换的地方。缓存中存放的都是CPU频繁访问的数据,所以缓存越大处理器效率就越高,同时由于缓存的物理结构比内存复杂很多,所以其成本也很高。,5.1.1 多级存储结构,4.磁盘缓存磁盘缓存是操作系统为磁盘输入输出而在普通物理内存中分配的一块内存区域。由于目前磁盘的I/O速度远低于主存的访问速度,因此根据程序局部性原理,将频繁访问的一部分磁盘数据和信息,暂时存放在磁盘缓存中,可减少访问磁盘的次数,提高访问速度。磁盘缓存分为读缓存和写缓存。,5.1.2 程序的运行过程,在多道程序环境下,要使程序运行,必
5、须先为之创建进程。而创建进程的第一件事,便是将程序和数据装入内存。如何将一个用户源程序变为一个可在内存中执行的程序,简单的说,要经过编辑、编译、链接、装入和运行等几个阶段。,5.1.2 程序的运行过程,1.编辑阶段在编辑阶段,用户使用某种编辑软件把程序代码输入到计算机中,并以文件的形式保存到指定的磁盘上,形成用户的源程序文件,即源文件。2.编译阶段计算机只能识别二进制语言,所以源程序文件不能直接在计算机上运行,必须经过编译软件的编译,形成相应的二进制目标代码后才能被计算机识别。通常,用户程序的执行需要经过编译阶段,由初始的文本文件(file1.c)变成CPU可以识别的一系列二进制代码文件(fi
6、le1.o)。,5.1.2 程序的运行过程,3.链接阶段 将编译或汇编后得到的一组目标模块以及它们所需的库函数装配成一个完整的装入模块的过程就是程序的链接阶段。根据链接时间的不同,链接可分为三种:(1)静态链接。在程序运行之前,先将各目标模块及它们所需的库函数,链接成一个完整的装配模块,以后不再拆开。(2)装入时动态链接。用户源程序编译后得到的一组目标模块,在装入内存时,采用边装入边链接的链接方式,即在装入一个目标模块时,若发生一个外部模块调用事件,将引起装入程序去找出相应的外部目标模块,并将它装入内存。(3)运行时动态链接。对某些目标模块的链接,是在程序执行中需要该模块时,才对它进行链接。运
7、行时动态链接是装入时动态链接方式的一种改进,即在执行过程中,当发现一个被调用模块尚未装入内存时,立即由系统去找到该模块并将之装入内存,把它链接到调用模块上。,5.1.2 程序的运行过程,4.装入阶段 CPU在运行程序时,首先要把用户程序装入内存。为了保证程序的正确执行,程序在装入内存时要进行重新定位,即将程序和数据捆绑到内存地址,以便CPU能够正确寻址。通常,程序装入内存的方式有以下3种:(1)绝对装入方式。在程序编译时如果就知道进程在内存中的驻留地址,那么就可以生成绝对地址。装入模块可以把用户程序装入到指定的位置,这时程序中用到的所有地址都是内存中的绝对地址。(2)可重定位装入方式。在多道程
8、序环境下,程序编译链接后的目标模块起始地址通常是从0开始的,程序中的其它地址也都是相对于起始地址计算的。此时采用可重定位装入方式,根据内存的当前情况,将目标模块装入到内存的适当位置。(3)动态运行时装入方式。动态运行时的装入程序把目标模块装入内存后,并不立即把目标模块中的相对地址转换为绝对地址,而是把这种地址转换推迟到程序真正要执行时才进行。因此,装入内存后的所有地址都仍是相对地址。为使地址转换不影响指令的执行速度,这种方式需要一个重定位寄存器的支持。,5.1.2 程序的运行过程,5.运行阶段在运行阶段,进程调度程序按照某种策略选中用户程序,给其分配CPU使之运行,完成用户提交的任务。运行完毕
9、后,系统释放其占有的内存空间。,5.1.3 存储管理的任务和功能,存储管理的主要任务是:(1)支持多道程序的并发执行,使多道程序能共享存储资源,在互不干扰的环境中并发执行。(2)方便用户,使用户减少甚至摆脱对存储器的管理,使用户从存储器的分配、保护和共享等繁琐事物中解脱出来。(3)提高存储器的利用率和系统吞吐量。(4)从逻辑上扩充内存空间,支持大程序能在小的内存空间运行或允许更多的进程并发执行。,5.1.3 存储管理的任务和功能,现代操作系统的存储管理应具有以下功能:1.存储空间的分配和回收为每道程序分配内存空间,使它们“各得其所”;尽量提高存储器的利用率,以减少不可用的存储空间(“碎片”);
10、允许正在运行的程序申请附加内存空间,以适应程序或数据动态增长的需要。为了合理有效地利用内存,在设计内存分配和回收方法时,必须考虑和确定以下几种策略和数据结构:(1)分配结构。(2)放置策略。(3)交换策略。(4)调入策略。(5)回收策略。,5.1.3 存储管理的任务和功能,2.地址转换 在将用户程序部分或全部地装入内存空间时,要实现逻辑地址到物理地址的映射。这种把逻辑地址转换为物理地址的过程称作重定位或地址映射,实现地址重定位或地址映射的方法有两种:静态地址重定位和动态地址重定位。(1)静态地址重定位静态地址重定位是指在用户程序执行之前完成地址映射工作,即把程序的逻辑地址都转换为实际的内存物理
11、地址。静态地址重定位的地址变换只是在装入时一次完成,而在程序运行期间不再变化。静态地址重定位的优点是不需要硬件支持,实现存储管理的软件算法简单。静态重定位的缺点如下:1)要求给每个作业分配一个连续的存储空间,并且在作业执行期间不能再移动,从而也就不能实现重新分配内存。2)静态地址重定位必须占用连续的内存空间,这就难以做到程序和数据的共享。3)用户必须事先确定所需的存储量,若所需的存储量超过可用存储空间时,用户必须考虑覆盖结构。,5.1.3 存储管理的任务和功能,(2)动态地址重定位动态地址重定位是指在程序执行过程中,CPU在访问内存之前,将要访问的程序或数据地址转换为内存地址。地址重定位机构需
12、要一个(或多个)基地址寄存器BR和一个(或多个)程序逻辑地址寄存器VR。指令或数据的内存地址MA与逻辑地址的关系为:MA=(BR)+(VR),5.1.3 存储管理的任务和功能,(2)动态地址重定位动态地址重定位具体过程如下:1)初始化基地址寄存器BR,逻辑地址寄存器VR。2)将程序段装入内存,且将其占用的内存区首地址送到BR中。例如,在图5-4中,(BR)=4000。3)在程序执行过程中,将所要访问的逻辑地址送入VR中,例如,在图5-4中执行LOAD 1,400语句时,将所要访问的逻辑地址400放入VR中。4)地址变换机构把VR和BR的内容相加,得到实际访问的物理地址。,5.1.3 存储管理的
13、任务和功能,(2)动态地址重定位动态地址重定位的主要优点有:1)可以对内存进行非连续分配。2)用户作业在执行过程中,可以动态申请存储空间和在主存中移动。动态地址重定位提供了实现虚拟存储器的基础。3)有利于程序段的共享。动态地址重定位的主要缺点有:1)需要附加的硬件支持。在进行逻辑地址与物理地址映射时,需要依靠硬件地址变换机构才能完成。2)实现存储管理的软件算法比较复杂。,5.1.3 存储管理的任务和功能,3.主存空间的共享主存储器空间的共享是为了提高主存空间的利用率,有两方面的含义:(1)共享主存储器资源。采用多道程序设计技术使若干个程序同时进入主存储器,各自占用一定数量的存储空间,共同使用一
14、个主存储器。(2)共享主存储器的某些区域。若干个作业有共同的程序段或数据时,可将这些共同的程序段或数据存放在某个存储区域,各作业执行时都可访问它们。4.主存空间的保护主存储器中不仅有系统程序,而且还有若干道用户程序。为了避免主存中的多道程序相互干扰,必须对主存中的程序和数据进行保护。通常由硬件提供保护功能,软件配合实现。一般来说,一个程序执行时可能有下列三种情况:(l)对属于自己主存区域中的信息既可读又可写;(2)对公共区域中允许共享的信息或获得可使用的其他用户的信息,可读而不准修改;(3)对未获得授权使用的信息,既不可读又不可写。,5.1.3 存储管理的任务和功能,5.主存储空间的扩充主存储
15、空间扩充的任务是从逻辑上来扩充内存容量,在计算机硬件的支撑下,通过软硬件协作,可把磁盘等辅助存储器作为主存储器的扩充部分来使用,使用户认为系统拥有的内存空间远比其实际空间大。其原理是根据程序执行时表现的局部性特征,即程序在执行过程中的一个较短时间内,所执行的指令地址或操作数地址分别局限于一定的存储区域中。这样,存储管理系统就把进程中那些不经常被访问的程序段和数据放入外存中,待需要访问时再将它们调入内存。系统必须具有下述功能:(1)调入功能。在程序执行之前,没有必要全部装入内存,允许仅装入一部分程序和数据即可启动运行,运行时一旦发现运行所需程序或数据不在内存时,通过请求调入功能,将所需部分调入内
16、存。(2)置换功能。当内存中没有足够空间装入所需调入的部分时,系统能通过置换功能将内存中一部分暂时不用的内容调至外存。,5.1.3 存储管理的任务和功能,6.对换对换的主要任务是实现在内存和外存之间的全部或部分进程的对换,即将内存中处于阻塞状态的进程调换到外存上,而将外存上处于就绪状态的进程换入内存。对换的目的主要是为了提高内存利用率,提高系统的吞吐量。,5.1.4 存储管理方式,其主要目的有两个:一是提高存储器的利用率,这样由固定式分区存储分配方式演变为分页式存储管理方式。二是提高系统吞吐量,更好地满足用户需要,由此,产生了分段式存储管理方式和虚拟存储器。,5.1.4 存储管理方式,1.连续
17、分配方式。连续分配是指为一个系统或用户程序分配一个连续的内存空间。(1)单一连续分配方式。该方式把内存分为系统区和用户区两部分,系统区仅供操作系统使用,用户区中仅驻留一道程序,整个用户区为一用户独占。单一连续分配仅适用于单用户、单任务操作系统,不适用于多道程序环境。(2)分区式分配方式。它把内存划分为若干个大小不等的区域,除操作系统占用一个区域之外,其余区域由多道环境下的各并发进程共享。分区式分配要求将一个用户程序分配到一个连续的内存空间中,因此可能产生多个不可利用的零头(也称“碎片”)。按照分区的时机,分区管理可以分为固定分区、动态分区和可重定位分区。固定分区式。这种方法把内存区域划分为若干
18、个固定大小的区域,以连续存储各个进程的程序和数据。动态分区式。又称为可变分区,是在作业的处理过程中,根据程序的大小,动态地对内存进行划分,因此各分区的大小是不定的,分区数目也是可变的。动态分区方式较之固定分区方式,改变了即使是小作业也要占据大分区的内存浪费现象,显著地提高了存储器的利用率。可重定位分区。可重定位分区分配与动态分区分配基本相同,差别仅在于前者增加了拼接功能。在可重定位分区分配中,若系统中存在满足作业空间要求的空闲分区,则按照与动态分区分配相同的方式分配内存;若系统中找不到满足作业要求的空闲分区,且系统中空闲分区容量总和大于作业要求,则进行拼接。,5.1.4 存储管理方式,2.离散
19、分配方式连续分配方式相对简单,但带来严重的碎片问题,导致内存利用率低。为解决该问题,操作系统引入离散分配方式。它将用户程序离散地分配到内存的多个不相邻接的区域中。离散分配方式有以下三种:(1)分页存储管理。在该方式中,用户程序的地址空间被划分成若干个固定大小的区域,称为“页”,相应地,内存空间也以“页”大小为单位被划分为若干个物理块,这样,可将用户程序的任一页放入内存的任一块中,实现离散分配。分页存储管理方式下,内存中的碎片大小不会超过一页。(2)分段存储管理方式。为了满足用户的需要,更好地实现共享和保护,现代操作系统引入分段存储技术。它把用户程序的地址空间按内容或过程关系分成若干个大小不等的
20、段。在进行存储分配时,以段为单位,这些段在内存中可以不相邻接,故也实现了离散分配。(3)段页式存储管理。段页式存储管理集成了分页和分段两种存储管理方式的优点,既提高了存储器的利用率,又能满足用户要求,更好地实现共享和保护,是目前用得较多的一种存储管理方式。,5.1.4 存储管理方式,3.虚拟存储系统为了满足用户对内存的需求,进一步提高内存利用率,现代操作系统引入虚拟存储管理方式。它能使一个大的用户程序在较小的内存空间内运行,实现在逻辑上扩充物理内存的容量。虚拟存储系统有以下三种:(1)请求分页系统。它是在分页系统的基础上,增加请求调页功能、页面置换功能形成的页式虚拟存储系统。它允许只装入若干页
21、的用户程序和数据,便可启动运行,以后再通过调页功能及页面置换功能,陆续地把即将要运行的页面调入内存,同时把暂不运行的页面换出到外存上,置换时以页面为单位。(2)请求分段系统。它是在分段系统的基础上,增加请求调段功能、分段置换功能形成的段式虚拟存储系统。它允许只装入若干段的用户程序和数据,便可启动运行,以后再通过调段功能和置换功能将暂不运行的段调出,同时调入即将运行的段,置换时以段为单位。(3)请求段页式系统。它是在段页式系统的基础上,增加请求调页和页面置换功能形成的段页式虚拟存储系统。它是目前最好的,也是最为流行的一种存储管理方式。,5.2 连续内存分配,连续分配方式是指为一个系统程序或用户程
22、序分配一个连续的内存空间,这种分配方式曾被广泛应用于早期(20世纪6070年代)的操作系统中。它有两种方式:单一连续分配和分区式分配方式。,5.2.1 单一连续分配,单一连续分配是一种简单的存储分配方案,主要用于单用户单任务操作系统。它把内存分为两个区域:系统区和用户区。系统区是操作系统专用区,不允许用户程序直接访问,一般在内存低地址部分,剩余的内存区域为用户区。应用程序装入到用户区,可使用用户区全部空间。优点是方法简单,只需要很少的软件和硬件支持,易于实现。缺点是它仅适用于单道程序,内存中只能装入一道作业,对要求内存空间少的程序,造成内存浪费。而且它采用静态分配,即作业一旦进入内存,就要等到
23、它执行结束后才能释放内存,程序全部装入后,很少使用的程序部分也占用内存。因而,不能使处理器和内存得到充分利用。,5.2.2 固定分区分配,固定分区分配把内存分为一些大小相等或不等的区域,一旦划分结束,则在整个执行过程中每个分区的长度和内存的总分区个数将保持不变。1.划分分区的方法(1)分区大小相等。所有的内存分区大小相等。这只适合于多个相同程序的并发执行,适用于一些控制多个同类对象的环境。但是对于程序规模差异较大的多道环境不太适合,比如大于分区大小的进程无法装入,而且小进程也会占用一个分区,造成内存碎片(即无法被利用的空闲存储空间)太大。(2)分区大小不等。为了克服分区大小相等而缺乏灵活性的缺
24、点,可把内存区划分成含有多个小分区,适量的中等分区,少量的大分区。根据程序的大小,分配当前空闲的、适当大小的分区,这样可以有效地改善前一种方法的缺陷。,5.2.2 固定分区分配,2.内存分配与回收为了便于内存的管理和控制,通常将内存分区根据其大小进行排队,并为之建立一张分区说明表,表中包含各分区的区号、大小、起始地址及状态(是否为空闲)等信息。内存的分配释放、存储保护以及地址变换等都通过分区说明表进行。,5.2.2 固定分区分配,2.内存分配与回收固定分区分配算法流程。当用户程序要装入内存时,由内存分配程序检索分区说明表,从表中找出一个能满足要求的空闲分区分配给该程序,然后修改分区说明表中相应
25、表项的状态信息;若找不到满足其大小要求的空闲分区,则拒绝为该程序分配内存。固定分区的回收比较简单,当程序执行完毕不再需要内存资源时,释放程序占用的内存分区空间,管理程序只需将对应分区的状态信息设置为未分配即可。由于作业的大小并不一定与某个分区大小相等,因此,在绝大多数已分配的分区中,都有一部分存储空间被浪费掉,由此可见,采用固定分区分配存储管理方法,内存不能得到充分利用。,5.2.3 动态分区分配,动态分区分配又称为可变分区分配,是根据作业运行的实际需要,动态地为之分配内存空间。动态分区法并不预先设置分区的数目和大小,而是在作业装入内存时,根据作业的大小动态建立分区,使分区大小正好满足作业的需
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 原理 实践 教程 第二 存储 管理
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-6575544.html