计算机组成原理课件 虚拟存储器

合集下载

第5章-虚拟存储器ppt课件

第5章-虚拟存储器ppt课件
(2)有大量作业要求运行,但由于内存容量不足以容纳所 有这些作业,只能将少数作业装入内存让它们先运行,而 将其它大量的作业留在外存上等待。
.
5.1.1 常规存储器管理方式的特征和局部性原理 1.常规存储器管理方式的特征 (1)一次性
作业在运行前需一次性地全部装入内存,如果一次 性地装入其全部程序,也是一种对内存空间的浪费。
.
5.1.2 虚拟存储器的特征
虚拟存储器具有以下主要特征:
1.多次性 一个作业被分成多次调入内存运行,在作业
运行时只需将当前要运行的那部分程序和数据装 入内存即可;当要运行时尚未调入的那部分程序 时,再将它调入。
2.对换性 作业的运行过程中进行换进、换出,换进和
换出能有效地提高内存利用率。
3.虚拟性 虚拟性是指能够从逻辑上扩充内存容量,使
(2)驻留性
作业装入内存后,便一直驻留在内存中,直至作业 运行结束。尽管运行中的进程会因I/O而长期等待, 仍将继续占用宝贵的内存资源。
.
2.局部性原理
(1)程序执行时,除了少部分的转移和过程调用 指令外,在大多数情况下仍是顺序执行的。
(2)过程调用将会使程序的执行轨迹由一部分区 域转至另一部分区域,但经研究看出,过程调用 的深度在大多数情况下都不超过5层。这就是说, 程序将会在一段时间内都局限在这些过程的范围 内运行。
.
3.虚拟存储器定义
基于局部性原理,应用程序在运行之前,没有必 要全部装入内存,仅须将那些当前要运行的部分 页面或段先装入内存便可运行,其余部分暂留在 盘上。
所谓虚拟存储器:是指具有请求调入功能和置换 功能,能从逻辑上对内存容量加以扩充的一种存 储器系统,其逻辑容量由内存容量和外存容量之 和所决定,其运行速度接近于内存速度,而每位 的成本却又接近于外存。

计算机组成原理-存储系统(2)虚拟存储器

计算机组成原理-存储系统(2)虚拟存储器

0
2
1
1
2
3
4
1
0
1
1
0
0
1
0








10
页式虚拟存储器虚实地址转换
页表基址寄存器
页表基地址
+ 控制字 主存页面号
页号
页内地址 虚地址




页表(在主存中)
页面号 页内地址 实存地址
11
页式虚拟地址到物理地址的转换
虚拟地址 程序页表
0010 000000000100
0 010 1 1 001 1 2 110 1 3 000 1 4 100 1 5 000 0
虚地址: 虚拟页号Nv 页内地址Nr
• 实地址结构(以磁盘为例):
Nvd
Nd: 磁盘机号 磁头号 柱面号 块号
块内地址
20
虚拟存储器的工作全过程
❖ 外页表的概念:
把Nv Nvd(即把一个虚拟页号转换成一个辅 助存储器上的具体的物理地址)的表称为外页表。
7.3 虚拟存储器
❖ 虚拟存储器指的是“主存-辅存”层次, 它能使计算机具有辅存的容量,接近于 主存的速度和辅存的每位成本。使程序 员可以按比主存大得多的空间来编制程 序,即按虚存空间编址。
1
两种存储层次的比较
❖ 区别:
主存/cache的访问“时间比”较小,典型 为10:1。每次传送的基本信息单元较小(字 块),几个至几十个字节。
9
7.3.2 页式虚拟存储器
❖ 在页式虚拟存储系统中,把虚拟空间分成页,称
为虚页或逻辑页;主存空间也分成同样大小的页, 称为实页或物理页。

组成原理-虚拟存储器课件

组成原理-虚拟存储器课件

页内地址
虚地址的结构及虚地址向辅存实地址的 变换1 变换
• 辅存实地址格式与采用的存储设备有关。 • 磁盘存储器的实地址格式如下所示。 • 为了简单,可使扇区的大小同页面大小, 这样虚地址与畏辅存实地址的变换就成为 虚页号与辅存实页号之间的变换。 • 用设置页表的方法来实现,将虚地址变为 辅存实地址的页表称为外页表,如下所示。


虚拟存储器的构成
辅助软硬件
虚存
CPU
主存
辅存
• • • • •
CPU与主存间的数据交换以字为单位,主存与辅存间的数据交换以块为单位 虚存由三部分组成,其中辅助软硬件控制主存与辅存间的数据交换 程序运行过程中,活跃部分放在主存,大量非活跃部分放在辅存;活跃部分和非活跃 部分是动态变化的;什么时候主存与辅存需要交换信息,完全由辅助软硬件来决定 程序运行时,CPU提供的是虚地址,由辅助部件来决定该虚地址的信息是否已装入实 存;如果实存命中,则辅助部件将虚地址变为实地址,访问实存;否则,将包含该虚 地址的一个信息块由辅存调入主存,再去访问主存 由上述过程,可以见到有虚存技术存在两种虚实变换:若命中,要将虚地址(虚拟存 储器存储单元的地址)变为主存地址;若不命中,需将虚地址变为虚单元所在信息块 的辅存地址(称为辅存实地址)
虚地址的结构及虚地址向主存实地 址的变换1 址的变换
• 虚地址结构与主存的存储管理策略有关,常有的存储管理 策略有段式、页式、段页式,下面以页式为例。 • 页式管理
– 将实存和虚存分为大小相同的页 – 例如:虚地址32bits,实地址20bits,每页4KB,则地址结构为: – 要将虚地址变为实地址,只需将虚页号变为实页号,为此需要寻 立一个内页表
虚拟存储系统的存储保护

计算机操作系统--虚拟存储器 ppt课件

计算机操作系统--虚拟存储器  ppt课件
pp6t课拟存储器的定义和特征 1. 虚拟存储器的定义 当用户看到自己的程序能在系统中正常运行时,他会认
为,该系统所具有的内存容量一定比自己的程序大,或者说, 用户所感觉到的内存容量会比实际内存容量大得多。但用户 所看到的大容量只是一种错觉,是虚的,故人们把这样的存 储器称为虚拟存储器。
统存储器管理方式,它们全都具有如下两个共同的特征: (1) 一次性 (2) 驻留性
pp3t课件
第五章 虚 拟 存 储 器
2. 局部性原理 程序运行时存在的局部性现象,很早就已被人发现,但 直到1968年,P.Denning才真正指出:程序在执行时将呈现出 局部性规律,即在一较短的时间内,程序的执行仅局限于某 个部分,相应地,它所访问的存储空间也局限于某个区域。
算机系统除了要求一定容量的内存和外存外,还需要有请求 页表机制、缺页中断机构以及地址变换机构。
pp1t1课件
第五章 虚 拟 存 储 器
1. 请求页表机制 在请求分页系统中需要的主要数据结构是请求页表,其 基本作用仍然是将用户地址空间中的逻辑地址映射为内存空 间中的物理地址。为了满足页面换进换出的需要,在请求页 表中又增加了四个字段。这样,在请求分页系统中的每个页 表应含以下诸项:
pp1t8课件
第五章 虚 拟 存 储 器
3. 物理块分配算法 在采用固定分配策略时,如何将系统中可供分配的所有 物理块分配给各个进程,可采用下述几种算法: (1) 平均分配算法,即将系统中所有可供分配的物理块 平均分配给各个进程。 (2) 按比例分配算法,即根据进程的大小按比例分配物 理块。如果系统中共有n个进程,每个进程的页面数为Si, 则系统中各进程页面数的总和为:
pp9t课件
第五章 虚 拟 存 储 器
2. 请求分段系统 1) 硬件支持 主要的硬件支持有: (1) 请求分段的段表机制。 (2) 缺页中断机构。 (3) 地址变换机构。 2) 软件支持

计算机组成原理4第四章存储器PPT课件精选全文

计算机组成原理4第四章存储器PPT课件精选全文

4.2
11
4.2
请问: 主机存储容量为4GB,按字节寻址,其地址线 位数应为多少位?数据线位数多少位? 按字寻址(16位为一个字),则地址线和数据线 各是多少根呢?
12
数据在主存中的存放
设存储字长为64位(8个字节),即一个存 取周期最多能够从主存读或写64位数据。
读写的数据有4种不同长度:
字节 半字 单字 双字
34
3. 动态 RAM 和静态 RAM 的比较
主存
DRAM
SRAM
存储原理
电容
触发器
集成度


芯片引脚


功耗


价格


速度


刷新


4.2
缓存
35
内容回顾: 半导体存储芯片的基本结构 4.2
…… ……










线



线



片选线
读/写控制线
地址线(单向) 数据线(双向) 芯片容量
D0
…… D 7
22
(2) 重合法(1K*1位重合法存储器芯片)
0 A4
0,00

0,31
0 A3
X 地
X0
32×32
… …
0址
矩阵
A2

0码
31,0

31,31
A1
器 X 31
0 A0
Y0 Y 地址译码器 Y31 A 9 0A 8 0A 7 0A 6 0A 5 0

《操作系统》课件05 虚拟存储器

《操作系统》课件05 虚拟存储器
有效访问时间=(1-p)*0.1(μs)+p*25000(μs)
=0.1+24999.9*p
如果缺页率p=0.001(即在1000次的页面访问中,仅发生一 次缺页)
则 有 效 访 问 时 间 约 为 25μs , 与 无 缺 页 相 比 , 速 度 降 低 至 1/250。
第五章 虚拟存储器
如果希望在缺页时有效访问时间延长不超过10%,则有 0.11>0.1+24999.9*p
(1)CPU利用率为13%,盘利用率为3%;
第五章 虚拟存储器
答:
(1)此时发生抖动现象。增加多道程序度会进一步增加缺页 率,使系统性能进一步恶化,所以不能用增加多道程序度数来 增加CPU的利用率。
(2)CPU利用率已经相当高,盘利用率却相当低,即进程的 缺页率很低,此时应适当增加多道程序度数来增加CPU的利用 率。
第五章 虚拟存储器
图 4-28 某进程具有8个页面时的LRU访问情况
第五章 虚拟存储器
2) 栈
47 0 7 1 01 2 1 2 6 2126
1 01 1 2 1 2 0 7 7 10 0 0 0 1 7 7 0 0 77 7 7 7 0 44 4 4 4 44 4 4 4 7
图 4-29 用栈保存当前使用页面时栈的变化情况
第五章 虚拟存储器
例:考虑一个请求分页系统,它采用全局置换策略和平均分配 内存块的算法(即若有m个内存块和n个进程,则每个进程分得 m/n个内存块)。如果该系统测得如下CPU和对换盘利用率, 请问能否用增加多道程序度数来增加CPU的利用率?为什么?
(1)CPU利用率为13%,盘利用率为97%;
(2)CPU利用率为87%,盘利用率为3%;

组成第十五讲:虚拟存储器

组成第十五讲:虚拟存储器

计算机组成原理
虚拟存储器概述 虚拟存储器和cache存储器的不同之处: 主要功能 传送信息块长度 访问速度 虚拟存储器对未命中更加敏感 对程序员是否透明
计算机组成原理
虚拟存储器概述 主要功能: cache存储器采用与CPU速度匹配的快速存储元件 弥补了主存和CPU之间的速度差距; 虚拟存储器虽然最大限度减少了慢速辅存对CPU的 影响,但它的主要功能是用来弥补主存和辅存之间 的容量差距,具有提供大容量和程序编址方便的优 点。
计算机组成原理
页式虚拟存储器 页表在主存中的地址由页表寄存器指出 虚拟地址 0010
0 1 2 3 4 5 010 001 110 000 100 000 1 1 1 1 1 0
000000000100
存在位
程序页表
110 12 位偏移
实存(主存)地址 1 1 0
000000000100
计算机组成原理
计算机组成原理
页式虚拟存储器 注意: 虚页内容若没有调入主存,则计算机启动输入输出系 统,把虚地址指示的一页内容从辅存调入主存,再提 供CPU访问。 虚地址和辅存地址不是一回事,程序员按虚存空间编 址,虚地址由虚页号和页内地址组成;辅存实际地址 以磁盘为例,地址由磁盘机号、磁头号、柱面号、块 号、块内地址组成。因此从辅存调页时还需要虚存地 址空间到辅存地址的变换。这个变换也可以采用类似 前述页表的方式,称外页表。
计算机组成原理
页式虚拟存储器
计算机组成原理
页式虚拟存储器 CPU访问主存时送出的是程序虚地址,计算机必须判断该 地址的存储内容是否已在主存里,如果不在的话,则需要 将所在页的内容按存储管理软件的规定调入指定的主存页 后才能被CPU执行;如果在的话,则需找出主存在哪一页。 为此,通常需要建立一张虚地址页号与实地址页号的对照 表,记录程序的虚页面调入主存时被安排在主存中的位置, 这张表叫页表。

计算机组成原理3.7虚拟存储器

计算机组成原理3.7虚拟存储器

计算机组成原理3.7虚拟存储器3.7.1虚拟存储器概念3.7.2页式存储器主存和Cache之间是分块映射存储,同样,利⽤局部性原理,也可以将主存和辅存之间进⾏分块映射存储。

举个粒⼦,假如现在使⽤微信⽂字聊天,该部分程序占⽤⼤⼩了4KB的空间,那么可以分为⼤⼩位1KB的四块,分别映射存储到主存中。

如下图,分页式存储,在这个问题中就是把程序进程逻辑上⼤⼩相等的四块页⾯,每个页⾯⼤⼩与主存块⼤⼩相等,可以离散的存储到主存块中。

那么,4KB的程序被拆分成四块存储到主存后,要如何执⾏该程序呢?这个问题留到3.7.3.3部分来回答。

3.7.3页式虚拟存储器3.7.3.1页表虚拟存储,如上⽂提到的微信⽂字聊天,假设微信程序⼤⼩1GB,主存⼤⼩只有512MB,在⽂字聊天时候不需要把全部的微信程序相关数据调⼊到主存,只调⼊需要的4KB,剩余的空间可以继续调⽤其他程序进程,512MB⼤⼩的主存可以运⾏许多个1GB的程序,这就是虚拟存储。

关于分页式虚拟存储,依然借⽤学习讲义⾥的图⽚,逻辑页号:记录程序数据在逻辑地址的哪⼀块地址页中。

主存块号:记录程序数据在主存储器的哪⼀块主存中,与逻辑页号有映射关系。

外存块号:记录程序数据在辅存的哪⼀块。

有效位:初始化位0,记录某⼀块程序数据所在的逻辑页⾯是否被调⽤到主存中,若是为1,若否为0。

访问位:初始化为0,记录某块程序数据被访问的次数,⽤访问位帮助实现页⾯替换,需要替换时优先淘汰访问位记录数较⼩的。

脏位:初始化为0,发⽣数据修改时变为1。

举个粒⼦,假设要访问逻辑页号为1的数据,则从页表中找到对应的对应逻辑页号,有效位是1,则直接根据映射访问主存块号位2的主存块,并且访问位+1。

假设访问逻辑页号为3的数据,根据页表找到逻辑页号,有效位是0,主存中没有数据,则需要到辅存中找到外存块号为d的存储块,将数据调⼊到主存中,有效位修改为1,访问位+1;若对该块数据进⾏修改,则脏位0变1,这⼀块数据被替换掉时,需要把数据写⼊辅存。

计算机组成原理第三章第7讲虚拟存储器

计算机组成原理第三章第7讲虚拟存储器

3.7虚拟存储器
➢ 不同的虚拟存储器机制
页式虚拟存储器 段式虚拟存储器 段页式虚拟存储器
➢ 不同的替换算法:
FIFO LRU LFU
3.8奔腾系列机的虚存组织
➢略
本章小结
➢ 对存储器的要求是容量大、速度快、成本 低。
➢ 为了解决了这三方面的矛盾,计算机采用 多级存储体系结构,即cache、主存和外存。
3.7虚拟存储器
➢ 程序运行或者数据处理需要将相关信息流 从辅助存储器调入内存
➢ 问题是:
如果信息流容量大于内存容量怎么处理? 多用户的多任务共享内存时,怎样编制分配内
存?
➢ 解பைடு நூலகம்办法:
编程时不考虑实地址,运行时只调入正在运行 或将要运行的信息流。
3.7虚拟存储器
2. 虚存访问过程: ➢ 虚存空间用户程序按照虚地址编程并存放
3.7虚拟存储器
➢ 虚存是概念模型,不是实物
➢ 对系统程序不透明
➢ 对应用程序透明
➢ 虚存能有效提高存储体系性能
Cache 主存 辅存
Cache-主存 访问机制
主存-辅存 访问机制
3.7虚拟存储器
3. 两种机制的异同:
出发点相同:提高存储系统性能 原理相同:局部性原理 侧重点不同:
• 前者:速度差异; • 后者:容量、分配、保护等
• 虚存
本章作业
➢ P111
1、8、9、10、14、15 勘误:第8题,“若连续读出8字,求…” 勘误:第14题,“容易”改为“容量” 再免费送一题:
有1M*8位存储器芯片若干,如何扩展为 4M*16位存储器,画出连接线路。
#不要抄袭,即使暂时不交#
数据通路不通:
• 前者:有直接通路; • 后者:只能访主存

计算机组成原理 第18讲虚拟存储器

计算机组成原理 第18讲虚拟存储器

•地址变换过程:
•先用虚地址 中的q`按地址 访问,在2q组 中选出一组。
nd
q`
•对该组再用 不等

(Tag
相联比较
q 相等
)在2S行中进
行相联查找
如。果在2S行中
nd S`
S
查不到相符
的,则表示
该虚页不在
实存中。
S`
Nr
S
nr
目录表
如果查到,则 将表中相应的 S与q`拼接,就 是实地址 。
Systems can have one page table for the whole system or a separate page table for each application.
虚拟存储器的地址映象(或称定位算法)是指每个虚页按 什么规则(算法)装入(定位于)实存,地址变换是指程序按 照映象关系装入实存后,在程序运行时虚地址如何变换成对应 的实存地址。
当处理机发出访存地址时,首先进行虚地址到主存实地址 的映象变换,如果出现页故障,再进行虚地址到辅存实地址的 映象变换。
虚地址到主存实地址的地址映射变换有:直接映射,相联 映射,组相联映射,段相联映射等。
•盛建伦 jlsheng@
段式虚拟存储器 (Segmentation)
Using segmentation, an application's virtual address space is divided into variable-length segments. A virtual address consists of a segment number and an offset within the segment.
= TM +(1—H)·TB Embedded systems and other special-purpose computer systems which require very fast, very consistent response time do not generally use virtual memory.

组成原理课件 - 虚拟存储器

组成原理课件 - 虚拟存储器

二、虚拟存储器的管理方法: 1、页式虚拟存储器:是把虚拟存储空间和实际存储空间等分成固 定 容量的页,各虚拟页可装入主存中不同的实 际页面位置。(4K~64K) 每个虚拟地址可看作由三部分组成:基号、页号和页内地址 基号:是操作系统给每个程序产生的地址附加的地址字段,用来区 分不同程序的地址空间。 实际地址分为页号和页内地址两部分
§7· 6
虚拟存储器
一、虚拟存储器: 是建立在主存和辅存层次上,由附加硬件装置和操作系统存储 管理软件组成的存储体系。它主要用于解决计算机中主存容量不足 的问 题,在虚拟存储器中,程序可以像访问内存一样访问外存, CPU根据程序指令生成的地址是虚拟地址(逻辑地址),虚拟地址 经过转 换后形成实际地址(物理地址)。虚拟地址空间可以大到 CPU的最大寻址范围,为提高平均访存速度,将虚拟地址空间中访 问最频繁 的一小部分 寻址范围映象到主存储器,其余的地址空间 映 象到外存储器,这样从程序员的角度看,存储系统具有外存的容量 又有接近于主存的访问速度。 虚拟存储器给用户提供了一个比实际主存空间大得多的虚拟地 址空间。
一、填空 1、Cache是指( )。 2、虚拟存储器是建立在( )结构上,用来解决( )的问题。 3、将辅助存储器当作主存来使用,从而扩大程序可访问的存储空 间,这样的存储结构称为( )。 4、地址映象(射)用来确定( )地址和( )地址之间的逻辑 关系。 5、常用的地址映射方法有( )、( )、组相联映射三种。 6、建立高速缓冲存储器的理论依据是( )。 7、在计算机中,主存的工作方式是( );辅存的工作方式是 ( )。 8、4体交叉存储器是一种高速存储器,它( )个存储模块,每 个模块有它自已的地址寄存器和( )寄存器。
3、段页式虚拟存储器 它是将存储空间按逻辑模块分成段,每段以分成若干个页, 这种访问通过一段表和若干个页表进行。段的长度必须是页长的整 数倍,段的起点必须是某一页的起点。在段页式虚拟存储器中,虚 拟地址被分为基号、段号、页号、页内地址在进行地址映象时:首 先根据基号查找段基址表,从表中查出段表的起始地址,然后用段 号从段表中查找该 段的页表的起始地址,然后根据段内页号在页表 中查找该页在内存中的起始地址(实页号),同时判断该段是否装

计算机组成原理课件 5.8 虚拟存储器

计算机组成原理课件  5.8 虚拟存储器

北京理工大学计算机学院
5.8 虚拟存储器
计算机组成原理
在实际的物理存储层次上,所编程序和数据在
操作系统管理下,先送入磁盘,然后操作系统将当 前运行所需要的部分调入主存,供CPU使用。
程序运行时,CPU以虚地址来访问主存,由辅 助硬件找出虚地址和实地址之间的对应关系,并判 断这个虚地址指示的存储单元内容是否已装入主存 。如果已在主存中,则通过地址变换,CPU可直接 访问主存的实际单元;如果不在主存中,则把包含 这个字的一页或一个程序段调入主存后再由CPU访 问。如果主存已满,则由替换算法从主存中将暂不 运行的一页或一段调回辅存,再从辅存调入新的一 页或一段到主存。
第5章
计算机组成原理
5.1 存储系统的组成 5.2 主存储器的组织 5.3 半导体随机存储器和只读存储器 5.4 主存储器的连接与控制 5.5 提高主存读写速度的技术 5.6 多体交叉存储技术 5.7 高速缓冲存储器 5.8 虚拟存储器
北京理工大学计算机学院
5.8 虚拟存储器
计算机组成原理
5.8.1 虚拟存储器的基本概念
北京理工大学计算机学院
北京理工大学计算机学院
5.8 虚拟存储器
计算机组成的虚拟存储器叫页式 虚拟存储器。各类计算机页面大小不等, 一般为512B到几KB。主存空间和虚存空间 都划分成若干个大小相等的页。主存即实 存的页称为实页,虚存的页称为虚页。
页式虚拟存储器的每页长度是固定的, 页表的建立很方便,新页的调入也容易实 现。但是由于程序不可能正好是页面的整 倍数,最后一页的零头将无法利用而造成 浪费。同时,页不是逻辑上独立的实体, 使程序的处理、保护和共享都比较麻烦。
虚拟存储器由主存储器和联机工作的 辅助存储器(通常为磁盘存储器)共同组 成,这两个存储器在硬件和系统软件的共 同管理下工作,对于应用程序员,可以把 它们看作是一个单一的存储器。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

4.2 虚拟存储器
例1:一个程序共有5个页面组成,分别为P1~P5。程序执行过程中的页地 址流(即程序执行中依次用到的页面)如下:P1,P2,P1,P5,P4,P1, P3,P4,P2,P4,假设分配给这个程序的主存储器共有3个页面。图中, 用"*"号标记下次将要被替换掉的页面。
4.2 虚拟存储器
内部地址变换:多用户虚拟地址Av变换成贮存实地址A 多用户虚拟地址中的页内偏移量D直接作为主存实地址中的页内偏移d 主存实页号p与它的页内偏移d直接拼接就得到主存是地址A
4.2 虚拟存储器
一个用户程序要访问虚拟存储器时,必须给出多用户虚拟地址Av。在操作系统和 有关硬件的共同管理下,首先进行内部地址变换。 如果变换成功(命中),得到主存实页号p。把主存实页号p与它的页内偏移d直 接拼接起来就得到主存实地址A,访问主存储器。 如果内部地址变换失败(未命中),表示要访问数据不在主存储器中,必须访问 磁盘存储器。这时,进行外部地址变换。 外部地址变换主要用软件实现,首先查外页表得到与虚页号P相对应的磁盘存储 器的实地址,然后再查内页表(主存实页表),看主存储器中是否有空页。如果主 存储器中还有空页,只要找到空页号。把磁盘存储器的实地址和主存储器的实页号 送入输入输出处理机(输入输出通道)等,在输入输出处理机的控制下,把要访问 数据所在的一整页都从磁盘存储器调入到主存储器。 如果主存储器中已经没有空页,则要采用某种页面替换算法,先把主存中暂时不 用的一页写回到磁盘存储器中原来的位置上,以便腾出空位置来存放新的页。 在进行外部地址变换时,如果没有命中,则表示所需要的页还不在磁盘存储器中。 这时,要在操作系统控制下,启动磁带机、光盘存储器等海量存储器,先把与所需 要数据相关的文件从海量存储器中调入磁盘存储器。
4.2 虚拟存储器
一、虚拟存储器工作原理 页式虚拟存储器是虚拟存储器中用得比较广泛的一种,另外的段式虚拟 存储器和段页式虚拟存储器主要是因为地址变换方法不同产生的。 页式虚拟存储器:把主存储器、磁盘存储器和虚拟存储器都划分成固定 大小的块--页(Page). 主存储器的页称为实页,虚拟存储器中的页称为虚页。
4.2 虚拟存储器
5、最优替换算法,OPT算法(OPTimal replacemant algorithm)。 上面介绍的几种页面替换算法主要是以主存储器中页面调度情况的历史 信息为依据的,它假设将来主存储器中的页面调度情况与过去一段时间内 主存储器中的页面调度情况是相同的。显然,这种假设不总是正确的。最 好的算法应该是选择将来最久不被访问的页面作为被替换的页面。这种替 换算法的命中率一定是最高的。这就是最优替换算法,简称OPT算法。 要实现OPT算法,唯一的办法是让程序先执行一遍,记录下实际的页地 址流情况。根据这个页地址流才能找出当前要被替换的页面。显然,这样 做是不现实的。因此,OPT算法只是一种理想化的算法,实际上,经常把 这种算法用来作为评价其它页面替换算法好坏的标准。在其它条件相同的 情况下,哪一种页面替换算法的命中率与OPT算法最接近,那么,它就是 一种比较好的页面替换算法。 虚拟存储器中,实际上可能采用的只有FIFO、LRU两种算法。
4.2 虚拟存储器
地址变换方法:由用户号找到基址寄存器,读出段表起始地址,与虚 地址中段号相加得到段表地址,段标中的起始地址与段内偏移D相加得到 主存实地址。 N道程序-N个段表基址寄存器-N个段表 两次访存完成一次信息交换(首次访存查表,二次访存按地址取信息)
段名:实际由于段号与 行对应,省略掉。 装入位:是(1)否(0)已 调入主存。 地址:调入主存时,在 主存的起始(绝对)地址。 段长:段的大小,限制 偏移越界。 访问方式:只读、可写、 只执行,提供访问保护。
4.2 虚拟存储器
4.2 虚拟存储器
二、地址映像与变换 虚拟存储器中有三种地址空间,对应三种地址。 虚拟地址空间:虚存空间或虚拟存储器空间,是应用程序员用来编写 程序的地址空间,这个地址空间非常大。 主存储器的地址空间:主存地址空间、主存物理空间或实存地址空间 辅存地址空间:磁盘存储器的地址空间 虚拟地址:虚存空间上的地址,又称为虚存地址或者虚地址 主存地址:又称为主存实地址、主存物理地址、主存储器地址 磁盘存储器地址:又称为磁盘地址、辅存地址 地址映像:把虚拟地址空间映象到主存地址空间,具体地说,就是把用 户用虚拟地址编写的程序按照某种规则装入到主存储器中,并建立多用户 虚地址与主存实地址之间的对应关系。 地址变换:在程序被装入主存储器之后,实际运行时把多用户虚地址变 换成主存实地址(内部地址变换)或磁盘存储器地址(外部地址变换)。
4.2 虚拟存储器
3、近期最少使用算法,LFU算法(Least Frequently Used algorithm)。 这种算法选择近期最少访问的页面作为被替换的页面。显然,这是一种 非常合理的算法,因为到目前为止最少使用的页面,很可能也是将来最少 访问的页面。该算法既充分利用了主存中页面调度情况的历史信息,又正 确反映了程序的局部性。但是,这种算法实现起来非常困难。它要为每个 页面设置一个很长的计数器,并且要选择一个固定的时钟为每个计数器定 时计数。在选择被替换页面时,要从所有计数器中找出一个计数值最大的 计数器。因此,通常采用另外一种变通的办法,就是下面的LRU算法。 4、最久没有使用算法,LRU算法(Least Recently Used algorithm)。 这种算法把近期最久没有被访问过的页面作为被替换的页面。它把LRU 算法中要记录数量上的"多"与"少"简化成判断"有"与"无",因此,实现起 来比较容易。
4.2 虚拟存储器
2、页式虚拟存储器 程序按页(虚页)划分,贮存按页(实页)分配 页面大小固定,一般指定为0.5KB的整倍数,通常为1KB至16KB。 与段式虚拟存储器相比,由于页长度固定,因此,不需要象段式虚拟存 储器中的段长度这一字段,另外,主存地址这一字段只需要指出主存储器 的页号,与段式虚拟存储器中的主存地址必须指出整个主存地址长度相比 要节省很多。 地址映像方法:
4.2 虚拟存储器
根据所采用的地址映象和地址变换方法不同,目前主要有页式虚拟存 储器、段式虚拟存储器和段页式虚拟存储器等三种。 1、段式虚拟存储器 程序按模块划分,主存按段分配 地址映像方法:每个程序从0地址开始编址,长度可长可短,可以在程 序执行过程中动态调整程序段的长度。 每一道程序(或一个用户、一个进程等)由一张段表控制,每个程序段 在段表中占一行。
4.2 虚拟存储器
虚拟地址空间中的每一个页面或每一个程序段,在外页表中都有对应 的一个存储字。在每一个存储字中除了必须有磁盘存储器的地址之外,至 少还应该包括一个装入位。
4.2 虚拟存储器
四、页面替换算法 页面替换发生时间:当发生页面失效时,要从磁盘中调入一个页面到主 存,如果主存中所有页面都已经被占用,必须从主存中淘汰掉一个已有页 面,以便存放新调入页面。 评价页面替换算法好坏的标准:命中率要高,算法要容易实现。 目前。在虚拟存储器常用的页面替换算法有如下几种: 1、随机算法,即RAND算法(Random algorithm)。 利用软件或硬件的随机数发生器来确定主存储器中被替换的页面。这种 算法最简单,而且容易实现。但这种算法完全没有利用主存储器中页面调 度情况的历史信息,也没有反映程序的局部性,所以命中率比较低。 2、先进先出算法,即FIFO算法(First-In First-Out algorithm)。 这种算法选择最先调入主存储器的页面作为被替换的页面。它的优点是 比较容易实现,能够利用主存储器中页面调度情况的历史信息,但是,没 有反映程序的局部性。因为最先调入主存的页面,很可能也是经常要使用 的页面。
4.2 虚拟存储器
3、段页式虚拟存储器 基本思想是对用户编写程序的虚拟存储空间采用分段的方法管理,对 主存物理空间采用分页的方法管理。同时获得段式虚拟存储器在程序模块 化方面的优点和页式虚拟存储器在管理主存和辅存物理空间方面的优点。 程序按段划分,段内分页,主存按页分配。 地址映像方法:每个程序段在段表中占一行,段表中给出页表长度和页 表起始地址,页表中给出每一页在主存中的实页号。
就本例而言,FIFO命中次数2次,命中率Hp=2/10=0.2 LRU命中次数4次,命中率Hp=4/10=0.4 OPT命中次数5次,命中率Hp=5/10=0.5 假设每个数据平均被访问30次,为了使LRU算法的失效率小于10-5,页 面应该至少多大? (1-Hp)/n =(1-0.4)/30P <10-5 解得P>2000字,页面大小应该为2K字 FIFO算法的命中率最低,LRU算法的命中率与OPT算法很接近。这一结 论具有普遍意义。因此,在实际使用中,LRU算法是一种比较好的算法。 目前,许多机器的虚拟存储器都采用LRU算和联机工作的外部存储器共同组成。在目前 的计算机系统中,主存储器通常用动态随机存储器(DRAM)实现,它的 存储容量相对比较小,速度比较快,单位容量的价格比较贵。联机工作 的外部存储器通常为磁盘存储器,它的存储容量很大,与主存储器相比, 速度很低,单位容量的价格很便宜。这两个存储器在硬件和系统软件的 共同管理下,对于应用程序员,可以把它们看来是一个单一的存储器, 是一个存储容量非常大的主存储器。 虚拟存储器又称虚拟存储系统,或虚拟存储体系等,其概念是1961年英 国曼彻斯特大学的Kilbrn等人提出的。 到了70年代被广泛地应用于大中型计算机系统中。 目前,许多小型计算机,微型机也开始使用虚拟存储器。 页式虚拟存储器是虚拟存储器中用得比较广泛的一种,本节首先以页式 虚拟存储器为例介绍虚拟存储器的工作原理。然后再具体介绍页式、段 式和段页式三种虚拟存储器的地址变换方式及外部地址变换方式。
4.2 虚拟存储器
地址变换方法:先查段表,得到页表长度和页表起始地址,再查页表 找到要访问的主存实页号,把实页号p与页内偏移d拼接得到主存实地址。 三次访存,一次信息交换 在许多大中型计算机中,如IBM370/168、Multics、Amdahl470V/6等 都采用这种段页式虚拟存储器。
相关文档
最新文档