关于 /proc/pid/sched 的信息

red*_*eye 8 linux scheduler

不确定这是这个问题的正确位置,但这里是:

我正在尝试对高度线程化的服务器进程的 /proc/pid/sched 和 /proc/pid/task/tid/sched 文件有所了解,但是我无法找到有关如何解释的很好的解释文件(这里只有几位:http : //knol.google.com/k/linux-performance-tuning-and-measurement#)。我假设 procfs 中的这个条目与使用 CFS 调度程序运行的内核的较新版本有关?

CentOS 发行版运行在带有抢占式 rt 补丁的 2.6.24.7-149.el5rt 内核版本上。

有什么想法吗?

小智 -3

也许“man proc”是阅读的地方!从手册中:

/proc/[pid]/task
(自 Linux 2.6.0-test6 起) 这是一个目录,其中包含进程中每个线程的一个子目录。每个子目录的名称是线程的数字线程 ID ([tid])(请参阅 gettid(2))。在每个子目录中,都有一组与 /proc/[pid] 目录下具有相同名称和内容的文件。对于所有线程共享的属性,task/[tid]子目录下每个文件的内容将与父/proc/[pid]目录中相应文件的内容相同(例如,在多线程进程中) ,所有的task/[tid]/cwd文件将与父目录中的/proc/[pid]/cwd文件具有相同的值,因为进程中的所有线程共享一个工作目录)。对于每个线程不同的属性,task/[tid]下的对应文件可以具有不同的值(例如,每个task/[tid]/status文件中的各个字段对于每个线程可以是不同的)。

在多线程进程中,如果主线程已经终止(通常通过调用 pthread_exit(3)),则 /proc/[pid]/task 目录的内容不可用。

所以,基本上理解 /proc/pid/task/ 就意味着理解 proc 本身。