Unix/Linux Go Back    

NetBSD 6.1.5 - man page for proc_compare (netbsd section 3)

Linux & Unix Commands - Search Man Pages
Man Page or Keyword Search:   man
Select Man Page Set:       apropos Keyword Search (sections above)

PROC_COMPARE(3) 		   BSD Library Functions Manual 		  PROC_COMPARE(3)

     proc_compare -- compare two processes' interactivity

     System Utilities Library (libutil, -lutil)

     #include <sys/sysctl.h>

     proc_compare(const struct kinfo_proc2 *p1, const struct kinfo_lwp *l1,
	 const struct kinfo_proc2 *p2, const struct kinfo_lwp *l2);

     The proc_compare() function compares two processes that are on the same terminal for their
     interactivity.  This means that the process returned is the one that has a better chance
     being the active foreground process on that tty.  This algorithm is used in the kernel for
     SIGINFO reporting and in userland by w(1).

     The algorithm used is as follows:
	   o   If one of them is runnable, it is preferred.
	   o   If both are runnable, the one with the largest CPU percent is preferred.
	   o   In a CPU percent tie, the one started more recently wins.
	   o   If none are runnable, and one of them is a zombie, the non-zombie is preferred
	   o   If both are zombies, the one started more recently wins.
	   o   If neither is a zombie, the one with the smaller sleep time wins.
	   o   In a tie, and one is sleeping in non-interruptible sleep, prefer that one.
	   o   If both are in the same state, the one started more recently is preferred.
     In all cases where the most recently started wins, if there was no winner, the one with the
     largest PID wins.

     The proc_compare() function returns 0 if p1 is to be preferred and 1 if p2 is to be pre-


     The proc_compare() was extracted from src/sys/kern/tty.c and src/usr.bin/w/proc_compare.c
     and merged in NetBSD 6.0.

BSD					 October 20, 2011				      BSD
Unix & Linux Commands & Man Pages : ©2000 - 2018 Unix and Linux Forums

All times are GMT -4. The time now is 04:55 PM.