Linux threads -- as seen in NT Magazine

Scott Doty (scott@sonic.net)
Mon, 7 Dec 1998 14:27:26 -0800


Hello,

Please excuse me if this is inappropriate for linux-kernel.

The December issue of _Windows NT Magazine_ features an article:
"NT vs. Unix." The article includes a sidebar "Linux and
the Enterprise," which begins:

Whereas Windows NT and all leading commercial operating systems
(OSs) implement kernel-mode threads, Linux does not. The Linux
scheduler does not divide CPU time among threads but among
processes. Each process in Linux has an implied execution state
that, on other UNIX variants, is the equivalent of a thread.
Thus a Linux process is similar to a process on other UNIX
versions that has exactly one thread and cannot create more.

Linux's omission of kernel-mode threads seriously affects
application developers' ability to write software that takes
maximum advantage of a CPU. Linux application developers must
use user-mode threads that the system implements in user space.
User-mode threads are also called <i>cooperatively scheduled
threads</i> because kernel schedulers do not know that the threads
exist, and therefore the schedulers do not divide CPU time among
the threads. . .

[ Russinovich, Mark. Windows NT Magazine, Vol. 4 No. 12,
December 1998, page 122. ]

My take on this: the author was unaware of clone(2), or its
use by the POSIX threads implementation in glibc 2.

The sidebar continues with other indictments of Linux, including:
"the scheduler cannot preempt the kernel," and "the Linux kernel is
not reentrant." While technically correct for 2.0, the gentleman
appears unaware of the status of Linux 2.2, as can be seen from his
conclusion: "For the next couple of years, Linux is stuck with being
a valid choice for only small uniprocessor servers."

I'm working up a letter to NT Magazine's editors, but I'd like to
make sure I have all my ducks in a row:

First, the 2.1.129 linux/Documentation/spinlocks.txt implies
that 2.2's kernel is both re-entrant and can preempt itself.
Would I be correct in saying 2.2 has these qualities?

Second, I've found a couple of good sites explaining threads,
SMP, and so forth under Linux:

http://yara.ecn.purdue.edu/~pplinux/PPHOWTO/pphowto.html
http://linas.org/linux/threads-faq.html

Do these accurately assess Linux's capabilities?

Finally: Is there any work going into allowing an administrator
to migrate tasks between processors?

Thanks,

-Scott

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/