Windows system >> Windowsの知識 >  >> Linuxシステムチュートリアル >> Linuxチュートリアル >> Linuxの軽量プロセスと通常プロセスの違い

Linuxの軽量プロセスと通常プロセスの違い

  

軽量プロセスと通常プロセスの違いは、前者は独立したユーザー空間を持たない(カーネルモードスレッドはユーザー空間を持たず、ユーザー状態スレッドはユーザー空間を共有する)ということです。独立したメモリ空間があります;それはデータ構造で表されます:スレッドのmm = nullまたは他のスレッドと共有され、プロセスは別々のmm_structを持ちます。


カーネルスレッドkernel threadはカーネルモードでのみ動作し、ユーザーコンテキストの影響を受けません。


Øプロセッサの競合:システム全体のプロセッサリソースの競合;

Øリソースの使用:使用されるリソースはカーネルスタックとコンテキストスイッチのみです。レジスタスペースの確保

Øスケジューリング:スケジューリングのオーバーヘッドは、プロセス自体のコストとほぼ同じになります。

Ø同期効率:リソースの同期とデータの共有は、プロセス全体より同期がよく共有されます。下がります。ライトウェイトプロセスライトウェイトプロセス(LWP)は、カーネル上に構築され、カーネルによってサポートされるユーザースレッドで、それぞれが特定のカーネルスレッドに関連付けられているカーネルスレッドの高度に抽象化されたものです。カーネルスレッドはカーネルによってのみ管理され、通常のプロセスと同じようにディスパッチされます。

軽量プロセスはclone()システムコールで作成され、パラメータはCLONE_VMで、これは共有プロセスのアドレス空間と親プロセスとのシステムリソースです。

通常のプロセスとは異なります。LWPには最低1つの実行コンテキストとスケジューラが必要とする統計しかありません。


Øプロセッサの競合:特定のカーネルスレッドに関連付けられているため、システム全体でプロセッサリソースと競合する可能性があります。

Øリソースの使用:親プロセス付き共有プロセスアドレス空間

Øスケジューリング:通常のプロセスのようなユーザースレッドのスケジューリングユーザースレッドは、ユーザースペースのスレッドライブラリに完全に組み込まれており、ユーザースレッドの作成、スケジューリング、同期、破棄はすべてユーザースペースにあります。カーネルの助けを借りる必要はありません。だからこのスレッドは非常に低コストで効率的です。

Øプロセッサの競合:カーネルに対して透過的な単純なユーザースレッドがユーザー空間に組み込まれているため、独自のプロセスが単独でプロセッサの競合に参加し、プロセスのすべてのスレッドが競合に参加します。リソース

Øリソースを使用する:所有しているプロセスとプロセスアドレススペースおよびシステムリソースを共有します。

Øスケジューリング:ユーザー空間に実装されたスレッドライブラリによる所有プロセスのスケジューリング

Copyright © Windowsの知識 All Rights Reserved