ベストアンサー1
Linuxカーネルはマルチスレッドであり、多くのプロセスが同時に実行されます。現在のプロセスのPIDを受け取ると、もはや「現在の」プロセスではない可能性があります。
非プリエンプティブカーネルは完了するまでプロセスを実行できますが、通常はそうではありません。各プロセスの良好なレベルを設定できます。良いレベル-20(悪い)は、システム全体が完了するまでインテリジェントな方法でプロセスに参加します。
プロセスがディスク読み取りを実行する必要があり、システムがメモリを直接読み取ることができる場合、カーネルは他のプロセスが何百万のCPUサイクルを使用できるようにすることができます。
しかし、デスクトップシステムでは、-20という良いレベルに設定されたユーザープロセスはあまりありません。範囲は-10から10までです。有効にすると、top
最も重要なプロセスが表示され、各プロセスは良いレベルで表示されます。
Linuxはマルチスレッドカーネルを使用してUNIXのように動作します。各スレッドは同じプロセスに属することも、異なるプロセスに属することもできます。通常、デスクトップシステムはユーザーの対話に応答する必要があるため、プリエンプティブコアと高速タイマーを使用します。
コアが非プリエンプティブでない限り、サーバーは何度も重大なパフォーマンス低下を経験します。スレッド、プリエンプション、ロックの概念は非常に複雑です。しかし、これはいくつかの概要を提供します。