OS X Snow Leopard to use FreeBSD ULE Scheduler?

MAC OSX snow leopard desktop 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)

One thought on “OS X Snow Leopard to use FreeBSD ULE Scheduler?

  1. Oliver Herold says:

    >What do you think? Is it likely Apple will adapt the ULE scheduler?

    Rather nonsense, you cannot exchange a scheduler in a _completely_ different kernel. You have to take care of your OS-facilities and this would be a matter of some years.

    >Snow Leopard will take a break from adding new features but will be streamlined and its core improved for enhanced performance instead.

    More 64 bit for example, the kernel of Mac OS X _is_ 32 bit. So if you’re using more than 4G of memory you have to use with something similar to PAE. Last not least SCHED_ULE in FreeBSD 7 isn’t the best for UP-systems and you will gain the most performance with many cores only in database and server-area. Remember? Mac OS X _is_ an OS for the desktop.

    So maybe this is a nice dream of some Apple-users, but in reality it’s just a lack of knowledge about the operating system of choice.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>