Windows system >> Windowsの知識 >  >> Linuxシステムチュートリアル >> Linuxチュートリアル >> ユーザーレベルスレッドとカーネルレベルスレッドの概要

ユーザーレベルスレッドとカーネルレベルスレッドの概要

  

マルチスレッドオペレーティングシステム
では、各システムの実装方法は異なります。ユーザレベルのスレッドはいくつかのシステムに実装され、カーネルレベルのスレッドはいくつかのシステムに実装されます。

1.カーネルレベルのスレッド:

(1)スレッドの作成、取り消し、切り替えなどどちらも直接のカーネル実装が必要です。つまり、カーネルはスケジュール可能なエンティティであるすべてのスレッドを認識しています。 (2)これらのスレッドはシステム全体のリソースをめぐって競合する可能性があります。 (3)カーネル空間内のカーネルサポートスレッド毎にスレッド制御ブロック(TCB)を設定し、カーネルはスレッドの存在を検知し、制御ブロックに従って制御する。ある程度、プロセスと似ていますが、作成およびスケジューリングのオーバーヘッドがプロセスよりも小さいという点が異なります。一部の統計は1:10です。

2.ユーザーレベルのスレッド:

(1)ユーザーレベルのスレッドはユーザー空間にのみ存在します。 ——> kernel(3)(2)kernelを比較してもユーザースレッドは見えません。 ——>重要な相違点(3)カーネルリソースの割り当ては依然としてプロセスに従って割り当てられ、各ユーザースレッドはプロセス内のリソースに対してのみ競合できます。

ユーザースレッドは中間システムで実行されます。現在、中間システムを実装する方法は2つあります。すなわち、ランタイムシステム(Runtime System)とカーネル制御スレッドです。 「ランタイムシステム」は、本質的にスレッドを管理および制御するために使用される機能の集まりです。作成、元に戻す、スレッドの同期と通信、およびスケジュールされた機能を含む機能。これらの関数は、ユーザースレッドとカーネル間のインターフェイスとしてユーザー空間に存在します。ユーザースレッドはシステムコールを使用できませんが、代わりにスレッドがシステムリソースを必要とするとき、要求はランタイムに渡され、ランタイムは対応するシステムコールを介してシステムリソースを取得します。カーネル制御スレッド:システムはプロセスにいくつかの軽いプロセス(LWP)を分配しますLWPはシステムコールを通してカーネルによって提供されるサービスを得ることができます、そして、プロセスのユーザスレッドはマルチプレクシングを通してLWPに関連付けられてカーネルのサービスを得ます。

カーネルスレッドの利点:(1)(2)複数のプロセッサがある場合、プロセスの複数のスレッドが同時に実行できます。(1)カーネルによってスケジュールされます。

ユーザープロセスの利点:(1)スレッドのスケジューリングはカーネルの直接参加を必要とせず制御が簡単デメリット:(1)リソーススケジューリングがプロセスに従って行われるマルチプロセッサでは、同じプロセス内のスレッドは同じプロセッサにしか分割できない。時間多重化

Copyright © Windowsの知識 All Rights Reserved