
							SYSMON
						System Monitor
		(C)	Copyright 1991,	1992, 1994,	1996 by Robert Krten


DESCRIPTION
-----------

The SYSMON program has been designed to allow a QNX 4 user to get an overall
view of the system as it is running.  Top CPU time processes, top memory
users, etc, can be displayed in a full screen manner.

Here is a command summary, and a description of the various operating modes:

	sysmon [options]

	Where [options]	can be:

		m=<monitorType>

			Where <monitorType>	can be one of:

				interrupts	  will display a count of interrupts / sample
				kcalls        will display kernel calls / sample
				physmem		  will display a map of the physical memory usage
				register	  will display the process registers
				states		  will display QNX process states
				status		  will display a summary of process activity
				topcode		  will monitor the top code using processes
				topcpu		  will monitor the top CPU time processes
				topdata		  will monitor the top data using processes
				topmem		  will monitor the top memory using processes

			<monitorType> defaults to "topcpu".


		+histogram

			Displays a histogram on the lower portion of the screen showing the
			current parameter set over a longer period of time.	 Requires more
			than 25 lines of display.  Note that for m=topcpu, only processes
			with a priority greater than 1 will count.  Note also that not all
			monitor types have an associated histogram mode.

		a=<attribute>

			Defines the terminal colour attributes (default to current).

Hitting "q<return> will exit SYSMON, and get back to the QNX 4 prompt.

Note that the <monitorType> can be abbreviated to the minimum number of
characters required to uniquely specify it.


RELEASE HISTORY
---------------

0.100

Version 0.100 is the first public release of SYSMON.  It allows all of the
features listed in the description,	but the	+histogram function only works
for m=topcpu.  Other +h functionality may be added eventually.

0.200

Version 0.200 has the following changes from previous versions:

	o	added label	to TOPCPU histogram	for	height (0, 1/2,	and	1)

	o	changed	physmem	display	to show	type of	memory,	as follows:

			C	memory is code,	and readable
			G	memory is global
			R	memory is data,	read only
			W	memory is data,	read and write
			X	memory is code,	execute only

	o	histogram now displays its scale immediately

	o	changed	so that	"q"	will exit, not just	any	key

	o	added m=register type

	o	modified so	that m=topcpu will display bar graph with 2x resolution.

	o	added [i=interval] optional	parameter for controlling the delay
		between samples.  It is possible, though not recommended (unless
		you change the priority to be lower) to have an interval of zero on
		most functions.

		The default interval is 2 seconds.

		An interval of zero is disallowed on m=register, as it has been
		observed to have ill effects on other tasks.

0.245 (1994 02 24)

Version 0.245 introduces some minor bug fixes, and has been recompiled with
new libraries and works under the 16/32 bit QNX 4.21 O/S.

0.282 (1996 08 17)

Version 0.282 introduces the following changes, in order of importance,
from previous versions.

	o	added kernel event monitoring for interrupts.  Use the "m=interrupts"
		option to exercise this feature.  Sysmon will monitor interrupts
		by picking up the kernel counters that keep track of interrupt
		invocation -- therefore, you must be running at least QNX 4.23
		Proc 32 4.23E Aug 16 1996 version.

    o   added kernel call monitoring.  Use the "m=kcalls" option.

	o	default interval reduced to 1 second.  I'm not really sure of the
		logic of having it every two seconds anyway -- I guess it's nicer
		for slow terminals, but these days?  You can still override it with
		i= if you like.

	o	interval may be specified as a floating point number of seconds.
		This allows for timelier monitoring of events, perhaps using
		"i=0.1", or similar.

	o	options to "m=" command now only require minimum unique characters,
		rather than the old way, which required the full text of the
		option.

	o	full 32-bit recompile with flat model.  This means that the executable
		generated will require a 386 or higher -- you can change the Makefile
		to specify -2 instead of -4 if you really want a 16-bit executable.

0.304 (1996 08 22)

Version 0.304 introduces the following changes from previous versions:

	o	m=interrupts now goes out to Proc and queries the process names
		associated with an interrupt source, and attempts to give a "best
		guess" as to the usage of the interrupt source.  The following
		heuristics apply:

			Name				Interrupt Name
			-------------------	--------------
			*Fsys*floppy*		FDsk
			*Fsys*				HDsk (if not above match)
			*Net*				Net
			*ser*				Ser

	o	a small buglet was fixed, where the log scale would not display
		some small non-zero values.

0.308 (1996 11 01)

Version 0.308 simply increased the "minimum idle priority" as Photon
screen savers tend to run at priority 4, and would (erroneously) show
up as "CPU Intensive" processes.

0.326 (1996 11 20)

Version 0.326 fixes a few minor buglets with memory.  The new Proc
returns a 4 GB memory region for one of the processes, and hence
several signed shorts overflowed.

LICENSE
-------

This software is free.	The source code has been included, and may be modified
and used in any way.  There is no support with this product, and no liability
is assumed whatsoever with respect to the use of this product.

My main focus is as a technical consultant,	providing contract Research and
Development Services, specializing in the areas of communications, embedded
systems, and realtime software and hardware.  I have extensive experience
in QNX 2 and 4 development, and have been using Neutrino since version 0.1.

If you need consulting or contract services, I can be reached as:

		Robert Krten
		278 Equestrian Drive,
		Kanata,	ON
		K2M 1C5
		Canada

		+1 613 599 8316	(voice)
		Internet (preferred):  rk@parse.com
		Web:  http://www.parse.com
		Quics:	rkrten

