追加読書

追加読書

私は現在LFCSについて学んでいますが、ユーザー生成プロセスとカーネル生成プロセスの違いについて学びました。カーネルによって生成されたプロセスのうち、2つのプロセスサブタイプを定義します。

  1. 内部カーネルプロセス
  2. 外部ユーザープロセス

彼らは、バッファをディスクにフラッシュし、負荷をCPU全体に均等に分散させるなどの内部カーネルプロセスの例を示しました。ただし、外部ユーザープロセスにのみ指定されます。

これらのプロセスは通常のアプリケーションのようにユーザー空間で実行されますが、カーネルによって開始されます。これらは数が少なく、一般に寿命が短い。

私の最初の考えは、これらのものがsystemdのようなinitシステムで実行されるということでしたが、私は一般的に一時的であると言ったので、私の直感はおそらくそうではないと言いました。

外部ユーザープロセスの例は何ですか?

答え1

  1. プログラムが呼び出されます/proc/sys/kernel/hotplug
  2. /sbin/v86dカーネルモジュールで使用されるヘルパールーチンuvesafb

追加読書

答え2

「外部ユーザープロセス」の例はですinit。カーネルは、initユーザー空間の要求なしで(つまり、応答fork()や関連のシステムコールではなく)プロセスを開始します。あなたの考えは役割のsystemdために合理的です。systemdinit

カーネルは、特定のイベントでユーザー空間プロセスの実行をトリガーすることもできます。たとえば、歴史的にhotplugカーネルは、デバイスが追加または削除されたときにユーザー空間の実行可能ファイルを実行しました。このプロセスは寿命が短い。 (これは可能な例ですが、最近このユースケースではこのアプローチは使用されていないようです。)

関連情報