12.07.2015 Views

RedHawk Linux User's Guide version 6.3 日本語版

RedHawk Linux User's Guide version 6.3 日本語版

RedHawk Linux User's Guide version 6.3 日本語版

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>RedHawk</strong> <strong>Linux</strong> User’s <strong>Guide</strong>POSIX 共 有 メモリ 3POSIX 共 有 メモリ・インターフェースは、 協 同 プロセスがデータを 共 有 することおよび 共 有 メモリ・オブジェクトの 利 用 を 通 してより 効 率 的 に 通 信 することを 可 能 にします。 共 有 メモリ・オブジェクト はファイル・システムから 独 立 してストレージの 名 前 つき 領 域 として 定 義 され、 関 連連 メモリを 共 有 するために1つ 以 上 のプロセスのアドレス 空 間 にマッピングすることが 可 能 です。以 下 にインターフェースを 簡 単 に 記 述 します。shm_openshm_unlink共 有 メモリ・オブジェクトの 作 成 および 共 有 メモリ・オブジェクトとファイル 記 述 子 間 の 接 続 を 確 立共 有 メモリ・オブジェクトの 名 前 を 削 除shm_openルーチンを 利 用 する 手 順 は「shm_openルーチンの 利 用 」の 中 で 紹 介 されています。shm_unlinkルーチンを 利 用 する 手 順 は「shm_unlinkルーチンの 利 用 」の 中 で 紹 介 されています。データ 共 有 のために 協 同 プロセスがこれらのインターフェースを 使 用 するためには、1つのプロセスは 以 下 のステップを 完 了 します。 紹 介 するステップの 手 順 は 標 準 的 なもので、 利 用 可 能 な 唯 一の 手 順 ではないことに 注 意 してください。STEP 1: shm_openライブラリルーチンの 呼 び 出 し、ユニークな 名 前 の 指 定 、読 み 書 きする 共 有 メモリ・オブジェクトをオープンするためのO_CREATとO_RDWRビットの 設 定 により 共 有 メモリ・オブジェクトの 作 成 およびそのオブジェクトとファイル 記 述 子 間 の 接 続 を 確 立 します。STEP 2:STEP 3:ftruncate(2)システムコールの 呼 び 出 し、STEP 1で 取 得 したファイル記 述 子 の 指 定 により 共 有 メモリ・オブジェクトのサイズを 設 定 します。このシステムコールは 書 き 込 み 用 にメモリ・オブジェクトがオープンされている 必 要 があります。ftruncate(2)に 関 する 更 なる 情 報 は 対 応するmanページを 参 照 してください。mmap(2)システムコールの 呼 び 出 し、およびSTEP 1で 取 得 したファイル 記 述 子 の 指 定 により、プロセスの 仮 想 アドレス 空 間 の 一 部邪 を 共有 メモリ・オブジェクトにマッピングします。( 本 システムコールの解 説 は「メモリ・マッピング」 章 を 参 照 してください)共 有 メモリ・オブジェクトを 使 用 するため、 他 の 協 同 プロセスは 以 下 のステップを 完 了 します。紹 介 するステップの 手 順 は 標 準 的 なもので、 利 用 可 能 な 唯 一 の 手 順 ではないことに 注 意 してください。STEP 1:STEP 2:最 初 のプロセスによって 作 成 された 共 有 メモリ・オブジェクトとshm_openライブラリルーチンの 呼 び 出 し、オブジェクトの 作 成 に 使用 した 同 じ 名 前 の 指 定 によりファイル 記 述 子 間 の 接 続 を 確 立 します。もし 共 有 メモリ・オブジェクトのサイズがわからない 場 合 、fstat(2)システムコールの 呼 び 出 し、STEP 1で 取 得 したファイル 記 述 子 とstat 構 造造 体 (で 定 義 )へのポインタの 指 定 により 共 有 メモリ・オブジェクトのサイズを 取 得 します。3-12

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!