进程的虚拟地址空间
一、
对于C/C++程序员,我们看到的程序中的地址,都不是物理地址,而是操作系统映射的虚拟地址/线性地址,每一个进程都映射了同样结构的虚拟地址空间,让进程以为自己在独享内存资源,下图是以Linux下32位操作系统的虚拟地址空间分布图:

平时程序中定义的静态局部变量,真的存放在函数栈帧里吗?
并不是,而是存放在全局变量区域中,即.data段、.bss段
堆栈两块区域是相对生长的,heap区域随着内存的分配向上申请内存资源;而stack区域在申请分配内存时则是向下生长的,但是注意,是整体向下去申请内存,局部使用时还是从下往上去使用的! 原因是什么呢?因为访问数据时是通过起始地址 + 偏移量的方式
二、
通过虚拟地址空间,不同的进程都通过相同的内存布局,操作系统去做地址映射,不同进程中相同的地址值就可以映射到不同的物理内存快上,也可以实现不同进程指向同一物理内存快,实现进程间的数据交换、通信

三、
那么虚拟地址又是通过什么方式映射为物理地址的呢?
虚拟地址不同32位数值分为不同的段,采用索引的思想,做映射;把虚拟地址空间分为大小相同的页,物理内存也分为大小相同的页,通过建立页目录、页表做地址映射。

相关文章:
进程的虚拟地址空间
一、 对于C/C程序员,我们看到的程序中的地址,都不是物理地址,而是操作系统映射的虚拟地址/线性地址,每一个进程都映射了同样结构的虚拟地址空间,让进程以为自己在独享内存资源,下图是以Linux下32位操作系统…...
做web自动化测试遇到Chrome浏览器老是自动更新,怎么办 ? 这里提供两个解决办法 。
web自动化安装驱动安装 进行web自动化时 ,需要提前安装浏览器的驱动 ,尤其是chrome浏览器 。它的更新速度很快 ,是不是更新了新版本 。这就导致我们的驱动也要跟着变化。 1.停止自动更新 那么 ,如何关闭chrome浏览器的自动更新…...
腾讯HR面试
一、如何看待腾讯的愿景 腾讯的愿景是成为“最受尊敬的互联网企业”,这一愿景表明了腾讯的目标是成为一个在互联网领域内具有极高影响力和声誉的企业。 为了实现这一愿景,腾讯坚持以长远的眼光、诚信负责的操守、共同成长的理念来发展公司的事业。这种…...
过滤器(Filter)和拦截器(Interceptor)有什么不同?
过滤器(Filter)和拦截器(Interceptor)是用于处理请求和响应的中间件组件,但它们在实现方式和应用场景上有一些不同。 实现方式: 过滤器是Servlet规范中定义的一种组件,通常以Java类的形式实现。过滤器通过在…...
Spring 注解 @Qualifier 详解
目录 1. 概述 2. 痛点 3. Qualifier 4. Qualifier VS Primary 5. 通过名称来自动注入 1. 概述 今天带你了解一下 Spring 框架中的 Qualifier 注解,它解决了哪些问题,以及如何使用它。我们还将了解它与 Primary 注解的不同之处。更多的技术解析请访…...
实现更低功耗R5F51406BDNE、R5F51406ADFK、R5F51406ADFL、R5F51406AGFN搭载RXv2内核的32位微控制器
一、简介 RX140产品群是RX100系列中处理性能最强、功耗最低的微控制器。可以广泛应用于家用电器、工业控制和楼宇自动化等领域。RX140采用RXv2内核,工作频率最高48MHz,处理性能是32MHz运行的RX130的近两倍。此外,它在运行时的电路为56μA/MH…...
通信系统中ZF,ML,MRC以及MMSE四种信号检测算法误码率matlab对比仿真
目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1、ZF(零迫)算法 4.2、ML(最大似然)算法 4.3、MRC(最大比合并)算法 4.4、MMSE(最小均方误差ÿ…...
Redis数据结构之listpack
前言 当数据量较小时,Redis 会优先考虑用 ziplist 来存储 hash、list、zset,这么做可以有效的节省内存空间,因为 ziplist 是一块连续的内存空间,它采用一种紧凑的方式来存储元素。但是它也有缺点,比如查找的时间复杂度…...
VMware 配置记录
VMware 配置笔记 CentOS 7.9 镜像下载 官网太慢,建议在阿里云镜像站去CentOS配置页找标准版下载。 选标准版即可,各版本区别: DVD:标准版,包含常用软件,体积为 4.4 G;Everything:…...
【Java基础面试十四】、 封装的目的是什么,为什么要有封装?
文章底部有个人公众号:热爱技术的小郑。主要分享开发知识、学习资料、毕业设计指导等。有兴趣的可以关注一下。为何分享? 踩过的坑没必要让别人在再踩,自己复盘也能加深记忆。利己利人、所谓双赢。 面试官: 封装的目的是什么&…...
阿里云2023年双十一优惠活动整理
随着双十一的临近,阿里云也为大家准备了一系列优惠活动。作为国内知名的云服务提供商,阿里云在双十一期间推出了多种优惠政策和福利,让用户在享受优质云服务的同时,也能节省一些费用。本文将对阿里云双十一优惠活动进行详细整理&a…...
HTML标签详解 HTML5+CSS3+移动web 前端开发入门笔记(四)
HTML中列表的作用 HTML中的列表(List)用于呈现按照一定逻辑关系组织的信息,以便用户更好地理解和识别。列表可以分为有序列表、无序列表和定义列表三种类型。 有序列表(Ordered List):用于表示按照一定顺序…...
lenovo联想笔记本ThinkPad系列T15p或P15v Gen3(21DA,21DB,21D8,21D9)原厂Win11系统镜像
下载链接:https://pan.baidu.com/s/1V4UXFhYZUNy2ZQ8u4x1AFg?pwdqz0s 系统自带指纹驱动、人脸识别驱动、显卡、声卡等所有驱动、出厂主题壁纸、Office办公软件、Lenovo联想电脑管家等预装程序 所需要工具:32G或以上的U盘 文件格式:ISO …...
【SpringBoot】拦截器(Interceptor)的使用
感兴趣的可以查看上一篇过滤器的使用 【Springboot】Filter 过滤器的使用 一、什么是拦截器 拦截器(Interceptor)是一种特殊的组件,它可以在请求处理的过程中对请求和响应进行拦截和处理。拦截器可以在请求到达目标处理器之前、处理器处理请…...
CS鱼饵制作
文章目录 宏病毒(宏钓鱼)快捷方式钓鱼shellQMaker bug伪装pdf文件上线 宏病毒(宏钓鱼) 启动teamsever服务器,具体过程请参考我之前的文章: 在主机中启动CS客户端,111是真实机的用户:…...
问题记录1 json解析问题
问题: json解析int类型不符合预期,使用json.NewDecoder解决。 示例如下: package mainimport ("bytes""encoding/json""fmt" )func main() {data1 : map[string]interface{}{}data1["id"] int64(4…...
std::move以及右值引用等
在这里只能给出 s t d : : m o v e std::move std::move一个比较通俗的看法,不能从原理上深挖,真是惭愧。不过这里面涉及到一些小 t r i c k trick trick,还是挺有意思的。 先说 s t d : : m o v e std::move std::move的两个用法:…...
分享一个比对图片是否一致的小工具(来源: github)
运行效果图: 官网: GitHub - codingfishman/image-diff: 一个方便的图片对比工具一个方便的图片对比工具. Contribute to codingfishman/image-diff development by creating an account on GitHub.https://github.com/codingfishman/image-diff 优缺点: 1.采用比对各色块是…...
编写AA程序需要做以下几个步骤:
编写AA程序需要做以下几个步骤: 首先,需要选择一个合适的开发环境,如Visual Studio或Eclipse,并安装AUTOSAR插件或工具链。 其次,需要创建一个AA项目,并配置相关的参数,如目标机器、编译器选项、链接选项等。 然后,需要编写AA代码,并遵循AUTOSAR规范和编码指南。 …...
jmeter接口测试使用rsa加密解密算法
本篇介绍jmeter 使用rsa算法进行加密参数 如果测试过程中,部分接口采用了rsa加密算法,我们的jmeter 也是可以直接拿来调用的,不需要开发配合去掉加密代码! 直接上代码 import org.apache.commons.codec.binary.Base64; import j…...
ES6从入门到精通:前言
ES6简介 ES6(ECMAScript 2015)是JavaScript语言的重大更新,引入了许多新特性,包括语法糖、新数据类型、模块化支持等,显著提升了开发效率和代码可维护性。 核心知识点概览 变量声明 let 和 const 取代 var…...
MFC内存泄露
1、泄露代码示例 void X::SetApplicationBtn() {CMFCRibbonApplicationButton* pBtn GetApplicationButton();// 获取 Ribbon Bar 指针// 创建自定义按钮CCustomRibbonAppButton* pCustomButton new CCustomRibbonAppButton();pCustomButton->SetImage(IDB_BITMAP_Jdp26)…...
uni-app学习笔记二十二---使用vite.config.js全局导入常用依赖
在前面的练习中,每个页面需要使用ref,onShow等生命周期钩子函数时都需要像下面这样导入 import {onMounted, ref} from "vue" 如果不想每个页面都导入,需要使用node.js命令npm安装unplugin-auto-import npm install unplugin-au…...
ip子接口配置及删除
配置永久生效的子接口,2个IP 都可以登录你这一台服务器。重启不失效。 永久的 [应用] vi /etc/sysconfig/network-scripts/ifcfg-eth0修改文件内内容 TYPE"Ethernet" BOOTPROTO"none" NAME"eth0" DEVICE"eth0" ONBOOT&q…...
JS设计模式(4):观察者模式
JS设计模式(4):观察者模式 一、引入 在开发中,我们经常会遇到这样的场景:一个对象的状态变化需要自动通知其他对象,比如: 电商平台中,商品库存变化时需要通知所有订阅该商品的用户;新闻网站中࿰…...
处理vxe-table 表尾数据是单独一个接口,表格tableData数据更新后,需要点击两下,表尾才是正确的
修改bug思路: 分别把 tabledata 和 表尾相关数据 console.log() 发现 更新数据先后顺序不对 settimeout延迟查询表格接口 ——测试可行 升级↑:async await 等接口返回后再开始下一个接口查询 ________________________________________________________…...
AirSim/Cosys-AirSim 游戏开发(四)外部固定位置监控相机
这个博客介绍了如何通过 settings.json 文件添加一个无人机外的 固定位置监控相机,因为在使用过程中发现 Airsim 对外部监控相机的描述模糊,而 Cosys-Airsim 在官方文档中没有提供外部监控相机设置,最后在源码示例中找到了,所以感…...
Golang——6、指针和结构体
指针和结构体 1、指针1.1、指针地址和指针类型1.2、指针取值1.3、new和make 2、结构体2.1、type关键字的使用2.2、结构体的定义和初始化2.3、结构体方法和接收者2.4、给任意类型添加方法2.5、结构体的匿名字段2.6、嵌套结构体2.7、嵌套匿名结构体2.8、结构体的继承 3、结构体与…...
PHP 8.5 即将发布:管道操作符、强力调试
前不久,PHP宣布了即将在 2025 年 11 月 20 日 正式发布的 PHP 8.5!作为 PHP 语言的又一次重要迭代,PHP 8.5 承诺带来一系列旨在提升代码可读性、健壮性以及开发者效率的改进。而更令人兴奋的是,借助强大的本地开发环境 ServBay&am…...
C# winform教程(二)----checkbox
一、作用 提供一个用户选择或者不选的状态,这是一个可以多选的控件。 二、属性 其实功能大差不差,除了特殊的几个外,与button基本相同,所有说几个独有的 checkbox属性 名称内容含义appearance控件外观可以变成按钮形状checkali…...
