操作系统的线性地址

内存寻址(一) —— 基本概念与机制 1.内存地址 在编程中我们(编译器)为各种数据分配的内存均为逻辑地址,逻辑地址通过操作系统转换为物理地址,也就是芯片级物理内存的地址。在使用Intel 80x86微处理器时,应当分清以下三种“地址”: 逻辑地址(logical address) ; 线性地址(linear address) ; 物理地址(physical address); CPU控制单元通过一种称为分段单元(segmenta... 阅读详情

 

线性地址( Linear address ),也叫做逻辑地址 (virtual address) , 在 32 位系统中,它的寻址空间是从 0x00000000-0xffffffff ,也就是常说的 4G 。

 

PAE 分页机制

Physical address extension ,指的是在 32 位系统中,处理器的管脚数目从 32 个增加到 36 个,这样,寻址空间就扩大到了 64G ,完全可以满足现有的需求。

 

Paging Unit : 分页单元,它能够把线性地址转换成物理地址。在编程中,经常可以遇到 page fault 这样的错误,其实,这个错误就是从 paging unit 从抛出来的。

 

Page: 页,线性地址被分成固定长度为单位的组,这就是页。通常,页大小是 4K 。

此外,页既指一组线性地址,也指包含在这组地址中的数据。

 

Segmentation Unit : 分段单元,是一个硬件电路,可以把一个逻辑地址转换成线性地址。

 

Paging Unit :分页单元,是一个硬件电路,可以把线性地址转换成一个物理地址。属于 MMU ( memory management unit )的范畴。

 

Page Frame: 页框,分页单元( page unit )把系统中所有的 RAM 分成固定长度的页框。

 

Page 和 page frame 的区别:

Page 是一个数据块,而 page frame 是一个物理存储单元。因此,一个页可以任何页框中。

 

Page directory :页目录表,是一种转换表,用于线性地址到物理地址转换的第一步。

Page table :页表,是一种转换表,用于线性地址到物理地址转换的第二步。

 

32 位线性地址: page directory(10 bit), page table(10 bit), offset(12 bit)

 

Cr 寄存器

 

 

< ===================================================== >

Linux 系统中的分页机制:四级分页模型

  1. page global directory :页全局目录
  2. page upper directory : 页上级目录
  3. page middle directory :页中间目录
  4. page table : 页表

 

Linux进程页表

1.  0x00000000 ~ 0xbfffffff:进程处于用户态和内核态都可以寻址

2.  0xc0000000 ~ 0xffffffff:内核态的进程才能可以寻址

 

 

R语言实战:三因素方差分析(ANOVA)从入门到精通(附完整代码解析) 本文详细介绍了如何使用R语言进行三因素方差分析(ANOVA),从数据准备、模型构建到结果解读与可视化,提供完整代码解析。通过实战案例,帮助读者掌握复杂交互效应的分析方法,适用于科研、教育等多个领域的数据分析需求。 阅读详情

相关推荐

众灵科技24路舵机控制器二次开发实战(1)-STM32串口指令控制详解

本文详细介绍了如何通过STM32单片机对众灵科技24路舵机控制器进行二次开发,实现串口指令控制。文章从硬件连接、通信协议解析到STM32代码实战,手把手指导开发者打通控制链路,并重点讲解了如何调用预设动作组驱动六足机器人,为后续集成传感器、无线遥控等高级功能奠定基础。

weixin_29188997的博客 483

WIndows内核学习笔记:分页机制——PAE分页模式

Chapter 4 Paging 4.1 分页模式和控制位 分页控制有关的寄存器 CR0 标志位:WP(bit 16)、PG(bit 31) CR4 标志位:PSE(bit 4)、PAE(bit 5)、PGE(bit 7)、PCIDE(bit 17)、SMEP(bit 20)、SMAP(bit 21)、PKE(bit 22)、CET(bit 23)、PKS(bit 24) IA32_EFER MSR 标志位:LEM(bit 8)、NXE(bit 11) EFLAGS 标志位:AC(

weixin_38526180的博客 4031

超速U盘选购避坑指南:如何通过Rx Detect机制识别真伪USB3.0设备

本文深入解析了USB 3.0超速U盘的选购避坑要点,重点介绍了通过Rx Detect机制识别真伪设备的核心原理。文章提供了从软件检测到实际性能测试的完整方案,帮助消费者和技术人员有效辨别虚假的USB3.0设备,确保获得真正的超速传输体验。

weixin_29189373的博客 443

实验8.1 线性开型寻址

实验8.1 线性开型寻址

知识库搭建ing 1354

【论文阅读】2021-(Pidinet)Pixel Difference Networks for Efficient Edge Detection

文章目录摘要1. Introduction 摘要 motivations: 基于CNN的边缘检测的高性能是通过一个大的预训练CNN主干来实现的,该主干占用大量内存和能量。传统边缘检测器(如Canny、Sobel和LBP)很少被研究。 contributions: 提出了一种简单、轻量级但有效的架构,称为像素差分网络(PiDiNet),用于有效的边缘检测。PiDiNet采用了新颖的像素差卷积,将传统的边缘检测算子集成到现代CNN中流行的卷积运算中,以增强任务性能。 experiments: 在BSDS500

轻舟的万重重山 1万+

Wincc7.5SP1 按钮操作记录(二次确认及语音播报)

Wincc 7.5 SP1 按钮操作记录生成(含二次确认及语音播报) 前面一篇文章已经介绍了“语音播报WINCC报警”,本文是之前功能的延伸,记录按钮操作记录并实现播报。 操作记录及语音播报效果 <创建消息文本> 1. 创建消息文本 消息编号100,消息等级“系统无确认”,消息类型“操作员输入消息”,消息文本“循环水泵启动操作”,其他参数默认。 消息编号101,消息等级“系

徐站的春天 1万+

深入理解计算机系统-之-内存寻址(一)--存储管理机制(虚拟地址,线性地址,物理地址)

参照 《深入理解计算机系统》 《深入理解linux内核》 《80x86汇编语言程序设计》 《操作系统的设计与实现》 为了对存储器中的程序及数据实现保护和共享硬件支持,为了对实现虚拟存储器提供硬件支持,现代的CPU不仅采用了扩充的存储器段式管理机制,而且还提供了可选的存储器分页管理机制。段页式存储管理物理地址(physical address)用于内存芯片级的单元寻址,与处理器

OSKernelLAB(gatieme) 7274

使用STM32H7点亮RGB屏幕

希望本文能对你有所帮助!RGB屏幕是一种具有红、绿、蓝三种颜色通道的显示设备,通过控制每个通道的亮度,可以显示出丰富多彩的图像和动画。要使用STM32H7控制RGB屏幕,我们需要连接适当的引脚,并编写适当的代码来控制每个颜色通道的亮度。在主循环中,我们先点亮红色通道,然后延迟一段时间,接着点亮绿色通道,再延迟一段时间,最后点亮蓝色通道,并再次延迟。需要注意的是,示例代码中的延迟循环使用了一个简单的计数器实现,但实际应用中可能需要更精确的延迟方式,例如使用定时器中断或操作系统提供的延迟函数。

QoyOle的博客 923

分页存储概念清晰梳理(页面、页表、页表项、页面大小、页内地址等概念)

分页存储概念清晰梳理(页面、页表、页表项、页面大小、页内地址等概念)

chenguanjun2b的博客 6万+

微信小程序 - 下单账号和支付账号不一致,请核实后再支付(微信小程序或微信H5页面/微信公众号网页支付时报错:“下单账号和支付账号不一致,请核实后再支付”,买家微信支付时提示错误)详细排查和解决方案!

微信支付出现 “下单账号与支付账号不一致,请核实后再支付”微信小程序下单账号与支付账号不一致不让支付,微信公众号网页 微信H5页面JS-SDK支付时出现错误:下单账号和支付账号不一致,请核实后再支付,openId导致的微信中“下单账号和支付账号不一致”原因及解决办法,调用统一下单所传openId与实际支付用户的openId不一致,微信支付jssdk报错,检查了没有不一致依然报错怎么办,微信支付下单账号和支付账号不一致,请核实后再支付,微信支付功能用JSAPI支付,H5页面负责下单并支付jsapi,微信调起支

🏆 前端领域优质创作者 5330

【嘉立创EDA】从AD21导入pcb边界到嘉立创EDA专业版

有许多前期工程由AD进行完成,在后续update的过程中,由于开模等原因限制,部分pcb外型需要继续沿用,本文将此过程记录,以供有需要的读者参考。

l64481000的博客 4516

操作系统逻辑地址、线性地址和物理地址

本文转自论文点击打开链接,主要讲述了操作系统中人们应该熟悉但是容易混淆的逻辑地址、线性地址和物理地址: 1、逻辑地址:       逻辑地址(Logical Address) :是指由程序产生的与段相关的偏移地址部分。例如,你在进行C语言指针编程中,可以读取指针变量本身值(&操作),实际上这个值就是逻辑地址,它是相对于你当前进程数据段的地址,不和绝对物理地址相干。只有在Intel实模式下,逻辑

GeekWill的博客 8411

24、汽车黑客技术全解析:诊断代码、车库创建与系统攻防

本文深入探讨了汽车黑客技术的核心内容,包括诊断代码模式与参数ID、创建开放车库社区、汽车系统相关技术、硬件与软件工具、攻击与防御手段,以及车辆通信与网络安全。无论你是汽车安全研究人员、爱好者还是开发者,都能从中获取全面的技术解析与实践指南。

Apple的专栏 225

【转】操作系统--虚拟内存、逻辑地址、线性地址、物理地址

转自:http://my.oschina.net/alphajay/blog/5025 逻辑地址(Logical Address) 是指由程序产生的与段相关的偏移地址部分。例如,你在进行C语言指针编程中,可以读取指针变量本身值(&操作),实际上这个值就是逻辑地址,它是相对于你当前进程数据段的地址,不和绝对物理地址相干。只有在Intel实模式下,逻辑地址才和物理地址相等(因为实模...

aiyun1242的博客 144

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

操作系统 内存地址(逻辑地址、线性地址、物理地址)概念

逻辑地址(Logical Address) 是指由程序产生的与段相关的偏移地址部分。例如,你在进行C语言指针编程中,可以读取指针变量本身值(&操作),实际上这个值就是逻辑地址,它是相对于你当前进程数据段的地址,不和绝对物理地址相干。只有在Intel实模式下,逻辑地址才和物理地址相等(因为实模式没有分段或分页机制,Cpu不进行自动地址转换);逻辑...

b44431的博客 378

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

操作系统内存地址(逻辑地址、物理地址、线性地址)

转至: http://www.360doc.com/content/10/1012/20/1317564_60457124.shtml逻辑地址(Logical Address) 是指由程式产生的和段相关的偏移地址部分。例如,你在进行C语言指针编程中,能读取指针变量本身值(&操作),实际上这个值就是逻辑地址,他是相对于你当前进程数据段的地址,不和绝对物理地址相干。只有在Intel实模式下,逻辑地址才和物理地址相等(因为实模式没有分段或分页机制,Cpu不进行自动地址转换);逻辑也就是在Intel保护模式下程式执

大方的专栏 2252

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

【操作系统】物理/逻辑/虚拟/线性地址

物理地址 内存硬件的真实地址 最终被 CPU 用于访问内存 内核直接操作物理内存时逻辑地址 程序编译生成的 “段:偏移” 地址 逻辑地址 →(分段)→ 线性地址 早期分段系统或 x86 兼容模式线性地址 分段转换后的中间地址 线性地址 →(分页)→ 物理地址 x86 架构的地址转换中间层虚拟地址 程序运行时的抽象地址空间 虚拟地址 →(分页)→ 物理地址(可能经分段) 现代虚拟内存系统(如 Linux)

司六米希的博客 1061

操作系统--虚拟内存、逻辑地址、线性地址、物理地址

逻辑地址(Logical Address)是指由程序产生的与段相关的偏移地址部分。例如,你在进行C语言指针编程中,可以读取指针变量本身值(&操作),实际上这个值就是逻辑地址,它是相对于你当前进程数据段的地址,不和绝对物理地址相干。只有在Intel实模式下,逻辑地址才和物理地址相等(因为实模式没有分段或分页机制,Cpu不进行自动地址转换);逻辑也就是在Intel保护模式下程序执行代码段限...

weixin_30268921的博客 114

操作系统 内存地址(逻辑地址、线性地址、物理地址)概念(转)

逻辑地址(Logical Address) 是指由程序产生的与段相关的偏移地址部分。例如,你在进行C语言指针编程中,可以读取指针变量本身值(&操作),实际上这个值就是逻辑地址,它是相对于你当前进程数据段的地址,不和绝对物理地址相干。只有在Intel实模式下,逻辑地址才和物理地址相等(因为实模式没有分段或分页机制,Cpu不进行自动地址转换);逻辑也就是在Intel 保护模式下程序执行代码段限...

weixin_30871701的博客 921

【转】操作系统 内存地址(逻辑地址、线性地址、物理地址)概念

本文转自51CTO博客,原文链接操作系统 内存地址(逻辑地址、线性地址、物理地址)概念 逻辑地址(Logical Address) 是指由程序产生的与段相关的偏移地址部分。例如,你在进行C语言指针编程中,可以读取指针变量本身值(&amp;操作),实际上这个值就是逻辑地址,它是相对于你当前进程数据段的地址,不和绝对物理地址相干。只有在Intel实模式下,逻辑地址才和物理地址相等(因为实模式没有...

孤岛沉末 891

[操作系统] 逻辑地址、物理地址、线性地址、虚拟地址

声明:本文转载自https://blog.youkuaiyun.com/prike/article/details/52722934转载本文目的在学习,如涉及侵权,请留言博主删除本文前言    许多年以前,当人们还在使用DOS或是更古老的操作系统的时候,计算机的内存还非常小,一般都是以K为单位进行计算,相应的,当时的程序规模也不大,所以内存容量虽然小,但还是可以容纳当时的程序。    但随着图形界面的兴起还有...

dreamer841119554的博客 4919
上一篇: The Linux Kernel Module Programming Guide
下一篇: 一个int数组内存初始化的讨论
wunderup
博客等级 码龄20年 13粉丝 79原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值