Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 7 Aug 2006 10:33:11 -0400
From:      John Baldwin <jhb@freebsd.org>
To:        David Xu <davidxu@freebsd.org>
Cc:        freebsd-threads@freebsd.org
Subject:   Re: system scope vs. process scope
Message-ID:  <200608071033.12277.jhb@freebsd.org>
In-Reply-To: <200608050806.24502.davidxu@freebsd.org>
References:  <20060804140657.GK4498@obiwan.tataz.chchile.org> <200608041134.43979.john@baldwin.cx> <200608050806.24502.davidxu@freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Friday 04 August 2006 20:06, David Xu wrote:
> On Friday 04 August 2006 23:34, John Baldwin wrote:
> 
> > Suppose you have a system with 2 processes.  One process is single-threaded
> > and is CPU bound.  The other process has 2 threads both of which are also
> > CPU bound.  If the threads in the second process are PTHREAD_SCOPE_SYSTEM,
> > then each thread will get 33% of the CPU.  If the threads in the second
> > process are PTHREAD_SCOPE_PROCESS, then the each process will get 50% of
> > the CPU. The second process will then use its own algorithm to split it's
> > 50% of the CPU up between it's two threads.  If it divides it evenly, then
> > each of its' threads will end up with 25% of the CPU whereas the thread for
> > the first process has 50% of the CPU.  The idea for this is that if you
> > have a system with several single-threaded processes and one process with
> > 1000 threads, you don't want that process to starve out all the other
> > processes.
> >
> I can make my application fork 800 processes and starve out all the other
> user.

Yes, but then you aren't sharing the same address space, which your
application might need if it wants to do threading. :)  And, your statement
aside, I believe the above is why the difference exists.  Your statement is
more about the usefulness of the distinction, not about the justification
for when it was created.

-- 
John Baldwin



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200608071033.12277.jhb>