虚拟内存
不同进程的相同线性地址映射到物理内存相同吗?
一般是不同的,但有些是相同的(比如通过共享内存的方式)。
比如不同的进程中有3G的用户空间,3G用户空间的线性地址表示也就是0x000000000~0xbffffffff,但不同进程映射的物理内存肯定是不一样的,如何实现的?
通过MMU实现。
内存管理单元(MMU)
共享内存
由于共享内存这一特殊的资源类型,使它不同于普通的文件,因此,系统需要为其提供专有的操作函数,而这无疑增加了程序员开发的难度(需要记忆额外的专有函数)。
共享内存专有的操作函数由shmget、shmat、shmdt、shmctl四个函数组成。