On Mon, Nov 28, 2022 at 02:24:52PM +0100, Paul Ruizendaal wrote:
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?
Sequent Balance 8000 from 1984 had up to 12 National NS32000 processors
and ran the 4.2BSD derived DYNIX.
Bob Beck, Bob Kasten
VLSI Assist in Building a Multiprocessor UNIX System
USENIX 1985 Summer Conference Proceedings
https://archive.org/details/1985-proceedings-summer-portland/page/254/mode/…
National had their own 4.1BSD derived GENIX. I can't find any
references to it running on multiprocessor machines.
Gould PowerNode 9080, a dual processor machine was announced in 1984 and
ran a 4.2BSD derived UTX/32.
https://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=1659257
Pyramid Technology, 90Mx dual processor early 1985, 98x late 1985
https://archive.org/details/sim_systems-software_1985-02_4_2/page/n37/mode/…
Systems & Software 1985-02: Vol 4 Iss 2
"The new 90Mx, the first dual-processor machine from Pyramid, can
support up to 256 users. It has a maximum of 32 megabytes of main
memory, and comes in one single-cabinet and three dual-cabinet
configurations. The 90x, first shipped in October 1983, is limited
to 128 users and 16 megabyte of main memory as a single processor
machine. Like the 90x, the 90Mx uses the reduced instruction set
computer architecture (RISC)."
"OSx is Pyramid's dual-port, multi-processor implementation of
Unix System V from AT&T and 4.2BSD from the University of California,
Berkeley."
https://archive.org/details/Unix_Review_1985_Aug.pdf/page/n9/mode/2up
Unix Review Magazine Aug 1985
"One of the more impressive machines making its debut at the National
Computer Conference in Chicago July 16 was Pyramid Technology Corp’s
98x, a super minicomputer built with the idea of equal opportunity for
equal microprocessors. Pyramid calls the 98x an "isoprocessor" system;
there are two 32-bit RISC (reduced instruction set computer) processors
working as equal partners."
"The idea behind isoprocessing comes from Purdue’s dual processor
implementation, Krahling said. CPU balance is achieved through the use
of a proprietary semaphore system that protects critical sequences of
code and controls simultaneous access to kernel data structures."
"90Mx has a master-slave multiprocessor environment."