Caution: This version of this document is no longer maintained. For the latest documentation, see http://www.qnx.com/developers/docs.

psin

Display system information in a Photon window

Syntax:

psin [-h height] [-S i|m|n]
     [-s server] [-w width] [-x x_pos] [-y y_pos]

Runs on:

Neutrino

Options:

-h height
Set the initial height of window to height pixels.
-S i|m|n
Specify the initial window state (i - iconify, m - maximize, n - normal).
-s server
Specify the server node or device name.
-w width
Set the initial width of window to width pixels.
-x x_pos
Initial x_pos position of window.
-y y_pos
Initial y_pos position of window.

Description:

The psin utility displays system information in a graphical manner (for a textual version of this command, see sin).

When you invoke psin, it displays a Photon window titled System Process Inspector.

System information

This window contains two menu items, and an upper and lower pane.

Menu items

There are two menus at the top of the System Process Inspector window: File and Action.

The File menu:


Note: This feature is currently under development.

The Action menu lets you:

Upper pane

The upper pane in the System Process Inspector window displays the following headers:

Header Description
Pid Process ID
Code Size of code memory
Data Size of data memory
Stack Amount of stack currently mapped
Vstack Maximum amount of stack allowed
CPU Total CPU occupancy time, in milliseconds

You can sort the displayed processes by clicking on column headers. When you've selected the process you're interested in, you can view specific information about that process by selecting a particular tab in the lower pane.

Lower pane

The lower pane in the System Process Inspector window displays several tabs used to provide detailed information about a selected process.

Threads

Clicking this tab shows information about the threads of the displayed process, as follows:

This column: Shows this:
Tid Thread ID
Priority Scheduling priority number and scheduling algorithm (see below)
State Current state of the thread (see below for possible states)
Blocked The PID that this process is blocked on
IP The EIP register set used by the displayed processes
CPU CPU occupancy time, in milliseconds

The letter following the scheduling priority number stands for the scheduling algorithm used, as follows:

For more information on these scheduling algorithms, see "Thread scheduling" in the QNX Neutrino Microkernel chapter of the System Architecture guide.

Possible thread states:

State: Meaning:
CONDVAR Blocked on a condition variable
DEAD Terminated, waiting for a join by another thread
INTERRUPT Blocked, waiting for interrupt
JOIN Blocked, waiting to join another thread
MUTEX Blocked on a mutual exclusion lock
NANOSLEEP Sleeping for a short time
READY Waiting while processor executes another thread
RECEIVE Blocked on a message receive
REPLY Blocked on a message reply
RUNNING Being executed
SEM Waiting for a semaphore to be posted
SEND Blocked on a message send
SIGSUSPEND Blocked waiting for a signal
SIGWAITINFO Blocked waiting for a signal
STACK Waiting for virtual address space allocation
STOPPED Blocked, waiting for a SIGCONT signal
WAITCTX Waiting for a non integer (e.g. floating point) context
WAITPAGE Waiting for physical memory allocation
WAITTHREAD Waiting for child thread creation

Memory

Clicking this tab shows details about the memory used by the displayed process, as follows:

This column: Shows this:
Name Name of program or device
Vaddr Virtual address
Offset Virtual address offset
Code Size of code memory
Map Code memory-mapping flags (see below)
Data Size of data memory
Map Data memory-mapping flags (see below)

Memory-mapping flags:

For more information, see mmap() in the Neutrino Library Reference.

FDs

Clicking this tab shows information about the file descriptors used by the displayed process, as follows:

This column: Shows this:
FD File descriptor
Server PID Process ID of server
Mode W (write) R (read)
Offset/Size Memory details
Pathname FD path

A suffix of s on a file descriptor indicates that the connection is a side channel created with the _NTO_SIDE_CHANNEL flag. For more information, see ConnectAttach() in the Neutrino Library Reference.

Args

Click this tab to see the arguments used when the displayed process was started.

Env

Click this tab to see the environment variables used by the displayed process.

Signals

Clicking this tab shows the signal state of the displayed process, as follows:

This column: Shows this:
Tid Thread ID
Ignored/Blocked (64-49.48-33) Mask for signals 33-64
Ignored/Blocked (32-17.16-1) Mask for signals 1-32
Pending (64-49.48-33) Signals 33-64 waiting to be unmasked
Pending (32-17.16-1) Signals 1-32 waiting to be unmasked

Users

Clicking this tab shows information about the user IDs associated with the displayed process, as follows:

This column: Shows this:
UID Real user ID
EUID Effective user ID
SUID Saved user ID
GID Real group ID
EGID Effective group ID
SGID Saved group ID

Timers

Clicking this tab shows information about the timers used by the displayed process, as follows:


Note: This feature is under development.

This column: Shows this:
Timer PID and process name
Stuff TBD

Intr

Clicking this tab shows information about interrupts used by the displayed process, as follows:


Note: This feature is under development.

This column: Shows this:
FD File descriptor
Data TBD

Registers


Note: Currently, this feature is available only for x86 platforms.

Clicking this tab shows information about the register sets used by the displayed process, as follows:

This column: Shows this:
TID Thread ID
EIP Instruction pointer
EAX Accumulation register
EBX Accumulation register
ECX Accumulation register
EDX Accumulation register
ESI General-purpose register
EDI General-purpose register
EBP Stack-frame pointer
ESP Stack pointer
EFLAGS Status register

Times

Clicking this tab gives timing information about the displayed process, as follows:

This column: Shows this:
Start Time The date and time this process was started
System Milliseconds of CPU time taken by the system on behalf of this process
User Milliseconds of CPU time taken by this process itself
Child System Milliseconds of CPU time taken by the system on behalf of the children of this process
Child User Milliseconds of CPU time taken by the children of this process

Examples:

Run psin, with the window at an initial position of (10,10) and with an initial dimension of 200*300:

psin -x10 -y10 -h200 -w300

Run psin using the Photon server on the computer known as remote_server on your network:

psin -s remote_server

or:

psin -s remote_server/dev/photon

See also:

hogs, pidin, sin

Fine-Tuning Your System in the Neutrino User's Guide