免責事項:この記事はブロガーオリジナル記事です。ブロガーの同意なしに複製してはなりません。https://blog.csdn.net/RowandJJ/article/details/27962769
はじめに:
プロセスの概念は、二つの異なる特性が含まれています:1つのリソースすべての権利を、2スケジューリング/能力を実行しています..
これら二つの特徴が独立しているため、オペレーティング・システムは、スレッドの概念につながる、独立してそれらを処理することができるはずです。
これら二つの特徴を区別するために、我々は、スレッドや軽量プロセスと呼ばれるユニットを派遣したが、ユニットは、多くの場合、まだプロセスと呼ばれ、すべての適切なリソースを持っています。
スレッドの概念:
オペレーティング・システムは、単一のプロセスをサポートするために、複数の同時パスを実行する機能を指します。
スレッドの強み:
1.プロセスよりも早くプロセスで直接作成されたスレッドを作成します。
2.高速処理の終了よりスレッドを終了します。
すぐにスレッドの切り替え処理と同じプロセス内の3スイッチ。
4.スレッドは、異なるオペレーティング・プログラムの通信効率を向上させます。
(通信プロセスに関与するには、カーネルを必要としています。プロセス内で複数のスレッド間での共有メモリとファイルをカーネルを呼び出さず)
注意
プロセスは、プロセスを共有し、同じアドレス空間内のすべてのスレッドから、他のプロセスのための部屋を作るためにメモリアドレス空間をスワップアウトするプロセスのアドレス空間に関わる業務を保留ので、彼らが中断されたとき、彼らは同じです:。
スレッドカテゴリ:
1.ユーザレベルスレッド:
純粋なユーザレベルスレッドのソフトウェアでは、アプリケーションによってすべての仕事関連のスレッド管理が完成されます。カーネルスレッドのあまり意識があります。どんなにアプリケーションがスレッドライブラリを使用することができますどのようなマルチスレッド手続きできるように設計されていません。
スレッド・ライブラリーは、ユーザーレベルのスレッド管理コースコードのためのスレッドを作成し、破壊含まれたパッケージ、実行するスレッド、スレッドのスケジューリングコード間でのメッセージやデータを渡すコードだけでなく、スレッドコンテキストコードの保存と復元のために使用されています。
利点:
1.スレッドスイッチは、特権カーネルの状態をする必要はありません。
2.スケジューリングは、アプリケーションに関連付けることができます。
オペレーティングシステムは、ユーザーレベルのスレッドをサポートするための基盤となるカーネルの変更を必要としない何にかかわらず実行する3.ユーザレベルスレッド
短所:
このスレッドがブロックされているのみならず、システムコールを実行している1ユーザレベルスレッドは、プロセスは、すべてのスレッドがブロックされています。
プロセスが実行できるスレッドが1つしかありません一度だけなので、一度2.カーネルは、プロセッサにプロセスを割り当てます。
2.カーネルレベルスレッド:
純粋なカーネルレベルのスレッド。スレッド管理上のすべての作業は、カーネル、アプリケーションスレッド管理コードのどの部分によって完成されます。欠点は、スレッドに配信スレッドがあるということです。カーネルは、状態遷移を必要とします。