进程地址空间和虚拟内存

【Linux】进程地址空间 本文重点讲解了进程地址空间,分析了进程地址空间的结构,还有如何存储数据,以及操作系统是如何管理进程地址空间,最后总结了进程地址空间的作用。 阅读详情

 进程地址空间,简单的讲就是,程序可以访问的地方,就象鱼,只能在水里一样,不能到岸上来,特须的情况不算。  
  虚拟内存指,从字面上理解是,他其实不是内存,但可以当成内存用,这种情况发生在,你的程序需要很多内存来存储数据,而你的机器没有这么多内存,这时候操作系统通过文件虚拟内存来帮你,这就是虚拟内存。进程地址空间理论上,在32位操作系统上为4G,实际上,你的内存可能没有那么多,至少现在的机器,一般是128,256,512M的内存,没有4G内存,这时候,虚拟内存可以帮你访问其他的地址空间。  

 

虚拟内存并不简单的是用硬盘上的页面文件代替内存,而更重要的是内存映射机制。  
  在WINDOWS中,每个进程的地址空间都是固定的并且是相同的,如果没有虚拟内存,这显然是不合乎逻辑的,因为每个内存地址都只能使用一次,不能重叠。所以引入了虚拟内存机制。进程地址空间是逻辑上的而不是物理上的。内存映射机制负责把这个逻辑上的地址映射到实际的内存或页面文件上。  
  "加载可执行文件到地址空间"实际上主要就是逻辑地址到物理内存的映射过程。

 

页面文件当然是在硬盘上。  
  进程地址空间中的页表只是记录了虚拟地址到物理地址的转换,真正的转换工作是由操作系统完成的,并不是页表负责的。

别再死记公式了!用Python+LTspice仿真,5分钟搞懂RC低通滤波器截止频率 本文通过Python和LTspice仿真工具,详细介绍了RC低通滤波器的工作原理和截止频率的计算方法。从环境搭建到电路仿真,再到数据分析和可视化,帮助读者直观理解滤波器特性,避免死记硬背公式。文章还提供了参数敏感性实验和实际应用技巧,适合电子工程学习者和爱好者。 阅读详情

相关推荐

告别纯代码:用Visual Studio为LabVIEW封装一个‘即插即用’的海康VisionMaster控件

本文介绍如何利用Visual Studio为LabVIEW封装一个‘即插即用’的海康VisionMaster控件,解决传统集成方式中的代码臃肿和维护困难问题。通过.NET控件封装核心功能,实现LabVIEW与VisionMaster的高效对接,显著提升工业自动化开发效率。

weixin_33744854的博客 504

进程的虚拟地址空间

32位机器,每个程序有4G的虚拟地址空间。大致分为4块,从低地址到高地址依次是:NULL区,用户区,隔离区,核心区。用户私有的数据都在用户区(当然这个区里又可以细分,其中也包括一部分可以共享的内容),系统内核等东西都在核心区。总体来说,A进程的虚拟地址空间中的内容和B进程相比,只有各自的用户区不一致。通常用户区中,进程又会将exe文件(由头数据和段数据组成)中定义的代码段、堆栈段、数据段等各个段映

liuzhi1218的专栏 2062

双系统引导修复:GRUB消失后恢复Windows与Ubuntu启动菜单

在UEFI引导架构下,操作系统启动依赖于EFI系统分区(ESP)中存储的引导加载程序。当多个系统共存时,引导管理器负责识别并加载不同操作系统的引导文件。然而,Windows更新或系统调整时常会重置UEFI启动顺序,导致GRUB引导菜单消失,直接进入Windows。这一问题的技术价值在于理解UEFI启动流程与多系统引导管理机制,掌握ESP分区结构与引导文件修复方法。常见的应用场景包括双系统安装后的引导修复、系统更新后的启动项丢失以及磁盘分区调整导致的引导故障。本文针对**GRUB引导菜单消失**和**UEFI

weixin_29895109的博客 293

操作系统中逻辑地址和物理地址的区别

击上方“嵌入式应用研究院”,选择“置顶/星标公众号”干货福利,第一时间送达!本文是关于操作系统中逻辑地址和物理地址之间的区别。计算机操作系统中的内存使用两种不同类型的地址。物理地址是内存的...

Bruce.yang的嵌入式之旅 1万+

通义灵码+高德 MCP:40分钟开发出游攻略网站

本文介绍了通义灵码与高德MCP在40分钟内快速开发出游攻略网站的全流程。主要内容包括:1)LingmaIDE开发环境的使用方法,涵盖界面操作、代码编辑、调试和智能编码功能;2)通义灵码智能体与高德MCP2.0的集成步骤,通过输入旅行需求即可自动生成包含天气卡片、景点路线等元素的HTML页面;3)重点展示了如何将行程规划导入高德地图APP,实现导航、打车等出行功能。整个开发过程充分利用了通义灵码的智能编码能力和高德地图的服务接口,显著提升了旅游类应用的开发效率。

soso1968的博客 985

Unity AssetBundle 之 (入门)简单的资源打包成AB包的方法

Unity AssetBundle 之 (入门)简单的资源打包成AB包的方法 目录 Unity AssetBundle 之 (入门)简单的资源打包成AB包的方法 一、简单介绍 二、实现原理 三、注意事项 四、效果预览 五、实现步骤 六、关键代码 一、简单介绍 Unity中的一些基础知识点。 本节介绍,Asset Bundle 在 Unity中的使用,入门第一篇,如何AssetBundle标记,如何打包成AssetBundle的操作方法,有不对的地方欢迎指正。...

仙魁XAN 1万+

虚拟内存与虚拟地址空间

虚拟地址空间是一种使程序可以直接访问这些内存而不必真正了解这些内存在物理上所处的位置的技术。每个进程都有自己的独立虚拟地址空间,同时操作系统负责将每个进程的虚拟地址映射到主存中的物理内存地址。虚拟地址空间使每个进程都有最大4GB(32位系统)或16EB(64位系统)可用的虚拟内存空间,尽管实际物理内存少于该数量,这样允许处理器利用虚拟内存空间存储更多数据。总的来说,虚拟地址空间是一种重要的内存管理技术,它允许计算机以更高效、可靠和安全的方式管理内存。虚拟地址空间允许各进程共享某些资源并提升系统的效率。

weixin_49503250的博客 4616

2026.4.15:超详细自动安装Ubuntu-Server的保姆级教程

这篇教程详细介绍了如何创建无人值守的Ubuntu Server 26.04自动安装镜像。主要内容包括:从安装镜像中提取autoinstall-user-data文件并修改为user-data配置文件;使用mkpasswd生成加密密码;通过软碟通工具修改ISO镜像,添加自动安装所需的user-data和meta-data文件;编辑grub.cfg引导文件以启用自动安装模式。教程提供了完整的yaml配置示例,包含网络、存储、用户等设置,并演示了最终制作完成的自动安装镜像效果。

拥抱具身智能,昇腾Ascend C 739

Linux 进程:程序地址空间 与 虚拟内存

简单介绍了程序地址空间的概念和程序地址空间的划分,每部分的作用。详细介绍了虚拟内存(虚拟地址空间)的概念,以及虚拟内存的实现原理和虚拟内存的好处。

weixin_57761086的博客 1976

30天入门 SAP BTP 开发系列之七:动手在 SAP BTP 上开发第一个 ABAP 程序

本教程从理论转向实践,指导如何在SAP BTP上创建首个ABAP程序。首先通过Booster向导在Trial账号中配置ABAP环境,需确保已启用Cloud Foundry并创建Space。成功创建ABAP实例后,使用ABAP Development Tool连接环境:下载服务密钥文件,导入工具获取连接URL,即可建立项目开始编码。教程提供了从环境搭建到开发工具配置的完整流程,帮助ABAP开发者快速上手BTP云开发。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1673

华为校招&实习&留学生机试真题目录+算法分类+在线OJ+通过率+视频讲解

全网最新最全华为校招&实习&留学生机试真题题库

m0_73659489的博客 6866

物理内存 虚拟内存 和进程地址空间

1. 物理内存:物理内存指的是插在计算机主板内存槽上的实际物理内存,CPU可以直接进行寻址;物理内存的容量是固定的,但是寻址空间却取决于cpu地址线条数,如32位机,则寻址空间为2^32=4G,即最大支持4G的寻址空间,即使我们插入了32G容量的内存条,我们也只能拥有4G的物理内存; 2. 虚拟内存:进程执行需要将代码和数据放在内存中,但是物理内存是有限的,当进程比较多的时候,容易造成内存耗尽,而...

snowman的博客 609

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

Linux进程地址空间和虚拟内存

https://blog.youkuaiyun.com/jnu_simba/article/details/8917076 一、虚拟内存 先来看一张图(来自《Linux内核完全剖析》),如下: 分段机制:即分成代码段,数据段,堆栈段。每个内存段都与一个特权级相关联,即0~3,0具有最高特权级(内核),3则是最低特权级(用户),每当程序试图访问(权限又分为可读、可写和可执行)一个段时,当前特权级CPL...

Likes的博客 1170

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

linux系统编程之基础必备(五):Linux进程地址空间和虚拟内存

一、虚拟内存 先来看一张图(来自《Linux内核完全剖析》),如下: 分段机制:即分成代码段,数据段,堆栈段。每个内存段都与一个特权级相关联,即0~3,0具有最高特权级(内核),3则是最低特权级(用户),每当程序试图访问(权限又分为可读、可写和可执行)一个段时,当前特权级CPL就会与段的特权级进行比较,以确定是否有权限访问。每个特权级都有自己的程序栈,当程序从一个特权级切换到另一个特权级上执行时,堆栈段也随之改换到新级别的堆栈中。 段选择符:每个段都有一个段选择符。段描述符指明段的大小、访问权.

158

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

【QandA C++】内存泄漏、进程地址空间、堆和栈、内存对齐、大小端和判断、虚拟内存等重点知识汇总

栈就像我们去饭馆里吃饭,只管点菜(发出申请)、付钱、和吃(使用),吃饱了就走,不必理会切菜、洗菜等准备工作和洗碗、刷锅等扫尾工作,他的好处是快捷,但是自由度小。栈空间和堆区的大小是由操作系统和编译器决定的,不同系统和编译器可能会有不同的默认值。,不是所有编译器都有默认对齐数,当编译器没有默认对齐数的时候,成员变量的大小就是该成员的对齐数。堆就象是自己动手做喜欢吃的菜肴,比较麻烦,但是比较符合自己的口味,而且自由度大。,而数据的低位,保存在内存的低地址中;,而数据的高位,保存在内存的低地址中;

qq_68993495的博客 589

Linux虚拟内存和进程虚拟地址空间简述

后台开发经常会问此类问题,虽说难度不大,但是知道和不知道还是有区别的。以下的内容总结自《深入理解Linux内核》第一章,仅仅是简述,没有深入研究,毕竟内存管理这一块内容超级多,感兴趣的同学可以去啃啃这本书。 虚拟内存 所有新近的Unix系统都提供了一种有用的抽象,叫虚拟内存(virtual memory)。虚拟内存作为一种逻辑层,处于应用程序的内存请求与硬件内存管理单元(Memory Manag...

fuyuande的博客 917

UNIX环境高级编程——Linux进程地址空间和虚拟内存

一、虚拟内存分段机制:即分成代码段,数据段,堆栈段。每个内存段都与一个特权级相关联,即0~3,0具有最高特权级(内核),3则是最低特权级(用户),每当程序试图访问(权限又分为可读、可写和可执行)一个段时,当前特权级CPL就会与段的特权级进行比较,以确定是否有权限访问。每个特权级都有自己的程序栈,当程序从一个特权级切换到另一个特权级上执行时,堆栈段也随之改换到新级别的堆栈中。段选择符:每个段都有...

weixin_34195546的博客 196

linux进程虚拟地址空间,Linux进程地址空间和虚拟内存

二、linux进程地址空间由前面可得知,进程有4G的寻址空间,其中第一部分为“用户空间”,用来映射其整个进程空间(0x0000 0000-0xBFFF FFFF)即3G字节的虚拟地址;第二部分为“系统空间”,用来映射(0xC000 0000-0xFFFF FFFF)1G字节的虚拟地址。如下图将其更加详细地展示如下:环境变量:类似linux下的PATH,HOME等的环境变量,子进程会继承父进程的环境...

weixin_42449583的博客 187

浅析物理内存、虚拟内存和进程的地址空间

   ●在一个系统中,进程是和其他进程共享CPU和主存资源。但是共享资源会造成一些不可避免的问题,例如由于存储器不够而         进程无法运行,亦或是存储器被外来的恶意进程破坏等。 早期的内存管理机制:  分派方式一:程序载入   1》CPU要访问进程中的数据,必须通过访问访问物理内存的方式(物理寻址)         当CPU要执行某条指令时,它会生成一个有效物理地址,通过存...

a_struggling_monkey的博客 5216

Linux系统编程基础知识-Linux进程地址空间和虚拟内存

转载自:Linux进程空间和虚拟内存 一、虚拟内存 先来看一张图(来自《Linux内核完全剖析》),如下: 分段机制:即分成代码段,数据段,堆栈段。每个内存段都与一个特权级相关联,即0~3,0具有最高特权级(内核),3则是最低特权级(用户),每当程序试图访问(权限又分为可读、可写和可执行)一个段时,当前特权级CPL就会与段的特权级进行比较,以确

Roykuang的专栏 578
上一篇: 关于windows中进程地址空间问题
下一篇: VirtualAlloc失败
SearchLife
博客等级 码龄20年 51粉丝 22原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值