版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、主存管理,主存管理,主存管理概述 主存管理的功能 分区存储管理 页式存储管理 段式及段页式存储管理 Linux系统的存储管理,1,主存管理主要内容,2,主存管理主存管理概述,1. 主存共享方式 大小不等的区域 分区存储管理 段式存储管理 大小相等的区域 页式存储管理 二者结合 段页式存储管理,3,主存管理主存管理概述,2. 程序的逻辑组织 一维地址结构 一个程序是一个连续、线性的 地址结构; 确定线性地址空间中的指令地 址或操作数地址只需要一个信息。,4,主存管理主存管理概述,二维地址结构 一个程序由若干个分段组成,每个分段是一个连续的地址区; 确定任一线性地址空间中的指令地址或操作数地址需要
2、两个信息,一是该信息所在的分段,另一个是该信息在段内的偏移量。,5,1. 几个概念 物理地址 (绝对地址、实地址) 物理地址是计算机主存单元的真实地址,又称为绝对地址或实地址。 主存空间 物理地址的集合所对应的空间组成了主存空间。 逻辑地址 (相对地址、虚地址) 用户的程序地址(指令地址或操作数地址)均为逻辑地址。 作业地址空间 用户程序所有的逻辑地址集合对应的空间。,主存管理主存管理功能,6,作业地址空间与主存空间,主存管理主存管理功能,7,主存管理主存管理功能,2. 主存管理功能 实现逻辑地址到物理主存地址的映射 主存分配 存储保护 主存扩充,8,主存管理地址映射,3. 地址映射 什么是地
3、址映射 将程序地址空间中使用的逻辑地址变换成主存中的物理地址的过程,称为地址映射。,9,主存管理地址映射,在作业装入时确定地址映射关系 在作业装入过程中随即进行的地址变换方式称为静态地址映射。,地址映射的时机和类别 编程或编译时确定地址映射关系 在程序编写或程序编译时确定虚、实地址之间的对应关系,结果 是一个不能浮动的程序模块。,10,主存管理地址映射,在程序运行时确定地址映射关系 在程序执行期间,随着每条指令和数据的访问自动地 连续地进行地址映射,这种地址变换方式称为动态地 址映射。,11,主存管理地址映射,静态地址映射与动态地址映射的区别 静态地址映射 动态地址映射 在作业装入过程中 在程
4、序执行期间 进行地址映射 进行地址映射 需软件 需硬件地址变换机构 重定位装入程序 重定位寄存器 需花费较多CPU时间 地址变换快 不灵活 灵活,12,主存管理主存管理功能,4. 主存分配 构造分配用的数据结构 主存资源信息块:等待队列;空闲区队列;主存分配程序 制定策略 主存分配策略 在众多个请求者中选择一个请求者的原则 放置策略 在可用资源中,选择一个空闲区的原则 调入策略 决定信息装入主存的时机 预调策略:预先将信息调入主存 请调策略:当需要信息时,将信息调入主存 淘汰策略 在主存中没有可用的空闲区(对某一作业而言)时,决定哪些信息从主存中移走,即确定淘汰已占用的内存区的原则。 实施主存
5、分配与回收,13,主存管理主存管理功能,5. 主存扩充 可行性 实现方法 程序的全部代码和数据存放在辅存中; 将程序当前执行所涉及的那部分程序代码放入主存中; 程序执行时,当所需信息不在主存,由操作系统和硬件相配合来完成主存从辅存中调入信息,程序继续执行。 什么是虚拟存储器 由操作系统和硬件相配合来完成主存和辅存之间的信息的动态调度。这样的计算机系统好像为用户提供了一个其存储容量比实际主存大得多的存储器,这个存储器称为虚拟存储器。,局部性特征,14,主存管理主存管理功能,虚拟存储器的核心 逻辑地址与物理地址分开 存储空间与虚地址空间分开 提供地址变换机构 实现虚拟存储器的物质基础 有相当容量的
6、辅存 足以存放应用程序的虚地址空间 有一定容量的主存 存放进入主存的多进程的信息 地址变换机构,15,主存管理主存管理功能,6. 存储保护 什么是存储保护 在多用户环境中,主存储器按区分配给各用户程序使用。 为了互不影响,必须由硬件(软件配合)保证各用户程序只 能在给定的存储区域内活动,这种措施叫做存储保护。 实现方法 界地址保护 存储键保护,16,主存管理主存管理功能,界地址保护 上下界防护 例:作业大小为4KB,主存首址为20KB。,20KB,24KB,如何设置上下界寄存器内容 ? 如何判断是否越界 ? 若 20KBD24KB 允许访问; 否则发生越界中断,17,主存管理主存管理功能,界地
7、址保护 基地址、限长防护 例:作业大小为4KB,主存首址为20KB。,如何设置基址、限长寄存器内容 ? 如何判断是否越界 ? 若 逻辑地址 4KB 允许访问; 否则发生越界中断,20KB,4KB,18,1. 动态分区分配 什么是动态分区分配 在处理作业的过程中,建立分区,依用户请求的大小分配分区。 动态分区的分配、回收过程 动态分区的分配过程,主存管理分区存储管理,19,主存管理分区存储管理,作业1申请 32KB,作业2申请 14KB,作业3申请 64KB,作业4申请 100KB,作业5申请 50KB,20,主存管理分区存储管理,动态分区的回收过程,21,1. 动态分区分配 什么是动态分区分配
8、 在处理作业的过程中,建立分区,依用户请求的大小分配分区。 分区分配结构 主存资源信息块 (M_RIB) 分区描述器 (PD),主存管理分区存储管理,flag: 为 0 空闲区 为 1 已分配区 size: 分区大小 next:空闲区自由主存队列中的勾链字 已分配区此项为零,22,空闲区队列结构,主存管理分区存储管理,23,2. 分区的分配与回收 分区分配思路 依申请者所要求的主存区的大小,分区分配程序在自 由主存队列中找一个满足用户需要的空闲块; 若找到了所需的空闲区,有两种情况 空闲区与要求的大小相等,将该空闲区分配并从队列中摘除; 空闲区大于所要求的的大小,将空闲区分为两部分:一部分成
9、为已分配区,建立已分配区的描述器;剩下部分仍为空闲区。 返回所分配区域的首址; 否则,告之不能满足要求。,主存管理分区存储管理,24,分区回收思路 检查释放分区(即为回收分区)在主存中的邻接情况 ; 若上、下邻接空闲区,则合并,成为一个连续的空 闲区; 若回收分区不与任何空闲区相邻接,建立一个新的空 闲区,并加入到空闲区队列中。,主存管理分区存储管理,25,3. 放置策略 什么是放置策略 选择空闲区的策略,称为放置策略。 常用的放置策略 首次匹配(首次适应算法) 最佳匹配(最佳适应算法) 最坏匹配(最坏适应算法),主存管理分区存储管理,26,首次适应算法 首次适应算法是将输入的作业放置到主存里
10、第一个足 够装入它的地址最低的空闲区中。,主存管理分区存储管理,作业A 18KB,首次适应算法的例 空闲区队列结构 空闲区地址由低到高排序 首次适应算法的特点 尽可能地利用存储器中低 地址的空闲区,而尽量保 存高地址的空闲区。,27,最佳适应算法 最佳适应算法是将输入的作业放置到主存中与它所需 大小最接近的空闲区中。,主存管理分区存储管理,作业A 18KB,最佳适应算法的例 空闲区队列结构 空闲区大小由小到大排序 最佳适应算法的特点 尽可能地利用存储器中小的 空闲区,而尽量保存大的空 闲区。,28,最坏适应算法 最坏适应算法是将输入的作业放置到主存中与它所需 大小差距最大的空闲区中。,主存管理
11、分区存储管理,作业A 18KB,最坏适应算法的例 空闲区队列结构 空闲区大小由大到小排序 最坏适应算法的特点 尽可能地利用存储器中大的 空闲区。,29,三种放置策略的讨论 作业A要求18KB;作业B要求25KB;作业C要求30KB。 用首次适应算法、最佳适应算法、最坏适应算法来处理 该作业序列,看哪种算法合适。,主存管理分区存储管理,30,三种放置策略的讨论 首次适应算法、最佳适应算法、最坏适应算法的队列结构。,主存管理分区存储管理,31,三种放置策略的讨论 首次适应算法,主存管理分区存储管理,作业A要求18KB 作业B要求25KB 作业C要求30KB 首次适应算法对该作业序列是不合适的,32
12、,最佳适应算法,主存管理分区存储管理,作业A要求18KB 作业B要求25KB 作业C要求30KB 最佳适应算法对该作业序列是合适的,33,最坏适应算法,主存管理分区存储管理,作业A要求18KB 作业B要求25KB 作业C要求30KB 最坏适应算法对该作业序列是不合适的,34,4. 碎片问题及拼接技术 什么是碎片问题 在已分配区之间存在着的一些没有被充分利用的空闲区,主存管理分区存储管理,如何解决碎片问题?,什么是拼接技术 所谓拼接技术是指移动存储器中某些已分配区中的信息,使本来分散的空闲区连成一个大的空闲区。,35,1. 页式系统的基本概念 页面 程序的地址空间被等分成 大小相等的片,称为页面
13、, 又称为虚页。 主存块 主存被等分成大小相等的 片,称为主存块,又称为 实页。 页面与主存块的关系,主存管理页式存储管理,36,页表 什么是页表 为了实现从地址空间到物理主存的映象,系统建立的 记录页与内存块之间对应关系的地址变换的机构称为 页面映像表,简称页表。 页表的组成 高速缓冲存储器 地址变换速度快,但成本较高 主存区域 地址变换速度比硬件慢,成本较低,主存管理页式存储管理,37,分页映像存储的例,主存管理页式存储管理,38,2. 页式地址变换 页表 记录页与块之间对应关系的地址变换的机构。 虚地址结构 当CPU给出的虚地址长度为16位,页面大小为1KB时,在分页系统中地址结构的格式
14、如下:,主存管理页式存储管理,391,页式地址变换 页式地址变换的例 作业2地址空间中,设100号单元处有如下指令: mov r1,2500。当这条指令执行时,如何进行正确的 地址变换。,主存管理页式存储管理,2500 21024 + 452 p=2 w=452 0000100111000100 000010 0111000100,40,页式地址变换过程,主存管理页式存储管理,0 0 0 1 1 1,0 1 1 1 0 0 0 1 0 0,41,页式地址变换步骤 CPU给出操作数地址(为2500) ; 由分页机构自动地把逻辑地址分为两部分,得到页 号p和页内相对位移w (p =2, w =45
15、2); 根据页表始址寄存器指示的页表始地址,以页号为 索引,找到第2页所对应的块号(为7) ; 将块号b和页内位移量w拼接在一起,就形成了访问 主存的物理地址 (7*1024+452=7620),主存管理页式存储管理,42,采用联想存储器加快查表速度 什么是联想存储器 高速、小容量半导体存储部件,又称缓冲存储器。 快表 在缓冲存储器中存放正在运行的进程当前用到的页号 和对应的块号,又称为快表。,主存管理页式存储管理,43,利用快表进行地址映射,主存管理页式存储管理,44,3. 请调页面的机制 两种页式系统 简单页式系统 装入一个作业的全部页面才能投入运行。 请求页式系统 装入一个作业的部分页面
16、即可投入运行。 (1) 简单页式系统需要解决什么问题? (2) 请求分页系统需要解决什么问题?,主存管理页式存储管理,请求页式系统需解决的问题,扩充页表功能,中断位I 标识该页是否在主存 若i=1,表示此页不在主存;若i=0,表示该页在主存 辅存地址 该页面在辅存的位置,45,缺页处理,主存管理页式存储管理,作业2在请求分页系统中的存储映像,46,主存管理页式存储管理,缺页处理的例 作业2的主存块数为 m2=3,讨论程序执行 “mov r1,2120”指令时的情况。,CPU产生的虚地址为2120 分页机构得 p=2,w=72 查页表。该页中断位i=1 发生缺页中断 !,如主存中有空白块,且nm
17、 则直接调入 如主存中无空白块,或n m ,则需淘汰该作业在主存中的一页,47,主存管理页式存储管理,缺页处理,48,4. 淘汰机制与策略 什么是淘汰策略 用来选择淘汰哪一页的规则叫做置换策略,或称淘汰算法。,主存管理页式存储管理,如何决定淘汰哪一页?,扩充页表功能,引用位 标识该页最近是否被访问 为“0” 该页没有被访问;为“1” 该页已被访问 改变位 表示该页是否被修改 为“0” 该页未被修改;为“1” 该页已被修改,49,颠簸 颠簸(thrashing),又称为“抖动”。 简单地说,导致系统效率急剧下降的主存和辅存之间的 频繁页面置换现像称为“抖动”。,主存管理页式存储管理,缺页中断率
18、假定程序p共有n页,系统分配m块,有 1mn; 若程序p在运行中:成功的访问次数为s,不成功的访 问次数为f; 缺页中断率: f=f/ (s+ f) f= f (r,m,p); r:置换算法; p:程序特征; m:系统分配的块数,50,主存管理页式存储管理,最佳算法(OPT算法) 当要调入一新页而必须先淘汰一旧页时,所淘汰的那一页应是以 后不再要用的,或者是在最长的时间以后才会用到的那页。,先进先出淘汰算法(FIFO算法),什么是先进先出淘汰算法 总是选择在主存中居留时间最长(即最早进入主存)的一页淘汰。 先进先出淘汰算法的实现 建立一个页面进入主存的先后次序表; 建立一个替换指针,指向最早进
19、入主存的页面; 当需要置换一页时,选择替换指向的那一页,然后调整替换指 针的内容。,51,主存管理页式存储管理,页号表 页面进入主存的先后次序: 2451,当要调入第6页时: 置换第2页 将第2页改为6 替换指针指向第4页,52,主存管理页式存储管理,在存储分块表中建立次序表 页面进入主存的先后次序: 4512,当要调入第6页时: 如何处理 ? 512 6,53,主存管理页式存储管理,最久未使用淘汰算法(LRU算法),什么是最久未使用淘汰算法 总是选择最长时间未被使用的那一页淘汰。 最久未使用淘汰算法的实现 用引用位考察页面的使用情况; 当访问页面时,将引用位置1,并记时; 当要淘汰一页时,选
20、择时间最长的一页淘汰。 要精确实现很困难 硬件方法:采用计数器 软件方法:采用页号栈,54,主存管理页式存储管理,软件方法:采用页号栈 页面访问轨迹:451 2 5 6,访问4、5、1、2页后栈的内容,访问第5页后,调整栈的内容,访问第6页后,栈的内容,55,主存管理页式存储管理,LRU近似淘汰算法,56,主存管理页式存储管理,LRU近似淘汰算法举例,当要调入第6页时,如何处理 ?,57,1. 段式地址空间 什么是段 分段是程序中自然划分的一组逻辑意义完整的信息集合。 分段的例:代码分段、数据分段、栈段页。 作业地址空间 由若干个逻辑分段组成,每个分段有自己的名字,对于一个分段而 言,它是一个
21、连续的地址区。,主存管理段页式存储管理,58,段式地址结构,主存管理段页式存储管理,2. 段式地址变换,段式地址步骤 取出程序地址(s,w); 用s检索段表; 如w0或wL则主存越界; (Bw)即为所需主存地址,59,3. 页式系统与段式系统的区别 用户地址空间的区别 页式系统中用户地址空间一维地址空间 段式系统中用户地址空间二维地址空间 分段和页面的区别 分段 页面 信息的逻辑划分 信息的物理划分 段长是可变的 页的大小是固定的 用户可见 用户不可见 w字段的溢出 w字段的溢出自动 将产生越界中断 加入到页号中,主存管理段页式存储管理,60,4. 段页式系统 在段式存储管理中结合分页存储管理
22、技术,在一个分段内 划分页面,就形成了段页式存储管理。 段页式地址结构的用户地址空间,主存管理段页式存储管理,61,主存管理段页式存储管理,段页式系统中段表、页表与主存的关系,62,1. Linux系统段页式地址变换 Linux系统的分段 Linux系统处在用户态时,使用用户代码段和用户数据 段来对指令和数据寻址 在核态时,使用内核代码段和内核数据段来对指令和 数据寻址 每个分段是一个连续的线性地址空间,从0开始直到 2321的寻址长度。,主存管理Linux系统存储管理,63,80 x86分页结构 80 x86微处理器的分页单元处理4KB的页。一个32位的 线性地址分为3个域。,主存管理Lin
23、ux系统存储管理,页目录字段指向页目录项; 页表字段指向进程的一个页表项; 页内位移则是页内偏移量,64,主存管理Linux系统存储管理,三级页表 第一级:全局目录 (PGD) PGD中的表项指向页目录中的一个表项 二级页表:页目录 (PMD) PMD中的表项指向页表PTE中的一个表项 三级:页表 该表项指向物理页 (页框) 的主存地址,65,主存管理Linux系统存储管理,线性地址转换为物理地址 地址转换过程 Linux系统通过三级页表完成线性地址到物理地址的转换,66,主存管理Linux系统存储管理,地址变换步骤 由cr3指示的当前页目录的物理地址与分页结构中的 页目录字段的内容相加指向页
24、目录表项; 由页目录表项内容得到当前使用的页表的始地址, 通过分页结构中的页表字段的内容找到该页表项; 由页表项指示的该页的物理页(页框)的主存地址与 分页结构中的页内位移相加,得到最终的物理地址。,67,2. Linux系统动态内核管理 物理页的描述 Linux系统主存分配的基本单位是物理页(又称为页框) 主存管理单元MMU以页为单位进行分配和处理 32位体系结构支持4KB的页,64位体系结构支持8KB的页 内核用struct page结构描述页框 struct page flags; /* 页的状态 */ _count; /* 该页被引用的次数 */ *virtual; /* 页的虚拟地址
25、,通常情况下记录页在虚拟主存中的地址 */ ;,主存管理Linux系统存储管理,68,物理主存分区 内核将系统中的所有页框划分为不同的区,具有相似特 征的页框归为同一个分区。 Linux系统共分为三种分区 ZONE_DMA 这个分区包含的页只能用来执行DMA操作,大小为16MB; ZONE_NORMAL 这个分区包含的页都是能正常映射的页,大小为16MB 896MB ZONE_HIGHMEM 这个分区包含的是“高端主存”,其中的物理页并不能永久地映射到内核地址空间,大小为896MB。,主存管理Linux系统存储管理,69,分区页框的分配 Linux内核通过页框和区对主存进行管理,实现了请求 主
26、存的底层机制; 内核提供提供一组访问接口 (函数或宏) 可以直接的方 式获得动态主存,注意这种方式只能由内核使用。,主存管理Linux系统存储管理,70,主存管理Linux系统存储管理,分区页框分配器 分区页框分配器( Zoned page frame allocator)是一个内核 子系统,它负责对连续页框的主存分配。 分区页框分配器的组成如下图,71,主存管理Linux系统存储管理,伙伴系统算法 主存管理中的外碎片问题 当频繁地请求和释放不同大小的连续页框,就会导致在已分配 页框内产生许多小的、分散的空闲页框; Linux系统采用伙伴系统算法记录当前空闲的连续页框块的情 况,以尽量避免为满
27、足小块的请求而分割大的空闲块。,伙伴系统算法中页框的组织 将所有的空闲页框分组为11个块链表; 每个块链表分别包含大小为1、2、4、8、16、32、64、128、 256、512、1024个连续页框; 每个块的第一个页框的物理地址是该块大小的整数倍。,72,主存管理Linux系统存储管理,页框的分配过程 以分配256个页框的块为例说明伙伴系统算法的页框的 分配过程 首先在256个页框的链表中检查是否有一个空闲块满足需要; 若没有,则在512个页框的链表中找满足需要的空闲块 若存在这样的块,算法将这512的页框分为2半; 一半用来满足请求,另一半插入到256个页框的链表中; 若还没有,则在102
28、4个页框的链表中找满足需要的空闲块; 若存在,则将256块用来满足要求,其余部分分为256块和 512块分别插入到相应的链表中; 若不存在;算法放弃并给出不能满足分配的信息。,73,主存管理Linux系统存储管理,页框的释放过程 分配过程的逆过程就是页框的释放过程 内核试图将大小为b 的一对空闲伙伴块合并为一个大小为2b的 单独块。满足以下条件的两个块称为伙伴: 两个块的大小相同,记为b; 它们的物理地址是连续的; 第一块的第一个页框的物理地址是2b212的倍数 算法是迭代的,如果它成功合并所释放的块,它会试图合并2b 的块,以再次试图形成跟更大的块。,74,3. Linux系统的进程地址空间 Linux内核提供用于页框分配和释放的函数(或宏)。这些函数只能由 内核直接使用,用户进程请求
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年硅湖职业技术学院单招职业技能考试备考试题含详细答案解析
- 2026年唐山幼儿师范高等专科学校高职单招职业适应性测试模拟试题及答案详细解析
- 2026年浙江经济职业技术学院单招综合素质笔试备考题库含详细答案解析
- 2026年广西安全工程职业技术学院高职单招职业适应性测试模拟试题及答案详细解析
- 2026年山东中医药高等专科学校单招职业技能考试备考试题含详细答案解析
- 2026年汕尾职业技术学院单招综合素质笔试参考题库含详细答案解析
- 2026年青岛农业大学海都学院单招综合素质笔试备考题库含详细答案解析
- 2026河南洛阳市国润企业服务有限公司本部部分岗位社会化招聘2人参考考试题库及答案解析
- 2026年江苏航运职业技术学院单招综合素质笔试备考试题含详细答案解析
- 2026年甘肃陇南宕昌县理川中学食堂从业人员招聘参考考试试题及答案解析
- 海内外云厂商发展与现状(三):资本开支压力与海外云厂需求情况拆解-国信证券
- 2025年社区网格员招录考试真题库(含答案)
- GB/T 46510-2025玩具水基材料中游离甲醛的测定高效液相色谱法
- 溴化锂清洗施工方案
- 第四方支付业务合规指引
- 手势舞基本功课件
- 江苏省南京鼓楼区2026届物理八年级第一学期期末质量检测模拟试题含解析
- 人教版七年级英语上册全册语法知识点梳理
- 大九九乘法口诀表(打印)
- DB11∕T 510-2024 公共建筑节能工程施工质量验收规程
- 专题:完形填空 七年级英语下册期末复习考点培优专项鲁教版(五四学制)(含答案解析)
评论
0/150
提交评论