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

第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节 操作系统分页存储管理内存_图文.ppt
第3操作系统分页存储管理内存 - 第3单元 主存管理 第3节 分页存储管理
第3讲 内存管理和处理机调度_图文.ppt
嵌入式操作系统第3讲 内存管理和处理机调度 1 本讲主要内容 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 概述 存储管理的基本技术 分页存储管理 分段存储管理 ...
计算机操作系统教程(第三版)张尧学第11讲--存储管理_图文.ppt
计算机操作系统教程(第三版)张尧学第11讲--存储管理_工学_高等教育_教育专区...此段在内存 ? 若存取方式正确,则将此段在内存的首地址与段内相对地 址相加...
第3讲 内存管理_图文.pdf
第3讲 内存管理 - 第3讲 虚拟内存的应用 苏曙光.软件学院.华中科技大学 1 1 Windows进程虚拟内存空间 ? 进程虚拟内存空间(32位) ? 空间大小为4GB(232) ?...
第3讲现在的操作系统怎么管理内存_图文.ppt
第3讲现在的操作系统怎么管理内存 - 第3单元 主存管理 第3节 分页存储管理
《计算机操作系统教程(第三版)》 第4章 存储管理_图文.ppt
计算机操作系统教程(第三版) 第4章 存储管理 本章学习目标 4.1 4.2 4.3 4.4...本节 4.1.4 虚拟存储器对内存进行逻辑上的扩充,现在普遍采用虚拟存储管理 技术...
第3讲现在的操作系统怎么管理内存_图文.ppt
第3讲现在的操作系统怎么管理内存 - 第3单元 主存管理 第3节 分页存储管理
第3讲:操作系统的安装_图文.ppt
第3讲:操作系统的安装_电脑基础知识_IT/计算机_专业资料。计算机实用技能训练第...Windows XP操作系统的运行环境如下表所示。 名称 CPU 内存 硬盘空间 显示器 ...
...操作系统》第3章 数据存储与管理_基本内存管理共140....ppt
电子科技大学《计算机操作系统第3章 数据存储与管理_基本内存管理共140页文档_计算机软件及应用_IT/计算机_专业资料。第3章 数据存储与管理电子科技大学 计算机...
第3次课 操作系统_图文.doc
第3次课 操作系统_IT认证_资格考试/认证_教育专区。第 2 章(部分) 教学实施...许多成功的技术和特征,主要功 -2- 能有磁盘管理内存管理和输入输出管理。DOS...
第9讲.内存管理_图文.ppt
第9讲.内存管理 - 第九讲 内存管理 华软软件工程系 操作系统 主要章节 华软
第3章存储管理.ppt_图文.ppt
单用户连续存储管理单用户连续存储管理方式是一种最简单的存储管理方式, 它只能用于单用户、单任务的操作系统中。在这种管理方 式下操作系统占了一部分内存空间,...
操作系统第5章讲存储管理1连续分配_图文.ppt
操作系统第5章讲存储管理1连续分配 - 第五章 存储管理概述 存储管理研究的内容 主要研究方面的问题: ? 放(Placement) ? 取(Fetch) ? 换(Replacement) ...
第9讲 物理内存管理:连续内存分配_图文.ppt
第9讲 物理内存管理:连续内存分配_计算机软件及应用_IT/计算机_专业资料。...3GHz 内存缺页 操作系统 5ms 慢 (查找时间) 外存(虚拟内存) 操作系统的内存...
操作系统第9讲_图文.ppt
操作系统概念 第九讲 内存管理(1) Operating System Conception Davidfu 本课...动态分区的分配和回收要解决的个问题 从可用表或自由链中,寻找合适的空闲...
2019最新第二讲操作系统的硬件环境课件化学_图文.ppt
第二讲 操作系统的硬件环境讨论操作系统对运行硬件环境的要求 讨论操作系统设计者...MMU:内存管理单元,一种特殊硬件,完 成转换工作 、中断技术中断对于操作系统的...
第4章__存储管理ppt课件计算机操作系统第三版_图文.ppt
第4章__存储管理ppt课件计算机操作系统第三版_管理学_高等教育_教育专区。第4...随着计 算机技术的飞速发展和内存价格的降低,现代计算机 中的内存也在不断增加...
第9讲.内存管理_图文.ppt
第9讲.内存管理 - 第九讲 内存管理 华软软件工程系 操作系统 华软软件学院软