問題タブ [shared-memory]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
shared-memory - 共有メモリのロックの問題に関する記事を探す
私はいくつかのコードを見直しており、使用されている手法に疑いを感じています。
Linux 環境では、複数の共有メモリ セグメントを接続する 2 つのプロセスがあります。最初のプロセスは、共有する新しいファイル セットを定期的にロードし、共有メモリ ID (shmid) を「マスター」共有メモリ セグメント内の場所に書き込みます。2 番目のプロセスは、この「マスター」の場所を継続的に読み取り、shmid を使用して他の共有セグメントを接続します。
マルチCPUホストでは、あるプロセスが他のプロセスによって書き込まれている間にメモリを読み取ろうとするとどうなるかは、実装に依存するようです。しかし、おそらくハードウェア レベルのバス ロックにより、ワイヤ上のビットの破損が防止されるでしょうか? 読み取りプロセスがすぐに変更される値を取得したかどうかは問題ではありません。読み取りが古い値でも新しい値でもない何かに破損した場合にのみ問題になります。これは特殊なケースです。32 ビットのみが読み書きされています。
シュマットのものをグーグルで検索しても、この分野で決定的なものにはなりませんでした。
私はそれが安全でも正気でもないことを強く疑っています.私が本当に欲しいのは、問題を詳細に説明する記事へのいくつかのポインタです.
sockets - 共有メモリを使用して2台のPC間で通信しますか?
共有メモリまたは tcp ソケット プログラミングの概念を使用して 2 台のコンピュータ間で通信するための概念を構築する必要があります..どうすればよいですか?クライアント サーバー アーキテクチャに共有メモリを実装することは可能ですか?どうすればよいですか?
concurrency - モニターとセマフォの良い類推/例を探しています
モニターは、並行環境でのセマフォの問題を解決することになっています。
モニター対セマフォを使用した良いアナロジーを探しています。
類推のための情報を使用してください:
4 つのタスク (TaskA、TaskB、TaskC、TaskD)
1 つの変数varX
各タスクは、何らかのイベントに基づいてvarXを操作したいと考えています。
ipc - POSIX共有メモリを使用する場合、POSIXセマフォをどこに配置しますか?
POSIX 共有メモリと POSIX セマフォを使用してクライアント サーバー アプリケーションを構築しようとしています。セマフォを共有メモリ セグメント内に配置する必要がありますか?それとも、セマフォを単にグローバル変数にすることができますか? POSIX 規約を遵守したい。
client-server - 一部の posix 共有メモリ セグメントと posix セマフォが ipcs に表示されないのはなぜですか
pshared=1 の posix 共有メモリと posix の名前のないセマフォを使用して、クライアント サーバー アプリケーションを構築しました。セマフォは共有メモリ内に配置されます。プログラムは正常に実行されますが、ipcs -m または ipcs -s と入力すると、作成した共有メモリ セグメントまたはセマフォが表示されません。なぜそうなのですか?
java - Linux 上の Java/C++ アプリの共有メモリ IPC の優れた代替手段
現在、Java アプリと C++ アプリの間で IPC に共有メモリを使用していますが、より便利な代替手段を探しています。
誰かが同じパフォーマンスと速度でより良い方法をアドバイスできますか?
ありがとう!
c++ - C++ で共有メモリを使用するリモート プロキシ
共有メモリを介してさまざまなアプリケーションに内部状態を共有しているデーモンがあるとします。プロセスは、名前付きパイプで IPC メッセージをデーモンに送信して、さまざまな操作を実行できます。このシナリオでは、一種の「リモート プロキシ」として機能するクライアント用の C++ ラッパー クラスを作成して、クライアントからいくつかの厄介な詳細 (同期、メッセージ パッシングなど) を隠し、コードの分離を容易にしたいと考えています。単体テスト。
3 つの質問があります。
- 一般的に、これは良いアイデア/アプローチですか?
- このセットアップでの同期に関するヒントや落とし穴はありますか?それとも、標準のリーダー/ライター ミューテックス セットアップを使用するだけで十分ですか?
- 考慮すべきフレームワークはありますか?
問題のターゲットは、2.18 カーネルを搭載した組み込み Linux システムであるため、メモリとコンパイラの機能に制限があります。
operating-system - 共有メモリ セグメントを切り離さない場合の影響
共有メモリ セグメントを切り離さないと、どのような影響がありますか?
さまざまなオペレーティングシステムがこれをどのように処理しますか?
デタッチによって OS の安定性が損なわれることはありませんか?
ありがとう。