名 前
shm_overview − POSIX 共 有 メ モ リ ー の 概 要
説 明
POSIX 共 有 メ モ リ ー API を 使 用 す る と 、 メ モ リ ー の あ る 領 域 を 共 有 し て 、 プ ロ セ ス 間 で 情 報 を や り 取 り す る こ と が で き る 。 こ の API で は 以 下 の イ ン タ ー フ ェ ー ス が 採 用 さ れ て い る 。
shm_open(3) 新 し い オ ブ ジ ェ ク ト を 生 成 し オ ー プ ン す る 、 も し く は 既 存 の オ ブ ジ ェ ク ト を オ ー プ ン す る 。 こ れ は |
open(2) と 同 じ で あ る 。 下 記 に あ る 他 の イ ン タ ー フ ェ ー ス で 使 用 す る フ ァ イ ル デ ィ ス ク リ プ タ ー を 返 す 。
ftruncate(2) 共 有 メ モ リ ー オ ブ ジ ェ ク ト の 大 き さ を 設 定 す る 。 | |
mmap(2) 呼 び 出 し た プ ロ セ ス の 仮 想 ア ド レ ス 空 間 に 共 有 メ モ リ ー オ ブ ジ ェ ク ト を マ ッ プ す る 。 | |
munmap(2) 呼 び 出 し た プ ロ セ ス の 仮 想 ア ド レ ス 空 間 か ら 共 有 メ モ リ ー オ ブ ジ ェ ク ト を ア ン マ ッ プ す る 。 | |
shm_unlink(3) 共 有 メ モ リ ー オ ブ ジ ェ ク ト 名 を 削 除 す る 。 | |
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/ に 書 か れ て い る 。