*BSD News Article 33875


Return to BSD News archive

Xref: sserve comp.os.386bsd.misc:3036 comp.os.linux.misc:21132
Newsgroups: comp.os.386bsd.misc,comp.os.linux.misc
Path: sserve!newshost.anu.edu.au!harbinger.cc.monash.edu.au!msuinfo!agate!news.ossi.com!news.fujitsu.com!amdahl!netcomsv!calcite!vjs
From: vjs@calcite.rhyolite.com (Vernon Schryver)
Subject: Re: Usefulness of BSD/Linux Source Knowledge (was BSD vs. LINUX)
Message-ID: <Cu1qp4.wn@calcite.rhyolite.com>
Organization: Rhyolite Software
Date: Fri, 5 Aug 1994 05:17:28 GMT
References: <Ctv7KA.Jy9@news.cern.ch> <31mfon$efs@glitnir.ifi.uio.no> <31racs$si2@nyheter.chalmers.se>
Lines: 29

In article <31racs$si2@nyheter.chalmers.se> tl@cd.chalmers.se (Torbj|rn Lindgren) writes:

> ...
>Adding SMP was prrobably rather easy. Just put a big lock on the whole
>kernel... This means that only one process (or thread) can be in the
>kernel in the kernel a given time, but if that process can run on any
>processor you have a SMP (per definition, symmetric means that either
>processor may run kernel tasks, not that more than one process may be
>in the kernel).
>
>Creating a system where more than one process can be in the kernel at
>a give time is *much* harder, and SunOS 4.x doesn't support this (This
>is one of the major differences between SunOS 4 and Solaris 2). The
>main difference is that you have to use data-locks (lock the
>data-structures you use) instead of a big lock.

I've seen SMP done by adding locks to a UNIX kernel.  It was a reasonably
successful effort.  It was not in any sense "rather easy."  Think about
interrupts.  Think about whether you really want to make the entire
kernel a single mutual-exclusion region, but before you answer, run a
few applications or just type `w` and notice how many cycles are spent
in the kernel.

There have also been some some MP efforts that were less successful.
Consider Soulborne's version of the Sun kernel.  I don't mean that it
didn't work, but that it was not symmetric for an awful lot of years.


Vernon Schryver    vjs@rhyolite.com