RedHawk Linux User's Guide version 6.3 æ¥æ¬èªç
RedHawk Linux User's Guide version 6.3 æ¥æ¬èªç
RedHawk Linux User's Guide version 6.3 æ¥æ¬èªç
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>モニタリング・プロセスで 生 じるmmapマッピングは、 現 在 のレンジ 内 [offset, offset + length) にマッピングされたターゲット・プロセスの 物 理 メモリになることに 注 意 することが 重 要 です。 結果 、mmap 呼 び 出 しがされた 後 にターゲットのマッピングが 変 更 された 場 合 、ターゲット・プロセスのアドレス 空 間 へのモニタリング・プロセスのマッピングは 無 効 となる 可 能 性 があります。このような 状 況 では、モニタリング・プロセスは 物 理 ページ 下 へのマッピングを 保 持 しますが、マッピングはターゲット・プロセスとはもはや 共 有 されていません。 何 故 ならモニタリング・プロセスはマッピングが 有 効 ではないことを 検 知 できないため、モニタリング・プロセスとターゲット・プロセス 間 の 関 係 を 制 御 するためのアプリケーションを 準 備 する 必 要 があります( 表 記[start, end]は、start からend への 区 間 (start を 含 みend を 含 まない)を 意 味 します)。ターゲット・プロセスのアドレス 空 間 へのモニタリング・プロセスのマッピングが 無 効 になる 状況 は 以 下 のとおり:• ターゲット・プロセスが 終 了 。• ターゲット・プロセスがmunmap(2)またはmremap(2)のどちらかでレンジ 内 [offset, offset +length) のページをアンマップ。• ターゲット・プロセスがmmap(2)で 異 なるオブジェクトへレンジ 内 [offset, offset + length) のページにマッピング。• ターゲット・プロセスがfork(2)を 呼 び 出 し、 子 プロセスがする 前 にレンジ 内 [offset, offset +length) のアンロック 済 み、プライベート、 書 き 込 み 可 能 なページへ 書 き 込 む。このケースでは、ターゲット・プロセスはページのプライベート・コピーを 受 け 入 れ、そのマッピングと書 き 込 み 操 作 はコピーされたページへリダイレクトされる。モニタリング・プロセスはオリジナル・ページへのマッピングを 保 持 。• ターゲット・プロセスがfork(2)を 呼 び 出 してから、 子 プロセスと 共 有 し 続 けているレンジ 内[offset, offset + length) のプライベート、 書 き 込 み 可 能 な(copy-on-writeにマークされた)ページをメモリにロック。このケースでは、ロック 操 作 を 実 行 したプロセスは(ページに 最 初 の 書 き込 みを 実 行 したかのように)ページのプライベート・コピーを 受 け 入 れる。もしこれがページをロックするターゲット( 親 )・プロセスの 場 合 、モニタリング・プロセスのマッピングはもはや 有 効 ではない。• ターゲット・プロセスが 子 プロセスと 共 有 し 続 けているレンジ 内 [offset, offset + length) のロック 済 み、プライベート、 読 み 取 り 専 用 の(copy-on-writeにマークされた)ページの 書 き 込 み 権限 を 有 効 にするためにmprotect(2)を 呼 び 出 す。このケースでは、ターゲット・プロセスはページのコピーを 受 け 取 る。モニタリング・プロセスはオリジナルのメモリ・オブジェクトへのマッピングを 保 持 。もしアプリケーションがモニタリング・プロセスのアドレス 空 間 のマッピングの 対 象 になることを 要 求 されている 場 合 、 以 下 を 推 奨 します:• ターゲット・プロセスのアドレス 空 間 がモニタリング・プロセスにマッピングされる 前 にターゲット・プロセスにてメモリ・ロック 操 作 を 実 行• fork(2)を 呼 び 出 す 前 に 親 プロセスやモニタリング・プロセスによるマッピングが 保 持 される必 要 のあるあらゆるページをメモリにロックもしアプリケーションがアドレス 空 間 のマッピングの 対 象 になることを 要 求 されていない 場 合 、forkを 呼 び 出 した 後 までメモリ 内 のページのロックを 延 期 することも 可 能 です。詳 細 な 情 報 についてはmmap(2)のmanページを 参 照 してください。9-2