当前位置: 技术问答>linux和unix
问个mmap和其锁的问题
来源: 互联网 发布时间:2016-09-15
本文导语: 当多个进程用mmap进行通信的时候,mmap怎样锁? 2.6内核之后用进程间的pthread_mutex可以么? 还有其他方案吗?比如直接对文件记录锁会怎样?mmap函数能处理么 另外,如果两个进程对同一个文件使用mmap的话,他们...
当多个进程用mmap进行通信的时候,mmap怎样锁?
2.6内核之后用进程间的pthread_mutex可以么?
还有其他方案吗?比如直接对文件记录锁会怎样?mmap函数能处理么
另外,如果两个进程对同一个文件使用mmap的话,他们的物理内存地址(非虚拟)是不是指向同一块的。LINUX的锁本质上是不是针对物理内存地址的呢?
2.6内核之后用进程间的pthread_mutex可以么?
还有其他方案吗?比如直接对文件记录锁会怎样?mmap函数能处理么
另外,如果两个进程对同一个文件使用mmap的话,他们的物理内存地址(非虚拟)是不是指向同一块的。LINUX的锁本质上是不是针对物理内存地址的呢?
|
说说俺的理解
印象中mmap() 属于进程间通信的范畴,而pthread_xx属于同步的范畴,而且是线程之间的同步。
进程间同步机制有很多,比如POSIX的信号灯(man sem_open() sem_wati()),System V的信号灯(
man semget(),semop()),...
两个进程对同一个文件使用mmap()时,若使用都使用了MAP_SHARED flag的话,映射到相同的物理地址。
各种锁同物理内存没有直接关系。
印象中mmap() 属于进程间通信的范畴,而pthread_xx属于同步的范畴,而且是线程之间的同步。
进程间同步机制有很多,比如POSIX的信号灯(man sem_open() sem_wati()),System V的信号灯(
man semget(),semop()),...
两个进程对同一个文件使用mmap()时,若使用都使用了MAP_SHARED flag的话,映射到相同的物理地址。
各种锁同物理内存没有直接关系。