Grand Central Dispatch su FreeBSD
Pochi mesi fa Apple ha rilasciato in open source la sua libreria denominata Grand Central Dispatch (GCD), ed utilizzata in Mac OS X Snow Leopard per sviluppare codice multithreaded in grado di girare in maniera ottimizzata su processori multi-core.
Il team di FreeBSD ha lavorato al porting di questa tecnologia su ambienti POSIX, facendo tutti gli adattamenti necessari al suo funzionamento su una piattaforma diversa da quella di Apple.
E’ stato inoltre necessario mettere a punto un particolare compilatore C di tipo blocks-aware, che quando viene utilizzato in unione alla libreria di dispatch genera codice in grado di effettuare callback sia in base alle funzioni che ai blocchi.
Grand Central Dispatch viene descritta nelle sue linee generali su Wikipedia, e la sua principale caratteristica è quella di far gestire i thread al sistema operativo, e non alle singole applicazioni. Questo consente, tra le varie cose, di poter gestire le risorse di cpu e core in maniera ottimizzata tra le varie applicazioni, impedendo ai processi multithreading di impegnare i vari core anche quando non sono attivi, riallocando invece quelle risorse ad altri processi che ne hanno bisogno in quel momento.
Tuttavia i lavori sono ancora in una fase iniziale, e si prevede che GCD sarà inserito nel branch di sviluppo di FreeBSD dopo il rilascio della 8.0, per essere poi presente nella 8.1.
Inutile dire che lo sforzo compiuto dal team di FreeBSD sarà di aiuto per il porting di questa tecnologia su tutti i sistemi POSIX, compresi gli altri BSD, OpenSolaris e Linux.