The discussion about the 3B2 triggered another question in my head: what were the earliest
multi-processor versions of Unix and how did they relate?
My current understanding is that the earliest one is a dual-CPU VAX system with a modified
4BSD done at Purdue. This would have been late 1981, early 1982. I think one CPU was
acting as master and had exclusive kernel access, the other CPU would only run user mode
code.
Then I understand that Keith Kelleman spent a lot of effort to make Unix run on the 3B2 in
a SMP setup, essentially going through the source and finding all critical sections and
surrounding those with spinlocks. This would be around 1983, and became part of SVr3. I
suppose that the “spl()” calls only protected critical sections that were shared between
the main thread and interrupt sequences, so that a manual review was necessary to consider
each kernel data structure for parallel access issues in the case of 2 CPU’s.
Any other notable work in this area prior to 1985?
How was the SMP implementation in SVr3 judged back in its day?
Paul