[TUHS] Early multiprocessor Unix

Paul Ruizendaal pnr at planet.nl
Mon Nov 28 23:24:52 AEST 2022


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


More information about the TUHS mailing list