Re: Need UNIX clarification

From: Bob Harris (nospam_at_sorry.I.have.been.harvested.before)
Date: 01/04/05


Date: Tue, 04 Jan 2005 03:02:01 GMT

In article
<A2A28DB6D52E084783ACD6E6C6F5D7900274F9A7@EMAILSERVER2.nemschoff.com>,
 Michael Clark <MClark@Nemschoff.com> wrote:

> > "Neil Rieck" <n.rieck@sympatico.ca> wrote in
> > news:BbfAd.21823$Tn1.735381@news20.bellglobal.com:
> > > Our shop spends 95% of our time developing/maintaining OpenVMS
> > > software for an internal application and ~5% of our time doing UNIX
> > > system admin work. We've run into problems from time-to-time where a
> > > single application (DHCP for example) will seem consume too many
> > > resources which resulted in PANIC messages at the console of one of
> > > our Solaris boxes.
> >
> > Well, of course, this should not happen presuming the machine is
> > reasonably well provisioned.
> >
> > > When we talked to the system vendor for this particular application,
> > > we were told the following "most UNIX operating systems are single
> > > threaded so we should invest in a multi-blade solution where a web
> > > server runs on one blade, DHCP on a second, Oracle on a
> > third, and so
> > > on". When you hear something like this, you don't know if
> > it's true or
> > > whether some salesman trying to sell you more hardware (or both).
> >
> > No, unix solutions do not work this way. This is the way
> > many Windows
> > shops end up operating. Since the apps are so unpredictable,
> > it's best
> > to give them each their own 'blade'. BTW unix was invented 20 years
> > before the word 'blade' came in to its current usage.
>
> Yes! I currently have about 5 windows machines at the office, doing the
> exact same amount of work I would do on a single BSD installation. Totally
> because things crash on windows much more.
>
> >
> > > p.s. we solved our problem by moving the DHCP function to an old
> > > AS-2100 sitting in the back room and it has been happily running for
> > > over a year now without a peep (currently serving up 150,000 address
> > > from a 50 segment pool).
> >
> > Not really a surprise.
> >
> > > So here's my question. Is it true that most flavors of UNIX
> > are single
> > > threaded? Is LINUX? Is HP-UX? Is AIX?
> > > I was lead to believe that Tru64 was multi-threaded and this was one
> > > reason why HP couldn't move AdvFs and TruCluster support from Tru64
> > > into HP.

Threading issues was _NOT_ the reason AdvFS and TruClusters on HP-UX was
not released.

As for threading, the Tru64 UNIX kernel is multi-threaded. HP-UX was
multi-threaded. AdvFS and TruClusters used lots of kernel threads on
Tru64 UNIX and HP-UX.

Besides, it would not matter if there were multiple threads per process
or just using lots of processes. Inside the kernel _EVERYTHING_ _IS_
_GLOBAL_ if you know where to look. And the main advantage a
multi-threaded process has over multiple processes, is that in user
space the threads of a process share the same address space (except for
their stacks, and those are accessable to other threads if you know
where to look). In side the kernel, a process and a thread are on
basically equal footing when it comes to being able to access any part
of the kernel address space. Neither has any specific advantage.

Now I will acknowledge there are other differences, but from the
perspective of AdvFS and TruClusters working inside kernel address
space, it would not really matter. And besides, HP-UX had kernel
threads, so this does not apply to discussions of whey AdvFS and
TruClusters were not released.
 
> Why would Unix be single threaded?

In days of old, and mostly in days where there was only 1 CPU in a box
(no SMP systems), there was generally 1 thread off execution per
process. And of course there was no POSIX Threads (pthreads), or
DECthreads, or any other use more threading package.

But along came 3 forces that made it desirable for threads. Server
applications running in user space, SMP systems, and a way to allow
async I/O operations without needing to implement ASTs, signal handlers,
etc... Server processes found it very difficult to service lots of
users requests from a single process, and using lots of separate
processes created memory sharing problems and work load balancing
problems (handing off tasks to other workers, especially a network
socket or open file).

pthreads (and other user mode threading packages) helped solve the async
and server problems, but without kernel threads it is harder to do, and
it does not allow a single process to take advantage of multiple CPUs in
an SMP system. But having kernel threads means that a user mode
threading package can have several worker bee kernel threads to allow it
to truly walk and chew gum at the same time, and to take full advantage
of an SMP system.

So while I do not have any personal knowledge beyond Tru64 UNIX and
HP-UX, I would find it very hard to believe that any major vendor's UNIX
implementation that runs on an SMP box is not also a multi-threaded
kernel. Personal opinion only.

                                        Bob Harris

> > See the other's comments...
> >
> > > Neil Rieck
> > > Kitchener/Waterloo/Cambridge,
> > > Ontario, Canada.
> > > http://www3.sympatico.ca/n.rieck/links/cool_openvms.html
> > >
> > >
> >
>
>
> CONFIDENTIALITY NOTE: This electronic transmission, including all
> attachments, is directed in confidence solely to the person(s) to whom it is
> addressed, or an authorized recipient, and may not otherwise be distributed,
> copied or disclosed. The contents of the transmission may also be subject to
> intellectual property rights and all such rights are expressly claimed and
> are not waived. If you have received this transmission in error, please
> notify the sender immediately by return electronic transmission and then
> immediately delete this transmission, including all attachments, without
> copying, distributing or disclosing same.



Relevant Pages

  • Tru64 server cant handle 900 network clients
    ... I'm stumped by an apparent limit in the Tru64 UNIX kernel ... to handle client node MAC-addresses for close to 1000 NFS clients. ... What happens is I believe "ARP cache trashing": ...
    (Tru64-UNIX-Managers)
  • Re: DS25 Kernel Attributes
    ... > Is there a way to know the right value for those Kernel attributes? ... You have to balance performance against a finite amount of ... The system needs with application needs. ... The other option is to contact a consultant or HP Tru64 UNIX software ...
    (comp.unix.tru64)
  • Kernel Building for Dummies
    ... Does anyone have a step-by-step guide to building a kernel ... on Tru64 UNIX? ... the SCSI card driver with the current kernel. ...
    (comp.unix.tru64)
  • Re: [iwn driver] SIOCS80211 error on 4965AGN
    ... to these modules (e.g. in kernel config files) must be removed. ... This transmission may contain information that is privileged, ... confidential, legally privileged, and/or exempt from disclosure ... Co., its subsidiaries and affiliates, as applicable, for any loss ...
    (freebsd-current)
  • [ANNOUNCE] Linux-2.4.32-hf32.4
    ... Roughly based on a patch by ... Before transmission, any socket buffer shorter than the ethernet ... Initial work and description from Olaf Kirch for kernel 2.6: ...
    (Linux-Kernel)