The Unix Heritage Society mailing list
 help / color / mirror / Atom feed
* [TUHS] History of top
@ 2018-05-24 12:20 Noel Chiappa
  2018-05-24 14:09 ` Clem Cole
  2018-05-28 10:31 ` [TUHS] History of top Lars Brinkhoff
  0 siblings, 2 replies; 26+ messages in thread
From: Noel Chiappa @ 2018-05-24 12:20 UTC (permalink / raw)


    > From: Lars Brinkhoff

    > I'm surprised it appeared that late. Were there any other versions or
    > similar Unix programs before that?

The MIT ~PWB1 system had a thing called 'dpy', I think written at MIT based on
'ps' (and no doubt inspired by ITS' PEEK), which had similar functionality.
Seems like it never escaped, though. Man page and source here:

  http://ana-3.lcs.mit.edu/~jnc/tech/unix/man1/dpy.1
  http://ana-3.lcs.mit.edu/~jnc/tech/unix/s1/dpy.c

The top of my hard-copy man page says 'November 1977', but I suspect it dates
back further than that.

     Noel



^ permalink raw reply	[flat|nested] 26+ messages in thread
* [TUHS] Control-T (was top)
@ 2018-05-29  2:55 Noel Chiappa
  2018-05-29 17:10 ` Paul Winalski
  0 siblings, 1 reply; 26+ messages in thread
From: Noel Chiappa @ 2018-05-29  2:55 UTC (permalink / raw)


    > From: Paul Winalski

    > DZ11s ... the controller had no buffer

Huh? The DZ11 did have an input buffer. (See the 'terminals and communications
handbook', 1978-79 edition, page 2-238: "As each character is received ...
the data bits are placed ... in a .. 64-word deep first-in/first-out hardware
buffer, called a 'silo'.")

Or did you mean output:

    > if you were doing timesharing it could bring the CPU to its knees in
    > short order

The thing that killed an OS was the fact that output was programmed I/O, a
character at a time; using interrupt-driven operation, it took an interrupt
per character. So for a 9600 baud line, 9 bits/character (1 start + 7 data + 1
stop - depending on the line configuration), that's about 1000 characters per
second -> 1000 interrupts per second.

The DH11 used DMA for output, and was much easier on the machine.

	Noel


^ permalink raw reply	[flat|nested] 26+ messages in thread
* [TUHS] Control-T (was top)
@ 2018-05-29 18:49 Noel Chiappa
  2018-05-30  1:05 ` Dave Horsfall
  0 siblings, 1 reply; 26+ messages in thread
From: Noel Chiappa @ 2018-05-29 18:49 UTC (permalink / raw)


    > From: Dave Horsfall

    > I have a clear recollection that UNSW's driver (or was it Basser?)  did
    > not use interrupts .. but used the clock interrupt to empty the silos
    > every so often. I'd check the source in the Unix Archive, but I don't
    > remember which disk image it's in ... Can anyone confirm or deny this?

I found this one:

  https://minnie.tuhs.org//cgi-bin/utree.pl?file=AUSAM/sys/dmr/dz.c

which seems to be the one you're rhinking of, or close to it.

It actually does use interrupts, on both sides - sort of. On the input side,
it uses the 'silo alarm', which interrupts when the input buffer has 16
characters in it. This has the same issue as the silo on the DH11 - if there
are less characters than that waiting, the host never gets an interrupt. Which
may be why it does the timer-based input check also?

The output side is entirely interrupt driven; it _does_ reduce the number of
interrupts by checking _every_ output line (on every DZ11 in the machine) to
see if that line's ready for a character when it gets any output interrupt,
which will definitely seriously reduce the number of output interrupts - but
even then, if _one_ line is going flat out, that's still 1000 interrupts per
second.

	Noel


^ permalink raw reply	[flat|nested] 26+ messages in thread
* [TUHS]  Control-T (was top)
@ 2018-05-29 21:21 Norman Wilson
  2018-05-30  9:06 ` arnold
  0 siblings, 1 reply; 26+ messages in thread
From: Norman Wilson @ 2018-05-29 21:21 UTC (permalink / raw)


Back in 1980 or 1981, when I first started hacking
on UNIX but still had some TOPS-10 DNA lingering in
my blood, I put in a really simple control-T
implementation.  Control-T became a new signal-
generating character in the tty driver; it sent
signal 16.  Unlike interrupt and quit, it did not
flush input or output buffers.  Unlike any other
signal, SIG_DFL caused the signal to be silently
ignored.  (I don't remember why I didn't just teach
/etc/init and login to set that signal to SIG_IGN
by default; maybe I looked and found too many other
programs that monkeyed with every signal, maybe I
just didn't think of it.)

I then wrote a little program meant to be run in the
background from .profile, that dug around in /dev/kmem,
figured out what was likely nearest-to-foreground process
associated with the same terminal, and printed a little
status info for that process.

It didn't take long for the remaining TOPS-10 DNA to
leach away, and besides it is much easier to run some
program in another window now that that is almost always
possible, so I don't miss it.  But I like that idea
better than, in effect, hacking a mini-ps into the kernel,
even though the kernel doesn't have to do as much work
to get the data.

I also thought it made more sense to have a general
mechanism that could be used for other things.  That
even happened once.  The systems I ran were used, among
other things, for developing SMP, the symbolic-manipulation
interpreter worked on by Stephen Wolfram, Geoffrey Fox,
Chris Cole, and a host of graduate and undergraduate students.
(My memory of who deserves credit differs somewhat from
that of at least one person named.)  SMP, by its nature,
sometimes had to spend a substantial time sitting and
computing.  Someone (probably Wolfram, says my aging
memory) heard about the control-T stuff, asked me how
to use it, and added code to SMP so that during a long
computation control-T would tell you something about
what it was doing and how it was progressing.

Since the signal was, like interrupt and kill, sent
to the whole process group, there was no conflict if
you also had my little control-T monitor running in
the background.

I never tried to send my hacked-up UNIX to anyone else,
so if anyone else did the same sort of control-T hack,
they likely invented it independently.

Norman Wilson
Toronto ON


^ permalink raw reply	[flat|nested] 26+ messages in thread
[parent not found: <mailman.1.1527559201.18622.tuhs@minnie.tuhs.org>]
[parent not found: <mailman.1.1527732002.17884.tuhs@minnie.tuhs.org>]

end of thread, other threads:[~2018-05-31 21:42 UTC | newest]

Thread overview: 26+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-05-24 12:20 [TUHS] History of top Noel Chiappa
2018-05-24 14:09 ` Clem Cole
2018-05-24 14:43   ` Ronald Natalie
2018-05-24 14:50   ` [TUHS] Control-T (was top) Ronald Natalie
2018-05-24 15:01     ` Clem Cole
2018-05-24 15:48       ` Lars Brinkhoff
2018-05-24 15:08     ` Arthur Krewat
2018-05-28 22:32       ` Paul Winalski
2018-05-28 23:11         ` Clem cole
2018-05-28 23:32           ` Arthur Krewat
2018-05-29  1:12         ` Dave Horsfall
2018-05-28 10:31 ` [TUHS] History of top Lars Brinkhoff
2018-05-29  2:55 [TUHS] Control-T (was top) Noel Chiappa
2018-05-29 17:10 ` Paul Winalski
2018-05-29 18:49 Noel Chiappa
2018-05-30  1:05 ` Dave Horsfall
2018-05-29 21:21 Norman Wilson
2018-05-30  9:06 ` arnold
     [not found] <mailman.1.1527559201.18622.tuhs@minnie.tuhs.org>
2018-05-29 22:45 ` Johnny Billquist
2018-05-30  0:19   ` Clem cole
2018-05-30  0:20     ` Clem cole
2018-05-30 22:10     ` Johnny Billquist
2018-05-30 23:14       ` Pete Turnbull
2018-05-30  1:10   ` Dave Horsfall
     [not found] <mailman.1.1527732002.17884.tuhs@minnie.tuhs.org>
2018-05-31 15:02 ` Johnny Billquist
2018-05-31 21:42   ` Nemo

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).