Apple Mac OS X 10.6 “Snow Leopard” – Prima parte
Posted by Xacca Webott 19

Articolo tratto da HardwareUpgrade.it
“Prima parte di una trattazione a due puntate inerente il nuovo sistema operativo di Apple, Mac OS X 10.6 Snow Leopard. In questa puntata ci concentreremo su due delle principali tecnologie del nuovo sistema operativo: Grand Central Dispatch e OpenCL”
Il sistema operativo Mac OS X per come è conosciuto ai giorni nostri ha visto la luce il 24 Marzo 2001, con il debutto della versione Mac Os X 10.0.0 conosciuta con il nome in codice di “Cheetah”. Mac OS X rappresentò un punto di rottura con i precedenti sistemi operativi di casa Apple, Mac OS “Classic” System 8 e 9, fisiologicamente giunti al punto conclusivo della loro evoluzione.
Trovandosi dinnanzi alla necessità di compiere una svolta, Apple ha dovuto decidere che strada imboccare per lo sviluppo del nuovo sistema operativo: la strategia fu quella di annettere NeXT Computer, fondata da Steve Jobs negli anni dell’”esilio” da Apple, che si era occupata dello sviluppo del sistema operativo NeXSTEP il quale diventò la base dalla quale partire per la costruzione del nuovo sistema operativo della Mela.
Sono trascorsi più di otto anni da allora, nel corso dei quali a Cheetah sono succedute sei “major release”, tutte simpaticamente contraddistinte dal nome di felini selvatici (Puma, Jaguar, Panther, Tiger, Leopard). L’ultima prorprio X settimane fa, il 29 Agosto 2009: Mac OS X 10.6 “Snow Leopard”, l’ultima incarnazione del sistema operativo di Apple.
Osservando le major release precedenti a Snow Leopard, si può notare immediatamente che l’ultimo sistema operativo di Apple rappresenta una sorta di anomalia. Da Mac OS X 10.1 a 10.5, tutte le versioni sono state caratterizzate dalla presenza di nuove funzionalità ed elementi piuttosto vistosi. L’approccio che Apple ha seguito con 10.6 è invece differente: il punto di partenza è Os X 10.5 Leopard, che è andato incontro ad un processo di ottimizzazione spinta. Le principali novità, sebbene non di secondo piano, sono tutte “dietro le quinte”.
In particolare vi sono due fondamentali tecnologie che trovano posto nel nuovo sistema operativo Snow Leopard, e si tratta di Grand Central Dispatch e del supporto a OpenCL. Nel primo caso si tratta di una tecnologia per sfruttare al meglio i processori multicore, nel secondo caso si tratta invece del supporto allo standard aperto del linguaggio di programmazione GPGPU destinato alle schede video. Tra le altre novità si segnala inoltre la completa riprogrammazione del Finder, che passa da Carbon a CoCoa, e tutti gli applicativi principali tra cui il Finder stesso, Mail, iCal, Safari e iChat scritti a 64-bit. Importante anche l’introduzione di QuickTime X, che supporta nuovi standard di compressione, la decodifica hardware coadiuvata dalle GPU e la possibilità di registrare sequenze video del desktop. Snow Leopard introduce inoltre il supporto a Microsoft Exchange Server 2007.
La versione client singola licenza di Mac OS X 10.6 “Snow Leopard” viene proposta sul mercato in versione aggiornamento da Mac OS X 10.5 al prezzo di 29 Euro. La versione Family Pack, comprendente 5 licenze, è invece disponibile al prezzo di 49 Euro. Per tutti coloro i quali hanno acquistato (o acquisteranno) un sistema Mac nel periodo tra l’8 giugno 2009 ed il 26 dicembre 2009 e non hanno trovato il nuovo sistema operativo preinstallato sul sistema, potranno sfruttare la promozione Mac OS X Snow Leopard Up-To-Date che consente di ricevere a casa il DVD con l’aggiornamento pagando solamente i 9,95 euro di spese di spedizione. Mac OS X 10.6 Snow Leopard in versione Server è invece commercializzato al prezzo di 499 Euro per licenze client illimitate.
L’articolo che andiamo a pubblicare oggi è il primo di una breve serie riguardante il nuovo sistema operativo della Mela. In questa puntata parleremo delle due importanti novità tecnologiche che caratterizzano Snow Leopard, Grand Central Dispatch e Open CL. Nella prossima puntata ci focalizzeremo più attentamente sulle novità delle applicazioni.
Grand Central Dispatch |
||||||
| Grand Central Displatch è il nome con il quale Apple indica una tecnologia implementata alla base del sistema operativo, che consente di sfruttare al meglio le capacità computazionali dei processori multi-core. Per quale motivo Apple ha deciso di sviluppare una soluzione simile? Per capirlo bisogna fare qualche breve passo indietro e comprendere il contesto tecnologico che ha portato al passaggio dai processori single core ai processori multicore e che tipo di cambiamenti hanno introdotto nel contesto della programmazione software.
Fino a non molti anni fa il percorso evoluzionistico dei processori è stato relativamente semplice ed indirizzato all’incremento delle prestazioni delle nuove generazioni di CPU semplicemente innalzandone la frequenza operativa. Un approccio lineare e conveniente: sintetizzando banalmente, i programmi sono infatti un insieme sequenziale di operazioni e, pertanto, maggiore è la frequenza operativa, maggiore è la velocità di esecuzione di un’operazione, minore è il tempo di esecuzione di un intero processo. Lineare e conveniente fino a quando i materiali impiegati per la realizzazione delle CPU non hanno iniziato a mostrare i propri limiti fisici: innalzando via via le frequenze operative si spostavano di pari passo, verso l’alto, le temperature d’esercizio ed il consumo energetico, due elementi cruciali da dover tenere sotto controllo, in special modo in ambito mobile.
A fronte di questi ostacoli, è mutato l’approccio allo sviluppo delle CPU: non più un incremento prestazionale seguendo la “forza bruta”, ma ispirandosi al “collaborazionismo”, ovvero inserendo in un singolo microprocessore più core di elaborazione e potendo ottenere più potenza computazionale senza dover ricorrere all’incremento della frequenza operativa. Quali sono le conseguenze di questo approccio? In primis una migliore efficienza ed una minore dissipazione termica. Sull’altro piatto della bilancia, però, vi è una importante differenza rispetto al mero incremento della frequenza operativa: con l’implementazione di più core, infatti, un programma scritto per una CPU single core non è in grado di trarre benefici diretti. Per poter sfruttare la presenza di più core di elaborazione, gli applicativi necessitano infatti di essere riscritti: in altri termini per sfruttare al meglio un processore multi-core è necessario che il codice di programmazione sia altamente parallelizzato e che preveda, cioè, la possibilità che determinate sue parti possano essere eseguite contemporaneamente da più core differenti. La programmazione parallela, tuttavia, risulta essere particolarmente gravosa per gli sviluppatori. Oltre alla semplice suddivisione dei vari processi (task) in più parti (thread) eseguibili simultaneamente, lo sviluppatore dovrà assicurarsi, mediante tecniche opportune, di isolare i dati che potrebbero essere modificati da più thread simultaneamente ed implementare un sistema di gestione dei thread che mandi in esecuzione solamente un numero di thread pari al numero di core disponibili. Si evince, pertanto, che il complesso problema di gestione dei thread sia completamente sulle spalle del programmatore in primis e dell’applicativo in ultima analisi. Vi è però una variabile che non può in alcun modo essere controllata ne’ dallo sviluppatore, ne’ dal programma: se, infatti, sul sistema operativo è in esecuzione un’altra applicazione che sta impegnando i core della CPU, tutti gli sforzi di programmazione risulterebbero comunque vani, in quanto le risorse non potrebbero essere gestite in maniera ottimale.
Per venire incontro a questo genere di esigenze, porre una soluzione al problema e, in ultima analisi, consentire l’ottimale sfruttamento delle capacità computazionali dei processori multicore, Apple ha pensato di introdurre un sistema che consentisse di trasferire tutta la complessa gestione dei thread e la loro esecuzione dal livello dell’applicativo al livello del sistema operativo, Grand Central Dispatch, appunto. Con Grand Central Dispatch (che abbrevieremo con GCD) gli sviluppatori hanno così modo di concentrarsi meglio sulla parallelizzazione del codice di programmazione, senza doversi occupare di come i thread verranno gestiti. Tutto ciò che gli sviluppatori devono fare è definire le differenti parti di lavoro (blocchi, blocks) che devono essere svolte dall’applicazione e definire un modo semplice che regoli l’interazione di queste parti tra loro (code, queues). GCD si occuperà di analizzare le varie code, in modo tale da stabilire l’ordine con il quale i thread devono essere eseguiti e si occuperà di mandare in esecuzione un numero di thread pari al numero di core attualmente disponibili per la computazione. Tutta la gestione di thread e dati che nell’approccio tradizionale è a carico dell’applicazione, con GCD viene presa in carico dal sistema operativo, il quale si occuperà di armonizzare l’impiego delle risorse necessare all’esecuzione dell’applicativo con quelle necessarie per il funzionamento degli altri processi del sistema. Inoltre, dal momento che è il sistema operativo a decidere l’esecuzione dei thread sulla base delle risorse disponibili, anche su processori single-core il codice sarà eseguito sempre nella maniera più efficiente possibile.
|
No related posts.
Articoli correlati elaborati dal plugin Yet Another Related Posts.






Leave a Reply