物理地址空间和虚拟地址空间

虚拟地址与物理地址 顶级页目录项指向页目录指针页,页目录指针项指向页目录页,页目录项指向页表页,页表项指向一个 4KB 大小的物理页,各级页目录项中和页表项中依然存在各种属性位,这在图中已经说明。顾名思义,就是真实存在的地址,物理地址在逻辑上也是一个数据,只不过这个数据会被地址译码器等电子器件变成电子信号,放在地址总线上,说明地址总线上的信号就代表了物理地址,地址总线电子信号的各种组合就可以选择到内存的储存单元,同时也可以选择其它设备的储存单元,如显卡中的显存、I/O 设备中的寄存器、网卡上的网络帧缓存器。 阅读详情

http://blog.csdn.net/jiasike/article/details/38852485
一、物理地址(空间)
    因为CPU是32位的,其地址总线是32位的,所以其地址总线可编码的个数是2^32(4G),这2^32个物理地址的集合就是物理地址空间。这与38译码器的道理是一样的,这一点很好理解。

二、虚拟地址(空间)
    大多数计算机使用8位的块,或者叫做字节(Byte),来作为最小的可寻址的存储器单元,而不是访问存储器中单独的位。
    机器级程序将存储器视为一个非常大的字节数组,称为虚拟存储器。存储器的一个字节都由唯一的数字来标识,称为它的地址(虚拟地址)。所有可能虚拟地址的集合就称作虚拟地址空间。
                                    ——引自《深入理解计算机系统》P23

从上面这段话,我们可以得到2个信息:
1、虚拟地址依赖于“唯一的数字标识”。
2、虚拟地址空间依赖于“所有可能虚拟地址的集合”
稍稍提炼一下,其实这就是说:虚拟地址空间就是数字可能的表示范围。
     对于32位CPU而言,数据总线是32位的,所表示的数据或者说字长是32位的。所以数字的可能表示范围就是2^32(4G)。也就是说,虚拟地址空间是4G。

小小结:
    物理地址空间的大小是由地址总线决定的。
    虚拟地址空间的大小是由字长决定的。

cpu看到的都是vm(虚拟地址)(在开启mmu之后),所以程序中操作的都必须是映射后的地址空间(无论是内存映射后还是总线上挂载的其他模块)
内存映射其实就是物理地址映射到虚拟地址空间的一个子集,在映射这个层面内存和挂载在总线上的其他模块没有什么区别

映射表是映射表,内存是内存。内存是映射表的一部分,寄存器也是映射表的一部分。除非你用ioremap把寄存器映射到内存上,否则就是通过总线直接写寄存器

虚拟地址和物理地址 2:虚拟地址空间/物理地址空间布局3:内存映射/物理内存组织结构4:引导内存分配器/块分配器5:伙伴分配器/不连续页分配器。 阅读详情

相关推荐

Linux的虚拟地址空间和物理地址空间的映射机制

在x86架构下,Linux使用了两级页表,一级页表被称为页全局目录表(PGD, Page Global Directory),二级页表被称为页中间目录表(PMD, Page Middle Directory)。页表的最小单位是一个页表项(Page Table Entry),每个页表项存储了虚拟地址和物理地址之间的映射关系,以及一些辅助信息。在Linux系统中,通过页表的映射机制将虚拟地址空间映射到物理地址空间,实现了进程的内存管理和地址转换。在Linux系统启动时,内核会为每个进程创建一个独立的页表。

GvCybersecurity的博客 639

虚拟地址空间和物理地址空间

1.概念 每个进程都会分配虚拟地址空间,在32位机器上,该地址空间为4G 。平时以虚拟形式存储,当应用程序使用虚拟地址访问内存时/a.out执行,mmu将虚拟地址转换为物理地址执行(正常文件存储在磁盘中) 段错误:内存访问非法,内核空间受保护 堆空间存储后一定要释放 在进程里平时所说的指针变量,保存的就是虚拟地址。当应用程序使用虚拟地址访问内存时,处理器(CPU)会将其转化成物理地址(MMU)。 MMU:将虚拟的地址转化为物理地址。 这样做的好处在于: 进程隔离,更好的保护系统安全运行 屏蔽物理差异带来

weixin_46098612的博客 8405

FPGA波束形成:从算法到硬件的艺术之旅

本文深入探讨了FPGA在波束形成技术中的应用,从算法原理到Verilog硬件实现的全过程。文章详细分析了FPGA并行处理、低延迟和可重构特性如何优化波束形成系统性能,并提供了Verilog关键模块代码示例和资源优化策略,为工程师实现高效FPGA波束形成解决方案提供实用指导。

tea88的博客 1009

内存学习(三):物理地址空间

物理地址是处理器在系统总线上看到的地址。使用精简指令集(Reduced Instruction Set Computer, RISC)的处理器通常只实现一个物理地址空间,外围设备和物理内存使用统一的物理地址空间。有些处理器架构把分配给外围设备的物理地址区域称为设备内存。处理器通过外围设备控制器的寄存器访问外围设备,寄存器分为控制寄存器、状态寄存器和数据寄存器三大类,外围设备的寄存器通常被连续地编址。处理器对外围设备寄存器的编址方式有两种。

叫好与叫座虽然不是对立面,但想在同一个作品中达到双重效果很难。 781

Linux下内存空间分配、物理地址与虚拟地址映射

mmap函数用于将一个文件或者其它对象映射进内存,通过对这段内存的读取和修改,来实现对文件的读取和修改,而不需要再调用read,write等操作。

2870

Xilinx XDMA驱动代码分析及用法

Xilinx XDMA驱动代码分析及用法 先简单的介绍一下,赛灵思的XDMA的驱动是用于做什么的、他的主要功能就类似与网卡pcie接口的网卡驱动、用于控制主机与fpga设备进行pcie的通讯。通讯的主要方式是设备文件的读写,这里不清楚的同学可以看一下我上一篇文章。通过控制设备文件的读写,操作驱动与fpga设备进行数据传输。 1、目录结构 zacha@Superman:~/nfs/xdma-debug/dma_ip_drivers-master/XDMA/linux-kernel$ tree -C . ├──

恍恍惚惚的大穷猫的博客 3万+

计算机原理-Linux虚拟地址空间和物理地址空间怎么映射的?

在之前的文章中《CPU是如何访问内存的?》,我们知道了CPU是如何访问内存的,本篇文章我们来讲下虚拟地址空间和物理地址空间的映射。 通常32位Linux内核地址空间划分0~3G为用户空间,3~4G为内核空间。注意这里是32位内核地址空间划分,64位内核地址空间划分是不同的。下面以X86为例。 物理地址空间布局 物理地址空间的顶部以下一段空间,被PCI设备的I/O内存映射占据,...

Shanks 2065

别再乱调了!Zygo MetroPro软件滤波功能保姆级指南,从均值到鲁棒高斯样条一次讲清

本文深入解析Zygo MetroPro软件的滤波功能,从均值滤波到鲁棒高斯样条等九种算法,帮助用户根据测量对象特性选择最佳滤波组合。通过真实工业案例和参数配置指南,提升光学测量数据的准确性和效率,特别适用于硅晶圆、光学镜片等精密测量场景。

weixin_30888413的博客 131

【转载】计算机原理-Linux虚拟地址空间和物理地址空间怎么映射的?

在之前的文章中《CPU是如何访问内存的?》,我们知道了CPU是如何访问内存的,本篇文章我们来讲下虚拟地址空间和物理地址空间的映射。 通常32位Linux内核地址空间划分0~3G为用户空间,3~...

be_programmer的博客 454

Linux ——进程的虚拟地址空间,逻辑地址和物理地址,进程管理命令

进程的虚拟地址空间 进程有自己的独立地址空间,每启动一个进程,系统就会为它分配地址空间,虚拟地址空间的大小由计算机的硬件平台决定,比如32位的平台决定了虚拟地址空间为4G(因为32位系统上指针能够寻址的范围是232) 这4G空间的分配如下: 1.内核空间(1G) 驻留在内存内,是操作系统的一部分,内核空间为内核保留,不允许应用程序读写该区域或调用内核代码。 2 栈(stack) 包括以下内容和用途: 1 函数的返回值和参数。 2 临时变量,包括非静态局部变量,以及编译器自动生成的临时变量。 3 保存上下文

qq_44824574的博客 4704

SystemVerilog学习总结

因为选择的offer是IC验证,以前学的是设计,所以只能再学systemverilog(SV)和UVM了。在学习SV和UVM之前,我认为需要学习以下几个部分:数字电路、c++和verilog。因为IC验证确实有不少别的专业之前没学过数字电路和Verilog,所以还是最好先学习一下。 知识点的总结主要是通过systemverilog验证-测试平台编写指南这本书进行的,所以请看书。通过对这本书的目录进行重点的划分,然后再进行相关知识点的总结。最后,给出自己收集的别的博主IC EDA环境的虚拟机,以及使用虚拟机需

博主毕竟还是人,肯定会有错误,各位看的时候发现错误提出来就好 1万+

c 取地址 虚拟地址 物理地址_Linux虚拟地址空间和物理地址空间怎么映射的?

在之前的文章中《CPU是如何访问内存的?》,我们知道了CPU是如何访问内存的,本篇文章我们来讲下虚拟地址空间和物理地址空间的映射。通常32位Linux内核地址空间划分0~3G为用户空间,3~4G为内核空间。注意这里是32位内核地址空间划分,64位内核地址空间划分是不同的。下面以X86为例。物理地址空间布局物理地址空间的顶部以下一段空间,被PCI设备的I/O内存映射占据,它们的大小和布局由PCI规范...

weixin_36295500的博客 128

深度强化Q学习-基于微软AirSim仿真环境的自动驾驶案例(原理代码详解简易可行)

最近在学习《强化学习原理与Python实现》,肖智清著。参考第十二章的自动驾驶案例,写一篇总结,尽量做到简单可行,让有志于自动驾驶的小伙伴可以通过此篇博客可以管中窥豹,初步了解自动驾驶的强化学习训练过程。 本篇将自动驾驶问题转化为回合制的强化学习任务,设计以车辆观察图像和运行状态为输入的自动驾驶算法,并在AirSim仿真环境中进行训练和测试。本篇使用带经验回放和目标网络的基于深度Q网络算法设计并实现智能体,对经验回放、目标网络和深度Q学习算法进行简单介绍,并用代码实现。

shao918516的博客 8567

s3c2410物理地址和虚拟地址空间

 下面是物理地址空间(没有包括物理寄存器的物理地址空间)分布图:  

嵌入式开发小站 1524

cpu缓冲区大小怎么设置_Linux虚拟地址空间和物理地址空间怎么映射的?

在之前的文章中《CPU是如何访问内存的?》,我们知道了CPU是如何访问内存的,本篇文章我们来讲下虚拟地址空间和物理地址空间的映射。通常32位Linux内核地址空间划分0~3G为用户空间,3~4G为内核空间。注意这里是32位内核地址空间划分,64位内核地址空间划分是不同的。下面以X86为例。物理地址空间布局物理地址空间的顶部以下一段空间,被PCI设备的I/O内存映射占据,它们的大小和布局由PCI规范...

weixin_39517546的博客 430

Open3D 进阶(32)渐进三角网(PTD)地面滤波

渐进三角网地面滤波算法(Progressive TIN Densification, PTD)是一种广泛应用于机载LiDAR点云数据处理的滤波方法,旨在从复杂场景中精确分离地面点,以生成数字高程模型(DEM)。

点云侠的博客 1425

虚拟内存、虚拟地址空间和物理地址空间(内存管理)

虚拟内存、虚拟地址空间和物理地址空间(内存管理)

摸鱼中...... 3524

基于Pascal VOC数据集的YOLOv8目标检测系统实现:人、鸟、猫、牛、电视、车等20类目标识别与UI界面部署全流程详解

VOC 2007、VOC 2012 两个主要版本;每个图像提供 bounding box(目标框)+ 目标类别;共计 20 类,所有图像手工标注,质量高。完整复现 Pascal VOC 20类检测任务成功训练 YOLOv8 模型实现可视化 UI + 实时检测系统支持多平台部署和演示。

YOLO 759

【操作系统】虚拟地址空间和物理地址空间的映射关系

打个比方,比如上课记笔记。某个笔记本有100张纸,课程有语文、数学、英语三门。对于这个笔记本的使用如下: 分段式内存管理 你从本子的第一张纸开始用,并且事先在本子上做划分:第2张到第30张纸记语文笔记,第31到60张纸记数学笔记,第61到100张纸记英语笔记。 最后在第一张纸做个列表,这张纸称为段表。记录着三门笔记各自的范围。 这就是分段管理。 分段式存储的优点 在分段式存储管理中,将程序的地址空间划分为若干段(segment),如代码段,数据段,堆栈段…。这样每个进程有一个二维地址空间,相互独立,

m0_46613023的博客 1056

虚拟地址空间(4)--深入了解虚拟地址、页表和物理地址

前面在虚拟地址空间的第一讲就有提到过页表的概念,但是并没有深入地剖析页表。这一讲我们来深入了解页表、虚拟地址、物理地址以及他们之间的联系。

wairuigood的博客 494

RT-Thread Studio 使用笔记(七)| 配合STM32CubeMX添加裸机驱动(以ADC为例)

1. 配置STM32CubeMX 2. 复制stm32xxxx_hal_msp.c文件 将 CubeMx 生成的代码 stm32f7xx_hal_msp.c 函数复制到 RT-Thread Studio 生成的工程中,并参与工程编译: 由于我们并没有使用 CubeMx 生成的工程,所以这里需要将 stm32f7xx_hal_msp.c 文件中 #include “main.h” 替换为 #i...

Mculover666的博客(嵌入式) 9594

计算机系统-1物理地址和物理地址

当页表项 PTE n的页表项有效位为0时,表示虚拟页 n没有缓冲在物理内存,可能在磁盘或者未分配,例如PTE 0页表项里存储的是null,表明虚拟页0即VP0是未分配状态,PTE 3里存储的是磁盘地址,表明虚拟页 3即VP3在磁盘里,但没有缓冲,VP3状态为未缓冲。处理器根据虚拟地址访问物理内存的分为页表项命中和页表项未命中两种情况,页表项命中意味着页表项的有效位为1,页表项存储的是物理页号,虚拟页缓冲在物理页中,未命中意味着页表项有效位为0,此时需要发送缺页中断。

b405516801的博客 3410

实验六、嵌入式Linux GUI编程实验

一、实验目的了解Qt类库的使用方法,熟悉Qt的嵌入式开发方法。二、实验基本要求1. 掌握Qt的信号/槽机制。2. 编写简单的Qt程序,分别采用qtmake和qtemake编译生成在虚拟机运行和实验箱运行的可执行程序。

【Linux】进程地址空间和虚拟地址空间

进程地址空间是操作系统为每个进程分配的独立内存区域,用于存储代码、数据、堆和栈等信息。通过虚拟内存机制,操作系统实现了进程之间的内存隔离,提高了系统的安全性和稳定性。

uyeonashi的博客 1160

【Linux笔记】进程地址空间与虚拟地址空间

*进程地址空间**:是从进程角度出发,描述一个进程在运行时能够访问和使用的内存地址范围,是与具体进程紧密绑定的概念,强调的是进程对内存资源的占有和使用,每个进程都有一套独立的进程地址空间,用于存放该进程运行所需的各种资源,如代码、数据、堆栈等。 **虚拟地址空间**:是一种系统层面的内存管理抽象概念,是对整个系统中内存地址的一种虚拟划分方式,它为每个进程提供了一个看似独立、连续且独占的地址空间,让进程在这个虚拟的地址环境中运行,而不必关心实际物理内存的布局和其他进程的内存使用情况。 ----- **涵

GGDxianv的博客 2032

7寸RGB接口电容触摸屏GT911模块软硬件技术资料+STM32软件工程源+AD封装库.rar

7寸RGB接口电容触摸屏GT911模块软硬件技术资料+STM32单片机软件工程源码:1-原理图_尺寸图_封装库2-配套程序3-参考资料5_7寸液晶屏与各开发板的接线方式.xls关于触摸相关程序说明.pdf7.0-11SPEC(STD-TN92).pdfgt91x编程指南.pdf其他电容触控芯片GT911_数据手册2013.pdf触摸屏主机端调试指南.pdf

# 虚拟地址空间区域划分​

虚拟内存物理内存转换及虚拟内存地址空间的内存分布

L221578的博客 1699

GamerStruggles1.1.2DEMO(Windows).zip

根据提供的文件信息,可以了解到该压缩包内含与一款名为“Gamer Struggles”的游戏相关的文件。具体来说,这些文件似乎是该游戏的一个演示版本(DEMO)针对Windows操作系统的运行环境所必需的组件。"UnityPlayer.dll"是Unity游戏引擎的核心动态链接库文件,用于在Windows系统上运行由Unity制作的游戏。"UnityCrashHandler64.exe"是Unity引擎提供的一个用于处理游戏中可能发生的崩溃错误的程序。"Gamer Struggles.exe"是游戏的可执行文件,即游戏的主程序。"Gamer Struggles_Data"目录中可能包含了游戏的资源文件和数据。"MonoBleedingEdge"是一个与Unity引擎相关的组件,通常用于支持.NET框架,提供跨平台的运行环境。从这些文件的构成来看,“Gamer Struggles”很可能是一款使用Unity游戏引擎开发的游戏。Unity是一个广泛使用的多平台游戏开发环境,它支持Windows、Mac、Linux、iOS、Android等多个操作系统。Unity制作的游戏通常具有较为丰富的图形表现和较高的可移植性。考虑到包含有"MonoBleedingEdge",这个游戏可能还会涉及到.NET框架的相关技术。从"DEMO"的命名上判断,这个压缩包包含的是一份游戏的演示版本,通常用于游戏的初期推广和测试。演示版本往往提供了游戏的部分内容,供玩家体验游戏的基本玩法和风格,但可能不包含完整的游戏功能。演示版的发布是游戏开发者测试市场反应和进行游戏测试的一种方式。在Windows系统上,用户若想要运行这样的游戏演示版本,需要确保计算机上安装了支持该游戏运行的软件环境,例如安装有适当的.NET框架和Unity运行时环境。如果缺少这些软件,游戏可能无法正常运行。从游戏的标题

Windows虚拟地址空间

整理关于WIndows虚拟地址空间的一些知识。如果有什么不对,希望有人可以提出...

km的博客 2099
上一篇: linux进程内存布局
下一篇: 内存与IO访问
leo*liu
博客等级 码龄9年 64粉丝 75原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值