无事水,但要好好学习
Nothing else, but still
|

Nolca

园龄:6年9个月粉丝:12关注:9

操作系统:为什么一个页表项通常占用1Byte,1字节呢?页表项≠逻辑地址!常见OS内存管理误区辨析(计算机组成原理)

2^32,每个信息分配一个空间/可能性——幂
32位/8=4Byte,存信息——除法

地址&数据块:https://blog.csdn.net/bkdly9/article/details/107297461

原理复习(必看!!!):

  1. 页目录、页表和页三者的关系详解
  2. 每个页表项占用一个字节是怎么来的?
  3. 页表项≠逻辑地址
  4. 页与块之间的关系,不同教材的叫法不同
  5. 了解计算机三种编址方式(按位编址、字节编址、字编址)

eg:一条页表项32位
数值范围:0~2^32
存储32位需要占用空间:4Byte 00000000 00000000 00000000 00000000


eg2:一个300M的进程进入内存,4KB一块,一级页表需要( )连续的块,二级页表需要( )离散的块
由于页表本身能就存到内存中,问的是存这么多页表项,页表本身占内存的多少个块
一级页表75个连续块:300×210KB4KB=30028=75K,75K个页表项占用75000×4Byte/4KB=300KB/4KB=75
二级页表76个都离散块: 一级页表1块;二级页表都离散存储,每一个二级页表只存一条页表项,占用25个二级页表,占25块;

号:value
项: index

页框号 ≠ 页号
页表项 ≠ 逻辑地址
页表项大小 ≠ 页内偏移

20+12=32 默认值 有关 公式 计算
内存分块数 232 逻辑32位 总内存÷编址方式 4GB÷1Byte(按字节编址)
页号MAX+1 212 12位 总内存÷每块页面大小 页表项个数
页面大小 4KB 12位 页内偏移量×编址方式 212×1Byte
每条页表大小 4Byte 逻辑32位 内存分块数位数占用 32bit
一张页最大占用 4MB 20位 页号MAX+1×每条页表项大小 220×4Byte

每个页表项大小,仅与分多少个物理块号有关,即使只用到1.5Byte(12位),一条也得占用4Byte。(可能是4Byte对齐,查找更快)
image

ps1:程序分页以申请内存,内存分块以方便管理
ps2:框内是内存内容print(a),框外是内存地址print(&a),写成数组形式:
逻辑地址[变量名]={页号,页内偏移}
页表[页号]=物理块号
内存[块号]=页面内容

image
image

image

问题启发

一开始是做题的时候,为什么不是2^12 bit,而是2^12Byte

某计算机主存按节址,逻地址和物理地址都是 32位页表项大小为 4B。请回答下列问题。
1 若使用一级页表的分页存储管理方式,逻辑地址结构为:
页号(20位) | 页内偏移量(12位)
则页的大小是多少字节?页表最大占用多少字节?

(这就是某些题目)csdn答案:https://blog.csdn.net/syh666233/article/details/109295815

哈希+反置页表

分页、分段的区别

大小 决定 目的 若字段W溢出 结构
物理页 固定 系统 提高内存利用率 自动加入到页号 连续,仅页内地址偏移
逻辑段 可变 用户编程 易实现多进程的段共享/段保护 越界中断 离散,段号+段内地址偏移

分段管理实验源代码

记忆:单位转换(有时候以为是28

23=8bit=1Byte
210=1024B=1kB

本文作者:Nolca

本文链接:https://www.cnblogs.com/nolca/p/17398949.html

版权声明:本作品采用 收益分享revenue sharing 许可协议进行许可。

posted @   Nolca  阅读(616)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起
  1. 1 ⏩intro 山姆精
  2. 2 🎸吉他 马叉
  3. 3 ☁升调 山姆精
  4. 4 🐦Flutter Virtual Riot/Madi
  5. 5 🎶纯律 山姆精
  6. 6 👻yeah~Color Bass! VR
☁升调 - 山姆精
00:00 / 00:00
An audio error has occurred, player will skip forward in 2 seconds.