実行ファイルが同時に異なる独立プロセスで実行できるかどうかはどのように決定されますか?

実行ファイルが同時に異なる独立プロセスで実行できるかどうかはどのように決定されますか?

出版しました一つの質問ワインの下で複数のプロセスで独立して実行可能ファイル(PDFビューア)を実行する方法について説明します(独立は、プロセス間の通信がなく、並列コンピューティングではないことを意味します)。一部の会社のPDFエディタ(改善されたビューアバージョン)はこれを行うことができないと聞きました。

質問

  • もしそうなら、複数のプロセスで実行可能ファイルを独立して実行できるのか、それとも実行しないようにするのですか?
  • プログラム自体で実装されていますか、それともいくつかのライブラリで実装されていますか?
  • オペレーティングシステムではこれを実装できませんか?

ベストアンサー1

これはプログラム自体によってほぼ確実に実装され、オペレーティングシステムが最も基本的なプログラムを除くすべてのプログラムを実行することはおそらく不可能です。

ただし、プログラムがすでに実行されているかどうかを確認する方法を知っていて、その方法が影響を受ける可能性がある場合は、実際に実行可能ファイルをインポートして新しいプロセスを開始または開始しない可能性があります。

Emacsなどの一部のアプリケーションでは、これを特に簡単に実行できます。 Emacsを実行する標準的な方法は、呼び出すたびに新しいプロセスを起動することです。ただし、Emacsをサーバーモードで明示的に実行し、emacsclientそれを明示的に実行して既存のサーバーに新しいファイルにアクセスするように指示することもできます。

一方、Firefoxは新しいプロセスを強制的に開始するコマンドラインオプションを提供します-no-remoteが、デフォルトは可能であればすでに実行されているプロセスと対話することです。

多くの単純なネイティブアプリケーションでは、単にクエリを実行してこれを行いますps。これはいくつかの方法でバイパスすることができます。産業用ソフトウェアの問題は、ユーザーが特定のアプリケーションが使用されているかどうかを決定する方法がほとんどわからないことです。実行可能ファイルと対話するすべての開いているファイルを調べることができるUnixでも、アプリケーションが実行中であることを記録するファイル(存在する場合)を特定できるという保証はありません。

おすすめ記事