操作系统2002--存储管理(2)

上传人:豆浆 文档编号:48563628 上传时间:2018-07-17 格式:PPT 页数:46 大小:576KB
返回 下载 相关 举报
操作系统2002--存储管理(2)_第1页
第1页 / 共46页
操作系统2002--存储管理(2)_第2页
第2页 / 共46页
操作系统2002--存储管理(2)_第3页
第3页 / 共46页
操作系统2002--存储管理(2)_第4页
第4页 / 共46页
操作系统2002--存储管理(2)_第5页
第5页 / 共46页
点击查看更多>>
资源描述

《操作系统2002--存储管理(2)》由会员分享,可在线阅读,更多相关《操作系统2002--存储管理(2)(46页珍藏版)》请在金锄头文库上搜索。

1、五、分段存储管理 1、基本原理 引入分段存储管理方式,主要是为了满足用户的下述要求:q 方便编程q 分段共享q 分段保护q 动态链接q 动态增长A、分段在分段存储管理方式中,作业的地址空间被划 分为若干个段,每个段定义了一组逻辑信息。每个 段的逻辑地址都是从0开始。段内地址是连续的, 但段与段之间不一定是连续的。 分段的基本原理 子程 段序数据栈符号表主程 序段系统 函数作业的逻辑地址由段号与段内地址所组成,结构如下 : 段号段内地址3116 150如果机器的地址有m位,其中段内地址占n位,则每 个作业最多可分为2(m-n) 个段。 B、段表为使程序能够正常运行,亦即能从物理内存中 找出每个逻

2、辑段所对应的位置,应象分页系统那样 ,在系统中为每个作业建立一张段的映射表,简称 段表。在配置了段表后,程序在执行过程中可通过 查找段表,找到每个段所对应的内存区。 子程 段序数据栈符号表主程 序段系统 函数段表段长基址段号012342、主存空间的分配与去配 段式存储管理分配主存空间的方法及回收存储 空间的方法与可变分区管理方式所采用的方法相同 。 3、地址转换与存储保护 地址变换机构和变换过程 段表始址段表长度1K6K6004K5008K2009200位移量段号段号01232100+控制寄存器8292基址段长越界逻辑地址物理地址主存例题:某分段管理中采用下表所示的段表: 段号段的长度段的起始

3、 地址0 1 2 3 4660 14 100 580 96219 3330 90 1237 1954 给定段号和段内地址,说明分段管理中的地址变换过程; 计算0,430,1,10,2,500,3,400,4,20,5,100 的内存地址,其中方括号内的第一个元素是段号,第二个元素是段内地址; 说明存取主存的一条指令或数据至少要访问几次内存。解答:0,430 的物理地址是:219+430=6491,10 的物理地址是:3300+10=33102,500 的物理地址是:500100,越界3,400 的物理地址是:1237+400=16374,20 的物理地址是:1952+20=19725,100

4、的物理地址是:54,段号越界存取主存的一条指令或数据至少要访问2次内存段号段的长度段的起始 地址0 1 2 3 4660 14 100 580 96219 3330 90 1237 1954分段的共享 与分页系统相比较,分段系统对段的保护更加简单易行。 假定有一文本编辑程序,程序区500K,数据区100K,两个用 户作业同时进行文本编辑,对于分页系统,假定每个页面大小为 1K。对于分页系统,每个用户作业需建立一个页表,其中,500 个页表项对应程序区,100个页表项对应数据区。而如果采用分 段系统,则每个段表只需两个段表项,系统的开销要小的多,而 且管理也会更加简单。 程序段数据段程序数据页表

5、段表分页和分段的主要区别 1、页是信息的物理单位,而段是信息的逻辑单位;2、页的大小固定且由系统决定,而段的长度不固定,决定于用户编写的程序;3、分页的作业地址空间是一维的,而分段的地址空间是二维的。4、分段系统便于动态链接,存储保护,便于增长、修改和信息共享。4、可分页的段式存储管理 A、基本原理先将作业分为若干个段,再把每个段划分为若干页。 段号页内地址段内页号地址结构段号状态态页页表 大小页页表 始址段表控制寄存器0号段页表1号段页表 主存B、地址变换过程 再获得逻辑地址后,根据段表的控制寄存器,得到段表的首地址; 首先利用段号,将它与段表长度进行比较,如段号大于段表长度,表示段号越界;

6、 根据段号求得对应该段的页表的首地址; 再根据段内页号得到该页对应的物理块的地址; 最后将物理块的首地址和页内地址相加构成最后的物理地址 。 1、基本概念 虚拟存储器为用户提供一种不受物理存储器结构和容量限 制的存储器的技术称为虚拟存储器,或称虚拟存储 技术。它是用户编程时所使用的一种用户思维中的存 储器,它可以是任何结构(一维线性空间、二维空 间、乃至n维空间),并没有容量的限制。现代计算机操作系统都采用了这种技术,使得 用户编程序时不需要考虑物理内存的结构和容量, 极大地方便了用户。虚拟存储器需要大容量的外存储器的支持,或 称物资基础。五、虚拟存储器 2、虚拟存储器的工作原理 1、局部性原

7、理程序执行时的局部性规律: 程序在执行时,除了少部分的转移和过程调用指令外,在大多数情况下,仍然是顺序执行的。 过程调用将会使程序的执行轨迹从一部分内存区域转到另一部分区域,但在大多数情况下,过程调用的深度都不超过5。 程序中存在许多循环结构,它们虽由少数指令构成,但可以多次执行 程序中的许多数据结构,如数组,在被操作时,往往局限于一个很小的范围内。 局部性原理表现在: 时间局限性是指某个位置最近被访问了,那么往往很快又要 被再次访问。 空间局限性是指一旦某个位置最近被访问了,那么它附近的 位置也要被访问。 3、虚拟存储器的定义 所谓虚拟存储器,是指仅把作业的一部分装入内 存便可运行作业的存储

8、器系统。 4、虚拟存储器的实现方式: q 页式虚拟存贮 q 段式虚拟存储 页式虚拟存储它是在分页系统的基础上,增加了请求调页功 能、页面置换功能所形成的虚拟存储系统。系统必须提供的硬件支持: 请求分页的页表机构 缺页中断机构 地址变换机构 段式虚拟存储这是在分段系统的基础上,增加了请求调段功 能及分段置换功能后,所形成的段式虚拟存储系统 。系统必须提供的硬件支持: 请求分段的段表机构 缺段中断机构 地址变换机构虚拟存储器的特征: v离散性 指内存分配时采用离散分配方式v多次性 指一个作业被分成多次的调入内存运行v对换性 指允许在作业运行过程中在内存和磁盘间换进、换出v虚拟性 指能够从逻辑上扩充

9、内存容量。 1、问题的提出 在页式存储管理提高了内存的利用效率,但并不为用户提供虚存,换句话说,当一个用户程序的页数大于当前总空闲内存块数时,系统就不能将该程序装入运行。即用户程序将受到物理内存大小的限制。为了解决这个问题,人们提出请求分页存储管理技术页式虚拟存储管理 需要解决的问题 如何发现执行的程序或访问的数据不在内存; 程序或数据什么时候调入内存,调入策略; 当一些页调入内存时,内存没有空闲内存时,将淘汰哪些页,采用什么淘汰策略。2、基本原理 页式虚拟存储中的页表项组成: 页号物理块号状态位访问字段修改位外存地址状态位:用于指示该页是否已调入内存; 访问字段:用于记录该页在一段时间内被访

10、问的次数; 修改位:表示该页在调入内存后是否被修改过; 外存地址:用于指出该页在外存上的地址。3、页式虚拟存储中的缺页中断机构 缺页中断与一般中断的区别: v在指令执行期间产生和处理中断信号 v在一条指令执行期间,可能产生多次中断。 COPY A TO BAB4、页式虚拟存储中的地址变换机构在分页系统地址变化机构的基础上,再增加 某些虚拟存储器的功能而形成的。 地址变换过程 页号页表长度越界中断开 始CPU检索快表页表项在快表中访问页表页在内存修改快表修改访问位和修改位形成物理地址地址变换结束内存满否该页被修改过将一页从外存换入内存启动I/O硬件CPU从外存读缺页将该页写回外存修改页表选择一页

11、换出从外存中找到缺页保留CPU现场缺页中断处理程序请求访问一页是否是否否是否是否是产生缺页中 断,请求调页5、页面调度 主存的分配与置换策略固定分配局部置换:基于进程的类型(交互型或批 处理型),或根据程序员、系统管理员的建议,为 进程分配一固定页数的内存空间。可变分配全局置换:先为系统中的每一个进程分配 一定数目的物理块,OS本身保留一个空闲物理块队 列。当某进程发现缺页时,由系统从空闲物理块队 列中取出一个进行分配。可变分配局部置换:同样基于进程的类型或根据程 序员的要求,为每个进程分配一定数量的内存空间 。当某进程发生缺页时,只允许从该进程在内存的 页面中选出一页换出,这样就不会影响其它

12、进程的 运行。 6、分配算法 在采用固定分配算法时,如何将系统中可供分配 的所有物理块分配给各个进程,可采取下述方法: 平均分配算法:将系统中所有可供分配的物理块,平 均分配各个进程。 按比例分配算法:根据进程的大小按比例分配物理块 。 例如:如果各进程页面数的总和是: 同时,假定系统中可用物理块总数为m, 则每个进 程所能分到的物理块bi为: 考虑优先权的分配算法:把内存中可供分配的物理块分 成两个部分:一部分按比例分配给各个进程;另一部分 则根据各进程的优先权,适当地增加其相应份额后,分 配给各进程。 7、页面调入策略 何时调入页面: 预调页策略:将那些预计在不久之后便会被访问的程序 和数

13、据所在的页面,预先调入内存。 请求调页策略:当发现所需要的页面不再内存时,立即 提出请求,由系统将所需页面调入内存。 从何处调入页面 对于不同的系统,所采用的方法也不相同,可分成三种 情况:如果系统拥有足够的内存空间,可以全部从对换区调入页面 ,以提高调页速度。如果系统缺少足够的内存空间,则可以对不被修改的部分 ,直接从文件区调入;对于那些可能被修改的部分,将它们换 出时,便需调到对换区,以后需要时再从对换区调入。UNIX方式:凡是未运行过的页面,都从文件区调入,对于 曾经运行过而又被换出的页面,由于是放在对换区的,因此在 下次调入时,应从对换区调入。 常用到的几个术语: 抖动:刚刚被淘汰出去

14、的页面,不久又被调入主存,这种现象,称为抖动(也称为颠簸)。 页面走向:用引用串来表示。 页面失效率:缺页中断次数占全部访问页面数的百分比,即:失效率 = (失效次数 / 访问页面总数) 100%在讨论页面淘汰算法前假设: 引用串:对进程逻辑地址空间的访问所涉及到的页面号序列。 仅考虑页面号,不需考虑其页内位移。 如连续两次对页面P进行访问,则至少第二次访问不会产生缺页中断。 随着可用块数量的增加,产生缺页中断的次数将会减少。 8、页面置换算法v先进先出页面置换算法该算法总是在淘汰最先进入内存的页面,即选 择在内存中驻留最久的页面予以淘汰,即先进入主 存的页,先退出储存。FIFO(3块) 引用

15、串7 0 1 2 0 3 0 4 2 3 0 32 1 2 01 7 0 17 7 7 2 2 2 4 4 4 0 0 0 7 7 70 0 0 3 3 3 2 2 2 1 1 1 0 01 1 1 0 0 0 3 3 3 2 2 2 1发生置换 共进行了12次页面置换 假定系统分配给某进程3个存储块,并考虑如下引用 串:7,0,1,2,0,3,0,4,2,3,0,3,2,1,2,0,1,7,0,1 FIFO(4块) 共进行了6次页面置换 引用串701203042303212017017012 3 4 0 12 7 701 2 3 4 01 2 70 1 2 3 40 1 7 0 1 2 34 0 发生置换 例题:在请求分页存储管理中,若采用先进先出页面淘汰算法, 会产生一种奇怪的现象:分配给作业的物理块越多,作业执行时 的缺页率反而升高。试举一例说明这种现象。 解答:若在作业运行过程中地址访问的引用串为:4,3,2,1, 4,3,5,4,3,2,1,5。下面是为作业分配3个和4个物理块时 的页面访问过程: 引用串4321435432154443214-3 5-332143-52-21435-21-缺页 FIFO(3块) FIFO(4块) 引用串4

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

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