Linux-页表如何对物理内存进行映射

1.1 页框和页帧

        我们知道通过页表可以将虚拟内存映射到对应的物理内存,而操作系统对于物理内存的管理并不是以字节为单位的,而是将物理内存分为许多大小为4KB的块,称为页框页帧,这就是为什么我们在创建共享内存是建议将大小设定为4096字节的整数倍,而4KB也是操作系统与磁盘交互的基本单位(8个扇区),对于文件来说,文件的内容被存放在磁盘的大小为4KB的块中(Data Block),所以在进行磁盘级的IO操作时,就是将磁盘中的4KB的数据块加载到物理内存对应的页框中。

        而由于物理内存中存在许多的4KB块,OS为了管理好物理内存,需要知道每个块的使用情况,用名字为struct page结构体对每个块进行了描述,这样只需要一个struct page类型的数组就可以管理整个物理内存了。

1.2 页表的映射

        目前我们对页表的知识是有欠缺的,以32位机器为例,每一个字节的物理内存都需要虚拟内存与之对应,一个地址空间仅仅虚拟内存就占了2的32次方字节的大小,也就是4GB,所以页表的映射关系并没有这么简单。

        一个虚拟地址有32个比特位,OS将这32个比特位分为了10位、10位、12位,在每个进程中存在一张页表目录,该目录保存着2的10次方张页表,而前10位就是用来索引页表目录来找到对应的页表的,页表中存放的是对应页框的起始地址。2的12次方正好是4KB对应着一个页框的大小,最后12位是该虚拟内存在页框中的地址偏移量,所以虚拟地址的前10位用于索引页表,中间10位用于索引页框的地址,最后的12位就可以锁定具体的物理地址了。64位机器的原理和上述一样

接下来我们大概计算一下按上述说法一个进程的页表需要多大的内存,页目录1024*4也就是4Kb,页表中索引的是页框的地址,一个地址空间对应的物理内存有2的20次方个页框,所以只需要20个字节就可以索引到所有的页框,那么页表的每个元素只需要3个字节接可以了,一个页表需要3*1024个字节,一共有1024个页表,所以一共需要的大小为4KB+3M的大小(上述大小是大概计算的并不准确)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/39784.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LTSPICE仿真电路:(十九)磁珠的一些简单仿真

1.作用 简单来说就是用来滤波的,将高频信号转化为热量滤除掉,低频有用信号正常通过 2.参数 上图几个参数比较简单,就是字面上的意思,更重要的就是频率阻抗图 不同曲线代表不同型号的磁珠,实际上除了额定电流外&#…

基于springboot+vue+uniapp的语言课学习系统小程序

开发语言:Java框架:springbootuniappJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包&#…

艺活网DIY手工制作网站源码 工艺制作教程平台源码,带数据

帝国CMS仿《手艺活》DIY手工制作网源码,仿手艺活自适应手机版模板。 带数据库和图片资源,一共5个G大小,下载需耐心。 92开发 手艺活网DIY手工制作网站源码 创意手工艺品制作教程平台系统帝国h5自适应手机端 是一套展示各种 DIY 小物品精美又…

@react-google-maps/api实现谷歌地图中添加多边围栏,并可编辑,编辑后可获得围栏各个点的经纬度

先上一张效果图 看看是不是大家想要的效果~ ❤️ 由于该功能微微复杂一点,为了让大家精准了解 我精简了一下地图代码 大家根据自己的需求将center值和paths,用setState做活就可以了 1.第一步要加入项目package.json中或者直接yarn install它…

[激光原理与应用-97]:激光焊接焊中检测系统系列介绍 - 1 - 什么是焊接以及传统的焊接方法

目录 一、什么是焊接 1.1 概述 1.2 基本原理 二、传统的焊接技术与方法 2.1 手工电弧焊: 1、定义与原理 2、特点 3、焊条类型 4、应用领域 5、安全注意事项 2.2 气体保护焊: 1、原理与特点 2、应用领域 3、气体选择 4、注意事项 2.3 电阻…

高级IO_多路转接之Poll

文章目录 前言一、poll二、poll使用步骤总结 前言 上一章我们学习了select,但是select作为早期的多路转接接口,缺点十分明显,于是又出现poll和epoll等接口,今天我们就来学习一下poll的使用 提示:以下是本篇文章正文内…

60种AI工具用法 学会探索AI的无限可能

外面还在卖的课程,学会探索AI的无限可能,从构建精准的提示词到获取个性化新闻,从快速制作PPT到短视频内容的智能提炼,再到编程、股市分析和视频剪辑,AI工具助您工作学习效率飞跃提升! 百度网盘 请输入提取…

2024 世界人工智能大会暨人工智能全球治理高级别会议全体会议在上海举办,推动智能向善造福全人类

2024 年 7 月 4 日,2024 世界人工智能大会暨人工智能全球治理高级别会议-全体会议在上海世博中心举办。联合国以及各国政府代表、专业国际组织代表,全球知名专家、企业家、投资家 1000 余人参加了本次会议,围绕“以共商促共享,以善…

【图像分割】mask2former:通用的图像分割模型详解

最近看到几个项目都用mask2former做图像分割,虽然是1年前的论文,但是其attention的设计还是很有借鉴意义,同时,mask2former参考了detr的query设计,实现了语义和实例分割任务的统一。 1.背景 1.1 detr简介 detr算是第…

基于github.com/emmansun/gmsm库编写的SM2对C 开放的库

go-gmsm cgo库 介绍 基于github.com/emmansun/gmsm库编写的SM2对C 开放的库 特性:非对称加密、不支持跨平台编译 git地址:https://gitee.com/state-secret-series/go-gmsm.git 软件架构 Go、Cgo、mod 安装教程 克隆仓库 git clone https://gite…

香橙派AIpro实测:YOLOv8便捷检测,算法速度与运行速度结合

香橙派AIpro实测:YOLOv8便捷检测,算法速度与运行速度结合 文章目录 香橙派AIpro实测:YOLOv8便捷检测,算法速度与运行速度结合一、引言二、香橙派AIpro简介三、YOLOv8检测效果3.1 目标检测算法介绍3.1.1 YOLO家族3.1.2 YOLOv8算法理…

NDT配准收敛问题

GitHub - abougouffa/ndtpso_slam: ROS package for NDT-PSO, a 2D Laser scan matching algorithm for SLAM SRG NDT Das_Arun_2013.pdf;jsessionid97F7EDB4E8805EFE68D1E46687EF593F (uwaterloo.ca)

上海计算机考研炸了,这所学校慎报!上海大学计算机考研考情分析!

上海大学(Shanghai University),简称“上大”,是上海市属、国家“211工程”重点建设的综合性大学,教育部与上海市人民政府共建高校,国防科技工业局与上海市人民政府共建高校,国家“双一流”世界…

【微信小程序开发】微信小程序界面弹窗,数据存储相关操作代码逻辑实现

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,…

ArcGIS Pro SDK (七)编辑 12 编辑模版

ArcGIS Pro SDK (七)编辑 12 编辑模版 文章目录 ArcGIS Pro SDK (七)编辑 12 编辑模版1 在图层上按名称查找编辑模板2 查找属于独立表的表模板3 当前模板4 更改模板的默认编辑工具5 隐藏或显示模板上的编辑工具6 使用图层创建新模…

how to use Xcode

Xcode IDE概览 Xcode 页面主要分为以下四个部分: 工具栏(ToolBar area):主要负责程序运行调试,编辑器功能区域的显示 / 隐藏;编辑区(Editor area):代码编写区域&#xf…

140. 好二叉树(卡码网周赛第二十四期(23年腾讯音乐笔试真题))

140. 好二叉树&#xff08;卡码网周赛第二十四期&#xff08;23年腾讯音乐笔试真题&#xff09;&#xff09; 题目描述 小红定义一个二叉树为“好二叉树”&#xff0c;当且仅当该二叉树所有节点的孩子数量为偶数(0 或者 2)。 小红想知道&#xff0c;n&#xff08;1< n <…

vue table表格 ( parseTime-格式化时间)

<el-table-column label"发布时间" width"420px" prop"bidPublishDatetime"><template slot-scope"scope"><span>{{ parseTime(scope.row.bidPublishDatetime, {y}-{m}-{d}) }}</span></template></…

若依代码生成

在若依框架中&#xff0c;以下是这些代码的作用及它们在程序运行中的关联方式&#xff1a; 1. domain.java&#xff1a;通常用于定义实体类&#xff0c;它描述了与数据库表对应的对象结构&#xff0c;包含属性和对应的访问方法。作用是封装数据&#xff0c;为数据的操作提供基…

Richtek立锜科技车规级器件选型

芯片按照应用场景&#xff0c;通常可以分为消费级、工业级、车规级和军工级四个等级&#xff0c;其要求依次为军工>车规>工业>消费。 所谓“车规级元器件”--即通过AEC-Q认证 汽车不同于消费级产品&#xff0c;会运行在户外、高温、高寒、潮湿等苛刻的环境&#xff0c…