When Steve Jobs, Apple’s CEO, first unveiled the next version of OS X, 10.6 Snow Leopard, there have been a lot of rumours on the internet and blogosphere about the proposed evolutionary nature of 10.6 over 10.5. What did Steve exactly mean? Snow Leopard will take a break from adding new features but will be streamlined and its core improved for enhanced performance instead.
“Grand Central,” a new set of technologies built into Snow Leopard, brings unrivaled support for multicore systems to Mac OS X. More cores, not faster clock speeds, drive performance increases in today’s processors. Grand Central takes full advantage by making all of Mac OS X multicore aware and optimizing it for allocating tasks across multiple cores and processors. Grand Central also makes it much easier for developers to create programs that squeeze every last drop of power from multicore systems. (source: apple.com)
It’s well known that Apple’s OS X has strong FreeBSD roots and still borrows from ongoing FreeBSD developments.
The history of OS X and the XNU Kernel, the features promised in Snow Leopard, and the design and architecture of the ULE scheduler all point to a high likelihood of Apple using a redesigned thread scheduler that is either an implementation of the ULE scheduler or at least based around it in OS X 10.6.
On Neosmart.net we read:
The FreeBSD project has long been working on alternative scheduler intended to replace the default and aging 4BSD scheduler: the ULE scheduler. ULE is now scheduled to become the default scheduler in the upcoming FreeBSD 7.1 release. ULE has shown significant improvements in multi-core environments, and was designed from the ground up to provide increased SMP scalability. Most importantly is ULE’s overhauled support for per-processor queuing of tasks and the ability to set CPU affinity per-processor-per-thread.
If Apple were to implement a form of the ULE scheduler in OS X 10.6, Snow Leopard would be a formidable OS indeed. Using ULE guarantees huge performance benefits for multi-threaded applications, and would help address the second point listed above: the SMT affinity options provided in ULE would make creating an SDK intended to allow developers to use multiple cores efficiently and evenly quite easy. OS X has always been close to the FreeBSD project, and something like this is a natural fit for an OS looking for improvements to SMP/SMT performance.
What do you think? Is it likely Apple will adapt the ULE scheduler or is this complete nonsense?
Link: ULE Scheduler (scribd.com)