Sdileni pameti mmap() a shmget()

Dalibor Straka dast na panelnet.cz
Pátek Květen 23 17:07:33 CEST 2008


On Fri, May 23, 2008 at 04:48:53PM +0200, Jan Kasprzak wrote:
> Dalibor Straka wrote:
> : z pohledu programatora je mi jedno, jestli pouziji mmap() nebo shmget().
> : Je v tom nejaky zasadni rozdil? (Kompatibilita, zastaralost, funkcni
> : nevyhody, ...). Budu pouzivat i synchronizacni primitiva semafory mozna
> : i zpravy coz spise nahrava shm. Prepisuji vlaknovou aplikaci.
> 
> 	Jeste je otazka na jakem systemu to pobezi. Mam pocit ze mmap()
> nezarucuje ze data budou skutecne ihned viditelna ze vsech procesu,
> zatimco SysV SHM ano (vizte man msync a popis MAP_SHARED v man mmap
> v Linuxu).
> 
Nakonec jsem vse ke sve spokojenosti napsal pres shmget/shmat/shmdt a
semget/semctl/semop a vse funguje bravurne. Cilovy system byl Solaris,
vyvijeno na Linuxu. Problem byl akorat na BSD, kde nefungovaly nejake
konstanty. Abych uplne nekecal: SEM_R a SEM_W
semid = semget(IPC_PRIVATE, 1, IPC_CREAT | SEM_R | SEM_W);
rovnou natvrdo na 0600
semid = semget(IPC_PRIVATE, 1, IPC_CREAT | 0600);

-- Dalibor Straka



Další informace o konferenci Linux