Anil Vishnoi..

25

从理论上讲,用户在任何当前流行的操作系统(Win,linux,unix,Sol等)中执行的每个进程最初都允许使用4gig的地址范围(在32位平台上为0x00000000 t0 0xffffffff),无论是简单的hello world程序还是其复杂的Web容器托管stackoverflow站点.这意味着每个进程的范围都从相同的起始地址开始,并以相同的地址空间结束,并且以VIRTUALLY结尾.因此,显然每个进程在其各自的虚拟地址空间范围内具有相同的虚拟地址.所以你的第一个问题的回答是肯定的.

操作系统执行任何过程时都会出现差异,现代操作系统是多任务操作系统,并且它们在任何时间点都可以运行,因此在主存储器中容纳4gig的每个进程根本不可行.因此操作系统使用分页系统,其中它们将虚拟地址范围(0x00000000到0xffffffff)划分为4k大小的页面(并非总是如此).因此,在开始该过程之前,它实际上将初始时需要的页面加载到主内存,然后根据需要加载另一个虚拟页面范围.因此,将虚拟内存加载到物理内存(主内存)称为内存映射.在此过程中,您将页面的虚拟地址范围映射到物理地址范围(如ox00000000到ox00001000 virtaul地址范围到0x00300000到0x00301000物理地址范围),基于主存储器中的空闲插槽.

共享内存概念是一个例外,其中所有进程可以彼此共享一些虚拟地址范围,这将被映射到公共物理地址空间.因此在这种情况下,答案可以是YES.

作为Linux上的一个例子,每个可执行文件都需要libc.so库来执行程序可执行文件.每个进程都加载它们所需的库,并在它们的地址空间中为它们分配一些虚拟地址页面范围.所以现在考虑一个执行100个进程的场景,其中每个进程都需要这个库libc.so. 因此,如果操作系统在此库libc.so的每个进程中分配虚拟地址空间,那么您可以想象库libc.so的重复级别,并且很可能在任何时候您将获得多个libc.so地址实例主存储器中的范围页面.要使冗余操作系统将libc.so加载到映射到主存储器中固定物理地址范围的每个进程的特定虚拟地址空间范围.因此,每个进程都会引用固定的物理地址范围来执行libc.so中的任何代码.因此,在这种情况下,每个进程也共享一些物理地址范围.

但是在用户malloced虚拟地址范围映射中,两个进程不可能同时具有相同的物理地址.

希望能帮助到你.

linux两个进程相同的地址,在虚拟内存中,两个不同的进程可以具有相同的地址吗?...相关推荐

  1. js两个等号和三个等号_js中两个等号(==)和三个等号(===)的区别

    js中两个等号(==)和三个等号(===)的区别: 1. "=="表示:equality -> 等同 的意思,"=="使用两个等号时,如果两边值的类型不同 ...

  2. mysql 两列数据互换_mysql 实现互换表中两列数据方法简单实例

    由于最近项目,有这样一个需求,是把数据库中的两列数据互换,经过好久才搞定,这里写个简单实例,做过记录. 1.创建表及记录用于测试 CREATE TABLE `product` ( `id` int(1 ...

  3. oracle把两个字段拼接在一起,请问Oracle中两个日期拼接在一起的语句应该怎么写?...

    例如:2021/01/02-2021/01/05 语句如下,想把starttime参数与endtime参数拼接起来得到统计周期字段的显示值.统计周期字段就根据控件输入的不同的时间段而显示不同的时间段 ...

  4. linux的虚拟内存是4G,而每个进程都有自己独立的4G内存空间,怎么理解?进程虚拟地址4G指拥有4G的寻址能力,需要页表转换为实际物理地址,每个进程用到的内核是直接映射,地址的进程地址-3G的关系

    linux的虚拟内存是4G,而每个进程都有自己独立的4G内存空间,怎么理解? 问: linux的虚拟内存是4G,而每个进程都有自己独立的4G内存空间,怎么理解? 每个进程所拥有的4G独立的虚拟内存空间 ...

  5. 【Linux】Linux系统编程(入门与系统编程)(三)(深入理解操作系统、进程、环境变量、内存分布)

    本博客操作系统最多涉及30%的理论,重点在于部分进程的内容,部分文件系统的内容,部分文件管理的内容不是主讲操作系统,我们的最终目的是理解系统中最高频的知识点,然后被完全利用指导我们编程. 下面是这三篇 ...

  6. .NET 中使用 Mutex 进行跨越进程边界的同步 - walterlv

    .NET 中使用 Mutex 进行跨越进程边界的同步 - walterlv 原文:.NET 中使用 Mutex 进行跨越进程边界的同步 - walterlv .NET 中使用 Mutex 进行跨越进程 ...

  7. sql中两个时间类型相减得到的值

    原文地址为: sql中两个时间类型相减得到的值 原文地址:http://my.oschina.net/zimingforever/blog/57504 sql中两个时间类型相减得到的值 今天有人把数据 ...

  8. 计算机进程控制块的作用是什么,计算机考研操作系统之进程控制块(PCB)【中公原创】...

    2018计算机考研交流群:452734424 进程控制块(PCB)是进程存在的惟一标志,是操作系统进程管理中一种重要的数据结构. 1)PCB的作用 存放进程的管理和控制信息的数据结构称为进程控制块.它 ...

  9. Linux内核虚拟地址空间,-3G的由来。各个进程的虚拟内存4G,内核总在3-4G。内核的虚拟空间地址-3G,总是指向物理内存的0-1G地址,各个进程的虚拟内核共享这个物理内存

    Linux内核地址空间划分 通常 32 位 Linux 内核地址空间划分 0~3G 为用户空间,3~4G 为内核空间.64 位内核地址空间划分是不同的. Linux内核高端内存 当内核模块代码或线程访 ...

最新文章

  1. pytorch bceloss测试
  2. 7个jquery easy ui 基本组件图解
  3. 硬件三人行-开关电源学习笔记-1
  4. KubeCon 2020 演讲集锦|《阿里巴巴云原生技术与实践 13 讲》开放下载
  5. codeforces1167 E. Range Deleting(双指针)
  6. 绕过模拟器检测_和平精英:光子重点打击外设与模拟器,违规将封禁365天
  7. java 服务 容量评估,容器云平台容量规划及管理优化
  8. 字符串函数---atof()函数详解及实现
  9. 使用免费软件Emu8086学习汇编
  10. WPS文字常用排版快捷键
  11. Nginx部署ssl安全证书(腾讯云DV证书)
  12. vuetify图标不正常显示
  13. 腾讯会议 .wemta 文件如何转码成 mp4 文件
  14. web服务器主机头文件,在Win2k下建立虚拟Web主机
  15. HTML - 调用腾讯 QQ 进行客服在线聊天(PC)
  16. ppt编辑数据链接文件不可用_office 高手进,PPT图片编辑中显示链接的文件不可用,请使用编辑链接命令查找文件...
  17. 缓存加速-----Squid-访问控制列表日志分析反向代理
  18. 国密SM2算法(JS加密,C#、Java解密)
  19. 头晕和眩晕是怎样的感觉?3件小事来缓解!
  20. 有趣好玩的html页面,有趣的HTML5网站集合 - 小俊学习网

热门文章

  1. HUAWEI USG6000系列 NGFW Module V100R001 典型配置案例
  2. [译]Ocelot - Headers Transformation
  3. Linux设备驱动模型之platform(平台)总线详解
  4. 评判云服务靠谱程度 -- Coding 安全那些事
  5. JQuery学习记录——jQuery对象和DOM对象的转换
  6. Redis常见客户端异常汇总
  7. Linux系统扩展oracle数据库所在的分区
  8. Linux 环境下安装 GitLab 与配置
  9. ubuntu上 grafana + influxdb + telegraf 安装配置
  10. Ubuntu中zabbix4.2配置shell脚本邮件报警