Manpages

名 前

shm_overview − POSIX 共 有 メ モ リ ー の 概 要

説 明

POSIX 共 有 メ モ リ ー API を 使 用 す る と 、 メ モ リ ー の あ る 領 域 を 共 有 し て 、 プ ロ セ ス 間 で 情 報 を や り 取 り す る こ と が で き る 。 こ の API で は 以 下 の イ ン タ ー フ ェ ー ス が 採 用 さ れ て い る 。

shm_open(3) 新 し い オ ブ ジ ェ ク ト を 生 成 し オ ー プ ン す る 、 も し く は 既 存 の オ ブ ジ ェ ク ト を オ ー プ ン す る 。 こ れ は

open(2) と 同 じ で あ る 。 下 記 に あ る 他 の イ ン タ ー フ ェ ー ス で 使 用 す る フ ァ イ ル デ ィ ス ク リ プ タ ー を 返 す 。

ftruncate(2) 共 有 メ モ リ ー オ ブ ジ ェ ク ト の 大 き さ を 設 定 す る 。

mmap(2) 呼 び 出 し た プ ロ セ ス の 仮 想 ア ド レ ス 空 間 に 共 有 メ モ リ ー オ ブ ジ ェ ク ト を マ ッ プ す る 。

munmap(2) 呼 び 出 し た プ ロ セ ス の 仮 想 ア ド レ ス 空 間 か ら 共 有 メ モ リ ー オ ブ ジ ェ ク ト を ア ン マ ッ プ す る 。

shm_unlink(3) 共 有 メ モ リ ー オ ブ ジ ェ ク ト 名 を 削 除 す る 。

close(2)

shm_open(3) で 割 り 当 て ら れ た フ ァ イ ル デ ィ ス ク リ プ タ ー が 不 要 に な っ た 際 に 、 そ の フ ァ イ ル デ ィ ス ク リ プ タ ー を ク ロ ー ズ す る 。

fstat(2) そ の 共 有 メ モ リ ー オ ブ ジ ェ ク ト に つ い て の 情 報 が 入 っ た

stat

構 造 体 を 取 得 す る 。 こ の シ ス テ ム コ ー ル が 返 す 情 報 に は 、 オ ブ ジ ェ ク ト の サ イ ズ (st_size)、 許 可 属 性 (st_mode)、 所 有 者 (st_uid)、 グ ル ー プ (st_gid) が あ る 。

fchown(2) 共 有 メ モ リ ー オ ブ ジ ェ ク ト の 所 有 権 を 変 更 す る 。

fchmod(2) 共 有 メ モ リ ー オ ブ ジ ェ ク ト の 許 可 属 性 を 変 更 す る 。

Versions
POSIX 共 有 メ モ リ ー は Linux 2.4 と glibc 2.2 以 降 で サ ポ ー ト さ れ て い る 。 持 続 性
POSIX 共 有 メ モ リ ー オ ブ ジ ェ ク ト は カ ー ネ ル 内 で 保 持 さ れ る 。 共 有 メ モ リ ー オ ブ ジ ェ ク ト は 、 シ ス テ ム が シ ャ ッ ト ダ ウ ン さ れ る か 、 全 て の プ ロ セ ス が そ の オ ブ ジ ェ ク ト を ア ン マ ッ プ し 、 shm_unlink(3) で 削 除 さ れ る ま で 、 存 在 し 続 け る 。 リ ン ク
POSIX 共 有 メ モ リ ー API を 使 用 し た プ ロ グ ラ ム は cc −lrt で コ ン パ イ ル し 、 リ ア ル タ イ ム ラ イ ブ ラ リ librt と リ ン ク し な け れ ば な ら な い 。 フ ァ イ ル シ ス テ ム 経 由 で の 共 有 メ モ リ ー オ ブ ジ ェ ク ト へ の ア ク セ ス
Linux で は 、 共 有 メ モ リ ー オ ブ ジ ェ ク ト は 通 常 /dev/shm 以 下 に マ ウ ン ト さ れ る 仮 想 フ ァ イ ル シ ス テ ム (tmpfs) 内 に 作 成 さ れ る 。 カ ー ネ ル 2.6.19 以 降 の Linux で は 、 仮 想 フ ァ イ ル シ ス テ ム 内 の オ ブ ジ ェ ク ト の 許 可 属 性 の 制 御 に 、 ア ク セ ス 制 御 リ ス ト (ACL; access control lists) を 使 う こ と が で き る 。

準 拠

POSIX.1−2001.

注 意

通 常 は 、 共 有 メ モ リ ー オ ブ ジ ェ ク ト に ア ク セ ス す る プ ロ セ ス は 、 POSIX セ マ フ ォ な ど を 使 っ て プ ロ セ ス 間 で 同 期 を と ら な け れ ば な ら な い 。

System V 共 有 メ モ リ ー (shmget(2), shmop(2) な ど ) は 古 い 共 有 メ モ リ ー API で あ る 。 POSIX 共 有 メ モ リ ー は 、 よ り 簡 単 で 、 う ま く 設 計 さ れ た イ ン タ ー フ ェ ー ス を 提 供 し て い る 。 一 方 で 、 POSIX 共 有 メ モ リ ー は System V 共 有 メ モ リ ー と 比 べ る と 利 用 で き る シ ス テ ム が 少 な い (特 に 、 古 い シ ス テ ム で は 少 な い )。

関 連 項 目

fchmod(2), fchown(2), fstat(2), ftruncate(2), mmap(2), mprotect(2), munmap(2), shmget(2), shmop(2), shm_open(3), shm_unlink(3), sem_overview(7)

こ の 文 書 に つ い て

こ の man ペ ー ジ は Linux man−pages プ ロ ジ ェ ク ト の リ リ ー ス 3.79 の 一 部 で あ る 。 プ ロ ジ ェ ク ト の 説 明 と バ グ 報 告 に 関 す る 情 報 は http://www.kernel.org/doc/man−pages/ に 書 か れ て い る 。