ホームページ  >  記事  >  バックエンド開発  >  オペレーティング システムの知識におけるスレッドの理解

オペレーティング システムの知識におけるスレッドの理解

一个新手
一个新手オリジナル
2017-10-23 09:29:241546ブラウズ

スレッド

スレッドはミニプロセスとも呼ばれます。スレッドはプロセスよりも軽量であり、作成が簡単です。切り替えが簡単になります。集中的な計算と IO 操作が多数ある場合。複数のスレッドを使用すると、これらのアクティビティを重複させることができます。

例。ワープロ ソフトウェアを使用してテキストを処理する場合、複数のスレッドが存在します。ユーザーと対話する GUI インターフェイス。 1 つは、ファイルの自動バックアップを処理することです。シングルスレッドの場合。バックアップ時はキーボード操作は無視されます。ユーザーフレンドリーではありません。

スレッドモデル

プロセスには実行スレッドがあり、そこにはプログラムカウンター、レジスタ、スタック履歴があります。プロセスはリソースをまとめるために使用され、スレッドは CPU スケジューリングの基本単位です。

左側のデータは、すべてのスレッドで共有されるプロセス内のコンテンツであり、スレッドが完了すると他のスレッドとは共有されません。その作業、パス (thread_exit ) 終了

別の共通スレッドが呼び出される (thread_yield) と、移植可能なプログラムを実現するために、スレッドが自動的に CPU を放棄し、別のスレッドを実行できるようになります

POSIX スレッド

。 IEEE はスレッドの標準を開発しました。

ユーザー空間にスレッドを実装します。スレッド全体をユーザー空間に置きます。カーネルは何も知りません。

ユーザーレベルのスレッドでは、ユーザーは独自のスケジューリング アルゴリズムを実装できます。

スレッドはカーネルに実装されます。システムコールを使用します。スレッド テーブルはカーネルに保存されます。カーネル内でスレッドを作成および破棄するコストは非常に高くなります。したがって、フラグを使用して、このスレッドを実行不可能にします。

ハイブリッド実装

カーネルはカーネルスレッドを識別し、それらをスケジュールします。一部のカーネル スレッドは複数のユーザー スレッドによって再利用されます。

以上がオペレーティング システムの知識におけるスレッドの理解の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。