存储管理ppt课件

上传人:钟*** 文档编号:1221547 上传时间:2019-10-11 格式:PPT 页数:49 大小:584.50KB
返回 下载 相关 举报
存储管理ppt课件_第1页
第1页 / 共49页
存储管理ppt课件_第2页
第2页 / 共49页
存储管理ppt课件_第3页
第3页 / 共49页
点击查看更多>>
资源描述
存储管理,第6章,存储管理概述 存储管理方案 虚拟存储管理 Linux存储管理,1,6.1 存储管理概述,功能: 内存的分配与回收:为进程分配、回收内存空间; 存储地址变换:把程序使用的逻辑地址映射成内存空间地址; 存储空间保护:保证内存中的进程互不干扰; 存储空间扩充:提供虚拟存储空间。,2,内存的分配与回收,内存的分配与回收:在进程建立时为其分配内存空间;当进程运行结束后回收其占用的内存空间。 内存分配方案的要素: 描述内存分配情况的数据结构 内存分配策略,3,地址的概念,符号地址:高级语言源程序中由符号代表的地址; 逻辑地址:经编译后的目标程序所用的地址; 物理地址:程序在内存占用的实际地址。,0,n-1,i,96,1024,1120,符号地址空间,逻辑地址空间,物理地址空间,4,地址变换,地址变换:当某程序装入内存运行时,根据其所获得的空间位置,将程序的逻辑地址映射成相应的物理地址。 静态地址变换:程序装入内存前一次性完成地址转换。特点:程序在内存中不可移动。 动态地址变换:在程序执行过程中,由动态地址变换机构实现地址转换。特点:程序在内存中可移动、可共享、可不连续存放。,5,内存的保护,内存访问故障: 越界访问:程序试图访问超出自己地址范围的地址,导致产生地址越界中断。 越权访问:当程序访问共享内存时,其权限不符合该共享内存的读写权限,导致产生地址保护中断。 内存保护:在程序执行中,CPU对程序要访问的地址进行检查,若有访问故障则终止进程的运行。 保护措施:上下界、保护键、保护模式。,6,存储器扩充,“扩充”存储器空间的思想是:程序代码部分进入内存,其余驻留在外存,在需要时调入内存。实现方法有: 覆盖技术:由用户编程指定程序块间的覆盖关系。用户看到的是实际大小的内存。 交换技术:系统将暂时不能运行的进程换出内存,以容纳更多的进程。用户看到的也是实际大小的内存。 虚拟存储技术:程序运行中由系统动态地完成内存与外存之间的交换。用户看到的是一个比实际内存大得多的“虚拟内存”。,7,6.2 存储管理方案,分区存储管理 页式存储管理 段式存储管理 段页式存储管理,8,分区存储管理,分区:把内存空间分割成若干区域,称为分区。每个分区容纳一个进程的映像。 分区分配:按进程映像的实际大小动态地划分分区。,操作系统,进程1,320 K,进程2,224 K,552 K,9,区号 大小 起址 标志 1 16KB 20K 已分配 2 32KB 36K 已分配 3 64KB 68K 已分配 4 124KB 132K 未分配 (a) 分区说明表,0k: 20k: 第1分区(16kb) 36k: 第2分区(32kb) (已分配) 68k: 第3分区(64kb) (已分配) 132k: 第4分区(124kb ) (未分配) 256k: (b)内存分配图,在处理作业前,固定划分区域。每个作业占一个分区,作业连续存放。,固定式分区,10,可变式分区,动态创建分区:在装入程序时按其初始要求分配,或在其执行过程中通过系统调用进行分配或改变分区大小。,11,分区分配的碎片问题,操作系统,进程1,320 K,进程2,224 K,552 K,320 K,224 K,288 K,264 K,320 K,224 K,288 K,264 K,操作系统,操作系统,进程1,进程1,进程2,进程3,进程3,12,220 K,100 K,320 K,128 K,288 K,264 K,操作系统,进程1,进程3,96 K,进程4,操作系统,进程3,进程4,320 K,128 K,288 K,264 K,96 K,操作系统,进程5,进程3,进程4,128 K,288 K,264 K,96 K,由于碎片,进程6(300K)无法进入系统,13,可重定位分区管理,解决碎片的方案:可重定位分区。 技术:存储紧缩技术: 采用动态地址重定位,使程序代码在内存中可以移动,从而可将碎片合并成一个连续的存储空间。 特点:解决了碎片问题;存储紧缩花费时间。,14,地址变换方式,210,1234,+,1024,基址寄存器,1024,1234,是,逻辑地址,绝对地址,内存,3072,地址越界,长度寄存器,否,上界,3072,15,页式管理,分页的概念 将程序的逻辑地址空间分成若干大小相等的页面,同时,把内存空间也按同样大小分为若干块,称为页帧。对于x86体系结构,页面和页帧的大小都为4KB。 以页帧为单位分配内存,每页帧装一页;一个进程映象的各个页面可分散放在不相邻的页帧中。用页表记录页号与页帧号的映射关系。,16,逻辑地址的划分,在页式存储管理系统中,用户的逻辑地址可看成由两部分组成:页号+页内地址。 例:设逻辑地址为32位,页面大小为4KB,则逻辑地址011位为页内地址,1231位为页号: 设逻辑地址为5678,则其页号为1,页内地址为1582。,0,11,12,31,逻辑地址,17,页表,页表:每个进程一个,用来说明页面号与内存块号的对应关系。 页表寄存器:每个进程一个,用来存放进程的页表的长度和起始地址。 例:某进程页表:,页帧号,0,1,2,3,页面号,页表寄存器,页表长,页表地址,页表,18,页式分配示意图,19,页式地址变换,20,页式存储的保护,程序运行时,当CPU访问某逻辑地址时,硬件自动把页号与页表长度进行比较,如果合法,则进行地址转换,否则产生地址越界中断信号。,21,页式管理的特点,解决了碎片问题,有效利用内存(但仍然有页内碎片); 管理简单; 简单页式管理不能实现存储扩充,请求页式管理可以实现虚拟存储(页式虚存) 。,22,段式存储管理,用户程序通常由一个主程序、若干个子程序和数据区组成,每一个这样的在逻辑上完整的信息单位称为“段”。例:,main.obj,sub1.obj,sub2.obj,data,0,0,0,0,n0,n1,n2,n3,0 段,1 段,2段,3段,23,段的概念,从段的角度看,程序的逻辑地址空间是一个二维空间: 段与页的区别: 段是信息的逻辑单位,长度不固定,用户可见; 页是信息的物理单位,长度固定,用户不可见;,逻辑地址,24,段式管理思想,段式管理思想:以段为内存分配单位;用段表描述进程各段在内存的存储位置。 段表中包括段长、段的内存起始地址等。例:,0,1,2,3,段号 段长 内存地址,25,段式分配示意图,26,地址变换方式,27,段式管理中的存储共享与保护,段的共享:多个进程需要共享某段,可以使用不同的段名,在各自的段表中填入共享段的内存起始地址等信息,就可以共享该段。 段的保护:当CPU访问某逻辑地址时,硬件自动把段号与段表长度进行比较,同时还要将段内地址与段表中该段长度进行比较,如果合法则进行地址转换,否则产生地址越界中断信号。,28,段式管理特点,便于程序模块化处理,便于分段共享; 段长不固定,可能出现碎片; 简单段式管理不能实现存储扩充,请求段式管理可以实现虚拟存储(段式虚存)。,29,6.3 虚拟存储管理,虚拟内存的思想:用外存模拟内存,实现内存空间的扩充。 虚拟存储器的原理:程序部分代码进入内存,其余驻留在外存交换空间中,在需要时调入内存。换入和换出完全由系统动态地完成,应用程序看到的是一个比实际内存大得多的“虚拟内存”。 虚拟存储管理方案: 页式虚存(请求页式) ; 段式虚存(请求段式) 。,30,请求页式管理,请求页式管理思想:最初只将程序的若干页面调入内存,其余的页面保存在外存的交换区中。当程序运行中访问的地址所在的页面不在内存时,则产生缺页中断,系统响应此中断,将缺页从外存交换区中调入内存。,31,请求页式页表,在页表中增加一些属性字段,其中状态位表示该页当前是否在内存,修改位表示该页面是否被修改过。,32,地址变换方式,页帧号,页帧号,33,地址变换举例,34,缺页中断的处理,有空闲页帧?,调入页面,修改页表,淘汰一个页面,该页修改过?,写回外存,否,否,是,是,返回,35,页面淘汰算法,常用页面淘汰算法: 先进先出法(FIFO):先进入内存的页面先淘汰 最近最少使用法(LRU):淘汰近期访问次数最少的页面 最近未使用法(NUR):淘汰最近未被访问的页面 页面调度不当,或实际内存过小,会产生抖动现象,即系统处于频繁的页入页出状态,系统效率降低。,36,6.4 Linux存储管理,Linux系统采用请求页式存储管理方案,存储空间利用率高,可提供4GB的虚拟存储空间。 x86的地址变换:分段+分页 x86上的Linux回避了段式映射,使虚拟地址等同于线性地址(逻辑地址)。,37,二级分页,4GB逻辑地址空间包含有1M个页面,需要长为1M个表项的页表描述,查表效率低。 x86平台上的Linux系统采用了二级分页机制:把所有页表项按1K为单位划分为若干个子表,称为页表(最多1K个)。另用一个页目录表来记录每一个子表的位置。页表和页目录表都是1K项长(4KB)。 采用二级分页时的逻辑地址划分:,0,11,12,31,21,22,38,二级分页地址变换示意图,39,进程的地址空间,进程的地址空间是指进程可以使用的全部线性地址的集合。 每个Linux进程拥有4G地址空间,分为: 内核空间:最高的1G ,供内核代码使用;所有进程通过执行系统调用内核代码而共享此空间。 用户空间:较低的3G ,供进程代码使用。是进程的私有空间。,40,地址空间的划分,41,地址空间的布局结构,进程的映像被划分为不同类型的若干个片段,每个片段占用地址空间中的一个区间。称为虚存区。 根据映像类型的不同,虚存区分为:代码区(text)、数据区(data)、BSS区(bss)、堆(heap)和栈(stack)。,42,地址空间的映射,43,地址空间的描述,44,内存的分配与回收,用free_area数组将空闲页块(若干个连续的空闲页帧)按不同的大小(20210个内存页帧)分别描述。 伙伴分配算法:分配时,根据需要的大小在free_area数组中找到一个足够大的空闲页块,取出分配给进程;回收时将释放的页帧登记到free_area数组中。每次分配的大小为2k个连续的页帧。,45,空闲区的描述,46,页面的交换,Linux使用页面交换实现虚存。进程建立之初只分配到很少的页帧,其余驻留在外存的交换空间中。运行中,系统为进程按需动态调页。 Linux系统提供两种外存交换空间。一种是利用一个特殊格式的(linux swap)磁盘分区,称为交换区。另一种是利用文件系统中特殊的文件,称为交换文件。实际使用中,以交换区为主,以交换文件为辅。,47,页换入缺页中断处理,进程运行过程中发生缺页中断(即要访问的页当前不在物理内存中)后,当前进程进入等待状态。CPU转去执行缺页中断处理程序。 缺页中断处理程序从磁盘交换空间中将所需的页装入物理内存,并更新页表项。 所需的页装入了物理内存后,进程进入就绪状态,可以继续执行了。,48,页换出页帧回收,当系统中内存不足时,必须及时把内存中暂时不会用到的页面淘汰出去,回收页帧。 内存交换调度的任务是管理内存页帧和外部交换空间,保证系统有足够的空闲页帧,使内存分配可以高效地运行。 Linux系统通过内核交换进程kswapd来实现页面淘汰功能。kswapd是一个高优先级的实时内核进程,它周期性地运行,在内存紧张时进行页面换出。,49,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸设计 > 毕设全套


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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