第四章 存储器管理

26
页页页页页页页页页 第第第 第第第第第 4.1 第第第第第第第第 4.2 第第第第第第 4.3 第第第第第第第第第第 4.4 第第第第第第第第第第 4.5 第第第第第第第第第第 4.6 第第第第第第第第第第 4.7 第第第第第第 4.8 第第第第第第第第第第

description

第四章 存储器管理. 4.1 程序的装入和链接 4.2 连续分配方式 4.3 基本分页存储管理方式 4.4 基本分段存储管理方式 4.5 虚拟存储器的基本概念 4.6 请求分页存储管理方式 4.7 页面置换算法 4.8 请求分段存储管理方式. 上节回顾. 页面置换算法 最佳置换 先进先出 LRU : 每个块增加一个计数器 被访问则清 0 ,未访问则加 1 COLCK : 使用访问位和修改位进行搜索 00 01  00 01. LRU(Least Recently Used) 置换算法. - PowerPoint PPT Presentation

Transcript of 第四章 存储器管理

Page 1: 第四章  存储器管理

页面置换与请求分段第四章 存储器管理

4.1 程序的装入和链接 4.2 连续分配方式 4.3 基本分页存储管理方式 4.4 基本分段存储管理方式 4.5 虚拟存储器的基本概念 4.6 请求分页存储管理方式 4.7 页面置换算法 4.8 请求分段存储管理方式

Page 2: 第四章  存储器管理

页面置换与请求分段上节回顾1. 页面置换算法

最佳置换 先进先出 LRU :

每个块增加一个计数器 被访问则清 0 ,未访问则加 1

COLCK : 使用访问位和修改位进行搜索 0001 00 01

Page 3: 第四章  存储器管理

页面置换与请求分段

LRU(Least Recently Used) 置换算法

引用率7 0

7 7

0

1

7

0

1

2

2

0

1

0 3

2

0

3

0 4

4

0

3

2 3 0 3 2 1

1

3

2

2 0 1 7

1

0

7

0 1

页框

4

0

2

4

3

2

0

3

2

1

0

2

Page 4: 第四章  存储器管理

页面置换与请求分段

1 、从当前指针位置开始扫描循环队列,寻找 00 页面,不改变访问位 A 。

2 、第一步失败,寻找 01 页面,将所遇到的第一个这类页面作为淘汰页。

将所有扫描过的页面的访问位 A 都置 0 。3 、第二步也失败,重复第一步,如果仍失败,必要时再重复第二步,此时就一定能找到被淘汰的页。

改进型 Clock 置换算法

Page 5: 第四章  存储器管理

页面置换与请求分段

Page 6: 第四章  存储器管理

页面置换与请求分段

1. LRU 置换算法优缺点优点:性能较好缺点:需要较多硬件支持特点: “向前看”,看过去的使用情况

Page 7: 第四章  存储器管理

页面置换与请求分段

2. LRU 置换算法的硬件支持

LRU 算法需要的元素1 、进程各个页面有多久未被访问2 、如何快速找到最近最久未使用的页面

Page 8: 第四章  存储器管理

页面置换与请求分段

1) 移位寄存器

1 、使用移位寄存器记录某进程在内存中每页的使用情况2 、数据格式: R=Rn-1Rn-2Rn-3 … R2R1R0 3 、页面被访问一次,最高位 Rn-1 置 1 ,每隔一定时间,寄存器右移一位4 、 R 值最小的页面是被置换页面

Page 9: 第四章  存储器管理

页面置换与请求分段

某进程具有 8 个页面时的 LRU 访问情况

Page 10: 第四章  存储器管理

页面置换与请求分段

2) 栈

1 、采用特殊的栈来保存当前使用的各个页面号2 、栈顶保留的是最新被访问的页3 、栈底保留的是最久未被访问的页,即置换目标

Page 11: 第四章  存储器管理

页面置换与请求分段

4

4

74

7

074

0

704

7

1704

1

0174

0

1074

121074

212074

121074

262107

6

Page 12: 第四章  存储器管理

页面置换与请求分段

4.7.4 其它置换算法 1. 最少使用 (LFU : Least Frequently Used) 置换算法

对每个页面设置一个字段(移位寄存器),用来记录页面被访问的频率若用移位寄存器实现算法, LFU 与 LRU 的访问图是完全相同的。

Page 13: 第四章  存储器管理

页面置换与请求分段

2. 页面缓冲算法 (PBA : Page Buffering Algorithm)采用可变分配和局部置换方式当一个进程换进换出频率很低时,选择页面淘汰,以备其他进程使用空闲链表:淘汰页面未发生修改,放入本链表末尾修改链表:淘汰页面已发生修改,放入本链表末尾,批量写回

Page 14: 第四章  存储器管理

页面置换与请求分段

4.8 请求分段存储管理方式 4.8.1 请求分段中的硬件支持

1. 段表机制

段名 段名 段长 段长 段的段的基址 基址 存取存取方式 方式 访问访问字段字段 A A 修改修改位位 M M 存在存在位位 P P 增补增补位 位 外存外存始址 始址

Page 15: 第四章  存储器管理

页面置换与请求分段

Page 16: 第四章  存储器管理

页面置换与请求分段2. 缺段中断机构

Page 17: 第四章  存储器管理

页面置换与请求分段2. 缺段中断机构

虚段 S不在内存

阻塞请求进程

内存中有合适的空闲区吗?

从外存读入段 S

修改段表及内存空区链

唤醒请求进程

返回

空区容量总和能否满足?

空区拼接,以形成一个合适的空区

淘汰一个或几个实段,以形成一个合适空区

图 4-31 请求分段系统中的中断处理过程

Page 18: 第四章  存储器管理

页面置换与请求分段3. 地址变换机构

访问 [s][w]

w¡Ü ?段长

?符合存取方式

段 S ?在主存

,修改访问字段如写,访问置修改位 £½1

形成访问主存地址(A)£½ (主存始址 )

£«(位移量 w)

返回

分段越界中断处理

分段保护中断处理

缺段中断处理

图 4-32 请求分段系统的地址变换过

Page 19: 第四章  存储器管理

页面置换与请求分段

4.8.2 分段的共享与保护 1. 共享段表

共享段表计数 count :记录共享进程数,影响段回收操作存取控制字段:记录访问权限,文件主、其他进程段号:不同进程可以使用不同段号共享同一段

Page 20: 第四章  存储器管理

页面置换与请求分段

1. 共享段表

图 4-33 共享段表项

段名 段长 内存始址 状态 外存始址

共享进程计数 count

状态 进程名 进程号 段号 存取控制

… … … … …

共享段表

Page 21: 第四章  存储器管理

页面置换与请求分段2. 共享段的分配与回收

1) 共享段的分配

在为共享段分配内存时,对第一个请求使用该共享段的进程,由系统为该共享段分配一物理区,再把共享段调入该区,同时将该区的始址填入请求进程的段表的相应项中,还须在共享段表中增加一表项,填写有关数据,把 count 置为 1 ; 之后,当又有其它进程需要调用该共享段时,由于该共享段已被调入内存,故此时无须再为该段分配内存,而只需在调用进程的段表中,增加一表项,填写该共享段的物理地址;在共享段的段表中,填上调用进程的进程名、存取控制等,再执行 count =count+1∶ 操作,以表明有两个进程共享该段。

Page 22: 第四章  存储器管理

页面置换与请求分段

2) 共享段的回收

当共享此段的某进程不再需要该段时,应将该段释放, 包括撤在该进程段表中共享段所对应的表项,以及执行 c

ount = count-1∶ 操作。若结果为 0 ,则须由系统回收该共享段的物理内存,以及取消在共享段表中该段所对应的表项, 表明此时已没有进程使用该段;否则 (减 1结果不为0) , 则只是取消调用者进程在共享段表中的有关记录。

Page 23: 第四章  存储器管理

页面置换与请求分段

Page 24: 第四章  存储器管理

页面置换与请求分段3. 分段保护 1) 越界检查 2) 存取控制检查

(1) 只读 (2) 只执行 (3) 读 / 写

3) 环保护机构 (1) 一个程序可以访问驻留在相同环或较低特权环中的数据。 (2) 一个程序可以调用驻留在相同环或较高特权环中的服务。

Page 25: 第四章  存储器管理

页面置换与请求分段

调用 返回

调用

返回

环 0

环 1

环 2

(a ) 程序间的控制传输

数据访问

环 0

环 1

环 2

(b ) 数据访问

数据访问

Page 26: 第四章  存储器管理

页面置换与请求分段习题