~からこの答え - ソフトウェアスレッドとハードウェアスレッドソフトウェアスレッドは、オペレーティングシステムによって管理されるスレッドです。しかし、私はユーザースレッドという別の用語も学びました。これらのスレッドはカーネルスレッドではありません。つまり、オペレーティングシステムはこれらのスレッドについて知りません。もしそうなら、ソフトウェアスレッドはユーザースレッドを含みますか?
stackoverflowで何の答えも得られませんでしたが、Linuxの文脈でもアイデアは同じだと思います。 Linuxで使用されている用語について尋ねています。ありがとうございます。
ちなみに私が見つけた結果Quoraの便利なリソース。
答え1
これはしばしば用語が過剰になる領域です。同じ用語でも状況によって異なる意味を持ちます。さまざまな用語に関連する意味が時間の経過とともに頻繁に変化するという事実は役に立たないため、読んでいるテキストの年齢が重要です。
区別すべき側面が多いか、少なくとも2つの主要な側面がある。
- ユーザースレッドとカーネルスレッドは、実行コンテキストまたは管理コンテキストを参照できます。 Linuxの「カーネルスレッド」は、一般に電子を表します。カーネルスレッドは、カーネル目的のためにカーネル内で実行されるスレッドです
ps
。例えば[kthreadd]
、[khugepaged]
…)。 - SOの回答で述べたように、ソフトウェアスレッドとハードウェアスレッドは問題のスレッドの特性を表します。どちらの場合も、スレッドの概念は、複数の実行スレッドを並列に実行するというアイデアです。ソフトウェア側では軽いプロセスで、ハードウェア側では「軽量」CPU(Intel用語でハイパースレッディング)です。
言及する「ユーザースレッド」は一般的にグリーンライン。カーネル介入なしでユーザースペースで管理されるソフトウェアスレッド。カーネルやユーザー空間に実装されている多くの概念と同様に、コスト認識が変化するにつれて、時間の経過とともにその使用も進化しました。以前は、他のオペレーティングシステムではカーネルがスレッドをうまくサポートしていないため、ユーザースペースに実装されました。カーネルが改善され、ソフトウェアがカーネルスレッドの使用を開始しました。その後、新しい環境でカーネルスレッドが高すぎると判断し、実際にそのようなことが起こりました。
あなたの質問に答えると、ユーザースレッドはソフトウェアスレッドなので、「ソフトウェアスレッド」という用語にはこれが含まれます。