当前位置: 首页 > news >正文

基本分页存储管理的基本概念

将内存分为一个个大小相等的分区,每个分区就是一个页框(页框=页帧=内存块=物理快=物理页面)每一个页框都有一个编号--页框号,页框号从0开始。

将进程的逻辑地址空间也分为与页框大小相等的一个个部分,每个部分称为一个页/页面,每个页也有一个编号,叫做页号,页号也是从0开始的

进程的页面与内存的页框都有一一对应的关系,每个页面不必连续存放,可以放到不相邻的页框中

重要的数据结构--页表

为了记录进程的每个页面在内存中的位置,操作系统要为每一个进程建立一张页表,页表通常存在PCB中

1.一个进程对应一张页表

2.进程的每个页面对应一个页表项

3.每个页表项由页号和块号组成

4.页表记录进程和页面的实际存放的内存块之间的映射关系

每个页表占多少字节?

内存块大小=页面大小=3kB=2^12B

4GB的内存总共会被分为2^20个内存块

内存块号的地址范围0~2^20 -1

内存块号至少要20bit来表示

至少要3B来表示块号(3*8=24>20)

页号不需要占用存储空间

假如页表从X的地方开始,找到第i号的页表项,因为页表项是连续存放的,所以第i号页表项的存放地址=X+3i


由于页表是隐含的,因此每个页表项占3B,存储整个页表至少需要3*(n+1)B

逻辑地址如何转换成物理地址?

虽然进程的各页面是离散存放的,但是页面内部是连续的

如果要访问逻辑地址A

1.确定逻辑地址A对应的页号P

2.找到P号页面在内存中的其实地址

3.确定逻辑地址A的页内偏移量W

逻辑地址A对应的物理地址=P号页面在内存中的起始地址+页内偏移量W

\[页号=逻辑地址/页面长度(取整数部分) \]

\[页内偏移量=逻辑地址\%页面长度(取余数) \]

逻辑地址可以拆分为(页号,页内偏移量

\[页面在内存中的起始地址+页内偏移量=实际的物理地址 \]


在计算机内部,地址是用二进制表示的,因此如果页面大小刚好是2的整数幂,则计算机硬件可以快速把逻辑地址拆分成页号和页内偏移量

![image-20251001105801695](/Users/tusier/Library/Application Support/typora-user-images/image-20251001105801695.png)

后面12位二进制是页内偏移量,前面20位是页号

结论:如果每个页面大小为2^k B,用二进制表示逻辑地址

末尾K位为页内偏移量,前面的其他部分是页号

假如前面有M位表示页号,则说明该系统中,一个进程最多允许有2^M 个页面

\[J号内存块的其实地址=J*内存块大小 \]

如果页面大小刚好是2的整数幂,只需要把页表中记录的物理快号拼接上页内偏移量,就能得到对应物理地址

http://www.jsqmd.com/news/6737/

相关文章:

  • luogu P6503 [COCI 2010/2011 #3] DIFERENCIJA
  • 2025宅基地纠纷律所权威推荐榜:专业调解与胜诉保障实力之选
  • 消逝的光芒困兽脚本更新【2025年10月1日】
  • docker build 时报错 Error fail to solve
  • web图像触发防盗链,无法显示
  • .NET操作Excel:单元格范围 (Range) 的精确定位与常用管理 (下)
  • TCP的学习 - 实践
  • 24届(华为OD)Java面经 - 教程
  • 2025上海骨灰盒哪里买优质厂家权威推荐榜:匠心工艺与品质服务之选
  • 实用指南:华为 HCIA-Datacom 备考:VRP 通用路由平台原理-实操
  • Voice Agent Camp 结营!完整项目名单公布丨超音速计划 2025
  • 详细介绍:SQL 执行异常排查 java.sql.SQLException:从 SQLException 说起
  • 2025上海寿衣哪里买权威推荐:优质供货商与暖心服务之选
  • AI 真能胜任专业工程师的工作吗?
  • 容器中与内存相关的几个参数
  • php 简单下载数据库数据 导出cvs - 何苦
  • OpenWRT中备份多个docker容器的脚本 -
  • 动态分区分配算法
  • 上海殡葬一条龙服务权威推荐:寿衣、骨灰盒购买定制服务暖心陪伴与专业仪式之选
  • potplayer截图
  • 从零开始学神经网络——CNN(卷积神经网络) - 实践
  • 303、杂诗
  • 完整教程:第三方软件测试公司:【Gatling基于Scala的开源高性能负载测试工具】
  • 完整教程:二维凸包——Andrew 算法学习笔记
  • 电脑性能优化综合指南:从网络到硬件的不全面解答
  • 实用指南:语义三角论对人工智能自然语言处理中深层语义分析的影响与启示
  • 完整教程:C++设计模式之结构型模式:适配器模式(Adapter)
  • 第三方应用测试:【移动应用后端API自动化测试:Postman与Newman的集成】 - 指南
  • (附源码)基于Spring Boot的宿舍管理系统设计与建立0007
  • 深入解析:【项目】Vision Master OpenCV 3.0 版本(预)发行说明