M:N(ハイブリッド)スレッドの目的は何ですか?


12

言い換えると、ハイブリッドスレッドには、1:1(カーネルのみ)およびN:1(ユーザーのみ)のスレッドを超える利点がありますか?

これは、ユーザーレベルのスレッドとカーネルレベルのスレッドの違いは何ですか?


1
概念を簡単に説明するか、適切な参考文献にリンクしてください。
ラファエル

3
ええと、あなたは両方の恩恵を受けるのですか?(@ラファエル完了)
ジル「SO-悪であるのをやめ

また、ウィキペディアの記事には、いくつかの(不利な)利点が記載されているようです。具体的には何を探していますか?
ラファエル

回答:


7

ハイブリッドスレッドはスレッドプールと非常に似ていると思います

スレッドプールでは、あなたが使用している実行するためにカーネルスレッドを「タスク」、よりもはるかに高くなることが。各タスクに1つのスレッド(カーネルのみのスレッド化)を使用することの利点は、メモリ(仮想および物理)とカーネルオブジェクト(少なくとも特定のWindowsスレッドの場合)などのリソースの消費が少ないことですが、他のOSも似ていると思いますこの点について)。また、コンテキストスイッチが少なくなり、パフォーマンスが向上します(プロセッサと同じ数の実行スレッドがある理想的なケースでは、コンテキストスイッチがほとんどない場合があります)。NMMN

ユーザーのみのスレッド化よりも優れている点は、複数のCPUまたは複数のCPUコアを利用できることです。また、1つのタスクがブロックされた場合、別のカーネルスレッドを作成して、使用可能なCPUをより効率的に使用できます。

そのため、いくつかの追加のユーザーモードスケジューリングを犠牲にして、両方のアプローチの利点を得ることができます。

カーネルのみのスケジューリングよりも不利な点は、レイテンシーが大きくなる可能性があることです。プール内のすべてのスレッドがビジーであり、新しい短いタスクを追加すると、実行を開始する前に長時間待つことがあります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.