预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共72页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第四章存储器管理4.1存储器的层次结构5存储器管理:指内存的管理,外存管理在文件部分讲述;单道程序系统:内存被划分成两部分:一部分供OS使用,一部分供当前正在执行的程序使用。多道程序系统:存储器的用户部分必须进一步地细分,以适应多个进程的要求。细分的任务由操作系统动态实现,这就是存储器管理。存储器管理的目的:一是方便用户使用,二是提高存储器的利用率。1、存储器管理功能用户编程所用的地址称为逻辑地址(或程序地址,或虚地址),由逻辑地址组成的空间称为逻辑地址空间(或程序地址空间)。我们把用户程序装入内存时,或在程序执行时,对有关指令或数据地址的修改称为从程序地址到内存地址的地址映射,或称为地址重定位。地址映射地址映射的方式把程序装入起始地址为1000的内存区静态映射优缺点动态地址映射(重定位)把程序装入起始地址为1000的内存区动态地址映射的过程动态重定位优缺点4.2程序的装入和链接4.1.2程序的链接2.装入时动态链接(LoadtimeDynamicLinking)3.运行时动态链接(Run-timeDynamicLinking)4.2.1程序的装入2.可重定位装入方式(RelocationLoadingMode)3.动态运行时装入方式(DenamleRun-timeLoading)链接和装入的关系(一)链接和装入间的关系(二)链接和装入间的关系(三)链接和装入间的关系(四)4.2连续分配方式4.2.2固定分区分配2.内存分配:为了便于内存分配,将分区按照大小排队,并建立一个分区表。如图所示。当为作业分配空间时,分配程序按照此表检索以合适分区分配;否则,拒绝分配。缺点:空间浪费。4.2.3动态分区分配未分配区表用空闲区链表表示:2.分区分配算法循环首次适应算法:该算法是由首次适应算法演变而成的,区别仅是从上次已分配分区的下一个分区依次查找首次满足作业的空闲分区,并从中划分出作业需要的分区。实现方法:起始循环指针+循环空闲分区(链)表2.分区分配算法3.分区分配操作回收内存操作回收的分区有4种情况:与前、后、前后空分区相邻,如下图所示。当回收分区与前后空闲分区均不相邻时,为回收分区建立一个空闲分区结点,并插入链表适当位置。4.2.4可重定位分区分配2.动态重定位的实现:作业在内存中仍保持逻辑地址,在执行时再实施重定位。具体过程如下图。3.动态重定位分区分配算法:在动态分区算法增加了回收碎片的功能。作业4-14.5基本分页存储管理方式4.3.1页面与页表举例:如左图所示,按照基本分页存储管理方式为进程分配内存空间。设页面大小为1KB页面大小设定:在分页系统中的页面其大小应适中,且页面大小应是2的幂,通常为512B~8KB。页面大小利弊:若页面太小,内存碎片减小,从而减少了内存碎片的总空间,提高内存利用率;但另一方面也会使每个进程占用较多的页面,从而导致进程的页表过长,占用大量内存等;若页面较大,可以减少页表的长度,节省内存,但却又会使页内碎片增大。逻辑地址空间中的地址为A,页面大小为L,则有:2、逻辑地址结构3、页表分页存储管理方式按照进程页面的多少,为进程离散分配相同数量的物理块,为了记录每一页所分配的物理块,必须为每个进程建立一个页表每个进程一个页表,每个页面一个表项;表项:页号:0、1、2、…、n;块号:离散分配形成;存取控制:读写控制页表示意图基本分页系统多进程内存分配示意图4.3.2地址变换机构55[例]说明运行进程的地址变换过程。如下图所示,进程程序地址空间共有7个页,每页的大小为1024。其对应的主存块在页表中已列出。假定页表在主存始址为500。若该程序从开始运行,且现程序计数器内容为:页表寄存器例:有一系统采用页式存储管理,有一作业大小是8KB,页大小为2KB,依次装入内存的第7、9、10、5块,试将逻辑地址7145,3412转换成内存地址。逻辑地址7145P=7145%2048=3W=7145mod2048=1001MR=5*2048+1001=11241逻辑地址7145的内存地址是:112412、具有快表的地址变换机构问题:两次访问内存(页表,数据),运行速度下降一半;解决方法:联想存储器,快表,存放当前访问的页表项;思路:将已访问的页号的页表项放入快表,方便下次访问,提高访问速度,争取一次访问内存;联想存储器:通常只要设定8~16个寄存器作为联想存储器,即可使程序执行速度大大提高。具有快表的地址变换过程示意图4.3.3两级和多级页表1.两级页表(Two-LevelPageTable)图4-14两级页表结构图4-15具有两级页表的地址变换机构2.多级页表对于32位的机器,采用两级页表结构是合适的;但对于64位的机器,如果页面大小仍采用4KB即212B,那么还剩下52位,假定仍按物理块的大小(212位)来划