This UIC contains system-management programs for RSX-11M V3.2

	Ray Van Tassle
	Motorola
	1301 E. Algonquin Rd.
	Room 4135
	Schaumburg, Ill.
	(312)-576-6017

We have found that a set of programs to help you manage the system, especialy
a multi-user development system, helps things incredibly. First of all,
if you do not yet have CCL, get it!!!!!!
*********************************************************************
editor's note: to get CCL on your system please reference Jim Downward's
uic [344,*].  I agree with Ray, it is a most useful enhancement to your
RSX-11M system.
***********************************************************************

We have an 11/70 with over 75 users and 15-20 terminals, doing program
development. The disks are an RP-04 and RP-06. Our terminals are
VT-100's and Hazeltine 1500's (if you also have Hazeltines, I feel sorry
for you, too. That is the biggest piece of junk I have run across in
quite some time.)

I have put up most of the KMS-FUSION stuff, but I use it for the features
it gives, not for accounting. These programs here should all work even
if you don't put the KMS stuff up, but the changes to HEL help a lot.

We do not have an operator, and there is only privileged user--the
system manager. And only two us us know the system manager password.

    I put in SYSLOG (KMS-FUSION), but I mainly use it to count
    user QIO's, and to  keep
    the double-word time.  I fixed RMDEMO (DEC's copy for 3.2) to use this
    time counter to display the  system  up  time  (RMD  starts  up  on  a
    dedicated  CRT  when  the  system boots up).  I also use the idle-time
    count to compute and display the system percent idle time, which  gets
    displayed  on  line  1  of the RMD screen.  Since we lost the rotating
    lights with the remote front panel, this % display is a  handy  crutch
    to see how loaded the system is.


OPERATOR THINGS
---------------
    We do  not  have  an  operator,  and  there  is  a  need  for  regular
    non-privileged  users  to  be able to do certain restricted privileged
    things, so they don't have to bug me to do it.  These are things  like
    changing  the  spooler  form number for the LA-120, log off terminals,
    etc.  I set this up by  having  a  special  user  "OPERATOR",  who  is
    privileged,  but  gets  a  program run (MONOPR) when he logs on.  This
    program spawns "@OPERATOR.CMD/-LI", which I have asking questions,  so
    that anyone can do them, but only those things which I have set up the
    command file for them to  do.   Needless  to  say,  the  password  for
    OPERATOR  is known to everyone. 

"MAKOPRMON.CMD" makes this program. I have this user set up to log-in as
slave & a task (MONXXX) to be run when HEL exit's.
This is in HEL & RSE (KMS-FUSION). If you don't have the mod's to HEL, you
might want to fix up your HELLO to do the same thing (putting in the KMS 
stuff is better, though).


TERMINAL TIME-OUT (TT.KGB)
--------------------------

    One feature that IAS had that we missed was that IAS  would  time  out
    the PDS prompt and log off the user after a while.  Since we have many
    more users than terminals, this would take care of someone who  walked
    away  from his CRT and didn't come back for an hour, but of course, if
    you just did a PIP, it wouldn't time out.  I liked this featue so much
    that  I  added a program to do almost the same thing, called "TT.KGB".
    If a terminal is idle for 9 minutes, it blasts out a message asking if
    anyone  is  still  there.  In another 30 seconds, it sends out another
    one, and 30 seconds after that, forces a BYE (via RMC).  I use the QIO
    count that SYSLOG (KMS-FUSION) keeps in the
    terminal UCB to decide if it is idle or
    not.  Every 10 seconds, TT.KGB checks all the terminal UCB's to see if
    any task has been doing I/O.  If not, it looks to see if that terminal
    has a task running that is not blocked (presumably any program that is
    running  will  either  do  I/o  or be non-blocked).  This time is long
    enough that it doesn't screw anyone that is thinking (unless they fall
    asleep), and it takes care quite well of logging off an idle terminal,
    so much so that now many of the usere will start up  a  long  indirect
    command file (compile, assemble, TKB, etc) and just walk away, knowing
    that they will be safely logged off when it is all done.   When  I  do
    this myself, I also set my terminal to slave, so that nobody can start
    typing in things until I do get logged off.

MAKTTKGB.CMD creates this. RMC is a  (KMS-FUSION) thing. FRC (from DEC)
will do an equivalent thing.


TIME-SCHEDULED SYSTEM TASKS
---------------------------
It is handy to have MCR commands kicked off periodically. For example, you
might want to clean-up your disks (delete .LST files, etc) once a day,
fire off programs at midnight, etc.

It is really yuchy to do this by running the task with a /RSI, and anyway
you can't give it an MCR command line if you do that.
Therefore, I wrote RECUR, a program which does just that.
In your startup.cmd, run RECUR with a /RSI of 5 minutes or so. See my sample
STARTUP.CMD.
RECUR is driven off a file "RECURRENT.CMD", from which it gets the
MCR command, the time-of-day and day-of-the-week when the command should be
executed. It keeps track of the last time it ran in another file, so
that it does things properly.

However, the is a slight problem!!! MCR has a minor bug, in that it
always chases down the redirect chain, to see if the physical terminal is
logged on. And RECUR's TI: is the console device CO0: (all /RSI tasks
have their Ti: set to CO0:), which is
re-directed to TT0:, which may or may not be logged on. MCRDIS needs
to be fixed so that it doesn't chase down the re-direct chain if
the TI: is the console. The fix is the SLP file "MCRDIS1.SLP".
This leads to another minor problem. We now have MCRDIS looking at the
terminal UCB for CO0: for the LOGIN UIC, CURRENT UIC, & LOGGED-ON bit.
You have to ZAP the UCB to set these up. The file ZAPRASX11M.CMD
does this. You just have to find the right addresses. They root address
is the tag ".CO0", login uic is a negative offset, and the other two are
a positive offset.

RECUR.CMD builds it. See the listing for more details.


SETPRV
------
It is handy to be able to do privileged operations without having to
log off & log back into a privileged account. The task SETPRV does this,
asking for the "magic word", and if you type in the right one, it
will do one MCR command with the terminal privileged, then set it back
to non-priv. If you want to stay priv, this command would be: ABO SETPRV.

If you need to do 2 or 3, make it "@MCR".


RMD
---
The fixes to RMD are also here. The RMDRIV is the one that does the
one huge QIO (DEC/JAN 81 Dispatch), with a fix.

UFD
---
I have each user as an entire group by himself. So that user's can
seperate their stuff however they choose amoung UIC's, I put a fix
into UFD, which will let a non-priv user create a UFD on his
LOGIN SY:, with the same group-number and a higher member-number as
his LOGIN UIC.
For example:
	User DR1:[21,1] can create DR1:[21,2] but not DR0:[21,anything]

	User DR1:[25,100] can create DR1:[25,105] but not DR1:[25,10]

	User DR0:[300,377] cannot create any UFD's
This is UFD.COR

CKP
---
This is a KMS program (fixed by me for virgin 3.2) to checkpoint out
all stopped tasks. I set it up to run every 5 minutes. This is seperately
on this tape.

MVI
---
Tells you who has mounted what volumes.

FRC
---
Force MCR command line to a terminal.

RMC
---
A KMS-FUSION program to do the same thing.






