北京工业大学操作系统课ppt课件

上传人:我*** 文档编号:148192310 上传时间:2020-10-17 格式:PPTX 页数:96 大小:1.61MB
返回 下载 相关 举报
北京工业大学操作系统课ppt课件_第1页
第1页 / 共96页
北京工业大学操作系统课ppt课件_第2页
第2页 / 共96页
北京工业大学操作系统课ppt课件_第3页
第3页 / 共96页
北京工业大学操作系统课ppt课件_第4页
第4页 / 共96页
北京工业大学操作系统课ppt课件_第5页
第5页 / 共96页
点击查看更多>>
资源描述

《北京工业大学操作系统课ppt课件》由会员分享,可在线阅读,更多相关《北京工业大学操作系统课ppt课件(96页珍藏版)》请在金锄头文库上搜索。

1、第八章第九章,分级存储体系,存储管理概述,分级存储体系,存储器是计算机系统中的一种十分重要的资源 存储器的价格也十分昂贵,程序执行过程,内存由一组字节组成,每个字节有一个地址 CPU根据PC寄存器的值从内存获取指令 这些指令可能还需要从内存中获取数据。,存储管理的目的和任务,主存的分配和回收 地址映射/地址捆绑/重定位 存储保护 扩充主存,存储管理相关概念 覆盖技术与交换技术 分区式存储管理 页式存储管理 段式存储管理 段页式存储管理,实存储器管理技术,存储管理相关概念 覆盖技术与交换技术 分区式存储管理 页式存储管理 段式存储管理 段页式存储管理,实存储器管理技术,逻辑地址 物理地址,CPU

2、生成的地址是逻辑地址 内存单元的地址是物理地址 程序生成的逻辑地址的集合是逻辑地址空间 所有物理地址的集合是物理地址空间,用户是否能预知 程序代码调入内存之后 所放入的地址?,地址映射/地址捆绑/重定位,逻辑地址向物理地址的转换过程就是重定位,重定位的发生时机,编译时 编译时就知道进程将在内存中驻留的地址,可以直接生成绝对代码。例如,MS-DOS的COM文件 加载时 编译生成可重定位代码,捆绑/重定位在加载时进行 静态重定位 执行时 若进程在执行时允许移动,则捆绑/重定位在执行时进行 动态重定位,动态重定位的硬件实现,动态重定位是由内存管理单元(MMU)实现的 设置专门的寄存器,称为基址寄存器

3、(重定位寄存器)和界限寄存器。 程序指令地址的重定位在指令执行的时候实现,保护,保护操作系统不受用户进程的影响 保护用户进程不受其它用户进程影响 用基地址寄存器(重定位寄存器)和界限器存器,存储管理相关概念 覆盖技术与交换技术 分区式存储管理 页式存储管理 段式存储管理 段页式存储管理,实存储器管理技术,覆盖,在任何时候只能在内存中保留所需要的指令和数据。新的指令和数据可覆盖不用的指令和数据 不需要操作系统提供特别支持 例子 two-pass汇编程序,交换,在内存不足的情况下,需要把一个进程整个换入和换出,称为交换 交换空间的分配 进程在被换出时分配交换空间 每次换到不同的位置 进程分配固定的

4、交换空间,存储管理相关概念 覆盖技术与交换技术 分区式存储管理 页式存储管理 段式存储管理 段页式存储管理,实存储器管理技术,为什么用分区式存储管理,前提 操作系统占用主存的固定部分 主存的其它部分被其它进程占用 采用多道程序设计可以提高CPU利用率 为了让主存中尽量多地保存进程而不会向互干扰,最简单的方法是将这一部分存储器分为有固定边界的区域。,固定分区,把存储器分为大小相等的区 所需空间小于等于分区大小的进程可以调入可用分区 进程换入换出 所有的分区都是满的 没有进程处于就绪状态或运行状态,固定分区的特点,优点,简单,缺点,程序可能太大而不能放入一个分区 程序员要设计一种覆盖的方法。 主存

5、的应用效率低 小程序也要占用整个分区 限制了系统中可以激活的进程数目,因调入的数据小于分区而产生分区空间的浪费,称为内部碎片。 用不等长的分区来缓解,但不能根本解决。,放置算法,等长分区,主存中只要有可用的分区,进程就可以调入到那个分区中 如果所有的分区都被不能执行的进程占用,则其中的一个进程会被换出以放入新进程,不等长分区,将进程放置在它最适合的最小的分区中 将所有进程排在一个队列中,当该调入一个进程进入主存中时,就选择可用的且可以保存这个进程的分区,可变分区,系统中分区的长度和数目是可变的。 当有进程进入系统时,从主存按一定策略划出一块与进程所需空间相等的区分配给进程,可变分区的特点,缺点

6、 一开始运行得很好,但是在执行一段时间后,会出现一些小的洞。这种在分区外的洞称为外部碎片。 需要用内存紧缩(紧凑)方法解决。 分配多大的内存给进程。 简单方法:按照需求的大小进行分配。这样如果程序有可以动态增长的段,就有问题。 解决方法是为进程分配一些额外的内存。,内存管理方法:位图,将内存按一定大小划分成分配单位,每个分配单位对应位图中的一位 用0表示空闲,1表示使用(或者反过来) 在内存大小确定的情况下,分配单位的大小决定了位图的大小。,内存管理方法:链表,维护一个已分配和空闲内存段的链表。 每一个表项都有:P或H表示是进程还是空闲区域、起始地址、段长度和指向下一个表项的指针。,链表方法的

7、内存分配算法,实例:Buddy系统,固定分区和可变分区都有自己的优点和缺点 固定分区 固定分区机制限制了可以被激活的进程数目,并且对用户空间的是效率很低 可变分区 可变分区机制在维护上比较复杂,并且在紧凑时浪费处理器时间 Buddy系统是两者的结合,实例:Buddy系统,分区存储管理的问题,前面的存储器管理方式都要求一个进程在主存中占用连续的存储空间。 会产生小碎片,只能用紧凑的方式拼接成大的空间 开销大 如果进程可以分散到主存中不相邻的分区中,就不必进行紧凑。,存储管理相关概念 覆盖技术与交换技术 分区式存储管理 页式存储管理 段式存储管理 段页式存储管理,实存储器管理技术,页式存储管理,把

8、主存分为定长的块 称为页框(帧) 把用户进程也分为与主存的块大小相等的块 称为页 内部碎片只在进程的最后一页中发生,没有外部碎片。 为页和页框分别编号,从0开始。,如何实现 地址重定位?,1页=1024,页表,2000/1024=1976,页号,页内位移,5*1024+976=6096,物理地址,关于页表,页表存储在什么地方?,内存中有多少个页表?,如何定位一个进程的页表?,页表导致什么开销?,硬件支持,内存管理单元(MMU) 在使用存储器时,逻辑地址不是直接送到内存总线上,而是送到内存管理单元(MMU)。 MMU由一个或一组芯片组成 其功能是把逻辑地址转换成物理地址 系统中设置一个页表寄存器

9、PTR 用于存放进程页表的起始地址和长度 页表存放在内存中,如何得到页号和页内位移,分页地址变换机构会自动将逻辑地址分为页号和页内地址位移两部分 如果页的大小是2的幂次就可以直接划分,2000/1024=1976,0011111010000/10000000000 =0011111010000,地址映射过程,0011111010000,1011111010000,分页地址变换机构自动将逻辑地址分为页号和页内地址位移,以页号为索引去查询页表,得到页框号,页框号与页内地址位移相结合,获得 物理地址,页式存储管理内存保护,页表中增加保护位 读写 只读,页式存储管理共享和保护,代码共享的需求 可重入代

10、码(纯代码) 例如 一个系统中有40个用户,每个执行一个文本编辑器 150k的代码+50k数据 40个用户需8000k 但是如果每个用户只保存自己的数据,文本编辑器作为共享代码则需2150k,页式存储管理内存共享,?,页式存储管理的优缺点,优点,碎片小,节省存储器空间 分页对程序员是透明的,缺点,共享和保护不容易实现 程序员不能按照自己的方式组织程序,存储管理相关概念 覆盖技术与交换技术 分区式存储管理 页式存储管理 段式存储管理 段页式存储管理,实存储器管理技术,为什么需要段式管理,逻辑存储器是一维的,但是对于程序员来说,有两个或多个地址空间是有优势的 简化对变长的数据结构的管理 可以对程序

11、分段编译再连接 有助于进程之间共享数据(例如共享库) 可以对不同的段实行不同的保护,原理,让存储器提供多个相互独立的空间,称为段(segment) 每个段由0到最大的线性地址构成。 不同的段的长度不同,段的长度可以在运行期间改变。,段表,硬件支持,分段硬件负责将逻辑地址转换成物理地址 要求设置段基址寄存器和段界限寄存器,地址映射,JMP 2:200,2:200,4300+200=4500,段的保护,保护以段为单位 指令段只读或者只执行 数据段可读可写 段表加入相应位,段的共享,以段为单位进行,段式存储管理的优缺点,优点,共享和保护容易实现 程序员可以按照自己的方式组织程序,缺点,有碎片,浪费存

12、储器空间,存储管理相关概念 覆盖技术与交换技术 分区式存储管理 页式存储管理 段式存储管理 段页式存储管理,实存储器管理技术,段页式存储原理,段页式管理是将用户的地址空间分段,段内按内存页框的大小分页。 逻辑地址由段号、段内页号和页内位移三部分组成。 操作系统在进行管理时,为每个进程维护一个段表和多个页表。 页表的结构与页式管理中的页表一样 段表中包含的是页表的起始地址和页表的长度及其它控制位。,地址映射,段表? 段内页表? 如何进行地址映射?,第五次作业,基础作业 1内部碎片与外部碎片之间的区别? 2内存按顺序有100k,500k,200k,300k,600k,用首次适应、最佳适应和最差适应

13、如何放置212k,417k,112k,426k的进程? 3假设一个有8个1k页面的逻辑地址空间,映射到一个32个页框的物理内存,问:逻辑地址多少位?物理地址多少位?,基础作业 4(8.12)有段表 段基地址长度 0219600 1230014 290100 31327580 4195296 下面的物理地址是多少? a)0,430; b)1,10; c)2,500; d)3,400; e)4,122,基础作业 5在页面大小为4k的系统中,根据图中所示 页表,下面的逻辑地址经过重定位之后的物理 地址是什么? a)20; b)4100; c)8300 6一台计算机为每个进程提供65536字节的地址空

14、间,页面的大小为4k。一个程序有32768字节的正文,16386字节的数据,15870字节的堆栈,此程序是否能装入此地址空间?若页面大小为512字节呢?,程序局部性原理 请求页式存储管理基础 页表的其他形式 页面置换算法 请求段式存储管理,虚拟存储器管理技术,程序局部性原理 请求页式存储管理基础 页表的其他形式 页面置换算法 请求段式存储管理,虚拟存储器管理技术,背景,在许多情况下不需要把整个程序放在内存中 处理异常错误条件的代码几乎不执行 数组、链表和表通常分配了过多的内存 程序的某些选项很少使用 不是同时需要程序的全部,背景,1969年P.Denning提出局部性原理 在较短时间内 程序的

15、执行仅限于某个部分 程序所访问的存储空间也局限于某个区域。,具体内容,程序在执行时,除了少部分的转移和过程调用外,大多数情况下仍是顺序执行的。 过程调用会使程序的执行轨迹从一部分内存区域转至另一部分,但调用深度不会超过5。即程序会在一段时间内局限在这些过程的范围之内运行。 程序中存在循环,由少数指令构成,但多次执行。 对数据结构的处理都局限于很小的范围内。,结论,作业在运行之前,没有必要全部装入内存 将要运行的部分先装入内存,启动运行 其余部分暂时留在磁盘上。 如程序要访问的部分不在内存,用操作系统提供的中断将这部分程序调入内存 如内存已满,则调用置换功能, 一个大程序就可以在较小的空间中运行

16、 内存中可以装入更多的进程并发执行 从用户的角度看,系统的内存容量扩大了,把这样的存储器称为虚拟存储器。,虚拟存储器的概念,虚拟存储器就是指仅把作业的一部分装入内存就可以运行作业的存储系统。它具有请求调入功能和置换功能,是从逻辑上对内存容量进行扩充的一种存储系统。 CPU生成的地址是虚拟地址 内存单元的地址是物理地址 程序生成的虚拟地址的集合是虚拟地址空间 所有物理地址的集合是物理地址空间,程序局部性原理 请求页式存储管理基础 页表的其他形式 页面置换算法 请求段式存储管理,虚拟存储器管理技术,请求页式存储管理,一个进程调入内存时只调入部分页 当需要的页面不在内存时,请求调入所需的页面 如果内存不足,可以把内存中的某个页面换出到外部辅存中,请求页式存储管理的页表如何设计?,页表,从地址映射的角度,从请求调入的角度,从页面淘汰的角度,这页表也太胖了,内存有限啊!,页表,页框号 状态位P:表示这一页是否在内存中。 修改位M:表示这一页在调入内存后是否被修改过。 访问字段A:用于记录在一段时间内被访问的次数,或最近已有多长时间没有被访问,供给置

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号