> On Mar 15, 2023, at 6:55 PM, Rich Alderson via cctalk <cctalk@classiccmp.org> 
> wrote:
> 
> ...
>> (another notion is that mainframes are "multi-user" -- most early
>> microcomputers were not multi-user, as they just barely supported the needs
>> of one user;  I'm not sure if the very first minicomputers were multi-user?)
> 
> Early mainframes were single user, in the sense that only one program could be
> run at a time.  Spooling of jobs was invented to alleviate the time "wasted" 
> in
> having operators set up and reconfigure jobs, but it was still a one-at-a-time
> thing.  Timesharing was an extra cost add-on based on research systems at
> places like MIT.

Apart from spooling, which uncouples slow I/O from execution, there is also 
"multiprogramming", which means being able to run more than one job 
concurrently.  Timesharing does that, of course, but I think multiprogramming 
was intended to refer to batch systems that did so.

An early example is the famous THE operating system: it spools all I/O and 
supports three concurrent jobs (two unrestricted and one limited to "small 
jobs").  It has a number of interesting structural innovations, like a 
hierarchical design where details are handled in one layer and thereby no 
longer matter to the layers above.  Also semaphores, which it uses throughout, 
both for internal synchronization and to synchronize with DMA hardware.

        paul

Reply via email to