問題タブ [sysv-ipc]
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.
synchronization - カウンティングセマフォの同期にはバイナリセマフォが必要ですか?
私の教授によると、カウンティング セマフォ (具体的には System V セマフォ) がある場合、2 つのプロセスが同時にセマフォにアクセスしようとすると同期の問題が発生する可能性があるため、カウンティング セマフォへのアクセスを別のプロセスで仲介する必要があります。バイナリセマフォ。
セマフォの要点は、2 つのプロセスが同時にセマフォにアクセスしようとすると、カーネルが自動的にアクセスを同期することだと思いました。これは本当ですか?
c - 既存のコンソール アプリケーションに gtk グラフィックスを追加する - 共有メモリ?
システム v ライブラリ (セマフォ、メッセージ キュー) と複数のプロセスで作成された並行アプリケーション (空港の並行シミュレーション) があります。
スレッドの使用は許可されていません。そのため、プロセス スレッドと複数の「プレーン」プロセスがあります。
GTK (カイロを使用) ライブラリを使用して、空港の交通量を表示するグラフィックを追加したいと思います。
グラフィックを追加するには?空港プロセスに追加しようとすると、gtk_main がアプリケーション全体をブロックします。別のプロセスを作成して共有メモリにグラフィックを追加することを考えましたが、うまくいかないことを読みました。
最も簡単な/最良のオプションは何ですか?
どうもありがとうございました!
javascript - Node.JS および System V キュー / sysv
Linux システムの SYSV 関数を使用している PHP で記述されたファイルがあります。コードで使用されている関数はmsg_send
、 、msg_receive
およびmsg_get_queue
です。私のチームは、Node.JS で同じ機能を記述したいと考えています。私が最も近かったのはhttps://github.com/coderz/node-sysv-ipcです。上記の解決策は中途半端なようです。SYSV メッセージ キューと対話するために使用できる、すぐに利用できるノード モジュールはありますか? 同じことで私を助けてください。
concurrency - IPC セマフォを確実に初期化する方法は?
procA
問題: 2 つのプロセス間の同期に SysV セマフォを使用する方法 (それらを と と呼びましょうprocB
)、両方がシェルから独立して実行され (いずれもfork
/のexec
組み合わせによって生成されない)、セマフォがいずれかによって作成される必要があると仮定します。この2つのプロセス。
引用man semget
:
新しく作成されたセット内のセマフォの値は不確定です。(POSIX.1-2001 はこの点について明示的です。) Linux は、他の多くの実装と同様に、セマフォ値を 0 に初期化しますが、移植可能なアプリケーションはこれに依存できません。セマフォを目的の値に明示的に初期化する必要があります。
POSIX 保証のみに依存し、Linux 固有の保証には依存しない移植可能なコードを書きたいとします。そのため、セマフォ セットをアトミックに作成して初期化することは不可能です。これは、2 つの別々の呼び出しで行う必要があります。
したがって、セマフォ セットを作成するコードは次のprocA
ようになります。
同様に、procB
このように、初めてセマフォを必要とするプロセスが発生した場合でも、セマフォを作成します。それ以外の場合は、セマフォ セットの ID を取得するだけで、すぐに使用できます。
初期化が必要になると、問題が発生し始めます。初期化の指示はもちろん– ですがsemctl
、SETALL
• 初期化は 1 回だけ行うべきであり、 • 初期化はセマフォを使用する前に行う必要があります。これはもちろん… セマフォによって強制できますが、そのような解決策は残念ながら再帰的です。
sysV セマフォのみを使用してこれを行うことは可能ですか? または、これらのセマフォを確実にセットアップできるようにするには、シグナルやメッセージ キューなどの他の IPC 機能に頼る必要があると思いますか?
linux-kernel - sys v カーネル モジュールからユーザー空間プロセスへの共有メモリ
私はLinuxカーネルモジュールの開発に不慣れで、カーネルモジュールからユーザー空間プロセスへのメモリセグメントを共有して、データのコピーの待ち時間を逃れる方法を探しています。
sys v 共有メモリ API を使用しています。2 つのプロセス間でメモリを共有すると問題なく動作しますが、プロセスとカーネル モジュール間でメモリを共有できません。
以下は、カーネルモジュールとユーザー空間アプリの私のコードです
サーバー側: モジュール
クライアント側: プロセス
どんな提案や文書も役に立ちます。