Idle terminal daemon needed for OSx4.4

Charles Sandel sandel at SW.MCC.COM
Tue Jun 27 05:19:02 AEST 1989


A few years ago I wrote exactly such a thing, called the 'assassin'.
Below is a
description of it from a mail message I sent out.
I haven't made it work on the Pyramid yet, but it shouldn't
be too hard.
Let me know if you are interested.  I will send you the source.
Charles



Thank you for your interest in the assassin.  The response from
the net was much greater than I anticipated, and has taken me
a bit by surprise (though a pleasant one!).

Let me describe the current state of the assassin:
It has been running with much success on a VAX 780 (originally
running 4.2BSD, now running 4.3BSD) for over a year.
I have just recently been working on running it at another
site (a 750 running 4.2) which has a very different configuration,
and which has therefore exposed some deficiencies in the code
(mostly with the DMF support, which I didn't have at the previous
site).
These are solvable, however, and I expect to have it fully functional
on this machine within the next week or so.

The motivation behind the assassin was that we had a MICOM port
contention system, lots of users, a limited number of VAX ports
and I needed a good intelligent way of knocking people
of when they were not doing anything in order to give someone
else a shot at a port.  I also had users (Astronomers) who tended
to have very long-running number-crunching processes which would 
eat up cycles and destroy the time-sharing performance.
In the process of writing the assassin code, it became
very natural to do the code for re-nicing.  The idea behind the re-nicing
is this: you designate a period of "prime-time", e.g., 8:00am-5:00pm.
You also specify a threshhold (in seconds of CPU time) above which
a process is elligible for renicing.  Then, based on the seconds of
accumulated CPU time of the process and the current load average of
the machine, the assassin
will re-nice the process (by N increments of "nice"
for each S seconds of CPU time above
the threshhold; N and S are settable by you).  After the "prime
time" period ends, the assassin puts all processes it has touched
back to their *original* nice.  There is also the capability to specify
users, process-names and ttys to ignore (i.e., do not renice those).

This is just a brief overview of what it does.  It also has a built-in
capability to plug in different re-nicing algorithms other than
the one described above.  The daemon
has a configuration file (ala termcap) which determines its actions.
There are compiled-in defaults, almost all of which are changeable via
the config file.  The daemon reconfigures itself when the config file
changes.  The daemon can stay around continuously, waking up periodically,
or it can be run from cron(8).  There is also the capability to plug
in different pause algorithms.

Since you are primarily interested in the re-nicing features, I will
not describe the idle-login killing procedure here.

Unfortunately, I have not written any documentation for the assassin,
because just after I completed it a year ago, I changed jobs and haven't
had the chance to write any since.  Unfortuately also,
I do not have a good package
ready to distribute which should include instructions, etc.  The assassin
is very flexible and configurable and the code is commented.
However, without a guide to installing it, it could become confusing.
I am making time to work on it, however, and hope to have an installation
guide ready soon.

The crux of the matter is that I still consider it in "beta" test
mode, since it is just now starting on its second machine.  But
since it has been running for a year, I expect this second incarnation
to go smoothly.  I do not want to distribute it until it is fairly
stable on the second machine.

So much for disclaimers.  What you really want to hear is how
to get it.  Here is a laundry list of related things:

1) There will be no charge for distributions over USENET/UUCP.  If I have
to make you a tape for some reason, I will ask you for a tape in return
and for you to pay postage.

2) It runs *only* on 4.2/4.3.  Some people have expressed
interest in a System V version.  That would be a *major* rewriting
effort, since the whole strategy behind the assassin is based on many
Berkeley-isms.

3) In order not to re-invent the wheel, the assassin
incorporates some Berkeley source code (mostly from ps(1)),
which, unfortunately, will require proof of a Berkeley license
before I can give you the source code (although, if you are
really interested, and don't have a Berkeley source license,
we can discuss getting you a binary; no guarantees, though!).

4) As mentioned above, it is still in "beta" test mode, so if you
still want it, you must be willing to suffer the problems
inherent in this, *AND* you must agree to send back to me any
bug reports *AND FIXES* that you find.  Again, however, it has been
running for a year without major mishaps.

5) To date, I've only tried running it on VAXen 780 & 750.  However, I have
a Pyramid here and *LOTS* of Suns that I want to make it work on.
If you have other machines (785's, 8600's, Sequents, Convex, CCI, etc)
that run 4.2/4.3, I'd be very interested in getting your
help to make it work there.

Lastly, I just had an Eagle die on me so the next few days I won't
have any time whatsoever to spend on the assassin or distributing it.
So it will be at least a week before I can get around to shipping it
out.

After all this, if you are still interested, (and I sincerely hope
that you are!), please mail me proof of Berkeley source license.
(This is a hassle I'd rather not deal with, and if you have any
suggestions about ways around the legalities, I'd be glad to
hear them.)  But for right now, I don't think I want the legal
entanglements of giving away copyrighted Berkeley code, so send
me a copy of your license.

After I receive the license copy, I will put together a package to distribute
to people who agree to be beta test sites.
After the beta test sites run it for awhile and it appears stable,
I would like to distribute it more widely.

My US Mail address for the Berkeley license:
	Charles Sandel
	MCC
	Software Technology
	9430 Research Blvd
	Austin, Texas  78756
Phone:  (512) 834-3498

Electronic addresses:
	ARPA:  sandel at mcc.ARPA
	USENET:  ....!ut-sally!im4u!milano!sandel

Please let me know if you are still interested.

Thanx!



More information about the Comp.sys.pyramid mailing list