Linux cgroup:タスクとpid?

Linux cgroup:タスクとpid?

taskこれらaとaの違いは何ですかpid?その中にはpidだけがリストされている/sys/fs/cgroupファイルがあります。tasks

$ ls /sys/fs/cgroup/*/tasks
/sys/fs/cgroup/blkio/tasks        /sys/fs/cgroup/net_cls,net_prio/tasks
/sys/fs/cgroup/cpuacct/tasks      /sys/fs/cgroup/net_cls/tasks
/sys/fs/cgroup/cpu,cpuacct/tasks  /sys/fs/cgroup/net_prio/tasks
/sys/fs/cgroup/cpuset/tasks       /sys/fs/cgroup/perf_event/tasks
/sys/fs/cgroup/cpu/tasks          /sys/fs/cgroup/pids/tasks
/sys/fs/cgroup/devices/tasks      /sys/fs/cgroup/rdma/tasks
/sys/fs/cgroup/freezer/tasks      /sys/fs/cgroup/systemd/tasks
/sys/fs/cgroup/memory/tasks

lsnsこれを行うオプションも提供されます。

-p--task pid対応するpidを持つプロセスが保持している名前空間のみが表示されます。

cgroupがpidタスクを呼び出すのはなぜですか?違いはありますか?

ベストアンサー1

バラよりman cgroups:

cgroups v1 では、以下を区別します。プロセスそして 仕事。このビューでは、プロセスは複数のタスクで構成できます(ユーザースペースの観点からは一般的にスレッドと呼ばれ、このマニュアルページの残りの部分でもそのように言及されています)。 cgroups v1では、プロセス内のスレッドのcgroupメンバーシップを独立して操作できます。

複数のcgroup間でスレッドを分割するcgroups v1の機能は、場合によっては問題を引き起こす可能性があります。例えば、メモリコントローラは、プロセスのすべてのスレッドが単一のアドレス空間を共有するためです。この問題により、プロセスはスレッドのcgroupメンバーシップを独立して操作する機能を元々cgroups v2実装から削除し、その後より制限された形式に復元しました(以下の「スレッドモード」の説明を参照)。

/proc/*/task通常、Linuxの作業はスレッドです。/proctidの隠しアイテム

おすすめ記事