好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

基本分段存储管理.ppt

55页
  • 卖家[上传人]:ldj****22
  • 文档编号:48732540
  • 上传时间:2018-07-20
  • 文档格式:PPT
  • 文档大小:416KB
  • / 55 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • SLIDE 1基本分段存储管理4.4 基本分段存储管理方式 –分段存储管理引入的主要原因 • 方便编程 • 信息共享 • 信息保护 • 动态增长 • 动态链接 –模块化程序设计的分段结构 –分页存储管理---一维地址结构 –分段存储管理---二维地址结构SLIDE 2基本分段存储管理• 模块化程序设计的分段结构子程序段X数组段A┇ call [X]∣ (调用X段的入口E) ┇ call [Y]∣ (调用Y段的入口F) ┇ load 1,[A]∣(调用数组段A[G]) ┇主程序段E:┅┅┅┅┅┅F:┅┅┅┅┅┅子程序段YG:┅┅┅┅┅┅工作区段SLIDE 3基本分段存储管理• 分段系统的基本原理 • 每个段定义了一组逻辑信息,主程序 段,子程序段,数据段等 • 用段号代替段名 • 两维逻辑地址:段号+段内地址 • 许多编译程序支持分段方式,自动根 据源程序的情况产生若干个段段号段内地址a:分段31 16 15 0SLIDE 4基本分段存储管理b:作业表和段表XXX…XXX始址第0段第1段段号段表XXX…XXX长度第2段作业名BA段表始址XXX表段长度XX作业表………XXXXX内存空间(D)=2Main=0(X)=1段号始址长度存取方式内外访问位SLIDE 5基本分段存储管理• 地址变换机构 当作业访问某段(x)时,其逻辑地址(x ,W)中的段号S先与控制寄存器的段表 长度相比较,若x>段表长度,则产生段 号越界中断,停止作业运行。

      否则将段 号S与控制寄存器的段表始址相加,形 成访问段表的主存地址SLIDE 6基本分段存储管理段控制寄存器段表始址 段表长度 2 100段号 段长 基址物理地址越界?段表1K6K 6004K 5008K 2009200>段号s 位移d0 1 2 3SLIDE 7基本分段存储管理分页与分段的主要区别: Ø段是信息的逻辑单位,它是根据用户的需要划 分的,因此段对用户是可见的;页是信息的物 理单位,是为了管理主存的方便而划分的,对 用户是透明的 Ø页的大小固定不变,由系统决定段的大小是 不固定的,它由其完成的功能决定 Ø段式向用户提供的是二维地址空间,页式向用 户提供的是一维地址空间,其页号和页内偏移 是机器硬件的功能 Ø由于段是信息的逻辑单位,因此便于存贮保护 和信息的共享,页的保护和共享受到限制SLIDE 8基本分段存储管理• 段的共享 –分段易于实现段的共享,即允许若干 个进程共享一个或多个分段 –段的共享,是通过不同作业段表中的 项指向同一个段基址来实现 –几道作业共享的例行程序就可放在一 个段中,只要让各道作业的共享部分 有相同的基址/限长值。

      –对共享段的信息必须进行保护SLIDE 9基本分段存储管理SLIDE 10基本分段存储管理21 22 …… 60 71 …… 8021 22 …… 60 61 …… 70内存……Ed1Ed2………Ed40Data1……Data10Data1……Data10 页表Ed1 Ed2 …… Ed40 Data1 …… Data10进程1Ed1 Ed2 …… Ed40 Data1 …… Data10SLIDE 11基本分段存储管理Editor Data1Editor data2段长基址 16080 4024016080 40380EditorData1……data2进程1进程2段表80 240 280380 420分段系统中共享editor段的示意图SLIDE 12段页式存储管理• 段页式存储管理方式 –引入:分页和分段管理方式各有其优 缺点,分页系统能有效提高内存的利 用率,而分段则能更好地满足用户的 需要,因此可以将两者结合成一种新 的存储管理方式系统称为“段页式系 统” –基本原理: • 一个进程中所包含的具有独立逻辑功能 的程序和数据仍被划分为段,并有各自 的段号S把段S划成若干个页,和页式 系统一样。

      SLIDE 13段页式存储管理• 段表和页表在段页式系统中,每个分段又被分成 若干个固定大小的页面,那么每个段又 必须建立一张页表把段中的虚页变换成 内存中的实际页面 每个段有一个页表,段表中应有专项 指出该段所对应页表的页表始址和页表 长度段号(S)段内页号(P)页内地址(W)地址结构:SLIDE 14段 号状 态页表 长度起始 地址051024 171029 291036段表长度 起始地址段表地址寄存器页 号状 态块 号 1112211931214085110页号状态块号 1293…SLIDE 15段页式存储管理• 段页式地址变换过程 –配置一个段表寄存器,段表始址和段 长 –首先用段号和段长进行比较,查看是 否越界 –未越界,用段表始址和段号查出该段 所对应的段表项的位置 –通过查段表项得到该段的页表始址, 利用段内页号P获得对应页的页表项位 置 –读出该页所在的物理块号b,再利用 块号b和页内地址来构成物理地址SLIDE 16段页式存储管理段表地址寄存器段表长度 起始地址s p d 页表长 页表基址物理地址……块号……s p p’ P’+dp ’虚拟地址联想存储器段表S段的页表• 段页式地址变换机构SLIDE 17虚拟存储器原理4.5 虚拟存储器的基本概念程序的局部性原理: 指程序在执行过程中的一个较短时间内,所 执行的指令地址或操作数地址分别局限于一定 的存储区域中。

      又可细分时间局部性和空间局 部性 • 程序中只有少量分支和过程调用,大都是顺序 执行的指令 • 程序包含若干循环,是由相对较少的指令组成 ,在循环过程中,计算被限制在程序中很小的 相邻部分中SLIDE 18虚拟存储器原理• 很少出现连续的过程调用,相反,程序中过程 调用的深度限制在小范围内,一段时间内,指 令引用被局限在很少几个过程中 • 对于连续访问数组之类的数据结构,往往是对 存储区域中相邻位置的数据的操作 • 程序中有些部分是彼此互斥的,不是每次运行 时都用到的,如出错处理程序 基于程序局部性原理和上述情况,就没有必要 把一个作业一次性全部装入内存再开始运行 而是可以把程序当前执行所涉及的信息放入内 存中,其余部分可根据需要临时调入SLIDE 19虚拟存储器原理• 虚拟存储器的定义: 在具有层次结构存储器的计算机系统中 ,采用自动实现请求调入功能和部分对 换功能,这样的计算机系统好像为用户 提供了一个存储容量比实际主存大得多 的存储器,就称为“虚拟存储器”虚拟存储器是为扩大主存而采用的一种 设计技巧,它的容量与主存大小无直接 关系,而受限于计算机的地址结构及可 用的辅助存储器的容量。

      SLIDE 20虚拟存储器原理虚拟地址空间处理器虚地址 存储 管理 部件实地址主存辅存物理地址空间虚拟存储器的概念图 SLIDE 21虚拟存储器原理• 实现虚拟存储器必须解决好以下有关问 题: –主存辅存统一管理问题、 –逻辑地址到物理地址的转换问题、 –部分装入和部分对换问题 • 虚拟存储管理主要采用以下技术实现: –请求分页虚拟存储管理 –请求分段虚拟存储管理 –请求段页式虚拟存储管理SLIDE 22虚拟存储器原理• 置换时以页面(段)为单位,为了实现 请求调页(段)和置换功能,系统必须 提供相应的硬件支持和软件支持: –请求分页(段)的页(段)表机制,是在 页(段)表机制上增加若干项形成的 –缺页(段)中断机构 –地址变换机构 –实现请求分页(段)的软件包括实现请 求调页(段)的软件和实现页(段)的置 换功能的软件SLIDE 23请求分页存储管理4.6 请求分页存储管理方式 • 请求分页中的硬件支持 • 页面机制 页号、驻留位、内存块号、保护位、访问位、 修改位 –驻留位(中断位):表示该页是在内存还 是在外存 –访问位:根据访问位来决定淘汰哪页(由 不同的算法决定) –修改位:查看此页是否在内存中被修改过SLIDE 24请求分页存储管理–保护位:读/写/执行 –禁止缓存位:采用内存映射I/O的机器中需 要• 缺页中断 当要访问的页面不在内存时,便产生一缺页中 断,请求OS将所缺的页面调入内存。

      经历保护 CPU环境、分析中断原因、转入缺页中断处理 程序进行处理、恢复CPU环境等步骤 缺页中断具有自己的一些特征:在指令执行期 间产生和处理中断信号页号中断位 内存块号 保护位访问位其它辅存位SLIDE 25逻辑空间地址主存(用户区)CPU逻辑地址快表主存(系统区 )运行进程页 表辅存缺页中断处理①分解 地址③ ⑤ 访 问MMU②查快表③命中④不命中⑤页表命中⑦发缺页中断⑧调页⑨装入 、改表④查页表运行进程页表基址⑥装入快表 运行进 程映象进程切换时装入物理地址页框 页内地址页号 页内地址• 地址变换机构SLIDE 26查快表有登记无登记查页表登记入快表发缺页中断在主存在辅存形成绝对地址继续执行指令重新执行 被中断指令恢复现场调整页表和 主存分配表装入所需页面主存有空闲块保护现场有选择调出页面该页是否修改未修改已修改把该页写回 辅存相应位置操作系统硬件逻辑地址无SLIDE 27请求分页存储管理• 内存分配策略和分配算法 –两种内存分配策略:固定和可变分配 策略 –在进行置换时,也采用两种策略:全 局置换和局部置换 (1)固定分配局部置换 (2)可变分配全局置换 (3)可变分配局部置换SLIDE 28请求分页存储管理• 调页策略 • 何时调入页面:预调页策略和请求调 页策略 • 调入过程: • 缺页中断 • 查找页表,找到该页在外存的物理块 • 调入并修改页表 • 如果内存已满,按照某种置换算法从 内存中选出一页准备换出 • 再把做缺的页面调入内存,修改页表 中的相应表项SLIDE 29页面置换算法4.7 页面置换算法 • 把选择换出页面的算法称为页面置换算 法,应该把那些以后不再会访问的页面 换出,或者把那些停留较长时间而不会 再访问的页面调出,最终的目的是达到 一个较低的页面更换频率。

      • 最佳置换算法和先进先出置换算法 • 最近最久未使用(LRU)置换算法 • Clock置换算法SLIDE 30页面置换算法• 最佳置换和先进先出算法 –最佳置换算法 原理:调入一页而必须淘汰一个旧页时,所淘 汰的页应该是以后不再访问的页或距现在最长 时间后再访问的页 通常可以获得最低的缺页率(理论上) 无法预知在进程中那个页面是未来最久时间不 再被访问,因此,算法无法实现7、0、1、2、0、3、0、4、2、3、0、3、2、1、2、 0、1、7、0、1SLIDE 31页面置换算法–先进先出页面置换算法(FIFO) 这种算法的基本思想是:总是先淘汰 那些驻留在内存时间最长的页面,即 先进入内存的页面先被置换掉理由 是:最先进入内存的页面不再被访问 的可能性最大 引入指针链成队列,只要把进入主存 的页面按时间的先后次序链接,新进入 的页面从队尾入队,淘汰总是从队列头 进行.SLIDE 32页面置换算法7、0、1、2、0、3、0、4、2、3、0、3、2、1、2…701201231利用FIFO置换算法时的置换图SLIDE 33页面置换算法• 最近最久未使用(LRU)置换算法 –算法淘汰的页面是在最近一段时间里较久 未被访问的那页。

      –根据程序局部性原理,那些刚被使用过的 页面,可能马上还要被使用,而在较长时 间里未被使用的页面,可能不会马上使用 到 –队列中存放当前在主存中的页号,每当访 问一页时就调整一次,使队列尾总指向最 近访问的页,队列头就是最近最少用的页 –发生缺页中断时总淘汰队列头所指示的页 ;执行一次页面访问后,需要从队列中把 该页调整到队列尾SLIDE 34页面置换算法7、0、1、2、0、3、0、4、2、3、0、3、2、1、2… 7 0 1201203403402432利用LRU置换算法时的置换图SLIDE 35页面置换算法–LRU算法的实现 • 。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.