Messages in this thread | | | Date | Mon, 7 Dec 1998 14:27:26 -0800 | From | Scott Doty <> | Subject | Linux threads -- as seen in NT Magazine |
| |
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/
| |