【操作系统原理-陈渝老师】第四章 非连续内存分配

目录

 

1.分段机制中的图

2.分页机制中的图

3.页表

3.1页表结构

3.2 地址转换的实例

3.3 TLB

3.4 二级页表

3.5 多级页表 

3.6 反向页表

4.笔记逻辑图

5.推荐阅读


1.分段机制中的图

2.分页机制中的图

 

3.页表

3.1页表结构

3.2 地址转换的实例

如图:逻辑地址空间是16位64kB,物理地址空间是15位32kB,逻辑地址空间大小和物理地址空间大小是不一致
的,但是每一页和每一页帧的大小是一样的,都是10位1kB.

逻辑地址(4,0),对应的三个标志位是100,它的位置对应着flags。根据上图,可知它的dirty bit是1,
resident bit是0,clock/reference是0;因此可以知道逻辑地址(4,0)在物理内存地址中实际是不存在
的,如果CPU访问这个逻辑地址会抛出一个内存访问异常.

逻辑地址(3,1034),对应的三个标志位是011,它的位置(也就是页号的位置)对应着flags.根据上图,可知
它的dirty bit是0,resident bit是1,clock/reference是1;因此可以知道逻辑地址(3,1034)在物理地
址中存在.由于逻辑地址的页内偏移和物理地址的帧内偏移是一样的,所以页表不需要保存偏移。根据页表,
页号3对应的页帧号是4,再加上它们的偏移量相等,所以逻辑地址(3,1034)对应的物理地址是(4,1023).
这个页表是由操作系统维护.

3.3 TLB

3.4 二级页表

在二级页表中,逻辑地址中的页号部分分成了2部分,p1和p2.
p1,p2表示的是页表项在一级页表中和二级页表中的页号.

二级页表寻址过程:

(1)寻址的时候首先要找一级页表,一级页表的起始地址CPU是知道的,将p1(页号)作为index
可以查到对应的页表项.
(2)一级页表项中存放着二级页表的起始地址,根据二级页表项的起始地址和p2这个索引号,
可以找到二级页表中对应的页表项,二级页表项里面存的就是对应的frame number.
frame number+对应的offset就可以得到最终物理地址.

p1找二级页表的起始地址,p2中找到真正的物理地址.

看上面的寻址过程又多了一次寻址和处理,而且页表都放在内存里,空间开销是很大,但是通过这种方式
可以使得某些不存在映射关系的页表项就不需要再驻留在内存中了,比如说一级页表中有一个页表项的
中的驻留标志位为"未驻留"(resident bit是0),则表示映射关系不存在,那么在二级页表中的整个页表
就没有必要再驻留在内存中了,这样就节省了空间.

对比单级页表,不管驻留标志位是怎样的,即使映射关系不存在,对应的空间仍然需要保留.
在分级页表中,驻留标志位是"未驻留"的时候,就不需要保留相关的页表项信息,这样就极大节省了空间.

多级时间换空间,时间用TLB来缓解.

3.5 多级页表 

64位系统可以用5级页表来表示.

3.6 反向页表

有没有一种方法尽量使得页表的大小与逻辑空间大小无关,只与物理空间大小相关?
解决大地址空间问题.

4.笔记逻辑图

5.推荐阅读

TLB相关知识

推荐阅读1

推荐阅读2

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值