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