分页存储管理/非连续分配管理方式的由来
连续分配的方式:
- 固定分区分配:缺乏灵活性,会产生大量的内部碎片。
- 动态分区分配:产生很多外部碎片,虽然可以用“紧凑”技术来处理,但“紧凑”技术时间代价很高。
本质问题:连续分配方式要求进程占用的必须是一整段,连续的内存区域。(这个区域长度是不固定的)
分页存储:如果允许讲进程分散地按固定大小的装入道各个不相邻的分区中,便可以充分利用内存。包括了,基本分页存储管理,基本分段存储管理,段页式存储管理。
这章对概念的理解要很清晰,否则很容易乱
基本分页存储管理
基本思想
把内存分为一个个相等的小分区,再按照分区大小把进程拆分成一个个小部分。
操作系统以页框/内存块为单位为各个进程分配内存空间。进程的页面与内存的页框是一一对应的关系
术语
要分两块。内存+进程
内存:
- 页框:内存空间分为一个个大小相等的分区。
- (页框大小是内存分配的基本单位大小-个人理解,比如4KB的页框,如果放2个3KB的东西就是占用2个4KB多1KB内部碎片
- 页框号/内存块号:每个页框都有一个编号
进程
- 页:进程的地址空间分为与页框大小相等的一个个区域
- 页号:每个页都有一个编号,从0开始
假设一个内存块是1B,一页是指4K个1B的地址集合。要区分4K和1B的区别
![c862099c27329828c4ef2b5252b230c2.png](https://i-blog.csdnimg.cn/blog_migrate/129ae76c606aa6d32545d3a819ecda66.png)
分页存储下动态重定位
逻辑地址 ===》页号+该页内的逻辑地址
两次直接访问内存(查页表+访问目标内存单元)
- 算出逻辑地址的页号
- 获得该页号对应页面在内存页框的起始地址
- 算出逻辑地址在页面内的“偏移量”
- 物理地址 = 页面始址+页内偏移量
- 访问物理内存对应的内存单元
十进制算法
- 页号 = 80/50 =1
- 页内偏移量 = 80%50 = 30
- 1号页在内存中存放的起始位置450
- 物理地址 = 450+30
二进制算法
**页面大小与页内偏移量的关系**
如果每个页面大小为
![v2-ebf7e79b4ff783b4bc4caf2098dc1db5_b.jpg](http://img-01.proxy.5ce.com/view/image?&type=2&guid=b6f4d1b4-4537-eb11-8da9-e4434bdf6706&url=https://pic2.zhimg.com/v2-ebf7e79b4ff783b4bc4caf2098dc1db5_b.jpg)
如何获得页号对应的页框地址
操作系统为了知道进程每个页面在内存中存放的位置,为每个进程建立一张页表(页表与进程相关)。页表的始址和页表长度放在进程控制块PCB中
- 页表中每一项由“页号”和“块号”组成
- 页表记录进程页面和实际存放的内存块之间的对应关系
假设物理内存大小为4GB,页面大小为4KB,则每个页表项应该为多少字节?
页表为什么不需要存储页号?
假设页表是顺序存储,那么只需要知道页表存放的起始地址和页表项长度,即可找到各页号对应的页表项。
页号地址 = 页表始址+页号X页表项长度的字节数(3->是指字节数)
(页号地址-》页号地址对应的内存块-》该页在内存的页框位置)
因为默认操作系统是按字节编码,一个字节对应内存的一个地址,所以页号X页表项长度的字节数为偏移量
只要给出一个逻辑地址就能够计算物理地址
![d87f5da06597153f9c669b8b27a07292.png](https://i-blog.csdnimg.cn/blog_migrate/b83aafcc26616a25be8331b432941cd6.png)
默认了页框和页面大小一致,所以内存块号8对应的地址为8*1024
快表变换机制
空间局部性
一旦程序访问了某个存储单元,不久之后,附近的存储单元也很有可能访问。
时间局部性
如果执行了程序中的某条指令,那么不久后这条指令很可能再次执行;如果某个数据被访问过,不久之后该数据核能再次被访问。
局部性原理
快表概念
快表(TLB)--实际上就是一个二级缓存。 是一种访问速度比内存快很多的高速缓冲存储器,用来存放当前访问的若干页表项,以加速地址变换的过程。与此对应,内存中的页表被称为慢表。(快表需要存储页号)
快的就在于寄存器的访问比内存的访问迅速
![8c27a40ffd0135d35eba01beae1e310e.png](https://i-blog.csdnimg.cn/blog_migrate/5210456e160eae085893214235979aac.png)
![29831092cb8f371ed3f3fc5a0b1fa817.png](https://i-blog.csdnimg.cn/blog_migrate/d91fb043ef92883aa343ee3ff89361eb.jpeg)
![e9627a38687f50f37508f1e5eb3e357a.png](https://i-blog.csdnimg.cn/blog_migrate/5a0b7eaec2d06d7222df7def58c59f0a.png)