text: Android では Linux カーネルを使用しているが、IPC 関係が一部無効になっており、独自に開発した（現在はLinuxカーネルに入っている）ashmem (anonymous shared memory) を使用している。メモリが不足したときにカーネルが解放する仕組みがあり、解放されないようにするには、ashmem_pin_region() を使い指定する。Windowsでのサポート  Microsoft Windowsでは、Win32 APIのCreateFileMapping()関数を使って共有メモリ（メモリマップトファイル）を作成することができる。クライアント側プロセスはOpenFileMapping()関数を使って、ホスト側プロセスにて作成済みの共有メモリのハンドルを取得することができる。共有メモリを各プロセスのアドレス空間にマッピングするにはMapViewOfFile()関数を使う。なおWindows APIには、CreateSharedMemory() など “-SharedMemory” の名前を持つ関数があるが、これはセキュリティ関連のAPIであり、メモリ共有のためのAPIではない。これをメモリ共有のために使用すれば、リソースを大量に消費しシステムリソースを使い果たす可能性がある。プログラミング言語ごとのサポート  一部のC++ライブラリは、共有メモリ機能への移植性の高いオブジェクト指向的なアクセスを提供している。例えば、Boost C++ライブラリには Boost.Interprocess があり、POCO C++ Libraries には Poco::SharedMemory、Qt には QSharedMemory クラスがある。PHP では POSIX で定義している関数群とよく似た共有メモリ用APIが存在する。.NET Frameworkはバージョン4でSystem.IO.MemoryMappedFiles.MemoryMappedFileクラスを標準化した。.NET CoreあるいはXamarin (Mono) を通じて、Windows以外の他のプラットフォームでも利用できる。脚注 関連項目  分散共有メモリ グローバル変数 ユニファイドメモリアーキテクチャ 学習参考書  Julian Shun: "Shared-Memory Parallelism Can be Simple, Fast, and Scalable", ACM books, ,  (2017).外部リンク  IPC:Shared Memory by Dave Marshall Shared Memory Introduction, Ch.12 from book by Richard Stevens "UNIX Network Programming, Volume 2, Second Edition: Interprocess Communications".メモリ管理 プロセス間通信 並行計算 コンピュータアーキテクチャ 主記憶装置