分页缓冲池占用很高怎么解决_王道操作系统学习笔记(六)分页内存管理

分页存储管理/非连续分配管理方式的由来

连续分配的方式:

  • 固定分区分配:缺乏灵活性,会产生大量的内部碎片。
  • 动态分区分配:产生很多外部碎片,虽然可以用“紧凑”技术来处理,但“紧凑”技术时间代价很高。

本质问题:连续分配方式要求进程占用的必须是一整段,连续的内存区域。(这个区域长度是不固定的)

分页存储:如果允许讲进程分散地按固定大小的装入道各个不相邻的分区中,便可以充分利用内存。包括了,基本分页存储管理,基本分段存储管理,段页式存储管理。

这章对概念的理解要很清晰,否则很容易乱

基本分页存储管理

基本思想

内存分为一个个相等的小分区,再按照分区大小把进程拆分成一个个小部分

操作系统以页框/内存块为单位为各个进程分配内存空间。进程的页面与内存的页框是一一对应的关系

术语

要分两块。内存+进程

内存:

  • 页框:内存空间分为一个个大小相等的分区
  • (页框大小是内存分配的基本单位大小-个人理解,比如4KB的页框,如果放2个3KB的东西就是占用2个4KB多1KB内部碎片
  • 页框号/内存块号:每个页框都有一个编号

进程

  • 页:进程的地址空间分为与页框大小相等的一个个区域
  • 页号:每个页都有一个编号,从0开始

假设一个内存块是1B,一页是指4K个1B的地址集合。要区分4K和1B的区别

c862099c27329828c4ef2b5252b230c2.png

分页存储下动态重定位

逻辑地址 ===》页号+该页内的逻辑地址

两次直接访问内存(查页表+访问目标内存单元)

  1. 算出逻辑地址的页号
  2. 获得该页号对应页面在内存页框的起始地址
  3. 算出逻辑地址在页面内的“偏移量”
  4. 物理地址 = 页面始址+页内偏移量
  5. 访问物理内存对应的内存单元

十进制算法

  1. 页号 = 80/50 =1
  2. 页内偏移量 = 80%50 = 30
  3. 1号页在内存中存放的起始位置450
  4. 物理地址 = 450+30

二进制算法

**页面大小与页内偏移量的关系**

如果每个页面大小为

,那么末尾K位表示页内偏移量,其余部分代表页号,k代表了页内地址空间/页内内存块的数量

v2-ebf7e79b4ff783b4bc4caf2098dc1db5_b.jpg

如何获得页号对应的页框地址

操作系统为了知道进程每个页面在内存中存放的位置,为每个进程建立一张页表(页表与进程相关)。页表的始址和页表长度放在进程控制块PCB中

  1. 页表中每一项由“页号”和“块号”组成
  2. 页表记录进程页面和实际存放的内存块之间的对应关系

假设物理内存大小为4GB,页面大小为4KB,则每个页表项应该为多少字节?

个页面,也就是说要有20位来表示,一个字节8位,所以至少为3字节。

页表为什么不需要存储页号?

假设页表是顺序存储,那么只需要知道页表存放的起始地址页表项长度,即可找到各页号对应的页表项。

页号地址 = 页表始址+页号X页表项长度的字节数(3->是指字节数)

(页号地址-》页号地址对应的内存块-》该页在内存的页框位置)

因为默认操作系统是按字节编码,一个字节对应内存的一个地址,所以页号X页表项长度的字节数为偏移量

只要给出一个逻辑地址就能够计算物理地址

d87f5da06597153f9c669b8b27a07292.png

默认了页框和页面大小一致,所以内存块号8对应的地址为8*1024

快表变换机制

空间局部性

一旦程序访问了某个存储单元,不久之后,附近的存储单元也很有可能访问。

时间局部性

如果执行了程序中的某条指令,那么不久后这条指令很可能再次执行;如果某个数据被访问过,不久之后该数据核能再次被访问。

局部性原理

快表概念

快表(TLB)--实际上就是一个二级缓存。 是一种访问速度比内存快很多的高速缓冲存储器,用来存放当前访问的若干页表项,以加速地址变换的过程。与此对应,内存中的页表被称为慢表。(快表需要存储页号)

快的就在于寄存器的访问比内存的访问迅速

8c27a40ffd0135d35eba01beae1e310e.png

29831092cb8f371ed3f3fc5a0b1fa817.png

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值