2008-8-18 11:12
灵魂的号手
共享内存
[font=文鼎PL简中楷][size=4]Linux[/size][/font][font=文鼎PL简中楷][size=4]的[/size][/font][font=文鼎PL简中楷][size=4]2.2.x[/size][/font][font=文鼎PL简中楷][size=4]内核支持多种共享内存方式,如[/size][/font][font=文鼎PL简中楷][size=4]mmap()[/size][/font][font=文鼎PL简中楷][size=4]系统调用,[/size][/font][font=文鼎PL简中楷][size=4]Posix[/size][/font][font=文鼎PL简中楷][size=4]共享[/size][/font])IF7UZ!f/L'j6Fd
[font=文鼎PL简中楷][size=4]内存,以及系统[/size][/font][font=文鼎PL简中楷][size=4]V[/size][/font][font=文鼎PL简中楷][size=4]共享内存。[/size][/font]u
tJd-t k9\7vG
Q(t"\[?"u*j(o0B
[font=文鼎PL简中楷][size=4]posix[/size][/font][font=文鼎PL简中楷][size=4]共享内存[/size][/font]TssOVd\s
[font=文鼎PL简中楷][size=4]两个不同进程[/size][/font][font=文鼎PL简中楷][size=4]A[/size][/font][font=文鼎PL简中楷][size=4]、[/size][/font][font=文鼎PL简中楷][size=4]B[/size][/font][font=文鼎PL简中楷][size=4]共享内存的意思是,同一块物理内存被映射到进程[/size][/font][font=文鼎PL简中楷][size=4]A[/size][/font][font=文鼎PL简中楷][size=4]、[/size][/font][font=文鼎PL简中楷][size=4]B[/size][/font]
F)i$Mr5S3i
[font=文鼎PL简中楷][size=4]各自的进程地址空间。进程[/size][/font][font=文鼎PL简中楷][size=4]A[/size][/font][font=文鼎PL简中楷][size=4]可以即时看到进程[/size][/font][font=文鼎PL简中楷][size=4]B[/size][/font][font=文鼎PL简中楷][size=4]对共享内存中数据的更[/size][/font]:n5KwW;z
[font=文鼎PL简中楷][size=4]新,反之亦然。[/size][/font]
z
`cS
o|1QCCyh
[font=文鼎PL简中楷][size=4]共享内存为在多个进程之间共享和传递数据提供了一种有效的方式,但是[/size][/font]/R;G@3JO2HtpV
[font=文鼎PL简中楷][size=4]其并未提供同步机制。由于多个进程共享同一块内存区域,必然需要某种[/size][/font]FGIyg[Z_0W3Oi9q
[font=文鼎PL简中楷][size=4]同步机制,所以我们需要用其他机制来同步对共享内存的访问,互斥锁和[/size][/font]