runqueue and waitqueue length
I am working on a run time threading library in which I want to interact with the kernel to find out global system utilization (especially in SMPs).
My question is: Is there a way to find out from an application that how many active threads are there in OS? By active, I mean ready to run AND already running (both separately reported or may be one number). Similarly a number for how many threads are there in wait queues (blocked on I/O or waiting for an event or a signal). A program might have multiple threads. This information is useful for runtime library developers, because they can tune their threads and other scheduling accordingly.
Thanks for your time,