1

共通のセマフォを共有する4つのプロセスがあり、すべてのプロセスの優先度は同じです。ロック内の重要な領域には、fflush() 呼び出しを含む読み取り/書き込み操作があります。

ログで、特定のプロセスからセマフォを解放した後、他のプロセスがロックを取得するのにかなりの時間がかかることを確認しました。

4 つのプロセスすべてが同じ時点でロックされるため、組み込みデバイスでパフォーマンスの問題が発生します。ロックがスレッド間で共有されている場合、 pthread_cond_t を使用して切り替え時間を最小限に抑えることができます。では、プロセス間の切り替え時間を最小限に抑えるにはどうすればよいでしょうか。

4

1 に答える 1

1

カーネル内に保持されているプロセス間のコンテキスト スイッチ。コンテキストの切り替えを行うのはカーネル スケジューラの仕事であるため、ここでは、スケジューラのコンテキスト切り替えパスを高速化すること以外に多くのことを行うことはできません。もう 1 つの方法は、問題を突き止めて、ロックの競合を減らすことでアプリを改善することです (おそらく)。

于 2013-07-23T06:04:32.940 に答える