スイッチのオーバーヘッドが 1 つだけで、同時に多数のシステム コールを実行できるかどうか疑問に思っていました。同時に多くの (128) システム コールを行う必要があるため、これが必要です。カーネルとユーザーランドを256回以上切り替えることなくこれを行うことができれば、(速度に敏感な)ライブラリを大幅に高速化できると思います。
2 に答える
8
アプリケーションプログラムからそれを行うことは本当にできません。あなたができることは、これらの操作を実装し、単純な API を提示するロード可能なカーネル モジュールを構築することです。その後、コンテキストを一度変更し、すべての作業を行ってから戻ることができます。
ただし、この種の最適化に関する質問のほとんどと同様に、最初に尋ねることは、「なぜそれが必要になると思いますか?」ということです。タイミング情報などはありますか?プロファイリングしましたか?実際にどの程度のパフォーマンスの問題がありますか? また、複雑さを増すことはスピードアップに見合う価値があるでしょうか?
于 2012-06-16T04:43:20.993 に答える
0
Linux がすぐにシステムコール チェーンをサポートするとは思えません。これを別のカーネルに実装してアプリケーションを移植する方がうまくいくかもしれません。
そうは言っても、カーネル空間でジョブを実行するプロキシを作成することは難しくありませんが、アップストリームにマージされるとは思わないでください。私はリアルタイムのものに取り組んでおり、そのような解決策がありましたが、サポートの問題のために本番環境で使用されることはありませんでした:/.
于 2012-06-16T04:59:18.640 に答える