So I was rummaging through some old threads on the DUC and came across this response in a 'G4 Multiprocessor' thread and thought it was interesting...
'From the 'guy' or 'gal' that wrote the OS 9 kernal.
> Your assesement of OS 9 seems on par with what I've read. But, I believe from
: what I have read so far..that the system, while slightly better than
: older OS's prior to OS 8...still lacks the capability to fully utilize a 2nd
: cpu even when the apps are multicpu aware.
This is categorically untrue. I designed the nanokernel for Mac OS 9, and it is a true multitasking and symmetric multiprocessing system.
All tasks are scheduled to run on any processor at any time. Both processors are equal citizens to the kernel's scheduler.
If applications take advantage of threading themselves using the MP API, they can see 1.7 - 2.2x speed up on a 2P system. This is not
hypothetical, it is measured real world multitasking activity.
What you probably do not know is as of Mac OS 8.6, the old MP library was tossed to implement multitasking directly in the Mac OS
nanokernel. Today's MP library, which in Mac OS 9 is entirely integrated into the system, is mostly an API shim atop the multitasking
nanokernel.
The only limitation WRT multitasking on Mac OS 9 is we needed to maintain high fidelity compatibility with existing applications and
extensions which were not written to be reentrant nor preemption safe. We did this by runnning all of them in one task (the blue task),
hence classic apps are single threaded.
Note that even on Mac OS X or Windows NT, if you run one dominant application and that app is not threaded, meaning it runs in one
task, the second processor will not be utilized. Where Mac OS X or Windows NT works well is if you have multiple applications running and
doing something other than waiting for input.
It is up to 3rd party developers to thread their applications to take advantage of multiple processors. For more information take a look at:
http://developer.apple.com/macos/multitasking.html