Contents of the SYSINFO.DOC file
Sysinfo combines the functions of several commonly found
daemons, including a free memory display, CPU meter and clock,
along with some less common values as the free disk space on a
selected drive and the size of the swap file. By default it
will hide its frame controls to lessen the amount of screen real
estate used. They can be restored by double clicking anywhere
in the client area.
sysinfo [drive_letter [/cal]]
Sysinfo will monitor a single drive for free space. This drive
can be specified on the command line. No colon is required. If
not specified, it defaults to C.
The /cal parameter is used to obtain a calibration value for the
CPU meter (see the Details section for more info). This
parameter may only be present if a drive letter is also
specified. When invoked with this parameter the system should
be in an idle state so that the calibration value is correct.
When started, sysinfo positions itself at the top of the screen
using 2 times the standard system font height. It hides its
frame controls; they may be restored by double clicking in the
client area. Whenever the controls are hidden it moves itself
back up to the top of the screen, but it is possible to move the
display by dragging anywhere in the client area. It creates 10
subsidiary windows, spaced evenly across the client area. The
windows look fine on a VGA display. They are probably rather
crowded on an EGA and lonely on an 8514/A.
The free memory display is actually the largest single free
block of of memory so is of relatively little value. By
combining it with the swap file size you get a better idea of
whether memory is actually overcommitted or merely fragmented.
If the swap file grows, memory is being overcommitted. This
code assumes that the swap file is c:\os2\system\swapper.dat.
The swap file size is only updated every 3 seconds.
The usage of the time of day value should be obvious.
The CPU meter is implemented using a separate thread which
simply counts the number of iterations through a loop made each
.75 seconds. This is then expressed as a percentage of the
number of iterations made with the system idle (this value is
set by using /cal value discussed above). The counting thread
runs as idle class at priority 1, since I have heard that OS/2
itself runs a null job at idle/0. I have never found evidence
of this thread but it is very common in priority based
schedulers, since it lets the scheduler always find a runnable
The disk free value is computed every 3 seconds. If free space
on the watched drive drops below 10%, the display turns red.
This program is freeware. Please feel free to use and modify it
as you see fit. If you like it, pass it on to other boards.
Joe Fromm, National Computer Systems.