1

軽量プロセスはどのように機能し、ユーザー スレッドをカーネル スレッドにマップする必要があるのはなぜですか?

また、軽量プロセスはカーネルスレッドをサポートする OS でしか思い浮かびませんか?

4

1 に答える 1

0

実際Light Weight Processes(lwp) は単一のカーネル スレッド上のユーザー空間で実行され、そのアドレス空間とシステム リソースを同じプロセス内の他の LWP と共有します。スレッド ライブラリによって管理される複数のユーザー レベル スレッドは、1 つまたは複数の LWP の上に配置できるため、マルチタスクをユーザー レベルで実行できます。
その背後にある理由はLWPs are slower and more expensive、ユーザースレッドよりも作成することです。LWP が作成されるたびに、最初に対応するカーネル スレッドを作成するためのシステム コールを作成する必要があります。これにより、カーネル モードに切り替わります。したがって、同じスペースに複数のユーザー レベルのスレッドを作成すると、システム コールとプリエンプションがなく、マルチタスクが提供されるため、より高速に動作します。

于 2012-11-24T02:37:22.410 に答える