Linuxでは
軽量プロセスの定義は何ですか?
軽量プロセスは
clone()
システムコールによって生成されたものとして定義されていますか? (これは「Linuxカーネルを理解する」という本で私が理解したものです。)一般的なプロセスは軽量プロセスですか? (そうだと思います)
- Linuxでは、ヘビー級プロセス「?(これは一般的なプロセスを意味しているようですが、重量級プロセスはまだ軽量プロセスですか?)
ありがとうございます。
答え1
いいえ、軽いプロセスは他のプロセスとリソースを共有するスレッドです。初期のLinuxではスレッドとTGIDをサポートしていなかったからです。しかし、これ以上ではありません。最新のLinuxにはスレッドとTGIDという概念がありますgetpid
。今日、人々はもはや軽さや重さについて話しません。
しかし、重要なことは、KERNELを使用すると、同じプロセスのスレッドが思ったよりもはるかに独立している可能性があります(すべて独自のPCBを持っていると思います)、同じプロセスにないスレッドも共有できない素晴らしいものを共有できることです。 。楽しみにしています。 KERNELは、プロセスのスレッドがユーザーの名前空間、マウントの名前空間、PIDの名前空間などのいくつかの項目を共有することを強制しますが、資格情報やその他の項目は共有しません。予想したような「スレッド」を取得するには、pthreadやGoスレッドなどのユーザー空間スレッドに1-1マッピングまたはmnマッピングを使用します。