当前位置:
文档之家› 计算机组成与体系结构 虚拟存储器
计算机组成与体系结构 虚拟存储器
2)地址变换 编程使用的虚地址包含两部分:高位是 段号,低位是段内地址。
多用户地址 用户号 段号 段内偏移
段表长 基址
As
+
0
实地址
1
As
+
2
段表基址寄存器
n-1
段号 起点 装 段长 入位
存放 于内 存的 段表
段式虚实地址转换示例
段表起始地址 段表长度
<
越界
段号2 位移量100
段号 段长
0 1000 1 600 2 500 3 200
主存页号 主存地址空间 虚存页号 程序地址空间
0 1
0
1
2
2
7
用基户号号 虚页号
页内地址
虚地址
0 页基址表 ...
4
N-1 页表长度 页表基址
实页号 页内地址 实地址
页表 21 61 71 -0 主存页号 装入位 访问方式
例2:一个虚拟存储器有8个页面,页面大小为
1024字,内存有4个页面框架。页表的内容为
20]对应的主存地址。
在采用分页存储管理系统中,虚拟地址长度 为18位,其中11至17位表示页号,0到10位
表示页内位移。若有一作业的各页依次放入 内存中2,3,7号页中,请问: (1)虚拟存储器分为多少页?每页多大?容 量为多少K? (2)逻辑地址1500在实页号是多少?对应 的物理地址为多少?
时间 t 页地址流
1 2 3 4 5 6 7 8 9 10 实际 P1 P2 P1 P5 P4 P1 P3 P4 P2 P4 命中次数
先进先出算法
1 1 1 1* 4 4 4* 4* 2 2 2 2 2 2* 1 1 1 1* 4
(FIFO 算法)
5 5 5* 3 3 3 3*
调入 调入 命中 调入 替换 替换 替换 命中 替换 替换 2 次
段地址
6000 4000 8000 9200
段表
+ 主存
8100
虚地址 物理地址
3 )段式管理的评价 优点:①段的逻辑独立性强,便于共享。 ②便于程序和数据共享 ③程序的动态连接和调度比较容易 ④便于实现信息保护 缺点:① 地址变换时间长 ②主存利用率低 ③ 辅存管理难度大
例如:在一个段映象的虚拟存储器中,假设 程序地址空间有三个段,段的长度分别为1K、 2K和1K,其中第0段映象到内存中以6000为起 始地址的位置,第1段映象到内存中以3000为 起始地址的位置,第2段映象到内存中以1000 为起始地址的位置。画出地址映象关系以及 地址映象方法。
虚页号 0 1 2 3 4 5
实页号 3 1 2 -
解: 4098÷1024 = 4......2, 所以虚页号为4,页内地址 为2。从表中查得实页号为 2,实际地址为
2×1024 + 2 = 2050
6
0
7
-
对应于虚拟地址4098的主存地址是什么?
3)页式管理的评价 优点:①主存利用率高 ②页表相对比较简单 ③地址变换速度快 ④辅存管理容易 缺点:①程序的模块化性能不好 ②页表长,需要占用很大的存 储空间
用来编写程序的地址空间,与此相对应的地 址称为虚拟地址或逻辑地址。
主存地址空间 存储、运行程序的空间,其相应的地址称为 主存物理地址或实地址。
辅存地址空间 磁盘存储器的地址空间,是用来存放程序的 空间,相应的地址称为辅存地址或磁盘地址
主存地址 (物理地址)由CPU地址引脚送出, 用于访问主存的地址。
对虚拟存储器来说,程序员按虚存储空间编 制程序,在直接寻址方式下由机器指令的地 址码给出地址。这个地址码就是虚地址,可 由虚页号及页内地址组成,如下所示:
(OPT 算法)
5* 4 4 4 4 4 4
调入 调入 命中 调入 替换 命中 替换 命中 命中 命中 5 次
三种页面替换算法对同一个页地址流的调度过程
设正在处理器上执行的一个进程的页表如下(十进
制,起始页/块号为0):
虚页号 状态位 访问位 修改位 物理块号
0
1
1
0
4
1
1
1
1
7
2
0
0
0
-
3
1
0
0
虚拟存储器
虚拟存储器的基本概念
1) 虚拟存储器
虚拟存储器是一个容量非常大的存储器的 逻辑模型,不是任何实际的物理存储器。
它借助于磁盘等辅助存储器来扩大主存容 量,使之为更大或更多的程序所使用。
它指的是主存-外存层次。以透明的方式 给用户提供了一个比实际主存空间大得多的程 序地址空间。
2)地址空间及地址 虚拟地址空间
1 1 1 1 1 1 1 1* 2 2
最久没有使用算法
2 2 2* 4 4 4* 4 4 4
(LRU 算法)
5 5* 5* 3 3 3* 3*
调入 调入 命中 调入 替换 命中 替换 命中 替换 命中 4 次
最优替换算法
1 1 1 1 1 1* 3* 3* 3 3 2 2 2 2* 2 2 2 2 2
分段存储管理
由于通常程序都具有一定的模块性。一个复 杂的大程序都可以划分成多个逻辑上相对独 立的模块,模块间的界面和调用关系是可以 清楚定义的。这些模块可以是主程序、过程, 也可以是某类元素的集合。因此,分段管理 是按用户的要求提出来的。
每段的虚拟地址都从0开始,每段都有自己的 段号。每段在主存的起始位置由段表或段寄 存器来表明。
1)地址映像
逻辑空间
1K 段1 2K 段2 3K 段3
1K 段4 2K 段5
段表
段段 装 起
号
长
入 位
点
1 1K 1 0
2
0
3 3K 1 5K
4
0
5 2K 1 1K
物理空间
段0 1 段 1K 5 3K
段 5K 3 8K-1
段表中,装入位为1表示该段已调入主存,为0则表 示该段不在主存中。因段的长度可大可小,所以段 表需要有长度指示。
虚拟存储器工作的全过程
虚拟存储器两大特点
1)允许用户用比主存空间大的多的空间来访问 主存。
2)每次访存都要进行虚实地址的转换。
虚拟存储器的管理由硬件(MMU)和软件 (操作系统)共同实现。
由于虚存地址空间比主存地址空间大得多, 就必须根据某种规则把按逻辑地址编写的程 序装入到主存储器中去,并将逻辑地址转换 成对应的主存物理地址,程序才能运行,这 一过程称为地址转换。
虚拟存储器由硬件和软件(操作系统)自动 实现对存储信息的调度和管理。
5)虚拟存储器的基本信息传送单位
块是主存与辅存之间数据传送的基本单位。 根据对虚拟存储器不同的管理方式,块可以 具体化为页、段和段页三种形式。
分页存储管理
以页为基本单位的虚拟存储器叫页式虚拟存 储器。
程序虚地址分为两个字段:高位字段为虚页 号,低位字段为页内地址。
转换后援缓冲器(TLB)/快表
页面替换算法及其实现方法
页面替换发生时间: 当发生页面失效时,要从磁盘中调入一
页到主存。如果主存所有页面都已经被占用, 必须从主存储器中淘汰掉一个不常使用的页 面,以便腾出主存空间来存放新调入的页面。 评价页面替换算法好坏的标准:
一是命中率要高 二是算法要容易实现
(4) 最优替换算法 (OPT) 是一种理想化的算法。用来作为评价其它页 面替换算法好坏的标准。
例1: 一个程序共有5个页面组成,程序执行过程中 的页地址流如下:
P1, P2, P1, P5, P4, P1, P3, P4, P2, P4 假设分配给这个程序的主存储器共有3个页面。 给出FIFO、LRU、OPT 三种页面替换算法对 这3页主存的使用情况,包括调入、替换和命 中等。
虚拟地址由编译程序生成,是程序的逻辑地 址,其地址空间的大小受到辅助存储器容量 的限制。
3)虚拟存储系统与Cache存储系统的关系 相同点:都基于局部性原理
①把程序中最近常用的部分驻留在高速的存 储器中 ②一旦这部分变得不常用了,把它们送回到 低速的存储器中 ③这种换入换出是由硬件或操作系统完成的, 对用户是透明的 ④力图使存储系统的性能接近高速存储器, 价格接近低速存储器
两种存储系统的主要区别:
Cache与虚拟存储器的主要区别
存储系统
Cache体系
虚拟存储器
要达到的目标 提高(主存)速度 扩大(主存)容量
实现方法
全部硬件
软件为主,硬件为 辅
透明性 对系统和应用程序员 仅对应用程序员
4)虚拟存储器工作原理
在执行程序时,允许将程序的一部分调入主 存,其他部分保留在辅存。即由操作系统的 存储管理软件先将当前要执行的程序段(如 主程序)从辅存调入主存,暂时不执行的程 序段(如子程序)仍保留在辅存,当需要执 行存放在辅存的某个程序段时,由CPU执行 某种程序调度算法将它们调入主存。
用户按照程序段来编写程序,每个程序 段分成几个固定大小的页。 基本思想----将虚拟存储空间按段式管理 ,而主存空间按页式管理,存在虚空间 的程序按逻辑关系分段,每一段又可分 成固定大小的页。主存则只分成若干相 同大小的页。
如下图所示,一个用户程序由三个独立的程序段组成。0号 程序段的长度为12KB,由于页的长度是4KB,因此,正好分 成3页。1号程序段的长度为10KB,也分成3页,其中最后一 页有2KB是浪费的。2号程序段的长度为5KB,分成2页,其 中后面一页浪费3KB。
虚拟存储器中,主存页面的替换,一般用软 件实现
(1) 随机算法(RAND)
算法简单,容易实现; 没有利用历史信息,没有反映程序的局部性, 命中率低。
(2) 先进先出算法 (FIFO) 比较容易实现,利用了历史信息,没有反映 程序的局部性。 最先调入主存的页面,很可能也是经常要使 用的页面。