第9章 内存管理(2)
26
26
26
校重点建设课程
27
27
27
校重点建设课程
28
28
28
计算机操作系统课程组
安徽科技学院 设计人:赵艳红
校重点建设课程
9.4.3 保护
分页环境下,内存保护是通过与每个帧相关联的保 护位来实现的。 保护位的类型:用于指示页可读、可写、可读/写、 有效/无效等。
有效/无效位:有效时,表示该值相关的页在进程 的逻辑地址空间内,是合法(或有效)的页。无效 时,表示该页不在进程的逻辑地址空间内,进程访 问此页时会产生非法操作即无效地址引用。
校重点建设课程
9.4.2 硬件支持
? 操作系统如何保存页表?
有的操作系统把页表存储在寄存器中。如DEC PDP-11。
大部分操作系统都把页表存储在内存中。这时将 页表基寄存器(PTBR,其作用与如下图中的控制 寄存器相同)指向页表。PTBR的值保存在进程的 PCB中。
14ቤተ መጻሕፍቲ ባይዱ
14
14
校重点建设课程
P=INT[A/L], D= A MOD L
9 9
9
解:(1)为了找出逻辑地址100对应的物理地址,硬件地址变换机 构首先将100转换为页号p与页偏移d组成的逻辑地址形式。即 p=0,d=100。从页表中可知第0页与2号帧相对应,将帧号2与 页偏移d=100相连,得到物理内存地址:2*1024+100=2148。
TLB中保存的条目个数一般在64~1024。80386
中:TLB中为32项。
16
16
16
当CPU产生逻辑地址后,其页号提交给TLB。如果找到页号也 就找到了帧号,则不需要再查找页表了。如果在TLB中找不 到页号,则需要访问页表,当得到帧号后就可以访问内存。 同时将页号与帧号增加到TLB中,供下次访问此页时TLB使用。 如果TLB条目已满,则操作系统会选择一个条目将它移出TLB。
例如:如果页大小:2048Byte,进程大小: 72766Byte,则进程需要35个页和1086Byte。 该进程会得到36个帧。因此会产生20481086=962Byte的内部碎片。
12 12
12
当系统需要执行一个进程时,它将检查进程所需要的页数。 因此,如果进程需要n个页,那么内存中至少应有n个空闲帧。 如果有,则可以分配给新进程。 进程的第一页装入一个空闲帧中,帧号放入进程的页表中。 下一页分配给另一个空闲帧,其帧号也放入进程的页表中, 等等。页表的各项随之被填充。
在请求分页式虚拟存储管理方案中只需要把当前
运行需要的页调入内存中。
4
4
4
校重点建设课程
页表
作用:表示页号与帧号的一一对应关系
组成:页号+帧号
大部分操作系统都把页表存储在内存中。 页表的大小由进程的长度决定。
例如,对于一个每页长1 K,大小为20 K的进程来说,如 果一个内存单元存放一个页表项,则只要分配给该页表 20个存储单元即可。
7
校重点建设课程
示例
? 假设某OS中,页和帧的大小都为1KB,有一个进
程其页表如下图所示,此进程有一条指令为LOAD 1,2500,此指令的虚地址为100。 问题: (1)虚地址100对应的物理地址。 (2) 指令中表示操作数的虚地址2500对应的物理地 址? 给定逻辑地址A,页大小为L,
则页号P和页偏移地址D分别为:
校重点建设课程
9.4.5 共享页
共享代码
如果代码是可重入的,那么就可以供多个进程共 享。例如编辑器、编译器等。
私有数据
每个进程都有自己的数据页。
24
24
24
校重点建设课程
示例
25
25
25
校重点建设课程
分页管理的缺点
要求进程在执行前全部装入内存,如果可用 页面数小于用户程序要求时,该程序只好等 待。 进程的大小仍受内存可用页面数的限制。 解决方法:请求分页管理
19
19
19
校重点建设课程
示例
20
20
20
校重点建设课程
9.4.4 页表结构
Intel 80386中的地址空 间是2^32,页大小:4KB (2^12),可表示的页个 数是2^32/2^12 个。也 即一个进程的页表中条 目个数最多可以是: 2^32/2^12 个,如果每 个条目大小为4B,则每 个这个页表的大小是4M。 页表还必须在内存中连 续存放。如何使页表可 以不必连续存放在内存 中?
分页示例:页长4Byte,物理内存:32Byte。
页码
帧号
0
0 1 2
1
2 3
逻辑内存 页表
3
4
5
6
逻辑地址0对应的物理地址 是多少?
物理内存
逻辑地址0对应 的页码为0,页 偏移为0,根据 页表,页码0对 应的帧号是5。 所以逻辑地址0 对应的物理地址 是5*4+0=20即帧 号*页长+页偏 移
p=INT[100/1024] d= 100 MOD 1024 2*1024+100=2148
校重点建设课程
示例
(2) 指令中表示操作数的虚地址2500对应的物理地址?
答案:8644。
课后请计算答案为什么是8644。
11
11
11
校重点建设课程
分页技术不会产生外部碎片:每个帧都可能 会被使用。 分页技术会产生内部碎片:因为分配单位是 帧。如果一个进程要求的内存并不是帧的整 数倍,那么最后一个帧就可能用不完。
21
21
21
校重点建设课程
Intel 80386解决这个问题的方法:两层分页 算法,即将页表再分页保存。这时,逻辑地 址的结构如图所示。 • P1是外部页表的索引,P2是内部页表的索 引。
22
22
22
Intel 80386 中两层分页的地址转换 校重点建设课程
页表
又称为页目 录表
23
23
23
• • 帧大小:512Byte~64KByte,80386中:4KByte. 帧号
把进程的逻辑内存也分割为与帧大小一样的块,称 之为页,也称为逻辑页。 备份存储器(如硬盘、SD卡等)也分割为与帧大 小一样的块。
3 3
3
校重点建设课程
9.4.1 基本方法
当一个程序从硬盘调入到内存时,要把整个 程序即程序的所有页都调入到内存。
操作系统可以通过保护位设置该页有效/无效。
18 18
18
校重点建设课程
示例
某计算机系统其物理地址空间为14位(0~16383),
有一个程序其逻辑地址空间为0~10468。若页大小:
2KB,那么得到如下图所示的页表。
有效的地址范围:0~12287。12288~16383对于此程
序来说,都是无效地址。
每个进程至少拥有一个页表。
5
5
5
校重点建设课程
逻辑内存和物理内存的分页模型
6
6
6
页到帧的地址转换是通过硬件 完成的,如右图所示。 CPU产生的逻辑地址分为两部 分: 页号(p):是页表的索引值, 页表中包含每页对应的帧号 页偏移(d):它与帧号组合形 成物理地址。 在80386中,地址为32位。 • 12位表示页偏移:页长 为4 KB • 20位表示页号: 页数 1024K个 • 逻辑地址结构如下图所 示:
把进程的逻辑内存分割成不同的块。 把物理内存也分割为不同的块。
分割的方法不一样,会导致以下不同的内存管理方 案:分段、分页、带有分页的分段。 • 内存管理方案是通过硬件与操作系统相互配合实现 的。
2 2
2
校重点建设课程
9.4 分页
9.4.1 基本方法
把物理内存分割成大小相等且大小固定的块,称之 为帧(frame),也称为物理页。
9.4.2 硬件支持
15
15
15
校重点建设课程
说明
(1) 地址变换过程:CPU中的地址变换机构自动完成。
(2)页表:在内存中,取一个数据或指令至少要访问内
存两次以上:获取物理地址、取数据或指令。 为了提高查找速度:把最近使用过的页表项放进小 型的高速缓冲存储器中,称之为翻译后备缓冲器 (translation look-aside buffer,TLB)。
第9章 内存管理(2)
教师:计算机操作系统课程组 E-mail: zhao.yanhong@ (赵艳红) wxzx@(沈峰)
安徽科技学院 设计人:赵艳红
校重点建设课程
Contents
分页
1
1
1
校重点建设课程
引言
? 为了消除外部碎片从而提高内存使用效率,能否把
进程在内存中连续存储这种情况改变,使之非连续 存储?