在了解了一些有关主题的知识后,有人可以告诉我,POSIX共享内存(shm_open)和POSIX映射文件(mmap)之间的真正区别是什么吗?
两者似乎都使用/dev/tmpfs子系统,而不是较早的IPC机制。
那么使用mmap文件而不是共享内存是否有任何优势呢?
谢谢。
在了解了一些有关主题的知识后,有人可以告诉我,POSIX共享内存(shm_open)和POSIX映射文件(mmap)之间的真正区别是什么吗?
两者似乎都使用/dev/tmpfs子系统,而不是较早的IPC机制。
那么使用mmap文件而不是共享内存是否有任何优势呢?
谢谢。
基本上共享内存是一种IPC形式。共享区域在/dev/shm中创建,该文件仅在内存(RAM)中创建,并且不需要任何磁盘操作,因此它是IPC的一种更快的方法。虽然可以使用磁盘文件进行IPC,然后再使用mmap,但它会相对较慢。或者,您始终可以使用带有mmap的MAP_ANONYMOUS,该mmap不支持任何磁盘文件备份。