正解 x86 Linux 内存管理

1,机器解析的思路

发现网络上大量的教程,多是以讹传讹地讲解 Linux 内存管理;

都是在讲:

逻辑地址  ->  线性地址  ->  物理地址

这个转换关系是怎么发生的。

上面这个过程确实是程序运行时地址的翻译顺序;

但是,程序之所以按照这个顺序来解析地址,是因为前期有人类中的一些大脑袋巧妙地按照相反到方向

物理地址  ->  线性地址  ->   逻辑地址

设计了这个内存管理系统;

2,人类设计mm的思路


在x86架构中,页表(Page Table)和页目录(Page Directory)是用于虚拟内存管理的重要数据结构。x86架构使用两级页表结构,包括页目录、页表和物理页框。

页目录(Page Directory)是一个包含1024个32位项的数组,每个项指向一个页表。页表(Page Table)是一个包含1024个32位项的数组,每个项指向一个物理页框。

x86架构中的虚拟地址被分为三部分:10位页目录索引、10位页表索引和12位页内偏移。通过这三部分可以定位到物理内存中的具体位置。

页表和页目录的规划方法通常包括以下步骤:

1. 页表初始化:

        在操作系统启动时,会初始化页表和页目录,建立虚拟地址到物理地址的映射关系。

2. 页表项填充:

        将页表和页目录中的项填充为合适的值,包括物理页框的地址和权限信息。

3. 页表更新:

        在进程切换或内存分配时,需要更新页表和页目录中的项,以反映新的虚拟地址到物理地址的映射关系。

4. TLB缓存:

        为了加速地址转换过程,x86架构使用TLB(Translation Lookaside Buffer)缓存页表项,减少内存访问次数。

资料堆上,未完待续 。。。

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

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

相关文章

使用消息队列(MQ)实现MySQL持久化存储与MySQL server has gone away问题解决

在现代应用程序开发中,消息队列(MQ)扮演着重要的角色。它们可以帮助我们解决异步通信和解耦系统组件之间的依赖关系。而其中一个常见的需求是将消息队列中的数据持久化到数据库中,以确保数据的安全性和可靠性。在本文中&#xff0…

【AI学习】Together AI的新研究:Together MoA(Mixture of Agents)

第一次听说Mixture of Agents,原来Agent也能混合,有意思! 介绍 Together AI的最新研究“Together MoA”(Mixture of Agents,代理混合)是一种创新的方法,旨在通过结合多个开源大型语言模型&…

【尚庭公寓SpringBoot + Vue 项目实战】公寓管理(十一)

【尚庭公寓SpringBoot Vue 项目实战】公寓管理(十一) 文章目录 【尚庭公寓SpringBoot Vue 项目实战】公寓管理(十一)1、业务介绍2、逻辑模型介绍3、接口开发3.1、保存或更新公寓信息3.2、根据条件分页查询详细信息3.3、根据ID获…

读AI新生:破解人机共存密码笔记02进化

1. 人工智能的标准模型 1.1. 机器优化人类提供的固定目标 1.1.1. 是一条死胡同 1.1.1.1. 当你走进死胡同时,你最好掉头返回,找出走错的地方 1.2. 问题不在于我们可能无法做好构建人工智能系统的工作&…

关于阿里云效流水线自动部署项目教程

1、登录阿里云效:阿里云登录 - 欢迎登录阿里云,安全稳定的云计算服务平台 2、点击左侧流水线: 3、在流水线界面,新建流水线 4、我的是php代码,因此选择php模版 5、创建之后添加流程线源,如下图 6、选择相应的源头。比…

【odoo】右上角的提示(通知服务)

概要 在Odoo中,右上角的提示(通知服务)用于显示系统消息、警告、错误或信息提示。这个功能通过 JavaScript 在前端实现,并且使用 Odoo Web 框架提供的现成功能。 提示类型 信息提示 (Info):用于显示普通信息。这类提示…

Huggingface-cli 登录最新版(2024)

安装Huggingface-cli pip install -U "huggingface_hub[cli]"设置好git的邮箱和用户名和huggingface的github账号一致 git config --global user.mail xxx git config --global user.name xxx登录 复制token,划红线的地方,在命令行中点击右…

微软OneDrive简介:特点、应用场景、使用方法、注意事项

还是大剑师兰特:曾是美国某知名大学计算机专业研究生,现为航空航海领域高级前端工程师;CSDN知名博主,GIS领域优质创作者,深耕openlayers、leaflet、mapbox、cesium,canvas,webgl,ech…

利用Cesium和JS实现地点点聚合功能

引言 在实现基于地图的业务场景时,当地图上需要展示过多的标记点时,大量的分散点会使地图上显得杂乱无章,导致标记点对地图上的其他重要信息造成遮挡和混淆,降低地图整体的可读性。 标记点的聚合就很好的解决了这些痛点的同时&a…

[大模型]XVERSE-MoE-A4.2B Transformers 部署调用

XVERSE-MoE-A4.2B介绍 XVERSE-MoE-A4.2B 是由深圳元象科技自主研发的支持多语言的大语言模型(Large Language Model),使用混合专家模型(MoE,Mixture-of-experts)架构,模型的总参数规模为 258 亿…

apt-get update和apt-get upgrade的区别

apt-get update apt-get update 命令用于更新本地软件包列表。具体来说,做了以下事情: ①从 /etc/apt/sources.list 文件和 /etc/apt/sources.list.d/ 目录下的所有文件中读取软件源配置。 ②连接到这些软件源,并下载最新的软件包列表。 ③将…

Python 潮流周刊#56:NumPy 2.0 里更快速的字符串函数

△△请给“Python猫”加星标 ,以免错过文章推送 本周刊由 Python猫 出品,精心筛选国内外的 250 信息源,为你挑选最值得分享的文章、教程、开源项目、软件工具、播客和视频、热门话题等内容。愿景:帮助所有读者精进 Python 技术&am…

Mysql(一):深入理解Mysql索引底层数据结构与算法

众所众知,MySql的查询效率以及查询方式,基本上和索引息息相关,所以,我们一定要对MySql的索引有一个具体到数据底层上的认知。 这一次也是借着整理的机会,和大家一起重新复习一下MySql的索引底层。 本节也主要有一下的…

【PL理论】(25) C- 语言:表达式求值的推理规则 | 执行语句的推理规则 | 语句执行的推理规则

💭 写在前面:本章我们将继续更新我们的 "C-" 语言,更新表达式求值的推理规则、执行语句的推理规则以及语句执行的推理规则。 目录 0x00 C- 语言更新:表达式求值的推理规则 0x01 C- 语言更新:执行语句的推…

网页五子棋对战项目测试(selenium+Junit5)

目录 网页五子棋对战项目介绍 网页五子棋对战测试的思维导图​ 网页五子棋对战的UI自动化测试 测试一:测试注册界面 测试二:测试登陆界面 测试三:测试游戏大厅界面 测试四:测试游戏房间界面以及观战房间界面 测试五&#…

软考-架构设计师-综合知识总结(试卷:2009~2022)(下篇)

说明 本文档对2009到2022年试卷的综合知识进行了归纳总结,同时对叶宏主编的《系统架构设计师教程》划分重点。 第十七章:通信系统架构设计 17.2 考题总结 第十八章:安全架构设计 18.1 重要知识点 18.2 考题总结 第十九章:大数据…

传统后端SQL数据层替代解决方案: 内置数据源+JdbcTemplate+H2数据库 详解

内置数据源 我们回顾一下druid数据源的配置方式 通过type属性指定数据源的类型 导入依赖 starter就使用了spring的自动装配功能 格式二是在引入druid的依赖的基础上 进行的一种配置方式 Tomcat内部也可以进行数据源的配置 轻量级中最快的数据源对象 我们切换德鲁伊连接池 我…

OpenDevin 环境配置及踩坑指南

不惧怕任何环境配置 首先 clone 项目,然后查看开发者文档:https://github.com/OpenDevin/OpenDevin/blob/main/Development.md make setup-config 自定义 LLM 配置 首先这个 devin 写的是支持自定义的 LLM 配置,并且提供了交互式命令供我们…

DzzOffice集成功能最丰富的开源PHP+MySQL办公系统套件

DzzOffice是一套开源办公套件,旨在为企业和团队提供类似“Google企业应用套件”和“微软Office365”的协同办公平台。以下是对DzzOffice的详细介绍: 主要功能和应用: 网盘:支持企业、团队文件的集中管理,提供文件标签…

Python开发示例——使用Python实现炫酷的数据动态图

前言 数据可视化是通过图形、图表、地图等可视元素将数据呈现出来,以便更容易理解、分析和解释。它是将抽象的数据转化为直观形象的过程,有助于发现数据中的模式、趋势和关系。数据可视化对于数据科学、商业分析、决策制定等领域都至关重要。当我们想用…