网站大量收购闲置独家精品文档,联系QQ:2885784924

操作系统原理与实践教程第二版第章存储管理.ppt

操作系统原理与实践教程第二版第章存储管理.ppt

  1. 1、本文档共99页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
操作系统原理与实践教程第二版第章存储管理

第5章 存 储 管 理 5.1 存储管理的概念 5.2 连续内存分配 5.3 内存不足时的管理 5.4 分页存储管理 5.5 分段存储管理 5.6 段页式存储管理 5.7 虚拟存储器 5.8 请求分页存储管理技术 5.1 存储管理的概念 为了解决CPU和存储器之间速度上的不匹配,在现代计算机系统中,存储系统通常采用层次结构,存储层次可粗略分为三级:最高层为CPU寄存器,中间为主存,最底层是辅存。 根据具体功能还可以细分为寄存器、高速缓存、主存储器、磁盘缓存、辅存储设备(固定磁盘、可移动存储介质)5层。 5.1 存储管理的概念 操作系统的存储管理负责对存储器空间的分配、回收以及提供存储层次间数据移动的管理机制。 例如主存与磁盘缓存、高速缓存与主存间的数据移动等。 5.1.1 多级存储结构 1. 寄存器 寄存器是中央处理器的组成部份。寄存器访问速度最快,完全能与CPU协调工作,价格昂贵,容量不大。寄存器可用来暂存指令、数据和地址。 寄存器的长度一般以字(word)为单位。寄存器可以加速对存储器的访问速度,用途包括: (1)暂存执行算术及逻辑运算的数据; (2)用于寻址,存于寄存器内的地址可用来指向内存的某个位置; (3)用来读写数据到计算机的外围设备。 5.1.1 多级存储结构 2. 主存储器 主存储器(简称内存或主存)是用于保存当前进程运行时的程序和数据。 CPU能直接随机存取内存中的数据和程序,CPU的控制部件从内存中读取数据并将它们装入到寄存器中,或者从寄存器存入到内存。 CPU与外围设备交换信息一般也借助于主存储地址空间。 内存以字节为基本存储单位,每个存储单元分配一个唯一的地址,称为内存地址。 主存储器的访问速度远低于CPU执行指令的速度,为缓和这一矛盾,在计算机系统中引入了寄存器和高速缓存。 5.1.1 多级存储结构 3. 高速缓存 高速缓存介于中央处理器和主存储器之间的高速小容量存储器,其容量大于寄存器而小于主存储器,访问速度要快于主存储器而低于寄存器。 工作原理为:根据程序局部性原理,正在使用的主存储器某一单元邻近的那些单元将被访问的可能性很大。 由于高速缓存的速度越高价格也越贵,因此目前的计算机系统中多设置两级或多级高速缓存。两级缓存比一级缓存速度慢,但容量更大,主要用做一级缓存和内存之间数据临时交换的地方。 缓存中存放的都是CPU频繁访问的数据,所以缓存越大处理器效率就越高,同时由于缓存的物理结构比内存复杂很多,所以其成本也很高。 5.1.1 多级存储结构 4. 磁盘缓存 磁盘缓存是操作系统为磁盘输入输出而在普通物理内存中分配的一块内存区域。 由于目前磁盘的I/O速度远低于主存的访问速度,因此根据程序局部性原理,将频繁访问的一部分磁盘数据和信息,暂时存放在磁盘缓存中,可减少访问磁盘的次数,提高访问速度。 磁盘缓存分为读缓存和写缓存。 5.1.2 程序的运行过程 在多道程序环境下,要使程序运行,必须先为之创建进程。而创建进程的第一件事,便是将程序和数据装入内存。 如何将一个用户源程序变为一个可在内存中执行的程序,简单的说,要经过编辑、编译、链接、装入和运行等几个阶段。 5.1.2 程序的运行过程 1. 编辑阶段 在编辑阶段,用户使用某种编辑软件把程序代码输入到计算机中,并以文件的形式保存到指定的磁盘上,形成用户的源程序文件,即源文件。 2. 编译阶段 计算机只能识别二进制语言,所以源程序文件不能直接在计算机上运行,必须经过编译软件的编译,形成相应的二进制目标代码后才能被计算机识别。通常,用户程序的执行需要经过编译阶段,由初始的文本文件(file1.c)变成CPU可以识别的一系列二进制代码文件(file1.o)。 5.1.2 程序的运行过程 3. 链接阶段 将编译或汇编后得到的一组目标模块以及它们所需的库函数装配成一个完整的装入模块的过程就是程序的链接阶段。根据链接时间的不同,链接可分为三种: (1) 静态链接。在程序运行之前,先将各目标模块及它们所需的库函数,链接成一个完整的装配模块,以后不再拆开。 (2) 装入时动态链接。用户源程序编译后得到的一组目标模块,在装入内存时,采用边装入边链接的链接方式,即在装入一个目标模块时,若发生一个外部模块调用事件,将引起装入程序去找出相应的外部目标模块,并将它装入内存。 (3) 运行时动态链接。对某些目标模块的链接,是在程序执行中需要该模块时,才对它进行链接。运行时动态链接是装入时动态链接方式的一种改进,即在执行过程中,当发现一个被调用模块尚未装入内存时,立即由系统去找到该模块并将之装入内存,把它链接到调用模块上。 5.1.2 程序的运行过程 4. 装入阶段 CPU在运行程序时,首先要把用户程序装入内

文档评论(0)

jixujianchi + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档