Armadilloフォーラム

共有メモリのアクセスについて

manamana

2025年8月6日 17時54分

==========
製品型番:AG9130-C03Z
Debian/ABOSバージョン:5.10
カーネルバージョン:
3G/LTE モジュール情報 (Debianのみ):
その他:
==========
お世話になっております
現在、G3L向けに開発したpythonソフトをA9Eに移植するべく、調査しておりまして共有メモリの取り扱いについて確認したいのですが
複数のタスク間で共有メモリの読み書きを実施しているのですが、移植において注意すべき点などございますでしょうか

ご教示よろしくお願いいたします

コメント

at_takuma.fukuda

2025年8月7日 14時11分

アットマークテクノの福田です。
当社製品およびフォーラムをご活用いただきありがとうございます。
非常に高い頻度でお問い合わせをいただいておりますことから、お困りであるものと存じます。
より適切なサポートのため、直接ご状況をお教えいただきたけませんでしょうか?
当社営業部よりメールにてご連絡をさせていただいておりますので、ご返信をいただけますと幸いです。

なお、こちらのご質問への回答は以下の通りとなります。

共有メモリの仕組みはいくつかありますので、一般的には回答できませんが、コンテナ内のプロセスでしたら使い方は今まで通りで問題ないと思います。
複数のコンテナの間で共有する場合は、技術によって /dev/shm を同じボリュームとしてマウントする等、明確的に共有できるようにする必要はあります。

> アットマークテクノの福田です。
> 当社製品およびフォーラムをご活用いただきありがとうございます。
> 非常に高い頻度でお問い合わせをいただいておりますことから、お困りであるものと存じます。
> より適切なサポートのため、直接ご状況をお教えいただきたけませんでしょうか?
> 当社営業部よりメールにてご連絡をさせていただいておりますので、ご返信をいただけますと幸いです。
>
> なお、こちらのご質問への回答は以下の通りとなります。
>
> 共有メモリの仕組みはいくつかありますので、一般的には回答できませんが、コンテナ内のプロセスでしたら使い方は今まで通りで問題ないと思います。
> 複数のコンテナの間で共有する場合は、技術によって /dev/shm を同じボリュームとしてマウントする等、明確的に共有できるようにする必要はあります。

福田様
回答ありがとうございます。
実はalpineとdebianのコンテナを使うことを想定していまして、複数のコンテナ間で共有する必要があると思います。
/dev/shmを同じボリュームとしてマウントする方法、その他必要な準備がございましたら教えていただきたく

よろしくお願いいたします。
なお、営業の中内様には簡単ではございますが、返信させていただきました。

アットマークテクノの古賀(休日モード)です。

manamanaさん:
>>なお、こちらのご質問への回答は以下の通りとなります。
>>
>>共有メモリの仕組みはいくつかありますので、一般的には回答できませんが、コンテナ内のプロセスでしたら使い方は今まで通りで問題ないと思います。
>>複数のコンテナの間で共有する場合は、技術によって /dev/shm を同じボリュームとしてマウントする等、明確的に共有できるようにする必要はあります。
>
>福田様
>回答ありがとうございます。
>実はalpineとdebianのコンテナを使うことを想定していまして、複数のコンテナ間で共有する必要があると思います。
>/dev/shmを同じボリュームとしてマウントする方法、その他必要な準備がございましたら教えていただきたく

製品マニュアルの「コンテナ起動設定ファイルを作成する」にある「ボリュームマウント」の説明をご覧ください:
 https://manual.atmark-techno.com/armadillo-iot-a9e/armadillo-iotg-a9e_p…

この説明にあるように、コンテナ起動設定ファイルに add_volumes 行を追加して、次のようにすればよいです:

add_volumes /dev/shm:/dev/shm

マニュアルの上記箇所には、「オプションは podman run の --volume のオプションになりますので」と記載されている通り、コンテナ起動設定ファイルの add_volumes 行での指定は、ABOS の podman_start コマンドが、内部で podman run コマンドを実行してコンテ内を生成・起動する際に --volume オプション引数の値として使われます:
 https://manual.atmark-techno.com/armadillo-iot-a9e/armadillo-iotg-a9e_p…
 https://docs.podman.io/en/v3.4.4/markdown/podman-create.1.html

podman run の --volume オプションによるバインドマウントについては、Docker のドキュメントにある「バインドマウントの使用」も参考になるかと思います:
 https://docs.docker.jp/storage/bind-mounts.html