公平性と粒度に関して、プロセス/スレッドスケジューラは一般的なシステムでどのように機能しますか? スケジューラは、プロセス間またはスレッド間を切り替えることによってプロセッサに命令を渡しますか? 後者の場合、プロセスでより多くのスレッドを生成することにより、コンピューティング バウンド ジョブのパフォーマンスを向上させることはできますか? このトピックに関する文献では、プロセスとスレッドを同じ意味で使用しているようです。わかりやすくするために、1 つ以上の実行スレッドの集合であるプロセスの定義を使用します。
複数のスレッドは、単一のプロセッサでの計算に依存するジョブを改善しないと思います。これは、スケジューラのスケジューリングの粒度がプロセス レベルであることを意味します。たとえば、N 個のプロセスがある場合、生成されるスレッドの数に関係なく、各プロセスはプロセッサの 1/N を取得します (もちろん、スケジューラが公平である場合)。
ここで関連する会話を見つけました:Linuxがスレッドとプロセスのスケジューリングを処理する方法
Linux はスレッドとプロセスを区別しないため、スレッドは実際には共有メモリを持つプロセスのように扱われます。この場合、より多くのスレッドを生成することで、計算依存の実行時間を改善できるように思われます。これを正しく解釈していますか?