Linux repositories inspector

shm_overview(7) - Japanese

Linux
2010-09-10

manpages-ja

Japanese version of the manual pages (for users)

man-pages-ja

Japanese man (manual) pages from the Japanese Manual Project

manpages

Manual pages about using a GNU/Linux system

man-pages

Linux kernel and C library user-space interface documentation

名前

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 共有メモリーと比べると 利用できるシステムが少ない (特に、古いシステムでは少ない)。

この文書について

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