您好,欢迎访问三七文档
第3章内存管理3.1内存介绍23.1.1内存管理1.存储的层次结构3寄存器数据需求缓存内存外存CPU读取数据顺序①4复习•寄存器:是存储容量有限的高速存储部件。•特点•位于CPU内。•寄存器以名字标识,没有地址编号。•作用•可用来暂存指令、数据和地址•分类•通用寄存器•指令指针寄存器•标志寄存器•段寄存器5•内存•特点•外存•特点6•高速缓存•作用:弥补了CPU和内存速度上的差异。•分类•(1)L1Cache(一级缓存)是CPU第一层高速缓存,分为数据缓存和指令缓存。•由静态RAM组成•容量不大•CPU管芯面积不能太大,一般服务器CPU的L1缓存的容量通常在32KB~256KB。7•(2)L2Cache(二级缓存)•结构:内部、外部两种芯片组成。•内部的芯片二级缓存运行速度与CPU主频相同•外部的二级缓存运行速度是CPU主频的一半•L2高速缓存容量也会影响CPU的性能,原则是越大越好•(3)L3Cache(三级缓存)•分类•外置(早期)•内置(现在)•作用:进一步降低内存延迟,同时提升大数据量计算时CPU的性能。8高速缓存与内存速度的对比9•三级存储结构:高速缓存、内存和外存•为什么采用该结构•降低成本•处理器与存储设备速度平衡问题•处理器的发展:•摩尔定律,即每18个月处理器的速度增加一倍。•存储设备发展•速度、容量1011•3、内存管理任务•内存的分配和回收按照一定的算法把某一空闲的内存分配给进程,并在进程结束时回收该进程占用的内存。•地址映射将程序地址空间中使用的逻辑地址变换成内存中的物理地址的过程。•内存信息的共享与保护保证用户程序(或进程映象)在各自的存储区域内操作,互不干扰,同时又可以共享系统的资源。•虚拟存储技术使用户程序的大小和结构不受主存容量和结构的限制,即使在用户程序比实际主存容量还要大的情况下,程序也能正确运行。123.1.2相关概念•1.程序名空间•源程序中的各种符号名的集合所限定的空间称为程序名空间。•如源程序中的数据和子程序通常是用符号名进行访问的,这些符号名与存储器地址无任何直接关系。•在程序名空间中提到地址时,都是用符号来代替的,比如Basic中的行号或Goto语句后面的标识符。程序名空间中的地址概念只限于编辑器中,方便用户对程序的逻辑设计。如图3-3a所示,主程序和各个子程序都有各自不同的起始地址标识,变量也有自己的地址标识。13•2.地址空间(AddressSpace)•经编译后,源程序中的各种符号名转换成机器指令和数据组成的目标程序,且用实际地址码替换符号地址。把目标代码所限定的地址域叫该程序的地址空间。•这些程序的地址都是从“0”开始的,程序中的其它地址都是相对于起始地址“0”来计算的。地址空间中的地址叫做相对地址(或逻辑地址,又叫虚地址)。•3.存储空间(MemorySpace)•存储空间是指物理存储器中全部物理存储单元的集合所限定的空间,也称为内存空间。每个存储单元都有它自己的编号地址。•该地址被称为绝对地址,或物理地址,或实地址。存储空间的大小由系统的硬件配置决定的,即计算机中内存容量的大小。14三种空间15•4.存储分配的几种形式(*)•存储分配:时机、方式、给需要运行的程序分配存储空间。•(1)直接存储分配方式•编程人员在程序设计过程中使用物理地址,以确保各程序所用的地址之间互不重叠。•(2)静态存储分配方式•用户在编写程序中采用的地址空间为逻辑地址。当连接程序对它们进行装入、连接时,才确定它们在内存中的物理位置。•(3)动态存储分配方式•用户程序在内存空间中的位置也是在装入时确定的,且不必一次性将整个程序装入到内存中,可根据执行的需要,一部分一部分地动态装入。16•5.地址重定位(AddressRelocation)•定义:将逻辑地址空间中使用的逻辑地址变换成内存中的物理地址的过程。•地址重定位类型•静态地址映射•作业装入时进行重定位(软件实现)•动态地址映射•程序动态执行时进行重定位(硬件完成)17•静态地址映射•静态地址映射是在程序执行之前由专门的重定位程序完成地址映射•地址重定位表达式:物理地址=程序起始物理地址+逻辑地址•优点:实现简单,不要硬件的支持。•缺点:•程序分配的内存空间必须为连续空间,程序在执行过程中不能移动;•用户必须事先确定所需要的存储量;•程序和数据难以共享,造成内存空间的浪费。18程序执行之前由专门的重定位程序完成地址映射19•动态地址映射•动态地址映射是在程序执行时由系统硬件逐条指令地完成从逻辑地址到物理地址的转换的。•动态地址重定位机构由基地址寄存器BR和逻辑地址(虚地址)寄存器VR组成。•内存物理地址MA与逻辑地址的转换关系为:•MA=(BR)+(VR)20指令LOADA500中的500为逻辑地址,在执行指令LOADA500时,动态重定位。21•6.内存共享及保护•保证用户程序(或进程映象)在各自的存储区域内操作,互不干扰,同时又可以共享系统的资源。•存储保护的目的有两个:•保护系统程序区(不被用户读写)。•不允许用户程序读写不属于自己内存空间的数据(不同用户程序互不干扰)。22•上下界寄存器保护法•下界寄存器:存放程序装入内存后的开始地址•上界寄存器:存放程序装入内存后的末地址•判别式:下界寄存器≤物理地址<上界寄存器23•基址+限长寄存器保护法•基址寄存器=下界寄存器(首地址)•限长寄存器:存放程序长度•基址+限长=上界寄存器(末地址)•判别式:基址寄存器≤物理地址<基址+限长寄存器24[例]:有一程序装入内存的首地址是500,末地址是1500,访问内存的逻辑地址是500、345、1000,判断是否合法。解:下界寄存器:500上界寄存器:1500逻辑地址+装入内存的首地=物理地址1、500+500=1000500≤1000<1500(√)2、345+500=845500≤845<1500(√)3、1000+500=1500500≤1500<1500(×)25•存储保护键法•为每个被保护的存储块设置一个保护键,在程序状态字中提供相应的key值,OS检查key是否与保护键的key吻合,是则不执行保护,否则要执行保护。•常用保护方式:•R——读保护(不可读)•W——写保护(不可写)•E——执行保护(不可执行)262-4K,保护键值为0,不可读,不可写;4-6K,保护键值为2,不可写;6-8K,保护键值为1,不可读;例:程序Load…1(键值),5000内存中5000对应键值为2,程序中键值为1,键值不符合,执行保护。4-6K保护为不可写,而程序只要求Load,程序可执行。Store…0,3000Key相符,不保护,执行程序。Load…2,3000Key不符,保护,不执行程序。
本文标题:第3章内存管理1
链接地址:https://www.777doc.com/doc-4045678 .html