版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、2.4 存储管理,对主存储器 空间的管理,内存的分配与管理,虚拟存储技术,地址变换,存贮空间保护,存储器层次结构,快速缓存:Cache 内存:DRAM, SDRAM, DRDRAM等; 外存:软盘、硬盘、光盘、磁带等;,2.4.1 存储管理的功能,内存的分配与管理,内存的共享与保护,地址变换,主存的“扩充”虚拟内存,覆盖与交换技术,一、内存分配与管理,内存分配就是为进程分配内存空间,涉及以下问题:,放置策略,调入策略,淘汰策略,等分,不等分,二、内存共享与保护,共 享,保 护,共享内存资源,程序并发执行; 共享内存中公共信息。,避免并发执行的程序相互干扰; 避免用户程序侵犯系统区。,三、地址变
2、换,逻辑地址 (程序空间),物理地址 (内存空间),重定位,地址是以字节为单位的存储器编号 内存空间(绝对空间): 整个系统内存从0开始以字节为单位编址物理地址 程序空间(相对空间): 程序由机器代码组成,以字节为单位,每个程序都从0开始编址逻辑地址,四、虚拟存储技术,引入原因: 当作业很大,超过内存剩余时,无法装入 装入的作业对内存利用率不高:99%的指令在短时间内都不会得到执行 解决方法 不需一次全部装入作业,程序部分装入就可以执行 装入内存的程序在不需要访问时暂时从内存换出 给用户感觉比实际空间大的虚拟空间 虚空间大小 虚空间的逻辑大小 可寻址范围 虚空间的实际大小 内存外存对换区 例:
3、32位操作系统的可寻址范围是232=4GByte,程序的装入和链接,从用户源程序到内存中可执行的代码将经历: 编译: 完成源程序从高级语言到机器可理解代码的转换 根据任务的需要可能形成若干相对独立的目标模块 链接: 将目标模块链接起来,如标准库、系统库 形成一个完整的装入模块 装入: 由操作系统的装入程序将装入模块装入内存 涉及: 内存空间的分配放到内存什么地方 地址空间的映射地址变换,(1)程序的装入,A、绝对装入方式 装入模块的地址与内存实际地址完全相同 系统装入程序时工作最简单,直接分配,不变换地址 要求: 用户使用绝对地址编程 用户了解程序在内存中的存放位置 用户控制内存使用情况,B、
4、静态重定位装入方式,装入模块中使用从0开始的相对地址,装入时,由系统分配内存空间,并完成装入模块中相对地址变换为绝对地址,重定位,逻辑地址,基地址,+,物理地址,装入模块中的相对地址,装入时的地址变换,MOV ax , 2500,365,0,1000,2500,10000,11000,12500,MOV ax , 2500,365,程序空间,内存空间,0,12500,C、动态重定位装入方式,装入模块中使用相对地址,装入时不变换地址, 在执行时才完成地址的变换,方便了模块的动态装入,动态重定位需特殊的硬件支持重定位寄存器,利用硬件地址变换机构,(2)程序的链接,0,0,0,0,装入模块,目标模块
5、,将任务所需的目标模块链接起来,形成一个完整的装入模块 目标模块使用的地址是相对的,都是从0开始 形成统一地址空间的装入模块的过程链接,需要动态重定位的支持,运行时动态链接例,printf( “ OK” );,printf( “ OK” );,主模块,库模块,void printf() ,0,0,装入模块,void printf() ,编译,装入,printf( “ OK” );,执行,33600H,call 33600H,运行时动态链接,内存,2.4.2 连续分配存储管理,特点: 为一个用户程序分配一个连续的内存空间 程序空间本来就是连续的 用连续的内存装入连续的程序,减少管理工作的难度 可
6、分为: 单一连续区存储管理 分区存储管理,单一连续区存储管理,内存分为两个区域:系统区,用户区。应用程序装入到用户区,可使用用户区全部空间。 最简单,适用于单用户、单任务的OS。 优点:易于管理。 缺点:对要求内存空间少的程序,造成内存浪费;程序全部装入,很少使用的程序部分也占用内存。,分区存储管理,把内存分为一些大小相等或不等的分区(partition),每个应用进程占用一个或几个分区;操作系统占用其中一个分区。 特点:适用于多道程序系统和分时系统 支持多个程序并发执行 可能存在内零头(分配给用户但没有被使用的空间)和外零头(没有分配但无法分配的空间) 按不同分配方式,分为: 固定分区 可变
7、分区,一、固定分区,基本思想:,将内存区固定地划分为大小相等或者不等的区域,每个分区装入一道作业。分区划分后,每个分区的长度和内存中的分区总数将保持不变。,内存分配表,固定分区(大小相同),固定分区(多种大小),优点:易于实现,开销小。 缺点: 内零头造成浪费 分区总数固定,限制了并发执行的程序数目,二、可变分区(动态分区),基本思想:,根据作业任务的大小划分分区,分区的大小和数目不再固定。,分配区 控制块,空闲区 控制块,AMCB (Allocation Memory Control Block),FMCB (Free Memory Control Block),分配过程:,作业 1,作业
8、2,作业 3,作业 1,作业 3,作业 4,分配算法(空白分区选择),1、首次适应FF ( First Fit ),(1)将空白分区按地址递增顺序链接,(2)从链首开始查找适合的分区,优先分配内存中低地址部分,优点:,缺点:,简单,在低地址部分会积累大量外零头,(3)从选中的分区中分出所需的大小,其余部分仍留在空白分区链表里,选取最适合的空白分区,大分区保证,缺点:,优点:,效率不高,零头更小,(1)将空白分区按大小递增顺序链接,(2)从链首开始查找适合的分区,2、最佳适应BF ( Best Fit ),3、最坏适应WF ( Worst Fit ),?,选取分区中最大的一个最不适合的,(1)将
9、空白分区按大小递减顺序链接,(2)从链首开始分配分区,优点:,查找效率显著提高,一次就找到,缺点:,大作业容纳 能力会下降,“拼接”/“紧缩”技术,多次分配、回收后,形成小空闲区无法使用。这时需要使用拼接或紧缩技术将已分配分区移动,使未分配分区合成较大分区。,对占用分区进行内存数据搬移占用CPU时间 如果对占用分区中的程序进行浮动,则其重定位需要硬件支持。 紧缩时机:每个分区释放后,或内存分配找不到满足条件的空闲分区时。,2.4.3 覆盖与交换技术,引入原因:,在分区管理技术中,程序的地址空间(逻辑地址空间)可能大于实际存储器空间,使程序无法装入(无法运行)。,覆盖(Overlay),交换(S
10、wapping),一、覆盖(Overlay),一段内存区可以先后被不同的程序段重复使用,初始段,处理段,输出段,程序员必须自己设计覆盖结构 覆盖断划分困难,不易实现,二、交换(Swapping),在内、外存之间进行数据和程序的交换,内 存,磁 盘,交换技术一般与分区、分页、分段管理技术结合使用。,2.4.4 分页存储管理,连续分配方式要求连续存放,产生大量的内/外零头,浪费空间。 引入离散分配方式程序在内存中不一定连续存放,一、分页管理的基本思想,页:,将逻辑地址空间划分为大小相同的块,称为页或虚页面(Page),块:,将实际物理空间划分为与页大小相等的块,称为存储块或页框(Page Fram
11、e),没有外零头,仅有小于一个页面的内零头,优点:,二、分页管理的基本方法,关键问题:,如何实现页到块的地址变换?,通过页表实现。,0,1,2,m,内存,0,1,2,n,用户程序,0,1,2,n,0,1,2,n,3,m-2,1,m-1,页表,页号,块号,页面地址转换,页面地址转换通过下述3种数据结构实现:,(1)存储分块表(MBT),整个系统一个,记录所有内存块的状况。,(2)页表(PT),每个作业一个,记录作业的页与内存块的关系,页表在作业装入时创建,作业撤销时撤销。 作业被调度时,页表存放在页表控制寄存器PTCR中,(3)作业表(JT),整个系统一个,记录所有作业的页表情况。,页面地址到物
12、理地址转换过程:,(1) 作业被调度时首先通过JT找到相应页表的起始地址及大小,并装入PTCR,(2)将页号与PTCR中的页表大小进行比较,若页号页表大小则为非法访问,产生越界中断;否则为合法访问,根据页表起始地址和页号找到该页页表表项,(3)通过页表表项找到逻辑页所对应的物理块号,然后将块号与页内偏移地址结合形成物理地址,+,40,10,JT,2,10,例:设块大小为32,利用下面的页表,将逻辑地址140变换为物理地址。 解: 1)逻辑地址有效地址 页号INT140/324 页内地址140%3212 2)查页表得到块号为5 3)物理地址532+12172,2.请求式分页,属于虚拟存储管理:
13、部分装入、请求调入、页面置换 需要的页面是否已装入内存? 当需要访问的页面不在内存中如何处理? 当发现将要用到的页面不在主存中时产生缺页中断,由缺页中断来完成页面的调入 缺页中断将耗费系统时间,缺页率是影响系统性能的主要因素 缺页率:需要访问的页面不在内存中次数在总页面访问次数的比率,如果要访问的页不在内存中 缺页中断处理,页号,块号,存取控制,引用位:,0 未访问过,1 访问过,对页表扩充: 让系统了解页面状态,修改位:,0 未修改,1 已修改过,状态位:,0 不在内存,1 在内存,缺页中断的处理过程 :,相对地址,页号,页内地址,页表控制寄存器,+,块号,块内地址,物理地址寄存器,逻辑地址
14、寄存器,越界?,页号,块号,页表,状态位,1,60,页面淘汰算法,若缺页中断处理时内存已无空闲分块?,页面置换 (页面淘汰),页面淘汰算法,抖动 Thrashing,频繁地调进和调出页面,特别是被换出的页面在短时间内又要被换入,系统开销显著增加,以至于系统吞吐量大大下降,(1) FIFO算法 先进先出算法最简单的算法,(2) LRU算法 最近最久不用页面被淘汰,(3) LFU算法 最近最少使用页面被淘汰,常用页面淘汰算法:,3. 快表,问题引入:,两次内存访问,访问页表 得到物理地址,访问物理地址 得到数据,快表:,用于存放当前页表中最频繁访问表项的高速缓存(Cache)。,基于快表的分页系统
15、:先查找快表,未成功再查找页表(p.132 图2.34),4. 分页式存储管理特点,2.4.5 分段存储管理,引入原因:,按页划分,程序的模块化,矛盾,以段为内存分配单位,优点:方便程序设计,便于内存共享、保护、动态装入。,分段实现思想,作业按逻辑信息的完整性分段,段有段名和段号;,段长度由程序决定,可动态延伸;,各段都是从0开始编址的连续地址空间(二维),一个段是连续的,各段可以离散存放;,2. 分段的地址转换,段表:每进程一个,记录进程内段与内存实际段存放基地址的映射关系。,段表(ST)示意图,地址变换机构和过程:,+,越界?,4,100,+,绝对地址,3. 段的共享与保护,段的共享: 段
16、表中同一起始地址,段的保护:,地址越界保护,存取控制保护,分段方式的内存共享,共享段表,段号,基址,进程1段表,进程2段表,段名,1,2,5,6,始址,内存,共享进程数,记录共享段和进程的信息,以便共享段的分配和回收,4. 分段与分页的比较,(1)“分页”是系统活动,用户无法介入,页的大小固定,“分段”是用户可见的,段大小可变,(2)页式信息的物理单位,不是完整的逻辑单位,段是完整的逻辑信息单位,(3)分页的作业空间是一维的,是单一线性空间,分段的作业空间是二维的。,2.4.6 段页式管理技术,引入原因:,分页的优点:,分段的优点:,存储器利用率高,符合程序的模块结构,+,段页式存储管理,段页
17、式实现思想,有效地址 =,段名段内地址,段内页号+页内地址,2. 段页式地址转换机构,段表 页表实现地址转换,段表:记录每一段段内页表地址,2,40,2,20,3. 段页式地址转换过程,+,物理地址寄存器,逻辑地址,段号,段内地址,页号,页内地址,段表始址,段表大小,段表寄存器,块号,块内地址,+,!段页式也可引入快表,4. 段页式的优缺点,优点:,缺点:,结合了分页和分段的优点,既有效利用了存储器,也符合逻辑习惯,便于保护、共享。,由于程序分段,段内分页,造成地址转换速度降低,系统结构复杂。,Windows 的存储管理,NT使用的页面大小为4KB(212)。每个NT进程地址空间为4GB(23
18、2),其中: 用户存储区:在用户态和核心态都可访问的用户存储区为2GB;用户存储区为页交换区,可对换到外存;用户存储区的内容包括: 专用进程地址空间:用户代码、数据和堆栈; 线程环境块(TEB):用户态代码可修改的线程控制信息; 进程环境块(PEB):用户态代码可修改的进程控制信息; 共享用户数据页:系统存储区映像,为用户态可访问的系统空间,目的在于避免用户态与核心态的频繁切换;如:系统时间。,有效状态(active or valid):某进程正在使用该页面,也可能不属于任何进程(如不可对换的内核页面); 过渡状态(transition):页面处于不属于任何进程的过渡状态,用于避免页面冲突。如正在进行页面与I/O设备间的数据传送。 清零状态(zeroed):空闲且已被清零; 空闲状态(free):空闲但尚未被清零; 修改状态(modified):已标记为无效,但对该页面内容的修改尚未写
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 外研八下英语Unit 4 Presenting ideas-Reflection《单元语法沙龙》课件
- 人教 八年级 语文 下册 第3单元《9.桃花源记 第1课时》课件
- 2026年无偿用客车合同(1篇)
- 2025 高中信息技术数据结构在电商用户购买周期分析课件
- 赣州企业可行性研究报告
- 小学相关学科的基础知识
- 狼图腾生态文学解析
- 垂体瘤矢状位影像诊断课件
- 2025 高中信息技术数据与计算之数据与计算提升在线教育学习成果评估课件
- 2026年港澳专业人士跨境执业资格认可备案全流程操作手册
- 2026杭州市市级机关事业单位编外招聘148人笔试参考题库及答案解析
- 2026年春季贵州人民版(2024)六年级下册综合实践活动《小学毕业留念》教学课件
- 湖北省襄阳市2026届高三下学期3月一模统一调研测试数学试题
- 第4课《坚持才会有收获》课件
- 2026年春季安全教育班会记录表(19周):开学安全第一课-启航安全守护新学期
- 2025年黄山职业技术学院单招职业技能测试题库附答案解析
- 大坝安全监测仪器检验测试规程
- 绿色数据中心 暨对算力行业的一点思考 行业洞察 2026
- 妇产科学精准医学:围产期多组学监测与管理
- 二十届中纪委五次全会知识测试题及答案解析
- 特种经济动物生产学 第七章 鹿课件
评论
0/150
提交评论