操作系统本3存储器管理(2)

2019-02-14 21:59

立一张页面映射表(简称页表),记录相应页在内存中对应的物理块号。

逻辑地址由两部分组成:页号和页内地址。其格式为 页号P 页内地址d

4.4.2 地址变换

当过程访问某逻辑地址时,地址变换机构自动地将逻辑地址分为页号和页内地址两部分。再以页号为索引去检索页表,得到该页的物理块号,把该物理块号与页内地址拼接成物理地址,完成地址变换过程,如图5.17所示。在进行地址变换的同时,把页号与页表长度相比较,若大于页表长度,则产生越界中断。 4.4.3 快表

由于页表是存放在内存中,这使CPU每访问一个数据(或一条指令)时,都必须两次访问内存。一次是访问页表,另一次才是所需要的数据(或指令)。大大降低了计算机的处理速度

为解决这一问题,在地址变换机构中,必须增设一个联想存储器,又称快表,用以存放当前使用的那些页表项。快表用硬件实现,查快表可以不必占用一个访存周期。

引入快表后,地址变换过程是,在进行地址变换时,首先检索快表。若找到,则直接用快表中给出的物理块号与逻辑地址中的页内地址形成物理地址。若未找到,则应去内存中查找页表,此时应将该页的页表项写入快表(快表满时,调出一个页表项,然后写入),然后用页表中给出的物理块号与逻辑地址中的页内地址形成物理地址。

可以看出,当快表命中时,只有一次访存;当快表不命中时,仍然需要二次访存。所以,快表的命中率如何,对于等效访存时间有很大的影响。 4.4.5页的共享和保护

在分页存储管理系统中,多个作业并发运行,共享同一内存块里的程序或数据是可行的。为了实现共享,必须在各共享者的页表中分别有指向共享内存块的表目。首先,必须保证被共享的程序或数据占有整数块,以便与非共享部分分开。其次,由于共享程序或数据被多个进程访问,所以每个进程对共享程序或数据的访问都应该是有限制条件的。因此,从共享和保护的实现上来看,须共享的程序段或数据段是一个逻辑单位,而分段存储管理中被共享的程序或数据作为一个整体(一段),

实现共享和保护就要方便得多。 5.4.6多级页表

从上面的地址变换过程可以看出,页表必须占据连续的内存空间,如果页表长度超过一个页面,那页表的访问就出现了新的问题。解决的办法有两种,一是对页表所需的空间,采用离散分配方式,形成两级(甚至多级页表);二是只将当前所需要的部分页表项调入内存,其余部分仍然驻留在磁盘上,需要时再将它们调入内存。

优缺点:分页存储管理显著提高了内存的利用率,只有最后一页可能是不满的,每个进程平均碎片长度为半个页面,因而基本上消除了碎片。但动态地址变换机构增加了计算机成本,页表要占用内存空间,需二次访存,仍然无法解决存储扩充问题。

4.5 分段式存储管理方式

引入分段存储管理主要是为了方便编程;便于共享与保护;支持动态链接和动态增长。 4.5.1 基本思想

程序的地址空间被分成若干个段,每段采用连续的地址空间。这样程序的逻辑地址就形成一个二维地址,由段号和段内地址两部分组成。

段号S 段内地址d 系统为每段分配一个连续区域(相当于一个分区),各段可以存放在不同的分区中,即段与段之间的地址是不连续的。系统为每个进程建立一张段表,记录该段在内存中的起始地址和段长。段的分配和释放过程,与动态分区管理完全相同。 4.5.2 主存空间的分配和回收

与可变分区管理方式相同。 4.5.3 地址变换与存储保护

当进程访问某逻辑地址时,地址变换机构以段号为索引去检索段表(以段表寄存器的段表起始地址与段号相加)、得到该段的起始地址和段长。然后以段起始地址加上段内偏移就可以得到该逻辑地址对应的物理地址,完成地址变换过程,如图5.23所示。 在进行地址变换的过程中,要判断地址越界。若段号大于段表长度(段表寄存器的一部分)或段内偏移大手段长(从段表中读出),都产生越界中断。同样的道理,分段存储管理方式也存在二次访内问题,可以通过增设快表来解决。 4.5.4 段的共享

分段系统的一个突出优点是便于实现段的共享,而且段的保护也十分简单易行。共享的代码段必须是可重入代码。

可重入代码又称为纯代码,是一种允许多个进程同时访问的代码。

总之,分段式存储管理,方便了编程,便于实现共享与保护,便于实现动态链接。从存储空间利

用率来说,介于动态分区管理和分页管理之间。 4.5.5 分段与分页的区别

分段和分页都是离散分配方式,地址变换机构也比较类似,但从概念上说,两者是完全不同的。这可以从下述几个方面加以区别。

(1)页是信息的物理单位;段是信息的逻辑单位。

(2)页的大小固定而且由系统确定,硬件实现;段的长度不固定,决定于用户编写的程序。 (3)分页的程序地址空间是一维的;分段的程序地址空间是二维的。 4.6 段页式存储管理方式

分页和分段存储管理方式都各有其优缺点,分页系统能有效地提高内存利用率,而分段系统能很好地满足用户需要。段页式系统是分页和分段的结合,用户程序分成若干段,每个段划分成若干页,每段赋予一个段名。逻辑地址形式为: 段号 页号 页内地址 为了实现地址变换,必须同时配置段表和页表。

当进程访问某逻辑地址(二维,包括段号和段内偏移)时,地址变换机构以段号为索引去检索段表(以段表寄存器的段表起始地址与段号相加),得到该段的页表起始地址和页表长度。然后,地址变换机构自动地将段内地址分为页号和页内地址两部分,再以页号为索引去检索页表(起站地址已从段表中获得),得到该页的物理块号,把该物理块号与页内地址拼接成物理地址,完成地址变换过程。

很显然,为了获得一条指令或数据,需要三次访问内存,因此决表是必不可少的。引入快表后,地址变换过程是,在进行地址变换时,首先检索快表。若找到,直接用快表中给出的物理块号与逻辑地址中的页内地址(由地址变换机构自动从段内偏移中划分出来的)形成物理地址。若未找到.则应去内存中先查找段表,再查找页表,得到物理块号。此时应将该页的页表项写入快表(快表满时,调出一个页表项,然后写入).然后用页表中给出的物理块号与逻辑地址中的页内地址形成物理地址。所以,快表的命中率如何,对等效访存时间有很大的影响。

4.7 虚拟存储器

4.7.1 虚拟存储器的基本概念 1.程序局部性原理

程序局部性原理是指程序在执行时呈现出局部性规律,即在一较短时间内,程序的执行仅限于某个部分,相应地,它所访问的存储空间也局限于某个区域。

局部性又表现为时间局部性和空间局部性。时间局部性是指如果程序中的某条指令一旦执行,则不久以后该指令可能再次执行。如果某数据结构被访问,则不久以后该数据结构可能再次被访问。空间局部性是指一旦程序访问了某个存储单元,在不久之后,其附近的存储单元也将被访问。 2.虚拟存储器

基于程序局部性原理,一个作业在运行之前,没有必要全部装入内存,而仅将那些当前要运行的那部分页面或段先装入内存,就可以启动运行。这样就可以使一个较大的程序在较小的内存空间中运行,同时还可以装入更多的程序并发执行。通常把这样的存储器称为虚拟存储器。

所谓虚拟存储器是指仅把作业的一部分装入内存便可运行作业的存储管理系统。它具有请求调入功能和替换功能,能从逻辑上对内存容量进行扩充。

虚拟存储器最基本的特征是离散性,在此基础上又形成了多次性及对换性的特征。所表现出来的最重要的特征是虚拟性。

虚拟存储器的容量取决于主存与辅存的容量之和。一个虚拟存储器的最大容量是由计算机的地址结构确定的。实现虚拟存储器应有一定的硬件基础,即应有相当容量的辅存、一定容量的主存和地址变换机构。

虚拟存储器的实现都是建立在离散分配存储管理方式基础上的,目前常用的方式是请求分页存储管

理方式和请求分段存储管理方式。

覆盖技术(解决小内存运行大作业): 覆盖技术是在程序运行过程中,把同一存储区在不同时刻分配给不同的程序段或数据段来共享的一种存储分配技术。

使用覆盖技术要求程序员必须小心地设计程序及其数据结构,使得要覆盖的段(块)具有相对独立性,不存在直接联系或相互交叉访问。该方法主要用于早期的操作系统。

对换技术(解决小内存实现分时系统):

将作业不需要或暂时不需要的部分移到辅存,让出主存空间以调入需要的部分,交换到辅存的部分也可以再次被调入。实际上这是用辅存作缓冲,让用户程序在较小的存储空间中通过不断地换出作业而运行较大的作业。该方法仍用于现代的操作系统。

洋葱皮算法:减少对换的信息量。

4.7.2 页式虚拟存储管理(请求分页方式管理)

一.硬件支持

页表机制——页表中除了有页号、物理块号两项外,还需要状态位、访问字段、修改位、外存地址等信息。

页号 物理块 状态位 访问字段 修改位 外存地址 P A M 缺页中断机构——每当所要访问的页面不在内存时,便要产生缺页中断,请求操作系统将所缺的页

面调入内存。缺页中断与一般中断的区别,在于在指令的执行期间产生和处理缺页中断,而且一条指令执行期间,可能有多次缺页中断。

地址变换机构——在进行地址变换时,首先检索快表。若找到,则直接用快表中给出的物理块号与逻辑地址中的页内地址形成物理地址。若未找到,则应去内存中查找页表(慢表),将有两种可能。若


操作系统本3存储器管理(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:提高新闻记者新闻敏感对策研究

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: