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>