> On Jul 19, 2015, at 12:06 AM, Mike Stein <mhs.st...@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


Reply via email to