32
第 3 第 第第第第 1 第第第第第第第第第第第第第 第第第第第第第第 第第第第第第第第第 、;、; 2 第第第第第第第 第第第第第第第第第第第第 第第第 第第第 第第第 第第第 、:(、、、 第第第第第“第第”第第第第第第第第第 3 第第第第第第第 第第第第第第第第第第 第第 、:, PMT 第第第第第第 第第第第第第 第第第 第第第第第第第 、; 4 第第第第第第第第第第第第 第第第第第第第第第第第第第 、;。

第 3 章 存储管理

Embed Size (px)

DESCRIPTION

第 3 章 存储管理. 1 、了解存储管理的目的和功能;了解虚拟存储器、地址重定位等概念; 2 、分区存储管理:了解分区存储的各种方式(固定、可变、浮动、多重分区);存储 “ 扩充 ” 技术:覆盖与交换; 3 、页式存储管理:掌握分页管理的原理,利用 PMT 实现地址变换;掌握请求式分页机制、页面淘汰算法; 4 、了解段式存储管理的特点;了解段页式存储管理的优点。. 第 3 章 存储管理. 3.1 存储管理的功能 3.1.1 分级存储结构 高速缓存 ( 一级缓存 二级缓存 cache) ^ || Bus V 主存 RAM ROM ^ - PowerPoint PPT Presentation

Citation preview

第 3 章 存储管理1 、了解存储管理的目的和功能;了解虚拟存储器、

地址重定位等概念;2 、分区存储管理:了解分区存储的各种方式(固定、

可变、浮动、多重分区);存储“扩充”技术:覆盖与交换;

3 、页式存储管理:掌握分页管理的原理,利用 PMT实现地址变换;掌握请求式分页机制、页面淘汰算法;

4 、了解段式存储管理的特点;了解段页式存储管理的优点。

2

第 3 章 存储管理3.1 存储管理的功能3.1.1 分级存储结构

高速缓存 ( 一级缓存 二级缓存 cache) ^ || Bus V

主存 RAM ROM ^ || Bus V

外存 光磁盘等

}CPU 直接访问

3.1.2 存储管理的功能1. 存储分配与管理

多进程 , 包括 OS, 动态2. 地址重定位

静态 , 动态 逻辑地址物理地址3. 存储保护

互不干预 软硬结合 , 空指针4. 存储扩充

硬盘内存 时间换取空间内存有限 , 小内存运行多作业 , 大作业

4

3.2 地址重定位

系统区 OS 用户区

1 名空间 地址空间 存储空间符号 逻辑地址 物理地址

源程序目标模块 绝对地址 相对地址

重定位 map

2 静态重定位绝对地址 = 相对地址 + 起始地址程序执行之前 地址重定位 DOS 程序

3 动态重定位 运行期间 硬件支持 进程的代码数据在内存

外存中移动 , 动态装入

7

3.3 分区存储管理3.3.1 单一连续区管理DOS 单任务 OS 将所有空闲内存分配给程

8

3.3.2 分区存储管理 多任务 多道内存分区 , 每一任务占一个分区1 静态 ( 固定 ) 分区

内存分成大小不同的区域 , 可运行不同大小的作业

简单 , 浪费 内碎片

2 动态 ( 可变 ) 分区a. 利用表格记录已分配区和空闲分区

查空闲分区表 -> 分配内存 -> 运行 -> 结束 -> 释放内存 , 放入空闲分区表 , 相邻空闲分区合并

b. 空闲分区分配算法i) 最佳适应算法

空闲分区从小到大排序 , 保留大空闲区ii) 最差适应算法

分割最大空闲区 , 比较一次 , 剩余空间任可运行作业iii) 首次适应算法

地址由低到高找 , 保留高地址空间 三种算法都会产生不能运行任何程序的小空闲区 , 不连续 ,

即碎片 fragmentation ,外碎片。 最小粒度 G :内存分配单位

c. 动态重定位式分区分配进程地址空间可移动 , 使空闲区可合并从而消除外碎片进程结束时合并或分区不够大时合并

d. 多重分区作业分段 , 代码段 数据段 堆栈段 动态加载 , 物理地址空间可不连续 ,

消除碎片 , 便于共享

进一步发展成虚拟存储管理技术

14

3.4 覆盖和交换

3.4.1 覆盖 Overlay 小内存运行大作业将作业分成模块 ( 程序段 ), 按功能引用关

系形成一种树型结构 , 同层为覆盖段 .同层取最大设置分区大小

DOS COMMAND.COM 即采用了覆盖技术低端常驻 , 高端暂驻 , 可覆盖

同层可互相覆盖则此作业需 20+40+60+40=160K

3.4.2 交换 swapping 不运行的作业 ( 如时间片用完或其他原因 ), 映象调至硬盘的交换文件区 , 文件 , 让出内存供其他作业使用 .

当 OS再次调度该进程运行时 , 再从交换区调入内存 , 换进换出 (Roll-in, Roll-out)

现代 OS Win9x - win386.swp WinNT, 2k, XP - pagefile.sys UNIX - 交换区 DOS + BC.EXE - TC0001.SWP

信息交换量大 , 开销大

18

虚拟存储管理

动态地址映象 , 交换技术软件 + 硬件 虚地址实地址

虚地址大小限制 :1 CPU寻址机构

80386 232=4GB, 地址变换分段 246=64TB

2 外存大小

19

3.5 分页存储管理请求式页面存储管理1 原理

a 分配方式内存分块 , 作业分页 , 块页大小相同

b 建立页面映象表 (PMT)页号 块号 状态页是否在内存及在哪一块

c 地址转换虚地址重定位 ( 动态 ), 可不连续页号和偏移量 块号和偏移量缺页处理

20

分页系统基本的地址变换机构

页表寄存器

页表始址 页表长度 > 页号 (3) 页 ÄÚµØÖ·

L逻辑地址

越界中断

1

块号

b

页表

页号0

1

2

物理地址3

21

具有快表( TLB )的地址变换机构

页表寄存器

页表始址 页表长度 > 页号 页 ÄÚµØÖ·

L逻辑地址

越界中断

块号

b

页表

页号 页号

输入寄存器

块号

b

b

快表

d

物理地址

23

2 页面淘汰算法内存有限 , 存放作业的活动页 .当发生一条不在活动页的指令时 , 则需硬

件机构及服务程序实现物理页的调入调出操作 .

无空闲块时 , 淘汰某页 , 采用算法 .算法不合理时 , 某些页会在内外存间频繁调入调出 , 即抖动 (Thrashing).

进程越多 , 抖动越严重

a. 最佳淘汰算法永远不再使用的页 实现困难

b. 先进先出 FIFO 算法顺序访问地址效率高 , 若有循环效率低

c. 最近最少使用 LRU(Least Recently Used)

程序局部性原理d. 最少使用 LFU(Least Frequently Used)

假定系统为某进程分配了三个物理块, 并考虑有以下的页面号引用串:

7 , 0 , 1 , 2 , 0 , 3 , 0 , 4 , 2 , 3 , 0 , 3 , 2 , 1 , 2 , 0 , 1 ,7, 0, 1

进程运行时, 先将 7 , 0 , 1 三个页面装入内存。 以后, 当进程要访问页面 2 时, 将会产生缺页中断。此时 OS根据最佳置换算法, 将选择页面 7予以淘汰。 引用率7 0

7 7

0

1

7

0

1

2

2

0

1

0 3

2

0

3

0 4

2

4

3

2 3 0 3 2 1

2

0

1

2 0 1 7

7

0

1

0 1

页框(物理块)

2

0

3

利用最佳页面置换算法时的置换图

引用率7 0

7 7

0

1

7

0

1

2

2

0

1

0 3

2

3

1

0 4

4

3

0

2 3 0 3 2 1

0

1

3

2 0 1 7

7

0

2

0 1

页框

2

3

0

4

2

0

4

2

3

0

2

3

0

1

2

7

1

2

7

0

1

1

利用 FIFO 置换算法时的置换图引用率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

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

27

3.6 分段存储管理1 原理a. 分配方式 : 作业按模块分段 , 段长不同

代码段 , 数据段 , 堆栈段按段分配内存 , 段间可不连续

b. 建立段表 段号 , 段长 , 基址 , 状态 , 权限等

c. 地址转换作业段号 s, 偏移 d 物理地址

硬件支持

2 共享和保护 例:两个作业进程共享一个 sort过程,内存中只有一个付本

2 共享和保护a. 段表限制 , 越界保护 长度b. 访问权限控制 共享c. 特权级 root 用户任务权力大 , 可访问低权力段 , 缓冲区溢出攻击

3 优点 : 长度可变 , 便于共享 , 虚拟内存缺点 : 碎片 , 段长度受内存大小限制 , 缺段处理

32

3.7 段页式存储管理页式-内存利用率,无外部碎片段式-用户需要,易共享与保护,动态链接1 原理

a. 分配方式作业分段 , 再分页 , 内存分页 (帧 )页长相等

b. 段表和页表 每一段有一页表 , 页表数与段数相等

2 地址转换虚地址 段号 段中的页表 页 ( 块 ) 号 实地址

运行多进程 , 产生大量缺页中断 , 任务切换慢