ch8 虚拟存储器管理技术

52
Ch8 虚虚虚虚虚虚虚虚虚 虚虚虚虚虚虚 虚虚虚虚虚虚 虚虚虚虚虚虚虚

Upload: willow-weiss

Post on 03-Jan-2016

76 views

Category:

Documents


3 download

DESCRIPTION

Ch8 虚拟存储器管理技术. 分页存储管理 分段存储管理 段页式存储管理. 8.1 基本概念. 进程执行程序时 要 访问的是程序的指令和数据的逻辑地址。进程在处理机上才能运行,通过处理机 实际 访问指令和数据的主存地址。 严格区分 逻辑地址(相对地址) 及 逻辑地址空间 和 绝对地址(实际地址) 及 绝对地址空间(实存地址空间)。 虚拟地址 : 把一个运行进程访问的地址称为“虚拟地址” 虚拟地址空间 : 一个运行进程可访问的虚拟地址集合。 实地址 :处理机可直接访问的主存的地址称为“实地址” 实地址空间 :计算机主存称为“实地址空间”。 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Ch8  虚拟存储器管理技术

Ch8 虚拟存储器管理技术 分页存储管理 分段存储管理 段页式存储管理

Page 2: Ch8  虚拟存储器管理技术

8.1 基本概念进程执行程序时要要访问的是程序的指令和数据的逻辑

地址。进程在处理机上才能运行,通过处理机实际实际访问指令和数据的主存地址。

严格区分逻辑地址(相对地址)逻辑地址(相对地址)及逻辑地址空间逻辑地址空间和绝绝对地址(实际地址)对地址(实际地址)及绝对地址空间(实存地址空绝对地址空间(实存地址空间)。间)。

虚拟地址:把一个运行进程访问的地址称为“虚拟地址”虚拟地址空间:一个运行进程可访问的虚拟地址集合。实地址:处理机可直接访问的主存的地址称为“实地址”实地址空间:计算机主存称为“实地址空间”。

动态地址映象机构动态地址映象机构:实现由虚拟地址到实际地址的转换。(把程序的指令和数据所在的虚拟地址放入主存实地址中去)

Page 3: Ch8  虚拟存储器管理技术

虚拟地址空间(虚存) >> 实地址空间(主存)虚存地址空间大小虚存地址空间大小取决于:

指令中的地址长度; 外存空间的大小。

虚拟存储器虚拟存储器:是一个地址空间,是进程访问的逻辑地址空间,而不是物理主存空间。最大虚拟地址空间往往取决于指令中的地址长度限制(因外存空间通常大于指令地址长度所限定的范围)。

虚存管理虚存管理:由 OS 自动实现,对用户是透明的。 决定把作业虚拟地址空间的哪一部分装入主存; 放在主存的什么位置; 主存空间不够时把哪一部分置换出主存。

Page 4: Ch8  虚拟存储器管理技术

8.2 分页存储管理1. 分页存储管理的基本规则2. 分页系统的地址转换3. 分页存储管理策略:

4. 分页存储管理技术性能分析5. 页的共享和保护6. 分页存储管理技术的软硬件实现

Page 5: Ch8  虚拟存储器管理技术

1. 分页存储管理基本规则 等分主存等分主存:把主存划分成相同大小的存储块 --- 页架( page f

rame ),页架大小固定不变。页架从 0 编号 --- 页架号。 用户逻辑地址空间的分页用户逻辑地址空间的分页:逻辑地址空间划分成与页架大

小相同的部分 -- 页 ( 逻辑页,虚页 ) ,不足一页的补齐一页。给页从 0 编号 --- 页号。

逻辑地址的表示逻辑地址的表示:虚拟地址 A=> 数对( p,d ) , p-- 页面号; d-- 虚拟地址在页面号 p 内相对地址(页内

地址) 页面大小 L ,则 p= A/L ; d=[A]MOD L

ex : L=1000, A=3456 => 逻辑地址 (3,456)

主存分配原则主存分配原则:系统以页架页架为单位把主存分给作业或进程,并且分给一个作业或进程的页架不一定是相邻和连续的。即作业可以按页页为单位零散地放在主存不连续的页架中。页面 与页架一一对应(对应关系由页表记录)页面 与页架一一对应(对应关系由页表记录)。

Page 6: Ch8  虚拟存储器管理技术

页表页表:系统在作业装入主存时建立进程的同时建立的,记录各页面的调度情况。页表表目也称为页描述子页描述子 (page descriptor) ,包括页号、状态、页架号、页面存储控制字段。页表起始地址 b 和表长 L 一般放在该作业进程的 PCB 中,当进程投入运行时先装入页表地址寄存器。页表地址寄存器。

分页系统中地址结构分页系统中地址结构:虚拟地址 (p,d) 在指令场中的物理表示。 E

x. IBM 页号 P 页内地址 d 0 7 8 19 20 31 p 占 12 位,页面总数为 212

=4K; d 占 12 位,则页面大小为 4K.

页面尺寸应是页面尺寸应是 22 的幂的幂:便于由指令地址场中给出的逻辑地址计算出其页面号 p 及页内地址 d 。若页面大小 2i ,把地址场从第 i 位分成两部分,高位部分表示的数即页面号 p, 低位部分表示的数即为页内地址 d 。 L=

1K=1024=210, A=1005H, => p= 4H; d= 5H 15 1

0 9 0 0 0 0 1 0 0 0 0 0

0 0 0 0 1 0 1

Page 7: Ch8  虚拟存储器管理技术

页号 状态 页架号

0 Y 61 Y 7

0 Y 21 Y 52 Y 83 N -4 N -

0 Y 31 Y 102 N -3 N -

页面映象表(页表)

0000 操作1000 系统2000 作业 2第 0页3000 作业 3第 0页4000 空闲5000 作业 2第 1页6000 作业 1第 0页7000 作业 1第 1页8000 作业 2第 2页9000 空闲10000 作业 3第 1页

物理存储(主存)

00001000

作业 100001000200030004000

作业 20000100020003000

作业 3

逻辑地址空间

Page 8: Ch8  虚拟存储器管理技术

2. 分页存储管理地址转换 直接映象的地址转换直接映象的地址转换:图 8.3

进程被调度:该进程页表起始地址和表长送页表寄存器 R=(L,b);

进程访问虚地址 v :地址映象硬件把 v->(p,d) ; 比较页面号 p 与页表长 L ,判断是否越界; 页访问合法——按 p 索引页表: b+p*i => 第 p 个页面对应页

表表目——页描述子(页架号 p’ ) (i 为表目长度 ) 根据该表目中存储控制字段检验访问权限是否合法; 硬件计算实际地址:页架号 p’与 d 构成物理地址( p’,d )。

页表放在主存中系统表格区: 主存页架数 N= 主存大小 / 页大小;最多可存放 N 个页面,必然还有未能调入主存的页面,即所有进程页表表目数之和 >=N ,页表所占空间 = 页表表目数 * 每个表目长度 l>=N*l

缺点:访问两次主存(页表,数据),处理机执行速度降低 1/2 。

Page 9: Ch8  虚拟存储器管理技术

相关映象的地址转换相关映象的地址转换:图 8.4

页表放在相关存储器(关联存储器):快表 / 相关页表 相关存储器:硬件寄存器,且有一定的判断能力,实现按内容检索。 虚拟地址 v 由硬件截成两部分: (p,d); 用 p 与相关存储器中各表目

同时同时比较,查得其所在表目,自动送出页架号 p’ ,再与 d 构成实地址( p’,d )

处理机执行速度提高,但高速相关存储器很贵。相关映象与直接映象结合的地址转换:相关映象与直接映象结合的地址转换:图 8.5

用 8~16 个高速相关存储器:存放正在运行进程运行进程当前最常用的部分页面的页描述子(页表的子集)。

全部页表存放在主存系统区。 同时同时进行相关映象和直接映象(比较快表和主存页表 -慢表),相

关映象成功,就自动停止直接映象工作;否则由直接映象找出 p’并与 d 构成实地址,同时把该表目送入相关存储器。

Page 10: Ch8  虚拟存储器管理技术

相关映象与直接映象结合的地址转换相关映象与直接映象结合的地址转换

(( 续续 )) 程序运行的局部性:

• 时间局部性:刚被访问过的单元很快再被访问;• 空间局部性:刚被访问过的单元的邻近单元很快

再被访问。 由于程序运行的局部性特点,使相关存储器命中率达 90%左右,速度约降低 10% 以下。

Ex: Z8000 , 16 个表目,命中率 96% NS32032 , 32 个表目,

命中率 97%

Page 11: Ch8  虚拟存储器管理技术

3. 分页存储管理策略要解决的三个问题

何时取页?何时取页?取页策略取页策略 请求取页:当用到某页而不在主存时即缺页时取页

(请求式分页存储管理 ) 。 提前取页:预先装入主存一页或几页(提前页)。

取来的页面装入主存中哪个页架?取来的页面装入主存中哪个页架?置页策略置页策略一般装入主存任一个可用的页架中。

当需调入一页,而主存已无可用的自由页架时,当需调入一页,而主存已无可用的自由页架时,如何选择或腾出一个页架给新进入的页面?如何选择或腾出一个页架给新进入的页面?

页面置换策略页面置换策略 // 页面淘汰策略页面淘汰策略

Page 12: Ch8  虚拟存储器管理技术

页面置换算法页面置换算法 // 页面淘汰算法页面淘汰算法页的置换算法页的置换算法:当发生缺页,而主存中已无空闲页架时,需选一页淘汰。选取淘汰页的方法叫页的置换算法。

抖动抖动:刚被淘汰出去的页,不久又被访问,又需把它调入而将另一页淘汰出去,很可能又把刚调入的或很快要用的页淘汰出去了。如此反复更换页面,以至系统大部分机时花在页面的调度和传输上,系统的实际效率很低。这种现象称为“抖动”。

缺页率:缺页率: f = ( 缺页次数 / 访问页面总数 )%常见的页面置换算法常见的页面置换算法: 最佳置换算法 OPT ;先进

先出置换算法 FIFO ;最近最少使用置换算法 LRU ;最近未使用置换算法 NUR ;工作集。

Page 13: Ch8  虚拟存储器管理技术

最佳置换算法 OPT( Optimum Strategy )

基本原则基本原则: 淘汰在将来再也不被访问,或者是在最远的将来才能被访问的页。

特点特点: 无法预测作业将用到哪些页!所以此算法是无法实现的——理论上的算法。

例:某进程分配页架数为 3 ,其运行期间页面访问序列:A,B,C,D,A,B,E,A,B,C,D,E ,分析其按照OPT 算法进行页面置换时的缺页情况。 (堆栈式算法)

Page 14: Ch8  虚拟存储器管理技术

页面访问序列 A B C D A B E A B C D E

A A A A B A A B E E E E

B B B A B B E B C D D

C D D D E A A B C C

+ + + + + + +

缺页次数=7; 缺页率=7/12=58%

最佳置换算法 OPT

Page 15: Ch8  虚拟存储器管理技术

先进先出置换算法 FIFO(first-in,first-out)

基本原则基本原则:选择最早进入主存的页面淘汰。理由理由:最早进入的页面其不再使用的可能性比最近调入

的页面要大。实现简单实现简单:把进入主存的各页面按进入主存的时间次序

构成队列(链表或表格),总是淘汰队头的页面。缺点缺点:

只有按照线性顺序访问地址空间时才是理想的,否则效率不高。 异常现象异常现象:对于一些特定的访问序列,随分配页架数增加,缺页频率反而增加!

Page 16: Ch8  虚拟存储器管理技术

页面访问序列 A B C D A B E A B C D E

A B C D A B E E E C D D

A B C D A B B B E C C

A B C D A A A B E E

+ + + + + + + + +

缺页次数=9; 缺页率 f=9/12=75%

页面访问序列 A B C D A B E A B C D E

A B C D D D E A B C D EA B C C C D E A B C D

A B B B C D E A B CA A A B C D E A B

+ + + + + + + + + +缺页次数=10; 缺页率 f=10/12=83%

先进先出置换算法 FIFO

Page 17: Ch8  虚拟存储器管理技术

最近最少使用置换算法 LRU (Least Recently Used )

基本原则基本原则:选择最近一段时间内最长时间没有被访问过的页面淘汰。

基本理由基本理由:认为过去一段时间里不曾被访问过的页,在最近的将来也可能不再会被访问。

实现困难实现困难:需为每个页设置一个特定单元,记录上次访问后到现在的时间量 t, 并选择 t 最大的页淘汰。无论硬件还是软件实现开销都很大!

实际应用:近似算法 NUR!

Page 18: Ch8  虚拟存储器管理技术

页面访问序列 A B C D A B E A B C D E

A B C D A B E A B C D E

A B C D A B E A B C D

A B C D A B E A B C

+ + + + + + + + + +

缺页次数=10; 缺页率=10/12=83%

最近最少使用置换算法 LRU

Page 19: Ch8  虚拟存储器管理技术

最近未使用置换算法( Not used Recently ) NUR

页表扩充页表扩充:为每个页面设置两个硬件位—访问位和修改位。 访问位= 0 :该页尚未被访问过 = 1 :该页已经被访问过 修改位 = 0 :该页尚未被修改过

= 1 :该页已经被修改过

基本原则基本原则:淘汰最近未使用的页,且希望其在主存逗留期间页面内的数据未被修改过!

过程过程: 开始时所有页的访问位,修改位都为 0 。访问 /修改时再置 1 。 当选择淘汰页时,按照 访问位 0 0 1 1 的顺序淘汰。

修改位 0 1 0 1 周期性地对访问位清零!

页面号 页架号 状态 存储控制 访问位 修改位 外页地址页面描述子

Page 20: Ch8  虚拟存储器管理技术

4. 分页存储管理技术性能分析优点:优点:

可提供多个大容量的虚拟存储器:作业的地址空间不再受主存大小的限制。

主存利用率大大提高:作业中不常用的页不会长期驻留在主存,当前运行用不到的信息也不必调入主存。

能实现多道作业同时运行。 方便用户:大作业也无须考虑覆盖问题。

缺点:缺点: 缺页中断处理增加系统开销 页面的调入调出增加 I/O 系统的负担 此外页表等占用空间且需要管理,存在页内零头… ...

Page 21: Ch8  虚拟存储器管理技术

解决:解决:尽可能减少缺页中断次数。 程序质量:尽可能使编出的程序具有高度的局部性,

则执行时可经常集中在几个页面上进行访问,减少缺页率。

页面大小:页面大,页表小,省空间且查找快;缺页次数相对也少;一次换页的时间长,页内零头空间浪费的可能性较大。页面小则相反。

主存容量:一个程序运行时遇到缺页中断的次数,是和分配给该道程序的主存容量 ( 页架数 ) 成反比的,但当主存容量达到某个值时,缺页次数减少不再明显。多数程序都有一个确定值——拐点。图 8.17

淘汰算法:在淘汰页选择范围选择最合适的置换算法。

Page 22: Ch8  虚拟存储器管理技术

程序运行的局部特性程序运行的局部特性:进程对主存的访问不是均匀的,

而是高度地表现出其局部性。 时间局部性:指某个位置(数据或指令)最近被访问了,那

么往往很快又要被再次访问。借助于循环、经常用到的变量和子程序等程序结构实现。

空间局部性:指一旦某个位置最近被访问了,那么它附近的位置也要被访问。采用顺序的指令串、线性的数据结构(如数组或常用变量彼此相近存放)来实现。

程序在某段时间对整个地址空间各页的访问集中在少数几页;一个页面中也不是均匀的,而是集中于页面中的较少部分。

Page 23: Ch8  虚拟存储器管理技术

( 1 )编写高质量的程序选择适当的数据结构选择适当的数据结构:增强程序访问的局部性; ex: 数组在主

存中存放顺序与使用顺序的一致性:二维数组清零: 法 1: int A[512,512];法 2: int A[512,512] for (j=0;j<512;j++) for (i=0;i<5

12;i++) for (i=0;i<512;i++) for (j=0;j<512;j++) A[i,j] :=0; A[i,j] :=0; * 若页长为 512 ,行优先存放,法 1发生 512*512=262144 次缺页,法 2只发生 512 次缺页。

加强编译程序和装入程序的效能加强编译程序和装入程序的效能: 编译程序:能把程序代码和程序的数据分离开来,减少常用的程序纯代码被

换出的机会; 装入程序:应将纯代码部分装入同一页或几页中,切不要把纯代码部分与非纯代码或数据部分放入同一页中,以减少那些常用子程序所在的页被换出的机会。

Page 24: Ch8  虚拟存储器管理技术

(( 2 )页架分配 - 主存的分配提前分配提前分配:

目的:解决当程序刚一被启动时所引起的大量的持续的缺页。 方法:启动前提前把该进程的最初的工作集装入主存。 问题:( 1 )系统有无能力主动装入某个指定的页面,而不是只能在缺

页请求发生时才能将该页装入(可以);( 2 )将哪些页提前装入(估计)。

最少页架数最少页架数:指为保证一条指令能完整地执行,进程应分得的起码的页架数,随计算机结构的不同而不同。这取决于该机器的指令格式和寻址方式。

Ex. PDP-8 :单地址指令 立即寻址:需要 1 个页架 OP d

ata 直接寻址:至少需要 2 个页架 OP 直接地址 data 间接寻址:至少需要 3 个页架 OP 间接地址 直接地址 data PDP-11 :传送指令长度可能大于一个字,且间接寻址—— >至少需要 6 个页架(指令 *2 ,源地址间址 *2 ,目标地址间址 *2 )。

Page 25: Ch8  虚拟存储器管理技术

页架分配(续)局部分配局部分配 //局部淘汰局部淘汰:仅在一个作业自己所占用的全部页架中挑选页

面淘汰;所以进程所占页架数不变全局分配全局分配 //全局淘汰全局淘汰:对整个主存范围内的页面进行挑选。 固定页面:不能被换出或某段时间不能被换出的页面——固定页标志(长期固定和短期固定)。

分配算法分配算法: 平均分配:系统中全部页架数 m 在 n 个进程间平均分配。 设:

m=95, n=6, m/n=95/6=15*6+5 每个进程分得 15 个页架,还有 5 个留作公用页架缓冲区。

根据作业大小按比例分配: 设:每个进程的虚存大小(即作业大小)为 Si, 则 S=Si 主存可用页架数 m, 则 Pi 分的页架数 ai=(Si/S)*m 且 ai> 最少页架数

考虑进程优先级:提高高优先级进程分配比例;或允许高优先级进程淘汰低优先级进程的页面(全局分配)。

Page 26: Ch8  虚拟存储器管理技术

( 3 )页面的大小页面大小:

大页面:增加页内碎片,增加缺页频率——小页面好! 小页面:增加主存页架数,更多页表空间——大页面好! 缺页时,读入一页总的传送时间 = 总的延迟时间( 80~90

% ) + 数据块传送时间。——大页面好! 结论:理论和实践——页面尺寸以小些为好!

P145, 表 8.1

Page 27: Ch8  虚拟存储器管理技术

又一种页面置换算法:工作集根据根据:程序行为的局部性。目标目标:降低缺页频率!缩短等待调页时间,提高系统效率。工作集工作集:是进程在某段时间里实际要访问的页面的集合。保证程序

有效运行,工作集必须在主存中。工作集的确定原则工作集的确定原则:依据程序过去的行为来估计它未来的行为,

因为程序运行的局部化特点决定了工作集变化是缓慢的。进程在时间进程在时间 tt 的工作集的工作集:一个运行进程在 t-w 到 t这个时间间隔内所访问的页的集合成为该进程在时间 t 的工作集,记为 W(t,w) 。变量 w 称为工作集窗口尺寸工作集窗口尺寸。工作集所包含的页面数称为工作集尺寸工作集尺寸,记为 |W(t,w)| 或 |W| 。

W 是 t 的函数: t 不同,工作集不同(所含页面数——工作集尺寸不同,所含页面也可能不同)

W 是 w 的函数: |W| 是 w 的非降函数,且满足蕴含特性,即 |W(t,w)||W(t,w+a)| ,其中 a>0 。

Page 28: Ch8  虚拟存储器管理技术

工作集 ( 续 )问题:

工作集窗口尺寸工作集窗口尺寸 ww 的选取: 过大,甚至把整个作业地址空间全部包含在内,就失去了虚存的意义;

过小,引起频繁缺页,降低了系统效率。

工作集尺寸工作集尺寸 |W(t,w)||W(t,w)| 的确定: 从 t1 起,将所有的页面访问位全清零(特权指令),在 t1+w=t2 时,记下全部访问位为“ 1” 的页面,则这些页的集合可看成 t2 时的工作集。

结论:把缺页的间隔时间控制在合理的范围,使分给进程的页架数保持在上下限之间(拐点附近)

Page 29: Ch8  虚拟存储器管理技术

5. 页面的共享和保护共享:使共享进程的逻辑地

址空间中的页指向相同的页架号(其中放有共享数据或例程)。

实现: 共享某页的所有作业对应

页描述子拉成链表 正共享的页“锁”在主存

中——“引用次数” 公共页表:被共享的页面独立组成,页表中对应表目用指针指向。

问题:分页对用户透明,要共享的数据或代码是否分在一页?在不同的共享作业中地址是否一致?

进程 A 的页表 页架0 页架 1 进程 B 的页表 页架2 页架 3 页架 4 页架 5 主存 进程 C的页表 **B 、 C共享页架 3 的数据, A 、 B 共享页架 1 中的例程

共享数据页面

共享例程页面

Page 30: Ch8  虚拟存储器管理技术

信息保护:对共享页面提供附加保护措施。如对共享信息的操作权限(读、写、执行)

实现: 存储保护键:锁 -钥匹配技术 页表扩充:

• 存取控制位( 2 位):表示该作业对该页– 可执行,允许读,允许写

• 状态位( 2 位) : 描述正在装入的页架的状态标志–断开:该页不在主存, CPU 不能对它进行访问–连接:该页已分配页架,但正在进行数据的输入输出操作,此时 CPU 不能对其访问,但

通道可以。–可寻址:该页在主存中就绪, CPU 可以对其进行访问

页面号 页架号 状态 存储控制 访问位 修改位 外页地址页面描述子

Page 31: Ch8  虚拟存储器管理技术

6. 分页存储管理中的软硬件操作系统需建立和管理的基本数据库:

进程表进程表:整个系统的进程 PCB 集合,包含:进程名,存储保护键,该进程的页表起始地址,页表长度(或作业大小),以及状态信息等内容。

存储分块表存储分块表:整个系统设置一个存储分块表,该表指出主存中各页架的状态是已分配还是可用。

页面映象表页面映象表 // 页表页表:每个进程设置一个页表,存放页面与页架的对应关系(放在主存)。

文件映象表文件映象表:用以指出各进程的虚拟空间(以文件形式存于外存中)各页在外存中存放的地址和状态信息。

分页机构的构成: 硬件:分页地址变换硬件部分;中断处理硬件部分; 软件:缺页中断处理程序。

Page 32: Ch8  虚拟存储器管理技术

分页存储管理的软硬件配合过程: 分页地址变换机构硬件: 地

址寄存器中虚地址( p,d ) ==> 实地址( p’,d )—— > 硬件执行指令…; ==>产生缺页中断—— > 中断处理 ...

缺页中断处理硬件:保护现场( PSW , IP , CS 保留),CPU 控制转给缺页中断处理程序(中断向量送 IP , CS )。

缺页中断处理程序:保护断点现场,分配页架(分页策略),可能淘汰页面被修改过则需回写;读入虚页,维护数据库;恢复现场,返回断点执行。

页表表目扩充:通常页表表目逻辑上包含如下信息:

外页地址:该页在磁盘等外存上的地址

页面号 页架号 状态 存储控制 访问位 修改位 外页地址页面描述子

Page 33: Ch8  虚拟存储器管理技术

分段存储管理1. 分段存储管理基本概念2. 地址转换3. 段的动态连接4. 虚拟存储管理中的存储保护问题5. 分段存储管理的优缺点

Page 34: Ch8  虚拟存储器管理技术

8.3 分段存储管理方法方法 : 按程序模块来划分段,并按这些段来分配主存。段段 : 定义为一组逻辑信息的集合,如子程序,数组和数据区等。

通常以文件形式存于文件系统中。1. 分段存储管理基本概念:

进程的逻辑地址空间进程的逻辑地址空间:• 程序员为每个段给出段名 =>二维逻辑地址空间(段名,段内地址)• 编译或汇编之后系统为每个段给出一个内部段名 (段号 ) =>二维虚地址

空间(段号 s ,段内相对地址 w ) 程序的地址结构程序的地址结构:( S,W ) Ex.

段号 S 段内地址 W 0 7 8 15 16 31 S : 0…FF; W : 0…FFFF

Page 35: Ch8  虚拟存储器管理技术

主存分配主存分配:以段为单位,每一段分配一块连续的主存分区,一个进程的各段所分到的主存分区不要求是相邻连续的分区。

段表和段表地址寄存器段表和段表地址寄存器:每个作业一个段表• 内容:段号,段的长度,段在主存中的起始地址,段的状态位,

访问位,修改位,扩充位,段在外存的地址等

• 组织:段号从小到大排列,包含该进程的全部段。• 生命期:作业调入时为进程建立段表,撤消进程时清除此进程的

段表。• 段表地址寄存器:存放运行进程的段表在主存中起始地址。(调

度时从 PCB 中读取)2. 地址转换:(图 8.8 )  逻辑

地址( s,w ): b + s*l => 段表查找 =>s 在主存中的起始地址 s’=> s’+w=> 要访问的主存实际地址。

段号段长段起始地址状态位存储控制访问位修改位扩充位外存地址

Page 36: Ch8  虚拟存储器管理技术

3. 段的动态连接:分段时实现容易! ( 因按程序段分段 ) 静态连接静态连接:程序运行时,连接装配程序把作业调用的各个子程序和

数据段连接成可运行的目标模块(一维线性连续地址空间 ———相对地址空间),且进行重定位。用于分页和实存管理技术。

动态连接动态连接:程序运行开始时,只将主程序段装配好并调入主存,其他各段的装配是在主程序段运行过程中逐步进行的。每当需要调用一个新段时,再将这个新段装配好,并与主程序段连接。

间接字间接字:间接寻址方式中,把包含直接地址的字称为间接字。 连接间接字:连接间接字:包含“连接标志位” L 的间接字称为连接间接字, L

=1 :该段尚未连接; L=0 :该段已进行了连接 L / / / 直接地址 连接中断连接中断:在具有段的动态连接功能的机器中,处理机执行到 L=1

的间接指令时产生连接中断,停止执行该间接指令,转去执行连接中断处理程序。等到处理完后再重新执行该间接指令。 L=0时根据连接间接字中的直接地址去取数执行之。

Page 37: Ch8  虚拟存储器管理技术

编译程序的连接准备工作:编译程序的连接准备工作:  原则: 语句访问本段单元时—— > 直接寻址指令; 访问外段单元时—— > 间接寻址指令;为之在本段设置一个连接

间接字,并置 L=1, 其直接地址场指向一个存放被访问段段名的本段单元地址。例 : 某MAIN函数中有 CALL [P] <Y>;

第 3 段( MAIN 段) —— > 第 3 段( MAIN 段)110 CALL *1,3|668 110 CALL *1,3|668

图 … ... 8.11 668 1 3 672 668 0 4 188

… ... 672 7‘[P] | <Y>’ 672 7’[P] | <Y>’

第 4 段( P 段) 0188 <Y>

Page 38: Ch8  虚拟存储器管理技术

连接中断处理:连接中断处理:图 8.11 连接间接字取出被访问段段名和段内地址; 是否在主存?(作业活动符号表/系统的活动文件表) 在:查段表,找出段号,修改连接间接字 修改连接间接字 ( 段号,段内地址 ) ,

L 置 0 ;返回断点执行原来的间接指令。 不在:分配主存,读入主存,分配段号,修改主存分配表,重复上步。

纯段和杂段:纯段和杂段:对于每个源程序 , 编译程序至少生成两个分开的目标段

• 纯段(过程段):可再入的,执行中不允许修改。• 杂段(连接段):程序所有可能变更的数据,包括连接间

接字和某些临时变量,内部变量等都放在杂段。

Page 39: Ch8  虚拟存储器管理技术

编译后连接前 PBR 过程(段基址)寄存器 LP  连接(段基址)寄存器  

…   K2  ADD *1,(LP) | K1 K1…   1   (PBR)  K2  

7’ [P] | <Y>

连接后 PBR 过程(段基址)寄存器 LP  连接(段基址)寄存器  

…   K2  ADD *1,(LP) | K1 K1…   0   7   K3

7’ [P] | <Y> K3 <Y>

Page 40: Ch8  虚拟存储器管理技术

段的共享:段的动态连接功能使段的共享很容易地实现。共享段的段号在不同作业中可以不同。

当共享段被调出主存后,必须在共享该段的每个作业段表中指示该段不在主存;当它移动后,也需修改每个段表中的对应表目 ( 主存始址 ) 。

共享段表:记录每个共享段的段名,段长,主存始址,标志,共享本段的作业数,共享该段的作业名,对应段号等。减少修改数量,每个共享该段的作业段表中对应表目指向共享段表对应表目即可。

共享段

作业 1 的段表

作业 2 的段表

段名 段长 主存始址 标志

共享本段的作业数

作业名 段号

段名 段长 主存始址 标志

共享本段的作业数

作业名 段号

Page 41: Ch8  虚拟存储器管理技术

4. 虚拟存储管理中的存储保护问题 ( 多级存储保护体系 )

越界保护越界保护 : 页表长度 ( 最大页号 )/ 段表长度 ( 最大段号 ) == >> 页表地址寄存器。当访问某虚拟地址时,硬件自动将其页号 ( 段号 ) 和页表 ( 段表 ) 长度进行比较 . 。分段环境下还要将段内地址与段表中该段的长度进行比较,如果合法才进行转换,否则产生越界中断信号 .

存取控制保护存取控制保护 : 控制各种共享类型的用户的访问权限。 读读 :允许用户对该段 / 页内任何信息或其副本进行读操作。 写写 :允许用户修改该段 / 页内任何信息直至撤消整个段 / 页。 执行执行 : 用户可以执行该段 / 页程序,数据段 / 页除外。 增加增加 : 用户可在段 / 页的末尾添加信息,但不允许修改已存在于段

/ 页中的信息。 存储保护键存储保护键: I/O 通道对存储器的访问不通过段表

Page 42: Ch8  虚拟存储器管理技术

5. 分段存储管理的优缺点优点:

便于处理变化的数据结构便于处理变化的数据结构:段表中加一个增长标志位。 0--该段不可增长; 1-- 该段允许动态增长 由越界中断处理程序根据动态增长位来判别。

便于共享便于共享:欲共享作业的段表中有相应表目指向被共享段在主存中的起始地址。

提供了虚存的功能提供了虚存的功能:小内存分区运行大作业(可能需要存储器紧缩!)

提供了动态连接的便利提供了动态连接的便利; 便于控制存取访问便于控制存取访问。

缺点:存储紧缩;分段最大尺寸受到主存大小的限制;在外存中管理可变尺寸的分段较困难;提高了硬件成本。

Page 43: Ch8  虚拟存储器管理技术

8.4 段页式存储管理基本概念:

等份主存等份主存:主存—— > 页架;编号—— > 页架号 进程的地址空间采用分段方式进程的地址空间采用分段方式:按程序的自然逻辑关系把进程的

地址空间分成若干段(外部段名,内部段名); 每一段采用分页方法每一段采用分页方法:每一段划分成若干页,大小同页架;每一段

为自己段的各页依次编以连续的页号;不足补齐 逻辑地址结构逻辑地址结构: V=(s,p,d)=( 段号,页号,页内地址 )

段号 S 页号 p 页内地址 d 0 7 8 15 16 20 21 31 256 段, 32 页, 2K

主存分配主存分配:以页架为单位分配给每个进程。 段表,页表,段表地址寄存器段表,页表,段表地址寄存器:系统为每个进程建立一个段表,

为其段表中每个段建立一个页表; 用段表地址寄存器指示进程段表起始地址段表起始地址; 段表表目给出该段页表起始地址页表起始地址及页表页表长度长度。

Page 44: Ch8  虚拟存储器管理技术

段页式存储管理中的地址转换:图 8.13 无相关存储器:直接映象

• 硬件:段表地址寄存器给出段表基址 b+ 段号 s ==> 该段在段 表中表目地址;

• 读段表表目 ==> 该段页表起始地址 s’ ;• 硬件:页表基址 s’+ 页号 p ==> 该页在页表中表目地址;• 读页表表目 ==> 该页对应的页架号 p’ ;• 硬件:页架号 p’ 与页内地址 d ==> 绝对地址 / 主存地址。

有相关存储器:相关映象• 以段号 s ,页号 p 为索引 ==> 同时比较相关存储器的各表目;• 匹配:判断访问合法性判断访问合法性 ==> 不合法:停止转换,发中断信号; 合 法:页架号p’ 与页内地址 d ==> 绝对地址 / 主存地址

• 不匹配:由直接映象找出页架号,并把有关信息装入快表。

Page 45: Ch8  虚拟存储器管理技术

进程表、段表、页表、页架的关系见图 8.14段页式存储管理算法:地址转换见图 8.15段页式存储管理的优缺点:

优点:• 虚存管理功能;• 无紧缩问题,无页外碎片;无紧缩问题,无页外碎片;• 便于处理变化的数据结构,段可动态增长;• 便于共享;• 动态连接;• 便于控制存取访问。

缺点:• 增加硬件成本;• 增加软件复杂性和管理开销;• 存在页内碎片。

Page 46: Ch8  虚拟存储器管理技术

*8.7 高速缓冲存储器三级存储结构三级存储结构: CPU ,缓冲存储器,主存。图 8.18

缓存缓存 //隐藏存储器隐藏存储器 CacheCache: 不参与主存储器编址,对用户是透明的。 ( 不属于虚拟存储技术 )

CacheCache 的组织的组织: 典型容量: 4K, 8K 16K, 32K 读双字指令速度:主存 1100ns, 高速缓存 120ns, 处理机 150~300ns 构成:缓存,缓存目录,缓存控制器。 缓存组织:

• 缓存(和主存)分成若干块,每个块 64 字节;• 缓存空间分区——行号;每个区 2K , 32 块——列号 0...31 。• 4KB=>2 个区 , 8KB=>4 个区 , 16KB=>8 个区。

Page 47: Ch8  虚拟存储器管理技术

高速缓冲存储器(续)4K缓存的缓存目录: 32 个表目 / 区 *2 区

每个缓存块对应一个缓存目录的表目——列号 0..31 。 主存地址行号 11bits :指示该块在主存中的行号(每

一行对应缓存一个区的大小,即 2K )。 状态 3bits :有效位,修改位,故障位。 LRU: 指示最近被访问的区号。用于选择淘汰页。

0 1 2 30 31 列号 区 0 的表 目 区 1 的表 目

主存地址行号(11位)3 ......状态(3位) 010 ......

主存地址行号(11位) 14 ......状态(3位) 110 ......

LRU 0 1 ......

Page 48: Ch8  虚拟存储器管理技术

有缓存的系统主存编址主存编址:图8 .20

分成 64 字节大小的块( Intel 80386 的块大小为 32 字节)

行号:行号:每 32 块构成一个区( 2K )——行行,每行有一个编号 0,1,….. ;

列号:列号:区中的 32 个块进行编号 0…31 。 主存地址格式主存地址格式: 行号  列号 字节数

0 12 13 17 18 23

• 行号 13 位(区——最多 8K 行);• 列号 5 位(块——每行 32 块);• 字节数 6 位 (字节——每块有 64 字节)。• 80386 :行号 17 位,列号 10 位,字节数 5 位

Page 49: Ch8  虚拟存储器管理技术

Cache : 0 1 2 30 31 列号 区 0 的表 目 区 1 的表 目

主存: 行号 0 1 2 30 31 列号

.

.

主存地址行号(11位)3 ......状态(3位) 110 ......主存地址行号(11位) 14 ...... 1状态(3位) 110 ...... 000LRU 0 0 ...... 1

0 ...... 2k1 ...... X 2k2 ...... 2k3 X ...... 2k...... ......

Page 50: Ch8  虚拟存储器管理技术

高速缓冲存储器工作过程 取指令取指令:

根据列号查找缓存目录——一列表目; 把各表目的主存地址行号与指令中行号比较:      匹配:

有效位= 0,缓存块= > 指令处理部件 ,LRU= 当前区号 ; 不匹配:该块不在缓存,从主存把该块= > 指令处理部件 , 同时            该块= >缓存相应列的某块!

写数据写数据:在缓存,则写入缓存,且修改位置“ 1” ;不在缓存,则先把该块读入缓存,然后再在缓存中修改。

Windows NT惰性方法:修改块淘汰出缓存时才写回主存块。 IBM370 立即存方法:对主存缓存响应块同时写。

通道向主存写数据通道向主存写数据:写入主存同时,缓存控制部件查找缓存目录,在缓存则把相应表目的有效状态位置“ 1” 。

通道从主存读数据通道从主存读数据:查找缓存目录,若该地址在缓存,则从缓存中把该块送往通道;如不在缓存,则从主存读出,但并不把该块放入缓存。

Page 51: Ch8  虚拟存储器管理技术

8.8 Windows NT 虚存管理二级页表地址变换: P 218 图 12.6, 12.7

虚存空间( 232 ): 4GB=2GB 系统存储区 +2GB 用户存储区; 虚拟分页:页面 4KB(212), 进程最大页面数 1M 多( 220 ) 页表不常驻内存,可换进换出; 目录位移 10bits :一级页表(页目录), 1K=1024 ;页表地址页表位移 10bits :二级页表(页表), 1K=1024 ;页架号。

采用高速缓存 Cache, 和快表。页面调度算法:

取页:集群提前取页+请求取页; 置换:局部置换, FIFO 置换,自动调整工作集技术; 惰性技术。

共享主存机制:段对象,视口机制,映象文件 I/O 技术,虚页存储保护。

Page 52: Ch8  虚拟存储器管理技术

96级毕业设计题目操作系统网上教学课件操作系统网上教学课件 CAICAI(1~2人 )

要求对网页制作有一定了解 自备有计算机者优先

铁路机车里程监控系统铁路机车里程监控系统 (2~3人 ) 要求:微机原理理解透彻,对硬件设计有兴趣并有一定经验,能较快掌握单片机 (MCS-51) 系统的设计;

数据采集(修过《通信电源》); 单片机系统硬件设计与实现; 单片机系统软件设计与实现;

要求能吃苦,责任心强,肯钻研联系电话: 1976 , 2241