页面大小和页表项之间有必然的联系么?【转】

简介: 转自:https://zhidao.baidu.com/question/335974047.html 如果一个页面的大小为4K,页表项大小为4B,那么为什么可以存2^10个页表项?我的意思就是问为什么要拿4K/4B=2^10?页表项不应该是存在于内存里面的?和页面大小有什么关系?   Mr_无所不知 | 浏览 13070 次 |举报 我有更好的答案 推荐于2017-11-02 20:44:25 最佳答案   理解这样一个概念,操作系统为了方便管理内存,将内存划分成很若干个页,每个页表项就代表一个页的地址(页的地址,不是内存地址)。

转自:https://zhidao.baidu.com/question/335974047.html

如果一个页面的大小为4K,页表项大小为4B,那么为什么可以存2^10个页表项?我的意思就是问为什么要拿4K/4B=2^10?页表项不应该是存在于内存里面的?和页面大小有什么关系?
 
Mr_无所不知 | 浏览 13070 次 |举报
我有更好的答案
推荐于2017-11-02 20:44:25 最佳答案
 
理解这样一个概念,操作系统为了方便管理内存,将内存划分成很若干个页,每个页表项就代表一个页的地址(页的地址,不是内存地址)。
4B大小的页表项,意味着支持最大的页表数是2的32次方=4294967296 (4B=32bit),一个页的大小4K,那么4B大小的页表项,表示操作系统支持4294967296*4K = 16GB大的内存。

现在问题是页表占用一定的内存。
现在假设有2GB(一定要小于16GB)内存。
那么它一共有2GB/4KB=512K个页,也就是说页表项有512K项,而每个页表项的大小4B,那么页表在内存中占用的大小是:512K*4B=2MB,意味着,只要2MB就可以表示512K个页(每个页是4KB,总内存大小是2G),它页表本身占用了2MB/4K=512个页。

这一题 就是问你1个页可以表示多少个页表项,4KB/4B=1024个页表项。页面大小与页表项没有绝对的关系,但它们有这样关系:
1.页面大小 * 2 ^(页表项大小)=操作系统最大支持内存大小(虚拟内存),本题是 4K * 2^(4B) = 16GB
2.页表占用内存 = 操作系统内存/页面大小 * 页表项大小,本题是,假设操作系统内存为2GB。 2GB/4KB*4B = 2MB
3.页表占用的页数是=页表占用内存/页面大小,这题同上假设2MB/4K=512个页。
【作者】 张昺华
【新浪微博】 张昺华--sky
【twitter】 @sky2030_
【facebook】 张昺华 zhangbinghua
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.
目录
相关文章
|
4月前
|
存储
如何实现浏览器内多个标签页之间的通信
如何实现浏览器内多个标签页之间的通信
28 0
|
4月前
|
存储 前端开发 安全
跨页面通信的方式有哪些?
跨页面通信的方式有哪些?
49 0
|
7月前
|
消息中间件 存储 缓存
如何设计各个组件之间的交互行为?
如何设计各个组件之间的交互行为?
|
5月前
带有上下级关系的数据改为树形菜单的数据
带有上下级关系的数据改为树形菜单的数据
24 0
|
4月前
|
存储 前端开发 JavaScript
多个页面之间如何进行数据传递
多个页面之间如何进行数据传递
80 0
|
10月前
|
存储 Web App开发 前端开发
💞💞💞SharedWorker 让你多个页面相互通信
SharedWorker 是一个新的Web Worker API,它允许你在多个页面之间共享一个Worker。 SharedWorker 代表一种特定类型的Worker,可以在多个浏览器上下文中运行,
131 0
💞💞💞SharedWorker 让你多个页面相互通信
|
存储 API
页面之间的通信
页面之间的通信
|
人工智能 前端开发
「前端技巧总结」多个页面的操作聚合到某个页面的实现方案
用技术实现梦想,用梦想打开前端技术之门。分享我在日常开发中总结的前端技巧,今天是多个页面的操作聚合到某个页面的实现方案。
202 0
|
算法 搜索推荐 索引
网页权重和百度快照之间的关系
网页权重和百度快照之间的关系www.20200824.com
|
小程序
小程序-点击按钮式 进行页面之间的跳转
小程序-点击按钮式 进行页面之间的跳转