Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ ps(1) — GENIX 4.1A

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

kill(1)

w(1)



      PS(1)                   GENIX Programmer's Manual                   PS(1)



      NAME
           ps - process status

      SYNOPSIS
           ps [acegklstuvwx#]

      DESCRIPTION
           Ps  prints  information  about  processes.   Normally,   only   your
           processes  are  candidates  to be printed by ps; specifying a causes
           other users processes to be candidates to be printed;  specifying  x
           includes processes without control terminals in the candidate pool.

           All output formats include, for each process, the  process  id  PID,
           control  terminal  of  the  process TT, cpu time used by the process
           TIME (this includes both user and system time), the stat STAT of the
           process,  and  an  indication  of the COMMAND which is running.  The
           state is given by a sequence of four letters, e.g. RWNA . The  first
           letter  indicates  the  runnability  of  the process: R for runnable
           processes, T for stopped processes, P for processes in page wait,  D
           for  those in disk (or other short term) waits, S for those sleeping
           for less than about 20 seconds, and I for idle (sleeping longer than
           about  20 seconds) processes.  The second letter indicates whether a
           process is swapped out, showing W if it is, or  a  blank  if  it  is
           loaded  (in  core);  a  process  which has specified a soft limit on
           memory requirements and which is exceeding that limit shows >;  such
           a  process is (necessarily) not swapped.  The third letter indicates
           whether a process is running with altered  CPU  scheduling  priority
           (nice);  if  the processes priority is reduced, a N is shown, if the
           process priority has been artificially raised then a '<'  is  shown;
           process  running  without  special treatment have just a blank.  The
           final letter indicates any special treatment of the process for vir-
           tual  memory  replacement;  the letters correspond to options to the
           vadvise (2) call; currently the possibilities  are  A  standing  for
           VA_ANOM,  S  for  VA_SEQL  and  blank  for  VA_NORM ; an A typically
           represents a lisp (1) in garbage collection, S is typical  of  large
           image  processing programs which are using virtual memory to sequen-
           tially address voluminous data.

           Here are the options:

           a    asks for information about all processes with terminals  (ordi-
                narily only one's own processes are displayed).

           c    prints the command name, as stored internally in the system for
                purposes  of  accounting,  rather  than  the command arguments,
                which are kept in the process' address  space.   This  is  more
                reliable,  if  less  informative,  since the process is free to
                destroy the latter information.

           e    asks for the environment to be printed as well as the arguments
                to the command.




      Printed 11/16/83                                                        1





      PS(1)                   GENIX Programmer's Manual                   PS(1)



           g    asks for all processes.  Without this option,  ps  only  prints
                "interesting"  processes.   Processes  are  deemed  to be unin-
                teresting if they are process  group  leaders.   This  normally
                eliminates top-level command interpreters and processes waiting
                for users to login on free terminals.

           k    causes the file / vmcore is used in place  of  /  dev/kmen  and
                /dev/men . This is used for post-mortem system debugging.

           l    asks for a long listing, with fields PPID, CP, PRI,  NI,  ADDR,
                SIZE, RSS and WCHAN as described below.

           S    adds the size SSIZ of the kernel stack of each process (for use
                by system maintainers) to the basic output format.

           tx   restricts output to processes whose controlling tty is x (which
                should  be  specified  as printed by ps, e.g.  t3 for tty3, tco
                for console, td0 for ttyd0, t? for processes with no tty, etc).
                This option must be the last one given.

           u    A user oriented output is produced.  This includes fields USER,
                %CPU, NICE, SIZE, and RSS as described below.

           v    A version of the output containing virtual memory statistics is
                output.   This  includes fields RE, SL, PAGEIN, SIZE, RSS, LIM,
                TSIZ, TRS, %CPU and %MEM, described below.

           w    Use a wide output format  (132  columns  rather  than  80);  if
                repeated,  e.g. ww, use arbitrarily wide output.  This informa-
                tion is used to decide how much of long commands print.

           x    asks even about processes with no terminal.

           #    A process number may be given, (indicated here by #), in  which
                case  the  output  is  restricted to that process.  This option
                must also be last.

           A second argument tells ps where to look for core if the k option is
           given,  instead  of /vmcore.  A third argument is the name of a swap
           file to use instead of the default /dev/drum.  If a fourth  argument
           is  given, it is taken to be the file containing the system's namel-
           ist.  Otherwise, /vmunix is used.

           Fields which are not common to all output formats:

           USER      name of the owner of the process
           %CPU      cpu utilization of the process; this is a decaying average
                     over  up  to  a minute of previous (real) time.  Since the
                     time base  over  which  this  is  computed  varies  (since
                     processes may be very young) it is possible for the sum of
                     all %CPU fields to exceed 100%.
           NICE      (or NI) process scheduling increment (see nice(2))



      Printed 11/16/83                                                        2





      PS(1)                   GENIX Programmer's Manual                   PS(1)



           SIZE      vitual size of the process (in 1024 byte unites)
           RSS       real memory (resident set) size of the  process  (in  1024
                     byte unites)
           LIM       soft limit  on  memory  used,  specified  via  a  call  to
                     vlimit(2); if no limit has been specified then shown as xx
           TSIZ      size of text (shared program) image
           TRS       size of resident (real memory) set of text.
           %MEM      percentage of real memory used by this process.
           RE        residency time of the process (seconds in core)
           SL        sleep time of the process (seconds blocked)
           PAGEIN    number of disk i/o's resulting from references by the pro-
                     cess to pages not to loaded in core.
           UID       numerical user-id of process owner
           PPID      numerical id of parent of process
           CP        short-term cpu utilization factor (used in scheduling)
           PRI       process priority (non-positive when  in  non-interruptible
                     wait)
           ADDR      swap address of the process
           WCHAN     event on which process is waiting (an address in the  sys-
                     tem),  with  the  initial  part of the address trimmed off
                     e.g. 80004000 prints as 4000.

           F         flags     associated     with      process      as      in
                     /usr/include/sys/proc.h:
                     SLOAD       000001 in core
                     SSYS        000002 swapper or pager process
                     SLOCK       000004 process being swapped out
                     SSWAP       000008 save area flag
                     STRC        000010 process is being traced
                     SWTED       000020 another tracing flag
                     SULOCK      000040 user settable lock in core
                     SPAGE       000080 process in page wait state
                     SKEEP       000100 another flag to prevent swap out
                     SDLYU       000200 delayed unlock of pages
                     SWEXIT      000400 working on exiting
                     SPHYSIO     000800 doing physical i/o (bio.c)
                     SVFORK      001000 process resulted from vfork()
                     SVFDONE     002000 another vfork flag
                     SNOVM       004000 no vm, parent in a vfork()
                     SPAGI       008000 init data space on demand, from inode
                     SANOM       010000 system detected anomalous vm behavior
                     SUANOM      020000 user warned of anomalous vm behavior
                     STIMO       040000 timing out during sleep
                     SDETACH     080000 detached inherited by init
                     SNUSIG      100000 using new signal mechanism

           A process that has exited and has a parent, but  has  not  yet  been
           waited  for  by  the  parent is marked <defunct>; a process which is
           blocked trying to exit is marked <exiting>;  Ps  makes  an  educated
           guess  as  to the file name and arguments given when the process was
           created by examining  memory  or  the  swap  area.   The  method  is
           inherently  somewhat  unreliable  and  in  any  event  a  process is



      Printed 11/16/83                                                        3





      PS(1)                   GENIX Programmer's Manual                   PS(1)



           entitled to destroy this information, so the names cannot be counted
           on too much.

      FILES
           /vmunix    system namelist
           /dev/kmem  kernel memory
           /dev/drum  swap device
           /vmcore    core file
           /dev       searched to find swap device and tty names

      SEE ALSO
           kill(1), w(1)

      BUGS
           Things can change while ps is running; the picture it gives is  only
           a close approximation to reality.







































      Printed 11/16/83                                                        4



Typewritten Software • bear@typewritten.org • Edmonds, WA 98026