> the RunQueue length as reported by sar includes *both* processes on > CPU and processes waiting for CPU. > http://shallahamer-orapub.blogspot.com/2010/07/os-cpu-run-queue-not-what-it-appears.html > (Particularly on Linux) Linux may be the only one among today's popular OS's that mixes running and runnable. Not sure why it does that. Maybe to simplify the scheduler code. In Linux source code, you see lines like this https://www.kernel.org/pub/linux/kernel/people/rml/sched/for_alan/200-sched-yield.patch + * yield - yield the current processor to other threads. + * + * this is a shortcut for kernel-space yielding - it marks the + * thread runnable and calls sys_sched_yield(). + */ +void yield(void) +{ + set_current_state(TASK_RUNNING); where "runnable" and "running" are used interchangeably. In Windows, e.g., a thread state can be any of Ready, Standby, Running, Waiting, Transition, Terminated. (Newer verions have a few more.) Solaris has free, sleep, run (actually runnable), onproc (i.e. running), zomb, stopped. Yong Huang -- //www.freelists.org/webpage/oracle-l