|
|
1.1 root 1: .TH PSTAT 8 "1 April 1981"
2: .UC 4
3: .SH NAME
4: pstat \- print system facts
5: .SH SYNOPSIS
6: .B /etc/pstat
7: .B \-aixptufT
8: [
9: .B suboptions
10: ] [
11: .B system
12: ] [
13: .B corefile
14: ]
15: .SH DESCRIPTION
16: .I Pstat
17: interprets the contents of certain system tables.
18: If
19: .I corefile
20: is given, the tables are sought there, otherwise
21: in
22: .I /dev/kmem.
23: The required namelist is taken from
24: .I /vmunix
25: unless
26: .I system
27: is specified.
28: Options are
29: .TP \w'WCHAN\ 'u
30: .B \-a
31: Under
32: .BR \-p ,
33: describe all process slots rather than just active ones.
34: .TP
35: .B \-i
36: Print the inode table with the these headings:
37: .IP LOC
38: The core location of this table entry.
39: .PD 0
40: .IP FLAGS
41: Miscellaneous state variables encoded thus:
42: .RS
43: .IP L
44: locked
45: .IP U
46: update time
47: .RI ( fs (5))
48: must be corrected
49: .IP A
50: access time must be corrected
51: .IP M
52: file system is mounted here
53: .IP W
54: wanted by another process (L flag is on)
55: .IP T
56: contains a text file
57: .IP C
58: changed time must be corrected
59: .IP S
60: shared lock applied
61: .IP E
62: exclusive lock applied
63: .IP Z
64: someone waiting for an exclusive lock
65: .RE
66: .IP CNT
67: Number of open file table entries for this inode.
68: .IP DEV
69: Major and minor device number of file system in which
70: this inode resides.
71: .IP RDC
72: Reference count of shared locks on the inode.
73: .IP WRC
74: Reference count of exclusive locks on the inode (this may
75: be > 1 if, for example, a file descriptor is inherited across a fork).
76: .IP INO
77: I-number within the device.
78: .IP MODE
79: Mode bits, see
80: .IR chmod (2).
81: .IP NLK
82: Number of links to this inode.
83: .IP UID
84: User ID of owner.
85: .IP SIZ/DEV
86: Number of bytes in an ordinary file, or
87: major and minor device of special file.
88: .PD
89: .TP
90: .B \-x
91: Print the text table with these headings:
92: .IP LOC
93: The core location of this table entry.
94: .PD 0
95: .IP FLAGS
96: Miscellaneous state variables encoded thus:
97: .RS
98: .IP T
99: .IR ptrace (2)
100: in effect
101: .IP W
102: text not yet written on swap device
103: .IP L
104: loading in progress
105: .IP K
106: locked
107: .IP w
108: wanted (L flag is on)
109: .IP P
110: resulted from demand-page-from-inode exec format (see
111: .IR execve (2))
112: .RE
113: .PD
114: .IP DADDR
115: Disk address in swap, measured in multiples of 512 bytes.
116: .IP CADDR
117: Head of a linked list of loaded processes using this text segment.
118: .IP SIZE
119: Size of text segment, measured in multiples of 512 bytes.
120: .IP IPTR
121: Core location of corresponding inode.
122: .IP CNT
123: Number of processes using this text segment.
124: .IP CCNT
125: Number of processes in core using this text segment.
126: .PD
127: .TP
128: .B \-p
129: Print process table for active processes with these headings:
130: .IP LOC
131: The core location of this table entry.
132: .PD 0
133: .IP S
134: Run state encoded thus:
135: .RS
136: .IP 0
137: no process
138: .IP 1
139: waiting for some event
140: .IP 3
141: runnable
142: .IP 4
143: being created
144: .IP 5
145: being terminated
146: .IP 6
147: stopped under trace
148: .RE
149: .IP F
150: Miscellaneous state variables, or-ed together (hexadecimal):
151: .RS
152: .IP 000001 9n
153: loaded
154: .IP 000002
155: the scheduler process
156: .IP 000004
157: locked for swap out
158: .IP 000008
159: swapped out
160: .IP 000010
161: traced
162: .IP 000020
163: used in tracing
164: . \".IP 000040
165: . \"locked in by
166: . \".IR lock (2).
167: .IP 000080
168: in page-wait
169: .IP 000100
170: prevented from swapping during
171: .IR fork (2)
172: .IP 000200
173: gathering pages for raw i/o
174: .IP 000400
175: exiting
176: .IP 001000
177: process resulted from a
178: .IR vfork (2)
179: which is not yet complete
180: .IP 002000
181: another flag for
182: .IR vfork (2)
183: .IP 004000
184: process has no virtual memory, as it is a parent in the context of
185: .IR vfork (2)
186: .IP 008000
187: process is demand paging data pages from its text inode.
188: .IP 010000
189: process has advised of anomalous behavior with
190: .IR vadvise (2).
191: .IP 020000
192: process has advised of sequential behavior with
193: .IR vadvise (2).
194: .IP 040000
195: process is in a sleep which will timeout.
196: .IP 080000
197: a parent of this process has exited and this process
198: is now considered detached.
199: .IP 100000
200: process used 4.1BSD compatibility mode signal primitives,
201: no system calls will restart.
202: .IP 200000
203: process is owed a profiling tick.
204: .RE
205: .IP POIP
206: number of pages currently being pushed out from this process.
207: .IP PRI
208: Scheduling priority, see
209: .IR setpriority (2).
210: .IP SIGNAL
211: Signals received (signals 1-32 coded in bits 0-31),
212: .IP UID
213: Real user ID.
214: .IP SLP
215: Amount of time process has been blocked.
216: .IP TIM
217: Time resident in seconds; times over 127 coded as 127.
218: .IP CPU
219: Weighted integral of CPU time, for scheduler.
220: .IP NI
221: Nice level,
222: see
223: .IR setpriority (2).
224: .IP PGRP
225: Process number of root of process group
226: (the opener of the controlling terminal).
227: .IP PID
228: The process ID number.
229: .IP PPID
230: The process ID of parent process.
231: .IP ADDR
232: If in core, the page frame number of the first page of the `u-area' of
233: the process.
234: If swapped out, the position in the swap area
235: measured in multiples of 512 bytes.
236: .IP RSS
237: Resident set size \- the number of physical page frames allocated
238: to this process.
239: .IP SRSS
240: RSS at last swap (0 if never swapped).
241: .IP SIZE
242: Virtual size of process image (data+stack) in multiples of 512 bytes.
243: .IP WCHAN
244: Wait channel number of a waiting process.
245: .IP LINK
246: Link pointer in list of runnable processes.
247: .IP TEXTP
248: If text is pure, pointer to location of text table entry.
249: .IP CLKT
250: Countdown for real interval timer,
251: .IR setitimer (2)
252: measured in clock ticks (10 milliseconds).
253: .PD
254: .TP
255: .B \-t
256: Print table for terminals
257: with these headings:
258: .IP RAW
259: Number of characters in raw input queue.
260: .PD 0
261: .IP CAN
262: Number of characters in canonicalized input queue.
263: .IP OUT
264: Number of characters in putput queue.
265: .IP MODE
266: See
267: .IR tty (4).
268: .IP ADDR
269: Physical device address.
270: .IP DEL
271: Number of delimiters (newlines) in canonicalized input queue.
272: .IP COL
273: Calculated column position of terminal.
274: .IP STATE
275: Miscellaneous state variables encoded thus:
276: .RS
277: .IP W
278: waiting for open to complete
279: .IP O
280: open
281: .IP S
282: has special (output) start routine
283: .IP C
284: carrier is on
285: .IP B
286: busy doing output
287: .IP A
288: process is awaiting output
289: .IP X
290: open for exclusive use
291: .IP H
292: hangup on close
293: .RE
294: .IP PGRP
295: Process group for which this is controlling terminal.
296: .IP DISC
297: Line discipline; blank is old tty OTTYDISC or ``new tty'' for NTTYDISC
298: or ``net'' for NETLDISC (see
299: .IR bk (4)).
300: .PD
301: .TP
302: .B \-u
303: print information about a user process;
304: the next argument is its address as given
305: by
306: .IR ps (1).
307: The process must be in main memory, or the file used can
308: be a core image and the address 0.
309: .TP
310: .B \-f
311: Print the open file table with these headings:
312: .IP LOC
313: The core location of this table entry.
314: .IP TYPE
315: The type of object the file table entry points to.
316: .PD 0
317: .IP FLG
318: Miscellaneous state variables encoded thus:
319: .RS
320: .IP R
321: open for reading
322: .IP W
323: open for writing
324: .IP A
325: open for appending
326: .RE
327: .IP CNT
328: Number of processes that know this open file.
329: .IP INO
330: The location of the inode table entry for this file.
331: .IP OFFS/SOCK
332: The file offset (see
333: .IR lseek (2)),
334: or the core address of the associated socket structure.
335: .PD
336: .PP
337: .B \-s
338: print information about swap space usage: the number of (1k byte) pages used
339: and free is given as well as the number of used pages which belong
340: to text images.
341: .PP
342: .B \-T
343: prints the number of used and free slots in the several system tables
344: and is useful for checking to see how full system tables have become if the
345: system is under heavy load.
346: .SH FILES
347: .ta \w'/dev/kmem 'u
348: /vmunix namelist
349: .br
350: /dev/kmem default source of tables
351: .SH SEE ALSO
352: ps(1),
353: stat(2),
354: fs(5)
355: .br
356: K. Thompson,
357: .I UNIX Implementation
358: .SH BUGS
359: It would be very useful if the system recorded \*(lqmaximum occupancy\*(rq
360: on the tables reported by
361: .B \-T;
362: even more useful if these tables were dynamically allocated.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.