欢迎来到天天文库
浏览记录
ID:39474586
大小:2.57 MB
页数:244页
时间:2019-07-04
《《存储器管理》PPT课件(I)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第四章 存储器管理4.1存储器的层次结构4.2程序的装入和链接4.3连续分配方式4.4基本分页存储管理方式4.5基本分段存储管理方式4.6虚拟存储器的基本概念4.7请求分页存储管理方式4.8页面置换算法4.9请求分段存储管理方式存储器是计算机系统的五大组成部分之一。随着计算机技术的发展,存储器容量一直在扩充,但仍不能满足现代软件和用户的需要,因此存储器仍是一种宝贵、紧俏的资源。对存储器加以有效管理,不仅直接影响存储器的利用率,而且对系统性能有重大影响。存储器管理的主要对象是内存,对外存的管理在文件管理中。存储管理的主要功能有:主存分配与回收地址重定位(地址映
2、射)存储保护主存扩充(虚拟内存)提高内存空间的利用率4.1存储器的层次结构4.1.1多级存储器结构在现代计算机系统中,存储器是信息外理的来源与归宿,占据重要位置。但是,在现有技术条件下,任何一种存储装置,都无法同时从速度与容量两方面,满足用户的需求。实际上它们组成了一个速度由快到慢,容量由小到大的存储装置层次。对于通用计算机而言,存储层次至少应具有三级:最高层为CPU寄存器,中间为主存,最底层是辅存。在较高档的计算机中,还可以根据具体的功能分工细划为寄存器、高速缓存、主存储器、磁盘缓存、固定磁盘、可移动存储介质等6层。图4-1计算机系统存储层次示意4.1.2
3、主存储器与寄存器1.主存储器主存储器(简称内存或主存)用于保存进程运行时的程序和数据,也称可执行存储器。其容量对于当前的微机系统和大中型机,可能一般为数十MB到数GB,而且容量还在不断增加,而嵌入式计算机系统一般仅有几十KB到几MB。CPU的控制部件只能从主存储器中取得指令和数据,数据能够从主存储器读取并将它们装入到寄存器中,或者从寄存器存入到主存储器。CPU与外围设备交换的信息一般也依托于主存储器地址空间。由于主存储器的访问速度远低于CPU执行指令的速度,为缓和这一矛盾,在计算机系统中引入了寄存器和高速缓存。2.寄存器寄存器访问速度最快,完全能与CPU协调
4、工作,但价格却十分昂贵,因此容量不可能做得很大。寄存器的长度一般以字(word)为单位。寄存器的数目,对于当前的微机系统和大中型机,可能有几十个甚至上百个;而嵌入式计算机系统一般仅有几个到几十个。寄存器用于加速存储器的访问速度,如用寄存器存放操作数,或用作地址寄存器加快地址转换速度等。4.1.3高速缓存和磁盘缓存1.高速缓存高速缓存是现代计算机结构中的一个重要部件,其容量大于或远大于寄存器,而比内存约小两到三个数量级左右,从几十KB到几MB,访问速度快于主存储器。根据程序执行的局部性原理(即程序在执行时将呈现出局部性规律,在一较短的时间内,程序的执行仅局限于
5、某个部分),将主存中一些经常访问的信息存放在高速缓存中,减少访问主存储器的次数,可大幅度提高程序执行速度。通常,进程的程序和数据时存放在主存储器中,每当使用时,被临时复制到一个速度较快的高速缓存中。当CPU访问一组特定信息时,首先检查它是否在高速缓存中,如果已存在,可直接从中取出使用,以避免访问主存,否则,再从主存中读出信息。2.磁盘缓存由于目前磁盘的I/O速度远低于对主存的访问速度,因此将频繁使用的一部分磁盘数据和信息,暂时存放在磁盘缓存中,可减少访问磁盘的次数。磁盘缓存本身并不是一种实际存在的存储介质,它利用主存中的存储空间,来暂存从磁盘中读出(或写入)
6、的信息。主存也可以看做是辅存的高速缓存,因为,辅存中的数据必须复制到主存方能使用;反之,数据也必须先存在主存中,才能输出到辅存。一个文件的数据可能出现在存储器层次的不同级别中,例如,一个文件数据通常被存储在辅存中(如硬盘),当其需要运行或被访问时,就必须调入主存,也可以暂时存放在主存的磁盘高速缓存中。大容量的辅存常常使用磁盘,磁盘数据经常备份到磁带或可移动磁盘组上,以防止硬盘故障时丢失数据。有些系统自动地把老文件数据从辅存转储到海量存储器中,如磁带上,这样做还能降低存储价格。4.2程序的装入和链接在多道程序环境下,程序要运行必须为之创建进程,而创建进程的第一
7、件事,就是要将程序和数据装入内存。如何将一个用户源程序变为一个可在内存中执行的程序,通常要经过以下几步:(1)编译。由编译程序(Compiler)将用户源代码编译成若干个目标模块(ObjectModule);(2)链接。由链接程序(Linker)将编译后形成的目标模块以及它们所需要的库函数,链接在一起,形成一个装入模块(LoadModule);(3)装入。由装入程序(Loader)将装入模块装入内存。图4-2对用户程序的处理步骤库链接程序装入模块装入程序…编译程序产生的目标模块第一步第二步第三步内存0目标模块1000100作业J200512K地址空间符号指令
8、数据说明I/O说明名空间(作业J的源程序)内存空间装
此文档下载收益归作者所有