第04章计算机操作系统剖析

上传人:今*** 文档编号:107046910 上传时间:2019-10-17 格式:PPT 页数:220 大小:2.40MB
返回 下载 相关 举报
第04章计算机操作系统剖析_第1页
第1页 / 共220页
第04章计算机操作系统剖析_第2页
第2页 / 共220页
第04章计算机操作系统剖析_第3页
第3页 / 共220页
第04章计算机操作系统剖析_第4页
第4页 / 共220页
第04章计算机操作系统剖析_第5页
第5页 / 共220页
点击查看更多>>
资源描述

《第04章计算机操作系统剖析》由会员分享,可在线阅读,更多相关《第04章计算机操作系统剖析(220页珍藏版)》请在金锄头文库上搜索。

1、第四章 存储器管理,4.1 存储器的层次结构 4.2 程序的装入和链接 4.3 连续分配方式 4.4 基本分页存储管理方式 4.5 基本分段存储管理方式 4.6 虚拟存储器的基本概念 4.7 请求分页存储管理方式 4.8 页面置换算法 4.9 请求分段存储管理方式,4.1 存储器的层次结构,4.1.1 多级存储器结构 三级:最高层为CPU寄存器,中间为主存,最底层是辅存。(通用计算机) 六层:寄存器、高速缓存、主存储器、磁盘缓存、固定磁盘、可移动存储介质等。高档的计算机 存储层次中越往上,存储介质的访问速度越快,价格也越高,相对存储容量也越小。 寄存器、高速缓存、主存储器和磁盘为操作系统存储管

2、理的管辖范畴。 固定磁盘和可移动存储介质属于设备管理的管辖范畴。,图4-1 计算机系统存储层次示意,4.1.2 主存储器与寄存器 1主存储器 主存储器(简称内存或主存primary storage)是计算机系统中一个主要部件,用于保存进程运行时的程序和数据,也称可执行存储器,主存可以被处理器直接访问,但CPU不能直接访问外存。为了提高处理机的利用率和系统的工作效率,主存中经常存放多个程序和数据。,2寄存器 寄存器访问速度最快,完全能与CPU协调工作,但价格却十分昂贵,因此容量不可能做得很大。寄存器的长度一般以字(word)为单位。寄存器用于加速存储器的访问速度。,4.1.3 高速缓存和磁盘缓存

3、 1高速缓存(Cache) 高速缓存容量大于或远大于寄存器,而比内存约小两到三个数量级左右,从几十KB到几MB,访问速度快于主存储器。 根据程序执行的局部性原理(即程序在执行时将呈现出局部性规律,在一较短的时间内,程序的执行仅局限于某个部分),将主存中一些经常访问的信息存放在高速缓存中,减少访问主存储器的次数,可大幅度提高程序执行速度。,局部性原理?,2磁盘缓存 磁盘缓存是操作系统为磁盘输入输出而在普通物理内存中分配的一块内存区域。 由于目前磁盘的I/O速度远低于对主存的访问速度,因此将频繁使用的一部分磁盘数据和信息,暂时存放在磁盘缓存中,可减少访问磁盘的次数。磁盘缓存本身并不是一种实际存在的

4、存储介质,它依托于固定磁盘,提供对主存储器存储空间的扩充,即利用主存中的存储空间,来暂存从磁盘中读出(或写入)的信息。主存也可以看做是辅存的高速缓存,因为,辅存中的数据必须复制到主存方能使用;反之,数据也必须先存在主存中,才能输出到辅存。,磁盘缓存分为读缓存和写缓存 读缓存是指,操作系统为已读取的文件数据,在内存较空闲的情况下留在内存空间中(这个内存空间被称之为“内存池”),当下次软件或用户再次读取同一文件时就不必重新从磁盘上读取,从而提高速度。 写缓存实际上就是将要写入磁盘的数据先保存于系统为写缓存分配的内存空间中,当保存到内存池中的数据达到一个程度时,便将数据保存到硬盘中。这样可以减少实际

5、的磁盘操作,有效的保护磁盘免于重复的读写操作而导致的损坏,也能减少写入所需的时间。 一个文件的数据可能出现在存储器层次的不同级别中,例如,一个文件数据通常被存储在辅存中(如硬盘),当其需要运行或被访问时,就必须调入主存,也可以暂时存放在主存的磁盘高速缓存中。,硬盘的缓冲区 缓存(Cache memory)是硬盘控制器上的一块内存芯片,具有极快的存取速度,它是硬盘内部存储和外界接口之间的缓冲器。 硬盘的缓冲区是硬盘与外部总线交换数据的场所。硬盘的读数据的过程是将磁信号转化为电信号后,通过缓冲区一次次地填充与清空,再填充,再清空,一步步按照PCI总线的周期送出,可见,缓冲区的作用是相当重要的。它的

6、作用也是提高性能,但是它与缓存的不同之处在于:一、它是容量固定的硬件,而不像缓存是可以由操作系统在内存中动态分配的。二、它对性能的影响大大超过磁盘缓存对性能的影响,因为如果没有缓冲区,就会要求每传一个字(通常是4字节)就需要读一次磁盘或写一次磁盘。,什么是硬盘缓存?,几个概念 P20 1. 物理地址 (绝对地址、实地址) 物理地址是计算机主存单元的真实地址,又称为绝对地址或实地址。 主存以字节为单位编址,每个字节都有一个地址与其对应,假定内存容量为n,则内存就有n个字节的存储空间。 地址编号是一维的:0,1,2,n-1 ,这些地址称内存的物理地址。 2. 主存空间 物理地址的集合所对应的空间组

7、成了主存空间(物理空间)。,3. 区域 物理地址集合的一个递增整数序列子集 n,n+1,nm所对应的主存空间。 4. 逻辑地址 (相对地址、虚地址) 用户的程序地址(指令地址或操作数地址)均为逻辑地址。 用户的程序经过汇编或编译后形成目标代码,目标代码常用相对地址的形式,其首址为0。在多道程序系统中,每个用户都认为自己的程序和数据放在以“0”开始的连续空间。 5. 作业地址空间 用户程序所有的逻辑地址集合对应的空间。,6. 作业地址空间与主存空间, ,地址映射:将用户程序中的逻辑地址转换为运行时由机器直接寻址的物理地址. 当程序装入内存时, 操作系统要为该程序分配一个合适的内存空间,由于程序的

8、逻辑地址与分配到内存物理地址不一致, 而CPU执行指令时,是按物理地址进行的,所以要进行地址转换.,存储管理的目的 主存的分配和回收 记住内存每个位置的状态。 在系统程序或用户作业提出申请时,实施分配,并修改分配记录。 接受系统或用户释放的存储区,或主动收回不再用的存储区,并相应地修改分配记录表。 提高内存利用率 “扩充”内存容量 信息保护,存储器管理功能 P19,目的:方便用户使用,且提高存储器利用率 1.内存分配:静态分配、动态分配 2.内存保护:机制,例:上下界限寄存器 3.地址映射:逻辑地址物理地址 4.内存扩充:虚存,逻辑上扩充,内存管理的内容 分配结构: 放置策略: 交换策略: 调

9、入策略: 回收策略,内存信息的共享与保护 上下界保护法 保护键法 为每个被保护存储块分配一个单独的保护键,在程序状态字中设置相应的开关字段,不同的进程值不一样,匹配时,方可进行访问。 界限寄存器与CPU 的用户态和核心态工作方式相结合 用户态进程只能访问在界限寄存器所规定范围内的内存部分,而核心态进程则可访问整个内存地址空间。,4.2 程序的装入和链接,图4-2 对用户程序的处理步骤,4.2.1 程序的装入 1绝对装入方式(Absolute Loading Mode) 编译程序产生绝对地址目标代码,由装入程序根据装入模块中的地址,将程序和数据装入内存。 很少使用。,(1)绝对装入方式:由装入程

10、序根据模块中的地址,将程序和数据装入内存. 适合单道程序环境.,符号地址,程序,JUMP i,LOAD j,DATA,i,j,A 目标模块,绝对地址,JUMP1424,LOAD2224,1024,1424,B绝对装入模块,1200,400,0,相对地址,JUMP400,LOAD1200,C相对装入模块,2可重定位装入方式(Relocation Loading Mode) 重定位:在装入时对目标程序中的指令和数据地址的修改过程。 静态地址重定位:是指作业在装入时随即进行的地址变换方式,这一工作由装配程序完成。 优点:无需增加硬件地址变换机构;实现简单。 缺点:程序经地址定位后就不能再移动了;程序

11、在存储空间中只能连续分配;多个用户难以共享存于内存中的同一程序。,图4-3 作业装入内存时的情况,LOAD 1,12500,重定位:通常是把在装入时对目标程序中指令和数据的修改过程称为重定位。 因为地址变换通常是在装入时一次完成的,以后不再改变,故称为静态重定位。,3动态运行时装入方式(Dynamic Run-time Loading) (动态地址映射) 程序执行过程中,当访问指令或数据时,才进行的地址变换方法,称为动态重定位。 靠硬件地址变换机构实现的。 基地址寄存器(重定位寄存器) BR 程序虚地址寄存器VR 地址MA=(BR)+(VR) 优点:可对内存进行非连续分配;提供了实现虚存的基础

12、;有利于程序段的共享。,动态地址重定位,2500,10000,LOAD1,2500,365,LOAD1,2500,365,0,100,2500,5000,作业j,相对地址,重定位寄存器,10000,10100,12500,15000,主存,处理机一侧,存储器一侧,4.2.2 程序的链接 根据链接时间的不同,可把链接分成如下三种: (1) 静态链接。在程序运行之前,先将各目标模块及它们所需的库函数,链接成一个完整的装配模块,以后不再拆开。 (2) 装入时动态链接。这是指将用户源程序编译后所得到的一组目标模块,在装入内存时,采用边装入边链接的链接方式。 (3) 运行时动态链接。这是指对某些目标模块

13、的链接,是在程序执行中需要该(目标)模块时,才对它进行的链接。加快程序装入,节约内存空间 。,图 4-4 程序链接示意图,4.3 连续分配方式,4.3.1 单一连续分配 最简单的一种存储管理方式, 只能用于单用户、单任务的操作系统中。 存储区的分配:把内存分为系统区和用户区两部分,系统区仅提供给OS使用,通常是放在内存的低址部分;用户区是指除系统区以外的全部内存空间,提供给用户使用。,内存分配和回收策略:简单 优点 管理简单,不要求专用的硬件支持;为防止破坏OS ,设置界限寄存器;易于实现。 缺点 存储器利用率低 缺乏灵活性,小于内存,否则提供覆盖。 某些系统中安全性差。 信息不共享 CPU

14、利用率低,周转时间长。,4.3.2 固定分区分配 工作原理 在系统生成时,将内存划分为若干各分区,每个分区的大小可以不等(或相等),一经划分,不能更改。 系统对内存的管理和控制通过分区说明表说明各区的区号,大小,起始地址及状态。,内存分配 为了便于内存分配,通常将分区按大小进行排队,并为之建立一张分区使用表,其中各表项包括每个分区的起始地址、大小及状态(是否已分配),见图4-5(a)所示。当有一用户程序要装入时,由内存分配程序检索该表,从中找出一个能满足要求的、尚未分配的分区,将之分配给该程序,然后将该表项中的状态置为“已分配”;若未找到大小足够的分区,则拒绝为该用户程序分配内存。存储空间分配

15、情况如图4-5(b)所示。,图 4-5 固定分区使用表,特点 可使多个作业共享内存,但管理简单,内存利用率太低,对工作负荷明确的作业比较合适。,4.3.3 动态分区分配 工作原理 存储空间的划分是在装入作业时进行的,且使分区大小正好适应作业的需要。(也称可变分区分配) 数据结构 空闲分区表:系统中设置一张空闲分区表,每个空闲分区占一个表目,包括序号,大小,起址,状态 空闲分区链:在每个分区中附上一个表格信息,状态(0,1),大小,指针(空白分区才有),图4-6 空闲链结构,分区分配算法 1) 首次适应算法(first fit)(最先适应散算法) 每个空白区按地址递增的顺序链接在一起。在分配内存

16、时,从链首开始顺序查找,直至找到一个大小能满足要求的空闲分区为止;然后再按照作业的大小,从该分区中划出一块内存空间分配给请求者,余下的空闲分区仍留在空闲链中。若从链首直至链尾都不能找到一个能满足要求的分区,则此次内存分配失败,返回。 优点:尽量使用低端地址,以保持高址部分的大空间区; 缺点:低址部分不断被划分,会留下许多难以利用的、很小的空闲分区;会增加查找可用空闲分区时的开销;回收时花销较大,费时。,作 业 A 18KB,主存,采用首次适应算法分配,2) 循环首次适应算法(next fit) 由首次适应算法演变而成。 从上次找到的空闲分区的下一个空闲分区开始查找,为实现该算法,应设置一起始查寻指针,用于指示下一次起始查寻的空闲分区,并采用循环查找方式。 该算法能使内存中的空闲分区分布得更均匀,从而减少了查找空闲分区时的开销,但这样会缺乏大的空

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

最新文档


当前位置:首页 > 高等教育 > 大学课件

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