0
点赞
收藏
分享

微信扫一扫

【Linux】 exit 和 _exit 的区别

f12b11374cba 2024-10-31 阅读 21

批量替换 

多进程读取同一个地址内容,内容为什么不一样? 

地址没变 说明这里的不是物理地址,是虚拟地址(线性地址,逻辑地址)。

 进程认为自己独占资源。

  地址空间本质是内核的一种数据结构。mm_struct结构体描述。

 一共有2^32个地址。

结构体内进行区域划分。

 虚拟地址空间,每一个都是虚拟地址。

malloc new本质是扩大栈区堆区地址空间。

虚拟地址和物理地址通过页表进行映射。

 

 每个进程有自己的进程地址空间。自己的页表。

每个进程以为自己有4GB地址空间。

 为什么存在地址空间?

页表作用不只是映射,还会拦截非法访问。

 父进程创建子进程 会对父进程进行拷贝,进程具有独立性,一个进程对被共享的数据进行修改,不能影响这个数据在其他进程中的内容,所以子进程对数据进行修改后,会存储在一个新的物理内存中。

写时拷贝:任何一方尝试写入,操作系统先进行数据拷贝,更改页表映射,然后再让进程进行修改。

 

 可执行程序有自己的虚拟地址。

 cpu读进来的都是指令,指令内部就有虚拟地址。

举报

相关推荐

0 条评论