5存储管理.ppt

上传人:b****1 文档编号:1381606 上传时间:2022-10-21 格式:PPT 页数:60 大小:1MB
下载 相关 举报
5存储管理.ppt_第1页
第1页 / 共60页
5存储管理.ppt_第2页
第2页 / 共60页
5存储管理.ppt_第3页
第3页 / 共60页
5存储管理.ppt_第4页
第4页 / 共60页
5存储管理.ppt_第5页
第5页 / 共60页
点击查看更多>>
下载资源
资源描述

5存储管理.ppt

《5存储管理.ppt》由会员分享,可在线阅读,更多相关《5存储管理.ppt(60页珍藏版)》请在冰豆网上搜索。

5存储管理.ppt

第5章存储管理,5.1存储管理的功能,内存是现代计算机系统的中心,是指CPU能直接存取指令和数据的存储器,CPU和I/O设备都要和内存打交道。

内存由很大的一组字或字节所组成,每个字或字节都有它们自己的编号,称为内存地址。

对内存的访问是通过一系列对指定地址单元进行读写来实现的。

5.1存储管理的功能,5.1.1存储空间的分配和回收内存的分配与回收是内存管理的主要功能之一。

用户程序通常以文件的形式保存在计算机外存上,为了执行用户程序,用户程序必须全部或部分装入内存,因此在内外存之间必须不断交换数据。

能否把外存中的数据和程序调入内存,取决于能否在内存中为它们安排合适的位置。

因此,存储管理模块要为每一个并发执行的进程分配内存空间。

另外,当进程执行结束之后,存储管理模块又要及时回收该进程所占用的内存资源,以便给其他进程分配空间。

5.1存储管理的功能,5.1.2地址转换(映射)内存的每个存储单元都有一个编号,这种编号称为内存地址(或称为物理地址,绝对地址)。

内存地址的集合称为内存空间(或物理地址空间)。

源程序经过汇编或编译后,形成目标程序,每个目标程序都是以0为基址顺序进行编址的,原来用符号名访问的单元用具体的数据单元号取代。

这样生成的目标程序占据一定的地址空间,称为作业的逻辑地址空间,简称逻辑空间。

在逻辑空间中每条指令的地址和指令中要访问的操作数地址统称为逻辑地址。

5.1存储管理的功能,地址映射,LoadA2003456。

1200,物理地址空间,源程序,LoadA2003456,0,100,200,编译连接,逻辑地址空间,BA=1000,5.1存储管理的功能,我们把用户程序装入内存时对有关指令的地址部分的修改定义为从程序地址到内存地址的地址映射,或称为地址重定位。

地址映射的方式:

1、静态地址重定位程序被装入内存时由操作系统的连接装入程序完成程序的逻辑地址到内存地址的转换。

假定程序装入内存的首地址为BR,程序地址为VR,内存地址为MR,则地址映射按下式进行:

MR=BR+VR。

5.1存储管理的功能,2、动态重定位动态地址重定位是在程序执行的过程中,每次访问内存之前,将要访问的程序地址转换为内存地址。

动态重定位依靠硬件地址变换机构完成。

地址重定位机构需要一个(或多个)基地址寄存器BR和一个(或多个)程序虚拟地址寄存器VR。

5.1存储管理的功能,5.1.3主存空间的共享和保护在多道程序设计环境下,内存中的许多用户或系统程序和数据段可供不同的用户进程共享。

这种资源共享将会提高内存的利用率。

但是,反过来说,除了被允许共享的部分之外,又要限制各进程只在自己的存储区活动,各进程不能对别的进程的程序和数据段产生干扰和破坏,因此须对内存中的程序和数据段采取保护措施。

5.1存储管理的功能,内存保护的方式:

(1)上、下界存储保护:

上、下界保护是一种简单的存储保护技术。

系统可为每个作业设置一对上、下界寄存器,分别用来存放当前运行作业在内存空间的上、下边界地址,用它们来限制用户程序的活动范围。

(2)基址限长存储保护:

上、下界保护的一个变种是采用基址限长存储保护。

5.1存储管理的功能,5.1存储管理的功能,5.1.4主存空间的扩充对内存进行逻辑上的扩充,现在普遍采用虚拟存储管理技术。

虚拟存储技术的基本思想是把有限的内存空间与大容量的外存统一管理起来,构成一个远大于实际内存的、虚拟的存储器。

此时,外存是作为内存的直接延伸,用户并不会感觉到内、外存的区别,即把两级存储器当作一级存储器来看待。

一个作业运行时,其全部信息装入虚存,实际上可能只有当前运行的必需一部分信息存入内存,其他则存于外存,当所访问的信息不在内存时,系统自动将其从外存调入内存。

5.2连续内存分配,5.2.1分区管理的基本原理分区管理的基本原理是给每一个内存中的进程划分一块适当大小的存储区,以连续存储各进程的程序和数据,使各进程得以并发执行。

按分区的时机,分区管理可以分为固定分区和动态分区两种方法。

1、固定分区法:

把内存区固定地划分为若干个大小不等的区域。

划分的原则由系统操作员或操作系统决定。

分区一旦划分结束,在整个执行过程中每个分区的长度和内存的总分区个数将保持不变。

5.2连续内存分配,某系统的内存容量为256K,操作系统占用低地址的20K,其余空间划分成4个固定大小的分区。

如下图:

5.2连续内存分配,2、动态分区法动态分区法在作业执行前并不建立分区,分区的建立是在作业的处理过程中进行的,且其大小可随作业或进程对内存的要求而改变。

这就改变了固定分区法中那种即使是小作业也要占据大分区的浪费现象,从而提高了内存的利用率。

采用动态分区法,在系统初启时,除了操作系统中常驻内存部分之外,只有一个空闲分区。

随后,分配程序将该区依次划分给调度选中的作业或进程。

5.2连续内存分配,5.2连续内存分配,在动态分区存储管理中,要有相应的数据结构来登记空闲区的说明信息,它包括空闲区的大小和位置。

不同系统根据设计要求采用不同的结构。

常用的有表结构和队列结构。

空闲区表的每个表目记录一个空闲区,主要参数包括区号、长度和起始地址。

空闲区队列则是利用每个内存空闲区的头几个单元存放本空闲区的大小及下个空闲区的起始地址,从而把所有的空闲区链接起来。

5.2连续内存分配,5.2连续内存分配,5.2.2分区的分配和回收1.固定分区的分配和回收当用户程序要装入执行时,存储管理程序根据用户程序的大小查询分区说明表,从中找出一个满足要求的空闲分区,并将其分配给申请者。

5.2连续内存分配,2、动态分区的分配和回收

(1)分区的分配当用户要求一个大小为SIZE的存储空间时,系统查询空闲区表或空闲分区队列,找一个大于或等于SIZE的空闲区。

分配时会出现以下三种情况:

一是系统中无满足要求的空闲区,则分配失败。

二是空闲区大小与SIZE相等,则修改空闲区表相应表目,向用户返回该空闲区首址。

三是空闲区大于SIZE,这时将空闲区一分为二。

将一个空闲区分成二部分有两种办法:

一是从空闲区的上部开始划出SIZE大小的空闲区给用户;二是从空闲区的底部开始向上划出SIZE大小的空闲区给用户。

5.2连续内存分配,分配算法:

(1)首次适应算法:

要求空闲区按首址递增的次序组织空闲区表(队列)。

(2)最佳适应算法:

要求按空闲区大小从小到大的次序组成空闲区表(队列)。

(3)最坏适应算法要求空闲区按大小递减的顺序组织空闲区表(或队列)。

5.2连续内存分配,5.2.3碎片问题在连续内存分配中,必须把一个系统程序或用户程序装入一个连续的内存空间中。

由于各个进程不但的申请和释放内存,导致在内存中出现大量的分散的小空闲区。

内存中这种容量太小、无法利用的小分区称做“碎片”或“零头”。

根据碎片出现的位置,可以分为内部碎片和外部碎片两种。

在一个分区内部出现的碎片(即被浪费的空间)称做内部碎片。

在所有分区之外新增的碎片称做外部碎片。

解决碎片问题最简单的方法是定时或在分配内存时把所有碎片合并为一个连续区。

实现的方法是移动某些已分配区的内容,使所有进程的分区紧挨在一起,而把空闲区留在另一端,这种技术称为紧缩(或拼凑)。

5.3内存不足的管理,5.3.1覆盖覆盖技术是基于这样一种思想提出来的:

一个程序并不需要一开始就把它的全部指令和数据都装入内存后再执行。

在单CPU系统中,每一时刻事实上只能执行一条指令。

因此,不妨把程序划分为若干个功能上相对独立的程序段,按照程序的逻辑结构让那些不会同时执行的程序段共享同一块内存区。

通常,这些程序段都被保存在外存中,当有关程序段的先头程序段已经执行结束后,再把后续程序段调入内存覆盖前面的程序段。

这使得用户看来,好像内存扩大了,从而达到了内存扩充的目的。

5.4分页管理,5.4.1分页管理的基本原理把用户程序的地址空间划分成若干大小相等的区域,每个区域称作页面或页。

每个页都有一个编号,叫做页号。

页号一般从0开始编号,如0,1,2,等。

把内存空间划分成若干和页大小相同的物理块,这些物理块叫“帧”(frame)或内存块。

同样,每个物理块也有一个编号,块号从0开始依次顺序排列。

以页为单位进行内存分配,并按作业的页数多少来分配。

逻辑上相邻的页,物理上不一定相邻。

5.4分页管理,5.4分页管理,在分页系统中,页面的大小是由硬件的地址结构所决定的。

机器确定、页面大小便确定了。

一般来说,页面的大小选择为2的若干次幂,根据计算机结构的不同,其大小从512B到16MB不等。

在分页系统中,由CPU生成的每个地址被硬件分成两个部分:

页号(p)和页内偏移(w)。

通常,如果逻辑地址空间为2m,且页的大小为2n单元(字节或词),那么逻辑地址的高mn位表示页号,而低n位表示页偏移。

这样,一个地址长度为20位的计算机系统,如果每页的大小为1KB(210),那么可以有210个页。

5.4分页管理,对于某台具体机器来说,其地址结构是一定的。

如果给定的逻辑地址是A,页面的大小为L,则页号p和页内地址w可按下式求得:

p=INTA/L,w=AMODL其中,INT是向下整除的函数,MOD是取余函数。

例如,设系统的页面大小为1KB,A=3456,则p=INT(3456/1024)=3,w=3456MOD1024=384。

5.4分页管理,在分页系统中,允许将进程的各页离散地装入内存的任何空闲块中,这样就出现进程页号连续,而块号不连续的情况。

为了找到每个页面在内存中对应的物理块,系统为每个进程设立一张页面映射表,简称页表。

进程的所有页依次在页表中有一个页表项,其中记载了相应页面在内存中对应的物理块号。

进程执行时,按照逻辑地址中的页号查找页表中对应的项,找到该页在内存中物理块号。

页表的作用就是实现页号到物理块号的地址映射。

5.4分页管理,5.4.2地址映射设页长为1K,程序地址字长为16位,用户程序空间和页表如图。

5.4分页管理,快表和联想寄存器由于页表是驻留在内存的某个固定区域中,而取数据或指令又必须经过页表变换才能得到实际物理地址。

因此,取一个数据或指令至少要访问内存两次。

一次访问页表以确定所取数据或指令的物理地址,另一次是根据地址取数据或指令,这比通常执行指令的速度慢了一倍。

解决这个问题的一种方法是把页表放在一组快速存储器中(Cache),从而加快访问内存的速度。

我们把这种快速存储器组成的页表称为快表,把存放在内存中的页表称为慢表。

快表又叫相联(联想)存储器(associativememory)。

5.4分页管理,关于联想寄存器的讨论:

一个程序可能会很大,如1M,若页长为1K,则该程序有1000个页,则该程序的页表就需要1000个表项,当程序更大时,页表会更大,那么我们应该有一个多大的快速存储器才能满足要求呢?

这会遇到两个问题:

可能快速存储器多大都是不够的,因为程序可能会更大。

快速存储器是非常非常昂贵的。

实际上我们并不需要一个很大的快速存储器,有一个能存放16个页表表目的快速存储器就够了。

5.4分页管理,例题:

假定访问主存时间为100毫微秒,访问相联存储器时间为20毫微秒,相联存储器为32个单元时快表命中率可达90%,按逻辑地址存取的平均时间为:

(10020)90%(100+100+20)(1-90%)130毫微秒比两次访问主存的时间100毫微秒2200毫微秒下降了四成多。

p,页表,地址越界,l,比较,P=1,p,p,.,.,.,快表,b,+,页号p页内地址d,P,d,物理地址,页表地址寄存器,页表长度寄存器,逻辑地址,5.4分页管理,5.4.3页表的结构CPU具有32位地址时,使用232逻辑地址空间的分页系统,规定页面4KB时,每个进程页表的表项有1兆(220)个,若表项占用4个字节,则每个进程需要占用4MB连续内存空间存放页表。

多级页表概念:

页表和页面一样也进行分页,内存仅存放当前使用的页表,暂时不用部分放在磁盘上,待用到时再行调进。

5.4分页管理,5.4.4页面的共享设想一下这样的系统,有40个用户,每个用户都执行一个文本编辑器。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试认证 > IT认证

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1