On Jul 19, 2015, at 12:06 AM, Mike Stein <mhs.stein
at gmail.com> wrote:
...
I always wondered which was more efficient, multiplexing among essentially complete
'computers per user' sharing a common I/O 'channel' or swapping processes
and memory banks?
If you?re talking about switching a single resource (or fixed set of resources) among
consumers, the answer doesn?t directly tie to the technical approach used but rather to
the efficiency of switching among consumers.
For example, a multiprogramming OS has to do a context switch. That may require one or
two instructions, which may be very fast (CDC 6600 ? about 3.5 microseconds) or not so
fast (VAX). Or it may take a few hundred instructions (most machines).
But you may also find more limited sharing systems where the switching is so fast that it
isn?t a factor in the performance. The timesharing of the PPU logic in a CDC 6600 is an
example: the logic is that of a 10 MHz class machine, but the memory is 1 MHz, so 10x
sharing of the logic among 10 memory banks and 10 sets of state makes sense.
That approach still exists; nowadays it?s called ?hardware threads (as in the mutithreaded
MIPS processors from Sibyte/Broadcom and Raza/Broadcom and others) or ?hyperthreading?.
But, as with so many things, Cray did it first.
paul