进程间通信之共享内存

虚拟内存

不同进程的相同线性地址映射到物理内存相同吗?
一般是不同的,但有些是相同的(比如通过共享内存的方式)。

比如不同的进程中有3G的用户空间,3G用户空间的线性地址表示也就是0x000000000~0xbffffffff,但不同进程映射的物理内存肯定是不一样的,如何实现的?
通过MMU实现。

内存管理单元(MMU)

共享内存

由于共享内存这一特殊的资源类型,使它不同于普通的文件,因此,系统需要为其提供专有的操作函数,而这无疑增加了程序员开发的难度(需要记忆额外的专有函数)。
共享内存专有的操作函数由shmget、shmat、shmdt、shmctl四个函数组成。

进程间通信——共享内存(Shared Memory)

浅谈进程地址空间与虚拟存储空间
深入理解计算机操作系统——第9章:物理和虚拟寻址,地址空间

物理地址和虚拟地址的概念
物理地址-线性地址-逻辑地址

你可能感兴趣的:(Android面试题,Android,JAVA)