当前位置:首页 >> 电脑基础知识 >>

第3讲现在的操作系统怎么管理内存_图文

第3单元 主存管理
第3节 分页存储管理

? ? ? ? ?

什么是分页 地址映射 多级页表 快表 举例

物理内存划分成大小相等的页框
程序被分割为大小相等的页,放到页框里
页框7
页框6 页框5 页框4 页框3 段0:页3 段0:页0

段0:页2

0
页表

5 1 3 6

页框2 页框1

1 2 3

段0:页1

页框0

第3单元 主存管理
第3节 分页存储管理

? ? ? ? ?

什么是分页 地址映射 多级页表 快表 举例

段、页同时存在时的重定位(地址翻译)
段号+偏移(cs:ip) 逻辑地址
段号 基址 长度 保护

0 1 2 3

0x4000 0x4800 0xF000 0x0000

0x0800 0x1400 0x1000 0x3000

R R/W R/W R

物理地址

页号

偏移

物理页号

偏移

页框号 5 1 3 7

保护 R R/W R/W R

称为虚拟地址

段、页同时存在:段面向用户/页面向硬件 用户栈段 物理地址
0x7008

4G

用户代码段
0x00345008

cs:ip 逻辑地址

用户数据段

虚拟地址 对用户是 透明的 内存 问题:为什么称为虚拟内存!

操作系统段

0

虚拟内存

页已经载入了内存,接下来的事情…
? 重定位
页中的仍然是逻辑地址 Page# Offset
15 第几页 mov [0x2240], %eax 逻辑地址 页表指针 0x02 页号 0 1 2 3 0x240 页框号 5 1 3 6 保护 R R/W R/W R 12 11 页面尺寸(4K) 0 页框7 页框6 页框5 页框4

段0:页3 段0:页0

页框3 页框2
页框1

段0:页2 段0:页1

页框0
3 240 权限检查

PCB中应有 此值

物理地址: 0x3240

第3单元 主存管理
第3节 分页存储管理

? ? ? ? ?

什么是分页 地址映射 多级页表 快表 举例

页表会很大
页面尺寸通常为4K,而虚地址是32位的,有220个页面 如果页表中的页号不连续,则需要查找,折半平均

查找次数为:log(220)=20
页号 0 1 3 页框号 5 1 3 保护 R R/W R 页号 0 1 2 3 页框号 5 1 6 保护 有效 R 1 R/W 1 0 R 1

实际上大部分逻辑地址根本不会用到

多级页表:页目录+页表
引入多级页表,页目录常驻内存,不需要映射的逻

辑地址不需要在内存中建立页表项
程序构成: 4M代码+4M数据+4M栈

4KB

4 bytes

页目录

4 bytes

页表

多级页表地址映射
逻辑地址
10 bits 10 bits 12 bits

物理地址 物理页号 Offset Offset
4KB

页目录号

页号

页目录指针 页目录驻留 内存(4K)
4 bytes 4 bytes

Offset

第3单元 主存管理
第3节 分页存储管理

? ? ? ? ?

什么是分页 地址映射 多级页表 快表 举例

多级页表都存放在内存?
会增加访问内存的次数!
把近期要用的页表放CPU里面!

TLB(Translation Lookaside Buffer)
4KB

4 bytes

页目录

4 bytes

页表

基于快表的地址映射
要想真正实现“只访存1次”,TLB的命中率应该很高 TLB越大越好,但TLB很贵,通常只有[64, 1024] 逻辑地址 页号
有效 页号

Offset
修改 保护 页框号

1 1 0 1

140 20 19 21

0 1 0 0

R R/W R/X R

56 23 29 43

物理地址 物理页号
TLB命中

Offset

并行查找!

TLB 页表

TLB未命中(失效)

第3单元 主存管理
第3节 分页存储管理

? ? ? ? ? ?

什么是分页 地址映射 多级页表 快表 主存扩充 举例

扩充主存的实质
部分放入,换出换入

? 一页一页的放入内存
? 换入换出也以页为单位

请求调页!

部分放入要解决的问题 ? 页表要有表明页是否在内存的标识 ? 缺页中断,中断处理程序负责将缺 的页放入内存

缺页中断处理
启动要处理的指令 给出虚地址 准备执行下条指令

得到页号
该页在主存 ? N 缺页中断 有空闲页框? Y 从外存读入所需的页 调整存储分配表和页表 重新启动被中断的指令 N N 选一页淘汰 调整存储分配表和页表 要重写入? Y 该页写入外存 Y 执行完该指令

硬件 软件

请求调页地址映射
段号+偏移(cs:ip) 逻辑地址 物理地址 物理页号 偏移
段号
0

基址
0x4000

长度
0x0800

保护
R

页框号 5 没有映射

保护 R R/W

虚拟地址 页号 偏移 磁盘

缺页中断 物理内存

换入!

缺页中断处理
启动要处理的指令 给出虚地址 准备执行下条指令

得到页号
该页在主存 ? N 缺页中断 有空闲页框? Y 从外存读入所需的页 调整存储分配表和页表 重新启动被中断的指令 N N 选一页淘汰 调整存储分配表和页表 要重写入? Y 该页写入外存 Y 执行完该指令

硬件 软件

换出
磁盘:文件区+交换区
? 换出的页放交换区

? 首次换入的页从文件区来,换出后再换入的页来 自交换区

? 选择哪页淘汰? ? 全局淘汰还是局部淘汰?

置换算法
FIFO,先换入的先换出 OPT(OPTimal replacement),淘汰未来不用或者很久 才会用的 LRU(Least Recently Used),最近最少使用的淘汰出去

LRU近似算法!

LRU近似实现: 将时间计数变为是和否
? 每个页加一个引用位(reference bit)
每次访问一页时,硬件自动设置该位为1 选择淘汰页:扫描该位,是1时清0,并继续扫描;
是0时淘汰该页 组织成循环队列较合适! R=0 R=1 R=0 R=0 R=1 R=1 R=0 淘 R=0


这一实现方法称为 Clock Algorithm

R=0 R=1
R=0 R=0

R=1 R=1 R=1

Clock算法的分析与改造
? 如果缺页很少,会? 所有的R=1

R=1 R=1 R=1 R=1

R=1

R=1 R=1 R=1 R=1 R=1

指针绕一圈后淘汰当前页, 退化为FIFO! 原因: 记录了太长的历史信息… 怎么办? 定时清除R位… 再来一个扫描指针!

R=1 R=1

R=1 R=0 R=0 R=1

R=1

R=1 R=0 R=1 R=1 R=1

用来清除R位,移动速度要快! 用来选择淘汰页,移动速度慢! 更像Clock吧!

R=0 R=0

总结:请求分页过程
页表
访问

缺页中断处理 物理内存

磁盘
swap分区管理

i缺页

load [addr]
重新执行
swap分区 换入 get_free_page
R=1 R=0 R=1 R=1 R=0 R=1 R=1 R=1

swap分区管理

R=0 R=1 R=0 R=0

换出

请求分页的页表
页号 主存块号 中断位 辅存地址 引用位 改变位

是不是在内存?

不在内存,在哪? 是否被访问过? 是否被修改过?

请求分页的各种策略
主存分配策略 放置策略 调入策略 淘汰策略

第3单元 主存管理
第3节 分页存储管理

? ? ? ? ? ?

什么是分页 地址映射 多级页表 快表 主存扩充 举例

举例
在分页式存储管理系统中,分页是由 完成的 A.程序员 B.用户 C.操作员 D.系统
在分段式存储管理中, 。 A.段内和各段间的地址都是连续的 B.段内的地址是连续的,各段间的地址可以不连续 C.段内的地址可以不连续,但段间的地址是连续的 D.段内的地址和各段间的地址都是不连续的

问题:操作系统在管理内存时引入页的目的是? ( )
A. 更符合用户习惯
B. 进行地址翻译(运行时重定位)更快 C. 减少了外部内存碎片 D. 减少了内部内存碎片

在一个分页式存储管理系统中,页表的内容为:
页号 0 1 2 块号 2 1 7

若页的大小为 4KB,则地址转换机构将相对地址 0 转换成的物理地址是 。 A. 8192 B. 4096 C. 2048 D. 1024

某计算机采用二级页表的分页存储管理方式, 按字节编制, 页大小为 210 字节,页表项大小为 2 字节,逻辑地址结构为 页目编号 页号 页内偏移量

逻辑地址空间大小为 216 页, 则表示整个逻辑地址空间的页目录表中 包含表项的个数至少是( ) A: 64 B:128 C: 256 D: 512

? 下列存储器哪些可用来存储页表? ? A.Cache B.磁盘 C.主存 D.快表

模拟试题1的第三大题的第2小题、第五大题

作业
? 6-14 ? 6-17 ? 6-21

总结
1、内存分为等长页框(frame):又叫物理页(块) 2、程序分为等长页面(page),又叫逻辑页,页框与页面通 常等长,页放到页框里 3、 利用页表将逻辑地址动态映射到物理地址 4、分页可以较好的扩充主存,没得外部碎片


相关文章:
第3讲现在的操作系统怎么管理内存_图文.ppt
第3讲现在的操作系统怎么管理内存 - 第3单元 主存管理 第3节 分页存储管理
操作系统原理-第3章 存储器管理_图文.ppt
操作系统原理-第3章 存储器管理 - 第3章 存储器管理 ? 3.1 内存管理概述(次重点) 3.2 分区存储管理(次重点) ? ? 3.3 页式存储管理(重点) 3.4 段式...
蒲晓蓉_操作系统原理第3_3章_存储管理_图文.ppt
蒲晓蓉_操作系统原理第3_3章_存储管理_院校资料_高等教育_教育专区。蒲晓蓉_...简单存储:要求将一个进程所需的程序和数据 全部装入内存方可执行。 ? 这样的...
第3节 操作系统分页存储管理内存_图文.ppt
第3操作系统分页存储管理内存 - 第3单元 主存管理 第3节 分页存储管理
计算机操作系统教程(第三版)张尧学第11讲--存储管理_图文.ppt
计算机操作系统教程(第三版)张尧学第11讲--存储管理_工学_高等教育_教育专区...此段在内存 ? 若存取方式正确,则将此段在内存的首地址与段内相对地 址相加...
第三部分操作系统考研复习_图文.ppt
第三部分操作系统考研复习 - 第三部分 内存管理 三、 内存管理 (一) 内存管理基础 1.内存管理概念 (1)程序装入与链接; (2)逻辑地址与物理地址空间; (3)...
第3章-操作系统_图文.ppt
第3章-操作系统_电脑基础知识_IT/计算机_专业资料。计算机应用基础 大学计算机...? 计算机应用基础 存储器管理(续) ? 操作系统中的存储管理主要是对内存的管 ...
《操作系统设计与实现》第三章 存储器管理_图文.ppt
操作系统课程讲义 内容提要 内容提要存储管理概述 内存管理方案静态内存管理 动态内存管理 内存管理实例剖析 2 操作系统课程讲义 内存管理概述 存储管理概述内存的作用...
自考-操作系统概论-第3章 存储管理_图文.ppt
自考-操作系统概论-第3章 存储管理_工学_高等教育_教育专区。自考 操作系统...内存地址映射与存储保护重定位问题与保护:物理地址和逻辑地址的映射关系 内存空间...
计算机基础 第3讲:操作系统原理概述_图文.ppt
计算机基础 第3讲:操作系统原理概述 - 第三讲 操作系统 操作系统的基本概念 操作系统的发展 操作系统的主要特征 操作系统的主要功能 进程管理 一、什么是操作系统?...
操作系统_第五章 存储管理_图文.ppt
操作系统_第五章 存储管理 - 第五章 存储管理 ? ? ? ? ? 5.1 存储管理的功能 5.2 实存管理(分区) 5.3 覆盖与交换 5.4 虚拟存储器管理(分页,段) 5...
第4讲 存储器管理--操作系统开专_图文.ppt
第4讲 存储器管理--操作系统开专_工学_高等教育_教育专区。第4讲 存储器...3、逻辑地址和物理地址 ? 程序必须装入内存后才能运行,装入程序需要根据内 存的...
1-4章习题讲解、练习题、内存实验(操作系统)_图文.ppt
1-4章习题讲解、练习题、内存实验(操作系统)_计算机硬件及网络_IT/计算机_专业资料。1-4章习题讲解 多道程序设计 ? 设在内存中有道程序A、B和C,并按 A...
操作系统第三章(2)_图文.ppt
操作系统第三章(2) - 操作系统原理与实践 第三内存管理(2) 高等教育出版社 主要内容 3.5 分页存储管理 3.6 分段存储管理 3.7 虚拟存储器 3.8 请求分页...
第06讲、存储管理(操作系统)_图文.ppt
第06讲、存储管理(操作系统) - 第六讲、 第六讲、存储管理 存储管理功能 内存资源管理 存储管理方式 外存空间管理 虚拟存储系统 6.1 存储管理功能 存储分配和...
操作系统考研复习 第三章内存管理.doc
操作系统考研复习 第三内存管理_研究生入学考试_高等教育_教育专区。专门针对...(现在已经不使用覆盖技术,现在是通过虚拟存储技术来解决的) 1 内存分配管理有...
15 2009 操作系统第15讲:第5章 存储管理(认识内存前的....ppt
15 2009 操作系统第15讲:第5章 存储管理(认识内存前的准备)_研究生入学考试_...5.2 分区存储管理(2级考研重点) 5.3 覆盖与交换技术 5.4 页式管理(1级考研...
操作系统第17讲 习题三new_图文.ppt
操作系统第17讲 习题new - 第四章 存储器管理 第十七讲 习题课()存储器管理 第四章 存储器管理 一、存储器管理的目标 1、多级存储结构 CPU寄存器 主存(...
操作系统习题课-死锁、内存管理FF讲义._图文.ppt
现在操作系统中,允许用户干预内存的分配 B. 固定分区存储管理是针对单道系统的...查页表第3页在第6块,所以物 理地址为1024′6+928=7072。 (4)对于逻辑地址...
嵌入式系统--内存管理_图文.ppt
嵌入式操作系统内存管理组长: 小组成员:万富、 信息与计算机学院 主要内容 ? ? ? ? 概述 内存管理的主要功能 内存保护 虚拟内存 信息与计算机学院 概述内存...
更多相关标签: