欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    第3章存储器管理.ppt

    • 资源ID:67214190       资源大小:131.50KB        全文页数:102页
    • 资源格式: PPT        下载积分:16金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要16金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    第3章存储器管理.ppt

    操作系统原理教程第3章 存储器管理本章教学目标l熟悉存储管理的基本功能l掌握各种存储管理方式下主存分配与回收、地址转换与存储保护、管理特点l熟悉在各种存储管理方式下提高主存利用率的方法 本章主要内容l3.1 存储器管理概述 l3.2 单用户连续存储管理方式 l3.3 固定分区存储管理方式 l3.4 可变分区存储管理方式 l3.5 页式存储管理方式 l3.6 段式存储管理方式 l3.7 段页式存储管理方式 l3.8 虚拟存储管理方式 3.1存储器管理概述l3.1.1 存储器管理的主要任务 l3.1.2 存储器管理的主要功能 l3.1.3 程序的装入与链接 l3.1.4 存储管理方式 3.1.1存储器管理的主要任务l存储管理的主要任务是尽可能方便用户和提高主存储器的使用效率,使主存储器在成本、速度和规模之间获得较好的权衡。3.1.2存储器管理的主要功能l1主存空间的分配和回收 l2地址转换 l3主存空间的共享与保护 l4主存空间的扩充 3.1.3程序的装入与链接l1源程序的执行过程 l2程序的链接 l3程序的装入 1源程序的执行过程l通常要经过编译、链接和装入几个步骤,其控制示意如图3-1所示。l(1)编译。由编译程序将用户源代码编译成若干个目标模块。l(2)链接。由链接程序将编译后形成的目标模块以及它们所需要的库函数,链接在一起,形成一个装入模块。l(3)装入。由装入程序将装入模块装入主存的过程。2程序的链接l链接程序的功能是将经过编译或汇编后所得到的一组目标模块以及它们所需要的库函数,装配成一个完整的装入模块。l实现链接的方法有三种静态链接:事先进行链接,以后不再拆开的链接方式 装入时动态链接:用户源程序经编译后所得到的目标模块,是在装入主存时,边装入边链接的。运行时动态链接:可将某些目标模块的链接,推迟到执行时才进行。3程序的装入l程序的装入就是把程序装入内存空间。l采用三种方式(1)绝对装入方式:是由装入程序根据装入模块中的地址,将程序和数据装入主存。(2)可重定位方式:是由装入程序根据主存当前的实际使用情况,将装入模块装入到主存适当的地方。(3)动态运行时装入方式:动态运行时的装入程序,在把装入模块装入主存后,并不立即把装入模块中的相对地址转换为绝对地址,而是把这种地址转换推迟到程序要真正执行时才进行。3.1.4存储管理方式l单用户连续存储管理方式 l固定分区存储管理方式 l可变分区存储管理方式 l页式存储管理方式 l段式存储管理方式 l段页式存储管理方式 l虚拟存储管理方式3.2单用户连续存储管理方式l3.2.1 基本原理 l3.2.2 主存空间的分配与回收 l3.2.3 地址转换与存储保护 l3.2.4 管理特点 3.2.1基本原理l这是最早出现的一种存储管理方式。l在主存中仅驻留一道程序,整个用户区为一用户独占。当用户作业空间大于用户区时,该作业不能装入。l这种分配方式仅能用于单用户、单任务的操作系统中,不能用于多用户系统和单用户多任务系统中。3.2.2主存空间的分配与回收l1主存空间的分配 采用这种存储管理方式时,主存分为两个分区(系统区 和用户区),如图3-4所示。其分配过程是:首先,从作业队列中取出队首作业;判断作业的大小是否大于用户区的大小,若大于则作业不能装入,否则,可以把作业装入用户区。它一次只能装入一个作业。其主存分配流程如图3-5所示。l2主存空间的回收作业一旦进入主存,就要等到它结束后才能释放主存,再装入第二个作业即可。3.2.3地址转换与存储保护l1地址转换l2存储保护1地址转换l它采用静态分配方式。l处理器设置两个寄存器:界限寄存器和重定位寄存器。界限寄存器用来存放主存用户区的长度,重定位寄存器用来存放用户区的起始地址。l地址转换过程是:CPU获得的逻辑地址首先与界限寄存器的值比较,若大于界限寄存器的值,产生“地址越界”中断信号,由相应的中断处理程序处理;若不大于界限寄存器的值,就与重定位寄存器中的基址相加,得到物理地址,对应于主存中的一个存储单元。l其转换过程如图3-6所示。2存储保护l处理器在执行指令时,要检查其逻辑地址是否小于界限寄存器的值,若小于,则与重定位寄存器中的基址相加,产生物理地址,到主存中去执行。否则,产生一个“地址越界”中断信号,由操作系统进行处理,以达到存储保护的目的。3.2.4管理特点l(1)管理简单。它把主存分为两个区,用户区一次只能装入一个完整的作业,且占用一个连续的存储空间。它需要很少的软硬件支持,且便于用户了解和使用。l(2)在主存中的作业不必考虑移动的问题,并且主存的回收不需要任何操作。l(3)资源利用率低。不管用户区有多大,它一次只能装入一个作业,这样造成了存储空间的浪费,使系统整体资源利用率不高。l(4)这种分配方式不支持虚拟存储器的实现。3.3固定分区存储管理方式l3.3.1 基本原理 l3.3.2 主存空间的分配与回收 l3.3.3 地址转换与存储保护 l3.3.4 管理特点l3.3.5 对固定分区存储管理方式的改进 l3.3.6 固定分区存储管理举例 3.3.1基本原理l把主存中可分配的用户区域预先划分成若干个固定大小的区域,每一个区域称为一个分区,每个分区中可以装入一个作业,一个作业也只能装入一个分区中,这样可以装入多个作业,使它们并发执行。当有一个空闲分区时,便可从外存的后备队列中,选择一个适当大小的作业装入该分区;当该作业运行完时,又可从后备队列中选择另一个作业装入该分区。l固定分区存储管理方式是最早使用的一种可运行多道程序的存储管理方式。l它仍然要求把作业全部装入主存,且装入一个连续的存储空间。3.3.2主存空间的分配与回收l1采用的数据结构 l2主存空间的分配 l3主存空间的回收 1采用的数据结构l为了记录各个分区的基本情况和使用情况,方便主存空间的分配与回收操作,设置了一张分区分配表。分区分配表的内容包括:分区序号、起始地址、大小、状态。状态栏的值为“0”表示分区空闲,可以装入作业;当装入作业后,其值改为作业名,表示这个分区被该作业占有。l如表3-1所示。2主存空间的分配l在作业分配之前,根据主存分区的划分,在分区分配表填入每个分区的始址、大小,在状态栏中一律填入“0”,表示该分区可用,当作业装入时,填入作业名。l当有作业申请主存空间时,主存空间的分配步骤为:从作业队列中取出队首作业,检查分区分配表,选择状态标志为“0”的分区,根据作业地址空间的大小与状态标志为“0”的分区的大小比较,当所有分区长度都不能容纳该作业时,则该作业暂时不能装入,显示主存不足的信息。当某一个分区长度能容纳该作业时,则把作业装入该分区,且把作业名填到该分区的状态栏里。然后,再分配下一个作业。l主存分配流程如图3-7所示。3主存空间的回收l当作业运行结束时,根据作业名到分区分配表中进行检查,从状态栏的记录可知该作业占用的分区,把该分区的状态标志置成“0”,表示该分区就空闲了,可以用来装入新的作业。3.3.3地址转换与存储保护l1地址转换 l2存储保护 1地址转换l采用静态重定位方式。l处理器设置两个寄存器:下限寄存器和上限寄存器。下限寄存器用来存放分区低地址,即起始地址;上限寄存器用来存放分区的高地址,即末址。l地址转换过程CPU获得的逻辑地址首先与下限寄存器的值相加,产生物理地址;然后与上限寄存器的值比较,若大于上限寄存器的值,产生“地址越界”中断信号,由相应的中断处理程序处理;若不大于界限寄存器的值,得到物理地址就是合法地址,它对应于主存中的一个存储单元。l地址转换过程如图3-10所示。2存储保护l系统设置了一对寄存器,称为“下限寄存器”和“上限寄存器”记录当前在CPU中运行作业在主存储器中的下限和上限地址。l当处理机执行该作业的指令时必须核对表达式“下限地址=绝对地址=上限地址”是否成立。若成立,就执行该指令,否则就产生“地址越界”中断事件,停止执行该指令。l运行的作业在让出处理器时,调度程序选择另一个可运行的作业,同时修改当前运行作业的分区号和下限、上限寄存器的内容,以保证处理器能控制作业在所在的分区内正常运行。3.3.4管理特点l(1)一个作业只能装入一个分区,不能装入两个或多个相邻的分区。一个分区只能装入一个作业,当分区大小不能满足作业的要求时,该作业暂时不能装入。l(2)通过对“分区分配表”的改写,来实现主存的分配与回收。作业在执行时,不会改变存储区域,所以采用静态地址重定位方式。此方法易于实现,系统开销小。l(3)当分区较大作业较小时,仍然浪费许多主存空间。并且分区总数固定,限制了并发执行的作业数目。3.3.5对固定分区存储管理方式的改进l一个分区只装入一个作业,分区的其它部分闲置不用,降低了主存的利用率。可采用下列算法提高主存的利用率:(1)根据经常出现的作业的大小和数量来划分分区,尽可能使各个分区充分利用。(2)划分分区时按分区的大小顺序排列,低地址部分是较小的分区,高地址部分是较大的分区。各分区按从小到大的顺序登记在分区表中。(3)按作业对主存的需求量排成多个作业队列,一个作业队列对应一个分区,互不借用。3.3.6固定分区存储管理举例l【例3-1】在某系统中采用固定分区分配管理方式,主存分区(单位字节)情况如图3-9(a)所示。现有大小为1KB、9KB、33KB、121KB的多个作业要求进入主存,试画出它们进入主存后的空间分配情况,并说明主存浪费有多大?3.4可变分区存储管理方式l3.4.1 基本原理 l3.4.2 主存空间的分配与回收 l3.4.3 地址转换与存储保护 l3.4.4 管理特点 l3.4.5 采用技术 l3.4.6 可变分区存储管理举例 3.4.1基本原理l可变分区存储管理方式是在作业要求装入主存时,根据作业的大小动态地划分分区,使分区的大小正好适应作业的要求。各分区的大小是不定的,主存中分区的数目也是不定的。l可变分区存储管理方式必须解决三个问题:一是分区分配中所用的数据结构。二是分区的分配算法。三是分区的分配和回收。3.4.2主存空间的分配与回收l1采用的数据结构 l2主存空间的分配 l3常用的主存分配算法 l4主存空间的回收 1采用的数据结构l为了实现分区分配,系统中必须配置相应的数据结构,用来记录主存的使用情况,包括空闲分区的情况和使用分区的情况,为作业分配主存空间提供依据。为此,设置了两个表,即已分分区表和空闲分区表,如表3-2和表3-3所示。已分分区表。记录主存中已分配作业分区的情况,包括分区序号、起始地址、大小和状态(作业名)。空闲分区表。记录主存中空闲分区的情况,包括空闲分区序号、起始地址和大小。为了便于处理,一般情况下空闲分区表中的空闲分区记录以地址递增的顺序排列。2主存空间的分配l先从小地址分配,再分配大地址。空闲分区表中记录的排列也是从小地址向大地址排列的。l首次分配时,只有一个空闲区。分配的区被收回后,还可以分给其它的作业。再分给其它作业时,该分区被分成两部分,一部分被作业占据,另一部分又成为一个较小的分区。当小到一定程度时,全部分给该作业。l主存的分配过程如下:首先初始化已分分区表(0个记录)和空闲分区表(1个记录),整个用户区为一个空闲区,在空闲分区表中填入用户区的始址和大小。其次,从作业队列中取出队首作业,在空闲分区表中找一个不小于作业的空闲区,装入作业,在已分分区表中增加一个记录,填上作业所占分区的序号、始址、大小、作业名,并修改空闲分区表相应记录的始址和大小;若找不到一个空闲区,则显示主存不足的信息,删除该作业或把作业放到队尾,等待大的空闲区。然后,再分配下一个作业,直到所有作业分配完毕。l主存空间的分配流程如图3-12 所示。3常用的主存分配算法l(1)最先适应分配算法(FF)l(2)最优适应分配算法(BF)l(3)最坏适应分配算法(WF)l三种分配算法的比较(1)最先适应分配算法(FF)l原理对空闲分区表记录的要求是按地址递增的顺序排列的,每次分配时,总是从第1条记录开始顺序查找空闲分区表,找到第一个能满足作业长度要求的空闲区,分割这个空闲区,一部分分配给作业,另一部分仍为空闲区。l特点一是分配算法简单;二是容易产生过多的小地址碎片;三是降低了主存空间利用率。l改进采用循环首次适应算法。(2)最优适应分配算法(BF)l原理是按作业要求从所有的空闲分区中挑选一个能满足作业要求的最小空闲区,这样可保证不去分割一个更大的区域,使装入大作业时比较容易得到满足。为实现这种算法,把空闲区按长度递增次序登记在空闲区表中,分配时,顺序查找。l特点一是解决了大作业的分配问题;二是容易产生不可利用的空闲区,降低了主存空间的利用率;三是收回主存时,要按长度递增顺序插入到空闲区表中。(3)最坏适应分配算法(WF)l原理每次分配主存时总是挑选一个最大的空闲区,分割一部分给作业使用,使剩下的部分不至于太小,仍可供使用。为实现这种算法,把空闲区按长度递减次序登记在空闲区表中,分配时,顺序查找。l特点一是不会产生过多的碎片;二是影响大作业的分配;三是收回主存时,要按长度递减的顺序插入到空闲区表中。三种分配算法的比较l从搜索速度和回收过程上看:最先适应分配算法(FF)具有最佳性能;l从空间利用上看:最先适应分配算法(FF)比最优适应分配算法(BF)好,最优适应分配算法(BF)比最坏适应分配算法(WF)要好;最优适应分配算法(BF)找到的空闲区是最佳的,但在某些情况下,不一定能提高主存的利用率。l最先适应分配算法(FF)的另一个优点是尽可能地利用了低地址空间,从而保证高地址有较大的空闲区来放置较大的作业。l最坏适应分配算法(WF)由于过多的分割大的空闲区,当遇到较大作业申请时,无法满足其申请的可能性较大,该算法对中、小作业比较有利。因此,在实际系统中,最先适应分配算法(FF)法用得最多。4主存空间的回收l当一个作业运行结束后,在已分分区表中找到该作业,根据该作业所占主存的始址和大小,去修改空闲分区表相应的记录。其修改情况分4种,如图3-13所示(斜线部分为已被作业占有的主存区域)。(1)回收的分区前后没有相邻的空闲分区。在空闲分区表中要增加一条记录,该记录的始址和大小,即为回收分区的始址和大小。如图3-13(a)所示。(2)回收分区的前面有相邻的空闲区。在空闲分区表中找到这个空闲区(查找的方法是比较空闲分区的始址空闲分区的大小与回收分区的始址是否相等),修改这个空闲区的大小,即加上回收分区的大小,始址不变。如图3-13(b)所示。(3)回收分区的后面有相邻的空闲分区。在空闲分区表中找到这个空闲区(查找的方法是回收分区的始址回收分区的大小与空闲分区的始址比较是否相等),修改这个空闲区的始址和大小。始址为回收分区的始址,大小为回收分区的大小与空闲区的大小之和。如图3-13(c)所示。(4)回收分区的前后都有相邻的空闲分区。在空闲分区表中找到这两个空闲区,修改前面相邻的空闲区的大小,其始址不变。大小改为相邻两个空闲区和回收分区的大小之和,然后从空闲分区表中,删除后一个相邻空闲分区的记录。如图3-13(d)所示。l最后,在已分分区表中删除该分区的记录。3.4.3地址转换与存储保护l1地址转换 l2存储保护 1地址转换l采用动态重定位方式装入作业。它需要设置硬件地址转换机构:两个专用寄存器,即基址寄存器和限长寄存器,以及一些加法、比较电路。地址转换步骤如下:当作业占用处理器时,进程调度把该作业所占分区的起始地址送入基址寄存器,把作业所占分区的最大地址送入限长寄存器。作业执行过程中,处理器每执行一条指令,都要由硬件的地址转换机构把逻辑地址转换成物理地址。当取出一条指令后,把该指令中的逻辑地址与基址寄存器内容相加得到物理地址,该物理地址必须满足:物理地址=限长寄存器的值 l基址寄存器和限长寄存器总是存放当前占用处理器的作业所占分区的始址和末址。一个作业让出处理器时,应先把这两个寄存器的内容保存到该作业所对应进程的PCB中,然后再把新作业所占分区的始址和末址存入这两个专用寄存器中。如图3-14所示。2存储保护l系统设置了一对寄存器,称为“基址寄存器”和“限长寄存器”记录当前在CPU中运行作业在主存中所占分区的始址和末址。l当处理机执行该作业的指令时必须核对表达式“始址=绝对地址位示图中空闲块数”,若大于则该作业暂时不能装入;否则,可以装入一部分,为其建立页表,初始化表中的数据。装入过程与页式存储管理方式的一样,只不过是要累计个数,到M个页时,停止装入,修改位示图中空闲块数(减去调入主存的该作业页数)。并在主存分配表中增加一条记录,记录该作业的作业名、页表始址、页表长度和所分得的物理块数。其余页等到程序运行时,访问到该页时再装入。l(2)主存空间的回收 当作业运行结束时,根据页表去修改位示图,把归还块的占用标志位改为“0”,然后修改空闲块数,增加上M。最后,删除该作业的页表和该作业在主存分配表中的记录。4地址转换与存储保护l(1)地址转换 地址的正常转换与页式存储管理相同(如图3-18所示)。l(2)存储保护 其存储保护的方法与页式存储管理的很相似,在此不在赘述。5分配物理块l在为作业分配物理块时,将涉及到三个问题:第一,确定为保证作业正常运行所需要的最少物理块数;第二,为每个作业分配的物理块,其数目是固定的还是可变的;第三,对各作业所分配的物理块数,是采取平均分配算法还是根据作业的大小按比例分配等。6作业在主存中块数的分配算法l(1)平均分配算法 l(2)按比例分配算法 l(3)优先权分配算法 7页面置换算法l(1)最佳置换算法 l(2)先进先出置换算法(FIFO)l(3)最近最久未使用算法(LRU)l(4)最近最不经常使用调度算法(LFU)l(5)最近未使用算法最近未使用算法NUR8管理特点l(1)要运行的作业可以不必全部装入主存,就能运行。事先要把作业分成大小相等的“页”,把主存分成与页大小相等的块,先装入一些必须的页,运行时再装入所需要的页。l(2)这样与全部装入主存的存储管理方式相比,可以节省主存空间,增加并发执行的作业个数,提高系统的利用率。l(3)由于运行时,没有把作业全部装入主存,其余作业页是在运行时,利用中断和页面置换算法装入的,这样,增加了程序运行的时间,加大了系统的硬件开销。3.8.3分页式虚拟存储管理例题l【例3-8】l【例3-9】l【例3-10】本章小结l存储器管理的主要任务是分配存储器,l主要目的是提高存储器的使用效率。它l的主要功能有:存储器的分配与回收、地址转换与保护、主存的扩充。l熟悉和掌握以下基本概念:熟悉和掌握以下基本概念:逻辑地址、物理地址、地址转换、静态重定位、动态重定位、主存“碎片”、对换技术l熟悉和掌握以下基本知识:熟悉和掌握以下基本知识:1连续存储管理方式 2非连续存储管理方式 3虚拟存储管理方式 习题l一、单项选择题 1-20题l二、填空题 1-15题l三、判断题 1-10题l四、名词解释题 1-10题l五、简答题 1-6题l六、应用题 1-12题

    注意事项

    本文(第3章存储器管理.ppt)为本站会员(s****8)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开