shared-memory

POSIX 共有メモリオブジェクトにはどのような一貫性が保証されていますか?
shared-memory

POSIX 共有メモリオブジェクトにはどのような一貫性が保証されていますか?

Linuxでは、POSIX共有メモリオブジェクト[1]はtmpfsviaを使用します/dev/shm。その結果、Aはtmpfs「ページキャッシュに完全に存在する」とします[2](スワップがまだアクティブになっていないと仮定します)。mmapPOSIX SHMオブジェクト(アドレス空間にプログラムされている)を使用するときに一貫性/引き裂き防止の保証が何であるか疑問に思います。 例:両方のプロセスAとBがPOSIX SHMオブジェクトを共有し、両方のプロセスがmmap自分のアドレス空間に書き込むとします。ページが4kBで、オブジェクトがページ整列されていると仮...

Admin

1 GBよりはるかに小さいサイズ(64 MBなど)に対するSHM_HUGE_1GBの使用の影響
shared-memory

1 GBよりはるかに小さいサイズ(64 MBなど)に対するSHM_HUGE_1GBの使用の影響

私は、Linuxで共有メモリを実際に使用する(そして理解していない)ことに比較的慣れていません。私は現在、共有64MBメモリの連続ブロックを割り当てる必要がある状況に取り組んでいます。共有メモリを正しく使用する方法を学んでいる間、私は偶然にいくつかの巨大なTLBオプションを見つけましたshmget。SHM_HUGE_2MBSHM_HUGE_1GBhttps://man7.org/linux/man-pages/man2/shmget.2.html)。 今、私は巨大なTLBが大規模な連続メモリに非常に有益であることを知っています(仮想アドレスから物理アドレスへ...

Admin

mmapを使用して他のファイルのメモリサブセットを参照するファイルを作成できますか?
shared-memory

mmapを使用して他のファイルのメモリサブセットを参照するファイルを作成できますか?

私は2つのファイルを生成するプログラムを書くことに興味があります。 2番目のファイルは最初のファイルの「表示」になり、変更すると最初のファイルも変更されます。 mmapを使ってこれを行うことはできますか? mmapを使用すると、RAMに共有メモリを持つことができますが、不揮発性メモリ(ハードドライブとも呼ばれます)に共有メモリが必要であることがわかります。ファイルが非常に大きい可能性があると仮定するため、最初のファイルをコピーしたりRAMに完全にロードしたりすることはできません(GB)。 2番目のファイルに最初のファイルメモリのサブセットを表示させる方法を見...

Admin

プロセスとそのサブプロセスを終了したときに解放されるメモリを示すツールですか?
shared-memory

プロセスとそのサブプロセスを終了したときに解放されるメモリを示すツールですか?

プロセスの記憶を示すのは少し面倒であることを知っています。使用記憶は共有されるからです。 ところが、メモリ診断を見ると、通常メモリが不足しているからです。したがって、このような場合に実際に必要な情報は次のとおりです。 どのくらいのメモリが必要ですか?リリースプロセスとそのサブプロセスを終了するとどうなりますか? 私は与えられたプロセスセットを終了すると、カーネルがメモリのどの共有部分を解放できるかを知る必要があるので、この質問に答えるのは簡単です。 検索してみましたが、まだ便利なツールが見つかりませんでした。すでにそのようなことがありますか? ...

Admin

共有メモリオブジェクトを使用してftruncateがメモリを使用しないのはなぜですか?
shared-memory

共有メモリオブジェクトを使用してftruncateがメモリを使用しないのはなぜですか?

私は共有メモリオブジェクトを作成し、それを使用して、ftruncateシステムのリソース制限に関係なく、一見したところ任意のサイズを提供できることを発見しました。以下のコードはサイズを262TBに設定し、stat()そのサイズを報告します。しかし、262TBは私が/dev/shmインストールしたものよりも大きく、私のシステムには262TBのメモリやスワップを使用することはできません。 OOMエラーが発生すると予想しましたが、システムメモリ使用量に大きな変化はありませんでした。 ここで何が起こっているのでしょうか?ftruncateシステムリソース制限を超える...

Admin

kvm / qemu VMゲストとホストを実装して、共有メモリ接続を介してそれらの間でデータを収集してキャッシュすることは可能ですか?
shared-memory

kvm / qemu VMゲストとホストを実装して、共有メモリ接続を介してそれらの間でデータを収集してキャッシュすることは可能ですか?

構成: ホスト:Ubuntu:20.04オペレーティングシステム ゲスト:Ubuntu20.04オペレーティングシステム これら2つのファイルは9pファイルシステムを使用して互いに通信します。 マウントコマンドは次のとおりです。 mount -t 9p -o trans=virtio tmp_shared /mnt -oversion=9p2000.l 現在の進行状況は次のとおりです。 C言語の関数は、mmap9pファイルシステムを介して同じファイルのメモリをマッピングするために使用されます。 現在、ホストはファイルメモリに書き込むことができますが、...

Admin

LinuxでGPUと共有されるいくつかのシステムメモリを追加するには?
shared-memory

LinuxでGPUと共有されるいくつかのシステムメモリを追加するには?

Windows 10からLinux Mint 21.1に切り替えました。ルートレス(ワインエミュレーション)でGTA 5をプレイしようとしましたが、Windowsの低VRAM(2GBのみ)のため、ほとんどのマップが欠落しているため、Linuxでゲームをほとんどプレイできません。ロード済み共有メモリがあるため、ゲームは正常に実行されます。 Linux mintで有効にする方法がわかりません。助けてくれてありがとう。以下は、Windowsの共有GPUメモリの例です。 ...

Admin

どちらのプロセスがファイル(メモリマッピングファイルまたは/ dev / shmファイル)を使用せずに同じ共有メモリを使用できますか?
shared-memory

どちらのプロセスがファイル(メモリマッピングファイルまたは/ dev / shmファイル)を使用せずに同じ共有メモリを使用できますか?

現在、2つの異なるプロセスに同じ共有メモリを提供する方法を知る唯一の方法は、メモリマップファイルを介することです。つまり、どちらのプロセスも同じメモリマップされたファイルを開き、そのファイルからの書き込み/読み込みであるためです。 OSがディスクとメモリを交換する必要があるため、これには不利益/欠点があります。 これが愚かな質問なら事前にお詫び申し上げます。しかし、ファイルによってサポートされておらず、プロセス間に純粋に共有メモリがありますか?それでは、プロセスはメモリマッピングファイルまたは/dev/shmファイルを使用せずにどのようにそれを取得できますか...

Admin

すでに作成された共有メモリセグメントでIPC_CREATを使用する
shared-memory

すでに作成された共有メモリセグメントでIPC_CREATを使用する

IPC_CREATと一緒にフラグを使用すると、何が起こるかを調べようとしています shmget()。別のプロセスですでに作成された共有メモリセグメントのキーを使用しました。これを行うと、呼び出しプロセスは実際にこのメモリセグメントを以前のプロセス(もちろんを使用して接続shmat())と共有しました。それでは、すでに作成された共有メモリセグメントを使用すると、 IPC_CREATメモリが呼び出しプロセスと共有されると結論付けることができますか? ...

Admin

shmget() と shmat() を使用したメモリ共有
shared-memory

shmget() と shmat() を使用したメモリ共有

shmget()共有メモリを使用して作成してプロセスに接続できますshmat()。 Ubuntuオペレーティングシステムで共有メモリを破壊して分離しないとどうなりますか?私が理解したように、システムが再起動されるまで物理メモリに存在し続けますが、なぜですか?つまり、複数の共有メモリブロックを作成して多くの共有メモリブロックに物理メモリをロードできますが、これにより物理メモリが非効率的に埋められます。 ? ? ...

Admin

shmget() と shmat()
shared-memory

shmget() と shmat()

を使用してshmget()特定のサイズ(バイト)の共有メモリブロックを割り当て、を使用してshmat()この共有メモリブロックを呼び出しプロセスのアドレス空間に接続します。 私の理解を確認する必要があります。 共有メモリを使用、作成、接続するプロセスshmget()とshmat()、その共有メモリを使用してアドレス空間に接続する他のプロセスがありますshmat()。 この共有メモリの(使用された)戻りアドレスはshmat()仮想アドレスであるため、両方のプロセスで異なります。 ただし、共有メモリブロック自体には単一の基本物理アドレスがあり、そのメモリを共有す...

Admin

SHMAX/SHMALLによって制御されない共有メモリは何ですか?
shared-memory

SHMAX/SHMALLによって制御されない共有メモリは何ですか?

システムがOOM-killerに達するまでキャッシュ/共有メモリが増え続ける状況をデバッグしています。 顕著な効果なしにsysctl.confにshmaxとshmallを設定しました。 shmax/shmallが正常に動作するためには、より多くの機能を有効にする必要がありますか?それとも、システムの一部がこの制限を超える可能性があり、どのように強力に実施できますか?バグがあるユーザースペースアプリケーションまたはカーネル/ドライバのバグによって発生する可能性がありますか?私たちがデバッグしたアプリケーションは、グラフィックとビデオのデコードを使用します。ドラ...

Admin

GPSDをChronydソースとして使用するときに発生する問題
shared-memory

GPSDをChronydソースとして使用するときに発生する問題

Ubuntu 18.04の唯一のタイムソースとして、PPSドングルなしでUSB GPSを使用しようとしています。 cgpsが3D修正を報告するので、GPSDが正しく機能しているようです。しかし、GPS情報は時々見ることができませんでした。 # gpsd -ND 8 /dev/ttyUSB0 gpsd:INFO: launching (Version 3.17) gpsd:IO: opening IPv4 socket gpsd:SPIN: passivesock_af() -> 3 gpsd:IO: opening IPv6 socket gpsd:S...

Admin

カーネルからユーザー空間にデータキューを渡すには?
shared-memory

カーネルからユーザー空間にデータキューを渡すには?

私は現在Linux用のモジュールを作成しており、カーネルからユーザー空間にデータキューを渡したいと思います。 (ユーザー空間内の私のプログラムはこのデータを読み取ることを担当し、このデータをファイルに書き込むことを担当します) 。 これをどのように実装しますか? もっと良い方法がありますか?私は初心者で、どんなガイドでもいいでしょう。 以前は、IOCTLとPROCFSを使用してこのデータをユーザースペースにプッシュしようとしましたが、このアプローチは良い考えではなく、一部のデータが失われました。 ...

Admin

ブラウザ(Opera、Chromium ...)が共有メモリで権限拒否(13)エラーを引き起こしました。
shared-memory

ブラウザ(Opera、Chromium ...)が共有メモリで権限拒否(13)エラーを引き起こしました。

Manjaro / Arch Linuxを使用していますが、別のブラウザをインストールしたいと思います。ただし、OperaをインストールするかChromiumをインストールするか(パックマンを介して)アプリランチャーとシェルで実行すると、常にエラーが発生します。 走るクロム私はシェルから次のようになります。 $ chromium [11452:11452:0914/22593...

Admin