计算机操作系统第四章课件.ppt
《计算机操作系统第四章课件.ppt》由会员分享,可在线阅读,更多相关《计算机操作系统第四章课件.ppt(157页珍藏版)》请在三一办公上搜索。
1、第四章 存储器管理,存储器的层次结构 程序的装入和链接 连续分配方式 基本分页存储管理方式 基本分段存储管理方式 虚拟存储器 请求分页存储管理方式 页面置换算法 请求分段存储管理方式,目的: 内存有限,有效地对内存进行管理,4.1 存储器的层次结构,一 多级存储器结构,二 寄存器与主存1 寄存器寄存器是CPU的组成部分,可用来暂存指令、数据和地址。容量小,价格十分昂贵。在CPU的控制部件中,包含的寄存器有指令寄存器和程序计数器;在中央处理器的算术及逻辑部件中,包含的寄存器有累加器。寄存器是内存阶层中的最顶端,也是系统获得操作资料的最快速途径,完全能与CPU协调工作。寄存器的长度通常以“字”作为
2、单位。,2 主存储器,内存指的就是主板上的存储部件,用于保存进程运行时的程序和数据。CPU直接与之通信,从中读数据送入寄存器,或将寄存器的数据写入内存, 内存的访问速度远低于CPU的指令执行速度,为缓和这一矛盾,引入了高速缓存。,三 高速缓存和磁盘缓存,一 高速缓存 在CPU和主存之间增加的用于提高系统执行效率的存储器,即Cache。速度比内存快,容量介于寄存器与内存之间。 根据程序执行的局部性原理,将主存中经常被访问的信息存放在Cache中。CPU取数据时,先从Cache中寻找,若没有,再去内存寻找。 高速缓存可有多级,一级高速缓存紧靠内存,速度最快,容量最小;二级高速缓存容量稍大,速度稍低
3、。,二 磁盘缓存,由于磁盘的I/O速度远低于对内存的访问速度,因此将频繁使用的一部分磁盘数据和信息,暂时存放在磁盘缓存中,以提高访问速度。 磁盘缓存并不实际存在,依托于固定磁盘,提供对主存空间的扩充。 它的原理是:将一段时间内常用的磁盘数据放在内存的某个区域;或将CPU处理完后需要输出的数据暂存于内存的某个区域。,4.2 程序的装入和链接,从源程序到程序执行 地址空间的概念 重定位的概念 程序的装入 程序的链接,一 从源程序到程序执行,编译:编译程序由编译程序(Compiler)将用户源代码编译成若干个目标模块。链接:链接程序由链接程序(Linker)将编译后形成的一组目标模块,以及它们所需要
4、的库函数链接在一起,形成装入模块。装入:装入程序由装入程序(Loader)将装入模块复制到内存中。,库,二 地址空间,物理(绝对)地址程序执行每个内存单元的固定顺序地址(编号)。 由物理地址组成的空间集合称为物理空间。逻辑(相对)地址装入(汇编编译)被链接装配(或汇编、编译)后的目标模块所限定的地址的集合;相对于某个基准量(通常为:0)的编址。 由逻辑地址构成的空间集合称为逻辑空间。,三重定位,重定位概念:把程序装入内存时,修改程序中所有与地址有关的项。逻辑地址变换为物理地址。重定位的类型静态重定位:程序执行前,一次性地变换地址并装入内存。动态重定位:处理机每次访问内存时,由动态地址变换机构(
5、硬件)自动执行地址变换。,内存地址空间,四 程序的装入,就是把链接好的装入模块装入“内存”。装入方式绝对装入可重定位装入(静态重定位)动态运行时装入(动态重定位),绝对装入方式,要求:事先清楚程序将驻留在内存的什么位置 该内存地址可由程序员给出,也可由编译程序申请。 概念:装入程序直接按照装入模块中的地址,将程序和数据装入内存。逻辑地址与内存地址相同,无须进行地址变换。 局限:仅可应用于单道程序环境中,静态重定位,在装入程序将装入模块装入内存时,进行逻辑地址到物理地址的转换 数据地址和指令地址都要做相应修改 地址变换在程序装入内存时一次完成,一旦程序装入内存,不允许它在内存空间移动。,动态重定
6、位,装入程序将装入模块装入内存后,并不立即将相对地址转换为绝对地址,而是将地址转换推迟到程序执行时才进行。 为避免程序运行时,进行地址转换影响指令执行的速度,需要重定位寄存器的支持,五 程序的链接,链接:把一个程序相关的一组目标模块和系统调用模块(库函数)链接形成一个整体装入模块的过程。具体工作:对相对地址的修改;变换外部调用符号。链接方式:静态链接装入时动态链接:便于修改和更新;便于共享。运行时动态链接:最小化快速装入,节省内存。,静态链接方式,程序运行前,先将各目标模块及它们所需要的库函数,链接成一个完成的可装入模块,以后不再拆开。要做的两项工作: 1 修改相对地址 2 将外部调用符号修改
7、成相对地址,装入时动态链接,并不事先链接成一个可装入模块 源程序经过编译得到的目标模块,在装入内存时边装入边链接。 即在装入一个目标模块时,若发生外部调用事件,则由装入程序找出相应的外部目标模块,进行链接并装入内存。此时,也应修改目标模块中的相对地址。 优点:便于修改、更新和共享,将对某些模块的链接推迟到程序执行时进行。 即,在程序执行过程中,发现一个被调用模块尚未调入内存,立即由OS去找到该模块,并将其装入内存,链接到调用者模块上。 优点:程序执行时,未用到的模块,都不进入内存,不进行链接。加快了程序的装入过程,节省了内存空间。,运行时动态链接,4.3 连续分配方式,单一连续分配固定分区分配
8、动态分区分配可重定位分区分配对换,连续分配方式: 为用户程序分配一个连续的内存空间。曾在20世纪60-70年代被广泛应用,至今仍在内存分配方式中占有一席之地。,一 单一连续分配,单一连续分配的基本思想把内存分为系统区和用户区,系统区供OS使用,通常放在低址部分;系统区以外的全部内存空间是用户区。单一连续分配的特点只能用于单用户、单任务的OS中。软件简单,硬件要求低(无需存储保护)实例CP/M,MS-DOS,RT-11,二 固定分区分配,基本思想 将内存的用户空间划分成若干个固定大小的区域,在每个分区中只允许装入一道作业。特点: 有几个分区,则允许几道作业并发执行 当有空闲分区时,则从外存后备队
9、列选择一个适当大小的作业进入该分区。,划分分区的方法分区大小相等分区大小不相等,缺乏灵活性:作业小,造成内存空间的浪费;作业大,一个分区装不下,作业无法运行。因此,常用于工控系统中。,将用户区划分成具有多个较小的分区、适量的中等分区及少量的大分区,以满足不同作业的需求,内存分配管理分区使用表(MBT)分区按大小排队由内存分配程序检索分区使用表,找到符合要求的分区。,存储保护与重定位(地址转换)每个分区(一道程序)对应一对界地址寄存器:上/下限寄存器。采用静态重定位方式,即由链接/装入程序完成。优缺点优点:简单,要求的硬件支持少(一对R);缺点:存在大的碎片(内碎片),主存利用率低。,碎片很多小
10、的内存空间内碎片碎片处于分区内部外碎片碎片处于分区与分区之间,三 动态分区分配,思想位置和大小都不固定,根据进程的实际需要,动态分配内存空间,又称可变分区分配。,例子:一计算机系统有2560KB内存,采用可变分区模式管理,OS占低地址的400KB空间,用户内存为2160KB。 如图所示:,注意,1.可变分区模式下,刚开始,OS就绪,但任何用户程序未进入内存前整个用户内存区是一大空间。已占用区和空闲分区并不是绝对的。2.必须用某种数据结构来记录分区的情况。3.程序进入内存时的例行工作就是分配空闲区和装入程序,并修改相应的数据结构。4.一旦一个内存分区被分配给一个进程,该进程被装入时需重定位。,数
11、据结构的两种形式空闲分区表空闲分区链,空闲分区表用于记录每个空闲分区的情况,每个空闲分区占一个表目,表目中包括分区序号、分区始址、分区大小等项目,利用双向链表形式,记录空闲分区的使用情况。 每个空闲分区除记录该分区的基本情况外,还要在头部和尾部分别增加前向指针和后向指针,以实现对分区的双向链接,便于检索。,存储分配算法 首次适应算法 循环首次适应算法 最佳适应算法 最快适应算法 快速适应算法,首次适应算法,数据结构 -空闲分区链,按照地址递增的次序链接 算法 -从链首开始顺序查找,把找到的第一个能满足申请者要求的空闲区分配给申请者。若空闲区比作业长度大,则分割该空闲区:一部分分配给作业,剩余部
12、分空闲。 若找不到,则内存分配失败,返回。,特点 -优先利用内存中低址部分的空闲分区 优点 -保留了高址部分的大空闲区,留给以后到达的大作业。 缺点 -低址部分不断被划分,留下很多难以利用的小碎片 -每次查找都是从低址开始,增加了查找的开销,循环首次适应算法,改进算法 -分配内存空间时,不再是从链首开始查找,而是从上次找到的空闲分区的下一个空闲分区开始查找,直到找到一个能满足要求的空闲分区,然后从中划出与请求大小相等的内存空间分配给作业。 -采用循环查找方式,如果找到链尾仍未找到合适的分区,则返回链首继续查找。,改进数据结构 -增加一起始查询指针,指示下一次起始查询的空闲分区。 优点 -内存的
13、空闲分区分布更均匀,减少了查找空闲分区的时间开销缺点 -缺乏大的空闲分区,最佳适应算法,数据结构 -空闲分区链,空闲分区按容量由小到大排列算法 -为作业分配内存时,把能满足要求的最小的空闲分区分配给作业 缺点 -每次分配后剩余部分都是最小的,因此会留下许多难以利用的小碎片,最坏适应算法,数据结构 -空闲分区链,空闲分区按容量由大到小排列算法 -为作业分配内存时,扫描空闲分区链表,挑选最大的空闲分区分割给作业。,缺点 -缺乏大的空闲分区优点 -每次分配后剩下的空闲区不会太小,产生碎片的几率小 -只要看第一个分区是否满足需要即可,查找效率很高,快速适应算法,数据结构1 多个空闲分区链表 空闲分区按
14、容量大小分类,每类对应一个链表。2 管理索引表 每个表项对应一个分区类型,并记录该链表的表头指针,算法 根据进程长度,寻找到能容纳它们的最小空闲区链表,取下第一块进行分配即可。优点: 1)查找效率高 2)分配空闲分区时,不对分区进行分割,能保留大的分区,不会产生外部碎片缺点: 1)归还分区时算法复杂,系统开销大 2)分配给进程的分区与进程要求的大小不完全一致,产生内碎片。,内存分配1检查分区大小与所需空间大小是否“匹配”:M.sizeU.sizeM.Size - U.Size Size (不再分割的小分区的尺寸)2剩余部分挂接到空闲分区链表上。,回收内存回收区与插入点的前一个空闲分区相邻接;回
15、收区与插入点的后一个空闲分区相邻接;回收区与插入点的前后两个空闲分区相邻接;回收区不与任何一个空闲分区相邻接;,合并,修改前一分区的大小,合并,修改首地址和大小,合并,首地址为前一分区首地址,修改大小,去掉后一分区表项,增加新的表项,填写首地址和大小,插入链表中的合适位置,Job7,Job6,四可重定位分区分配,动态重定位的引入随着系统接收的作业的增加,内存中连续的大块分区不复存在,产生了大量的“碎片”。新的作业无法装入到每个“碎片”小分区上运行,但所有碎片的空间总和可能大于需求。通过“拼接”/“紧凑”/“紧缩”/“”澄清“来实现”程序的浮动“/” 动态重定位“。,紧凑 通过移动内存中作业的位
16、置,以把原来多个分散的小分区拼接成一个大分区的方法,称为“拼接”或“紧凑”。,动态重定位的实现必须由硬件地址变换机构支持实现重定位R重定位寄存器:存放程序存放的起始地址。当系统对内存进行了“紧凑”而使若干程序在内存发生移动后,不需要对程序做任何修改,只要用该程序在内存的新起始地址,去置换原来的起始地址即可。,可重定位分区分配示意图,优缺点分析优点:消除了“碎片”,提高了内存利用率,同时提高了系统效率。缺点:需要动态重定位“硬件”机构支持,增加了系统成本,并轻度降低了程序执行速度,“紧凑”处理增加了系统开销。,五对换,引入原因:内存中的某些进程由于等待事件发生而阻塞,但占用了大量的内存空间;外存
17、上有许多作业等待调度,因无内存而不能运行。为解决这一矛盾,避免系统资源的浪费,引入了“对换”机制。,对换的概念把内存中暂时不能运行的进程或者暂时不用的程序和数据调出到外存上,以便腾出足够的内存空间,把已具备运行条件的进程或进程所需要的程序和数据调入内存。对换是提高内存使用率的有效手段。实现方法通过外存缓冲,以进程为单位“滚进滚出” 。一个作业的所有进程不必同时位于内存中。,对换空间的管理把内存分成文件区和对换区。前者用来存放文件,后者用来存放兑换出来的进程。对换区采用连续分配方式,空闲盘块的组织、分配和回收与动态分区方式中内存空间的分配与回收方式基本相同。,进程的换出与换入,对换的时机:创建新
18、进程而内存不足时。进程的换出选择处于阻塞状态且优先级最低的进程作为换出进程,启动磁盘,将该进程的程序和数据送到磁盘的对换区上,回收该进程占用的内存空间。进程的换入系统定时查看所有进程的状态,从中找出“就绪”状态但已换出的进程,将其中换出时间最久的进程作为换入进程,将其换入。,4.4 基本分页存储管理方式,有碎片,系统开销大,页面与页表地址变换机构两级和多级页表基本分页的特点,一页面与页表,页面页面:逻辑地址空间分成大小相同的页块(页框):内存空间分成与页面大小相同的块页面和物理块按顺序编号页面大小:2n Bytes 一般在:512B 8/32K,页面过小,页数过多,页表过长,占用大量内存;页面
19、过大,内碎片增大,浪费内存,地址结构逻辑地址物理地址页表数据结构:页号、块号、存取控制项页表的作用:实现从页号到物理块号的地址映射。,位移量d,物理块号P,位移量W,页号P,11,12,31,P=INT(A/L)w=A mod L,二 地址变换机构,基本的地址变换机构页表存放在内存系统区的一个连续空间中;PCB和页表寄存器PTR中存有页表的首地址和页表长度;查询页表:页表首地址+页号x表项长度;地址映射从逻辑地址到物理地址的变换过程。,具有快表的地址变换机构引入:CPU存取数据需要两次访问内存,降低 了CPU的处理速度联想寄存器 Cache;空间大小: 几K到几百K ,部分表项(16512个)
20、;原则:先查快表,再查页表;地址映射过程。,当进程访问一页时,系统将页号与快表中的所有项进行并行比较。若访问的页在快表中,即可立即进行地址转换。 当被访问的页不在快表中时,就要将由慢表找到的内存块号与页号填入快表中,若快表已满,则置换其中最近未被访问的项。,另外,在设置快表的情况下,硬件地址转换机构在进行地址变换时,同时开始两个变换过程。一个是利用主存页表进行的正常变换过程,另一个是利用快表进行的快速变换过程。一旦快表中有与查找的页号相符合时,则立即停止正常的访主存页表过程。并将快表中的块号与CPU给出的页内位移相拼接,得到访问主存的绝对地址,从而结束了快表的查找工作。,三 两级和多级页表,两
21、级页表解决大页表占用大的连续存储空间的问题;关于“页表”的分页存放“页表”外层页表;逻辑地址:外层页号+外层页内地址+页内地址多级页表,四 基本分页的特点,优点:存在页内碎片,但碎片相对较小,内存利用率较高;实现了离散分配,消除了程序浮动;缺点:需要专门的硬件支持,尤其“快表”;内存访问的效率下降。不足:不能实现真正的共享,不支持动态链接。,4.4 基本分段存储管理方式,基本分段管理思想的引入基本原理地址变换分段与分页的主要区别段页式存储管理方式,1 基本分段管理思想的引入,为用户提供一个方便灵活的程序设计环境而提出来的。页式管理中,一个页面中可能装有2个不同的子程序段的指令代码,不能通过页面
22、共享来达到共享一个逻辑上完整的子程序或数据块,程序通过分段(segmentation)划分为多个模块,如代码段、数据段。可以分别编写和编译可以针对不同类型的段采取不同的保护可以按段为单位来进行共享,包括通过动态链接进行代码共享,2 分段系统的基本原理,将进程的逻辑地址空间按内容或函数关系划分为若干个段(segment) ,每个段定义一组逻辑上完整的程序或数据,如一个进程可以被划分为主程序段、子程序段、数据段、堆栈段等。程序加载时,以段为单位分配其所需的内存(内存分区),每个段分得一个连续的分区。所有段都被装入到存储器的可用区域中,并建立一个段表 每个段是一个首地址为0的,连续的一维线性空间,段
23、长可以动态增长。段的大小不需要相等。,基本原理,段表段号、段基地址、段的长度、段状态等段表寄存器(段表始址和段表长度)利用段表实现地址映射,地址变换及变换机构,基本分段管理的地址变换与基本分页管理的变换机构和过程类似。段表寄存器存放段表的起始地址和段表长度;越界访问控制逻辑地址的段号与段表长度比较;段内地址与段表中保存的段长比较;,问题:每次访问数据,都要两次访问内存,降低了计算机的速率。解决的办法:增加联想寄存器。,分段与分页的主要区别,页是信息的物理单位,段是信息的逻辑单位;页的大小固定,段的大小动态变化;分页系统中的逻辑地址空间是一维的,分段系统中的是二维的。分页系统中不易实现“共享”和
24、“动态链接” ,分段则很容易。,5 段页式存储管理方式,分页:提高内存利用率分段:更好的满足用户需要 分页+分段?,段页式存储管理方式,基本思想结合分页和分段技术;发挥出分页和分段管理方式各自的优点。原理对内存进行分页(物理块/页架);对用户作业先分段,各段再分页。地址结构与地址变换段号、段内页号、页内地址三部分段表和页表,利用段表和页表实现地址映射,段页式系统中的地址变换机构,段页式存储管理的优缺点同时具备分段和分页管理的优点:分散存储,内存利用率较高;便于代码或数据共享,支持动态链接等。访问效率下降:一次访问转换成了三次访问。,4.5虚拟存储器,虚拟存储器的引入虚拟存储器的实现方法虚拟存储
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 操作系统 第四 课件
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-1596237.html