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

分页存储小总结

知识点:

什么是分页存储?

将内存空间分为一个个大小相等的分区(比如:每个分区4KB),每个分区就是一个“页框”(页框=页帧=内存块=物理块=物理页面)。每个页框有一个编号,即“页框号”(页框号=页帧号=内存块号=物理块号=物理页号),页框号从0开始。

 

进程的页面和内存的页框一一对应,且各个页面不必连续存放,可以放的不相邻的各个页框中.(也是为什么页表会有不同的页号和表号,因为他们全部加起来才是一个进程)如下图所示:

这里是块号指的是内存的块号

页表记录了页面和实际存放的内存块之间的映射关系

例如:

页号 = 逻辑地址 / 页面长度(取整,不四舍五入) 从0开始

页面偏移量 = 逻辑地址 % 页面长度 (取余)

第x号内存块的起始地址 = x * 内存块大小

如果有x位表示"页内偏移量",则说明该系统中一个页面的大小是2的x次方个内存单元

如果有y位表示"页号",则说明在该系统中,一个进程最多允许有2的y次方个页面

该图,31-12+1 = 20 ,2的20次方个页面,也就是1M

11-0 +1 = 12,每页的大小为4K

例题:

某计算机系统,页面大小为50B.某进程逻辑地址空间大小为200B,则逻辑地址110对应的页号,页内偏移量是多少?

代入公式

页号 = 110 / 50 =2

偏移量 = 110 % 50 = 10,为什么要求余呢,因为比如这道题100到150都是页号2里面的内容

总结:

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

通过页号查询页表,可知页面在内存中的起始地址

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

http://www.lryc.cn/news/480871.html

相关文章:

  • Star-CCM+应用篇之动力电池温度场仿真操作流程与方法
  • Spring Boot应用开发:从入门到精通
  • 【JAVA项目】基于jspm的【医院病历管理系统】
  • Python中的常见配置文件写法
  • 语义分割实战——基于PSPnet神经网络动物马分割系统源码
  • Python+Appium编写脚本
  • RK3288 android7.1 适配 ilitek i2c接口TP
  • C++ 越来越像函数式编程了!
  • maven工程结构说明
  • 【GESP】C++一级真题练习(202312)luogu-B3921,小杨的考试
  • 游戏中Dubbo类的RPC设计时的注意要点
  • ARXML汽车可扩展标记性语言规范讲解
  • Hadoop(HDFS)
  • 机器学习系列----梯度下降算法
  • AI大模型:软件开发的未来之路
  • 指标+AI+BI:构建数据分析新范式丨2024袋鼠云秋季发布会回顾
  • 2024年第四届“网鼎杯”网络安全比赛---朱雀组Crypto- WriteUp
  • 关于Markdown的一点疑问,为什么很多人说markdown比word好用?
  • NoSQL大数据存储技术测试(1)绪论
  • Linux命令学习,git命令
  • 【AI大模型】Transformer中的编码器详解,小白必看!!
  • PostgreSQL 字段按逗号分隔成多条数据的技巧与实践 ️
  • 设计模式学习总结(一)
  • 软考中级 软件设计师 上午考试内容笔记(个人向)Part.1
  • PHP API的数据交互类型设计
  • 【EFK】Linux集群部署Elasticsearch最新版本8.x
  • 【大数据测试 Elasticsearch — 详细教程及实例】
  • 用ArkTS写一个登录页面(实现简单的逻辑)
  • matlab将INCA采集的dat文件多个变量批量读取到excel中
  • list集合常见去重方式以及效率对比