home *** CD-ROM | disk | FTP | other *** search
-
- From: mnp!mpaque@NeXT.COM (Mike Paquette)
- Newsgroups: comp.sys.next.hardware
- Subject: Supporting multiprocessor platforms under NEXTSTEP
- Date: 19 Oct 1994 16:18:17 -0500
- Reply-To: mnp!mpaque@NeXT.COM
-
- Watching the recent thread of discussion "Re: Dual Pentium and
- NeXTStep?" is rather like watching a game of telephone, with
- information mutating from one message to the next. I can't stand it
- anymore...
-
- Here's some real information, from press releases, speeches by
- assorted officers of NeXT, and whatnot. Nothing here that can't be
- found out by anyone willing to do a little research.
-
- 1) The NEXTSTEP Mach kernel is based on Mach 2.0, with a number of
- enhancements picked up from Mach 2.5. The Mach kernel in NEXTSTEP
- 3.3 will incorporate additional enhancements from Mach 3.0,
- particularly in the areas of scheduling and messaging.
-
- 2) The Mach kernel is designed to work in a symmetric multiprocessor
- environment. There are two areas that need to be addressed to
- implement SMP support (along with several hundred details...).
-
- First, the kernel must be compiled for use with multiple processors.
- This causes mutex locks to be compiled into the kernel to serialize
- access to critical sections. That's the easy part.
-
- Second, the machine-dependent code needed to manage multiprocessor
- initialization, resource management, thread migration, and whatnot
- needs to be written. There is a C language API in the Mach kernel
- that covers most of the machine dependencies.
-
- In the case of the Intel platforms, this gets tricky, as there are
- now FOUR different specifications kicking around for SMP board
- design. There are two versions of the Intel-led SMP consortium's
- spec, another multi-vendor spec, and even a spec from a consortium of
- chip set manufacturers. Three of these specifications have actually
- been implemented in hardware to varying degrees.
-
- 3) The AppKit is not thread-safe (not even on the old m88k and 601
- SMP prototype hardware Mr. Jobs and others have mentioned). Oh, it's
- been thought about, but fundamentally the AppKit is an inappropriate
- candidate for multithreaded operation. The degree of interlocking
- required would effectively serialize the entire kit, with no
- performance gain (in fact, a net loss!) over the current kit. Think
- of the AppKit as a set of tools used to manipulate the global state
- of a GUI, and you may see what I mean.
-
- In general, I think a developer's time and energy would be better
- spent decoupling the application's GUI and core functionality,
- permitting the GUI to run in one thread, and the core functionality
- torun in one or more other threads (or even on a fast back-end
- processor through PDO).
-
- Mike Paquette
- =====
- I don't speak for NeXT, and NeXT doesn't speak for me.