操作系统(六)-内存2-分页

3.1.6 OS之分页存储(页号、页偏移量等)
在这里插入图片描述
在这里插入图片描述
1.为什么学习分页存储?
在这里插入图片描述
2.基本分页存储管理的思想
在这里插入图片描述
3.分页存储管理的重要概念在这里插入图片描述
4.如何实现地址的转换在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
如何计算页号和页偏移量在这里插入图片描述

总结一下,就是将一个进程分成几块,内存也分成几块,把进程分块的放进内存中,这样可以减少前面所提到的那些方法会产生的外部碎片以及内部碎片,并且可以不用按顺序,大的进程可以分成小的,也就不用去将小内存拼凑成大内存了,然后操作系统用一个数据结构存储每块的首地址,然后加上对应的数就得到他所在的位置

为什么页面大小一般设为2的整数次幂?
在这里插入图片描述
在这里插入图片描述
分页存储的逻辑结构在这里插入图片描述

如何知道页面在内存中的起始地址?
这里引入一个新的概念:页表

在这里插入图片描述

先在用户逻辑地址空间找是哪一页,然后根据页表,用页号找内存的块号,然后再用块号乘以内存块大小,就是起始地址了

在这里插入图片描述
3.1.7 OS之分页存储管理的基本地址变换结构
在这里插入图片描述
在这里插入图片描述
1.页表寄存器在这里插入图片描述
地址变换过程在这里插入图片描述
在这里插入图片描述

首先计算机对页号P和页内偏移量W都是直到的,则首先先检查页号P是否合理,页表长度为m,说明有M页,如果超过M,此时访问的逻辑地址不合法,抛出越界中断,如果合法,则进行计算页号对应页表项,并找到内存块号,然后根据内存偏移量找到逻辑地址

在这里插入图片描述

一道例题加深印象:
在这里插入图片描述

因为逻辑地址是2500B,而每页是1k = 1024B,所以用2500%1024 = 452,就可以得到他的偏移量了。说明他第三个页的第452个,而这里面为什么说他是内存块号是8而不是3呢,因为别忘记了一个进程分页后每个块可能不是连续的,是通过页表找到的,页号是3,内存块号就是8喽,然后每块是1kb就是1024b,第八个首地址就是8*1024 ,然后再加上偏移量就是第八个内存里的具体位置了就是8 *1024+452

2.对页表项大小的进一步讨论
在这里插入图片描述
3.1.8 OS之快表的地址变换结构
1.局部性原理引入快表机制
在这里插入图片描述
2.快表(TLB)在这里插入图片描述
一个例图了解基于快表的地址变换结构在这里插入图片描述
引入快表后,地址变换的过程的文字描述:
在这里插入图片描述
3.基本地址变换与快表地址变换的比较
在这里插入图片描述
3.1.9 OS之二级页表的原理和地址结构
在这里插入图片描述
1.为什么引入二级页表?
因为单级页表存在一些问题,所以引入二级页表和多级页表,有两个问题:
在这里插入图片描述
在这里插入图片描述
上面提到了这两个问题,那么总结一下,并提出解决思想,引入二级页表的概念。
在这里插入图片描述
2.二级页表的原理和地址结构
对页表再次分组
在这里插入图片描述
二级页表的地址结构及对应关系
在这里插入图片描述
3.如何实现二级页表的地址变换?
在这里插入图片描述
上面的部分我们解决了问题一,接下来是问题二,这里简单叙述一下,后面的文章会继续深入剖析。
在这里插入图片描述
4.几个小细节在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值