In questi giorni,ho visto in diversi siti e blog (forumeye compreso) diversa confusione sul multitasking introdotto da apple nel nuovo firmwareHo deciso quindi,di scrivere questo articolo per fare chiarezza sulla differenza che c'è tra il multitasking che conosciamo,e quello introdotto da Apple
IL MULTITASKING
Partiamo col chiarire come funziona un "normale" multitasking (per qualcuno puo essere ovvio ma è necessario)
quando sul pc utilizziamo qualcosa,i dati devono essere processati dalla cpu
il problema,è che i file da processare si trovano dove li abbiamo istallati,sulla memoria di massa
e questo è un problema perchè la velocita di trasferimento di una memoria di massa è insufficente per riuscire a stare dietro alla cpu
ed è qui che entra in gioco la ram
la ram,è una memoria ad alta velocità
i file che si trovano sulla ram possono essere processati quindi tranquillamente dalla cpu
ed è per questo che quando apriamo un programma,i suoi file vengono copiati temporaneamente sulla memoria di massa,in modo che durante il suo funzionamento,la cpu possa accedervi senza problemi
una volta chiuso il programma,i file vengono quindi eliminati dalla ram
quando parliamo di multitasking quindi,parliamo di un programma i cui file si trovano sulla ram,indipendentemente da se stiamo utilizzando il programma o no,e possono essere quindi immediatamente processati all'occorrenza
che sia un pc,un nokia o altro,il multitasking che siamo abituati a conoscere, consiste nel mantenere un programma attivo sulla ram esattamente come se lo stessimo utilizzando
questo vuol dire che il numero di programmi che possiamo mantenere attivi è limitato dalla capienza della ram
IL MULTITASKING DI APPLE
Chiarito questo,passiamo a quello della Apple
se avete gia visto qualche anteprima avrete notato che spesso ci sono anche 20-30 applicazioni presenti sul dock del multitasking
il 3gs ha 256 mb di ram,di cui la maggior parte occupati da file di sistema
concorderete quindi,che è impossibile che ci siano 20-30 applicazioni attive
il motivo è semplice
perchè quelle applicazioni non sono attive e non si trovano sulla ram
il sistema inventato da apple è molto piu macchinoso di un semplice multitasking
quando apriamo un'applicazione,come nel pc i file vengono copiati sulla ram
ma quando la mettiamo in backgroud,in realtà la chiudiamo esattamente come si faceva con vecchio firmware
esatto,in linea teorica non è cambiato nulla
alla pressione del pulsante centrale,i file dell'applicazione vengono eliminati dalla ram,rendendola a tutti gli effetti "inattiva"
quello che loro vogliono far passare per multitasking,è in realtà un multitasking simulato
lo scopo è questo
far continuare al sistema operativo quello che stava facendo l'applicazione,poi una volta riaperta,comunicargli cosa è successo nel frattempo
in questo modo,a noi sembrera a tutti gli effetti che sia rimasta aperta
il perchè di questo macchinoso sistema è semplice
a detta della apple,non c'è motivo di tenere un'intero programma aperto in sottofondo,se tanto in quel momento non lo si sta usando
quindi,sempre secondo loro,la cosa migliore è semplicemente mantenere attiva solamente quell'unica cosa che l'applicazione aveva lo scopo di fare mente si trovava in backgroud
infatti,insieme al firmware 4.0 sono state rilasciate diverse api,che gli sviluppatori dovranno inserire nella loro applicazione per poter funzionare in backgroud
queste api sono limitate alle cose basilari di cui si puo aver bisogno ( gps,voip,audio ecc)
facciamo un paio di esempi:
-skype
al momento,se noi con un iphone con firmware 4.0,premessimo il pulsate centrale mentre usiamo skype,l'applicazione verrebbe chiusa a tutti gli effetti
si,troveremmo l'icona nel dock del multitasking,ma come ho spiegato prima,l'applicazione sarebbe a tutti gli effetti chiusa e inattiva
infatti non ci arriverebbero ne chiamate ne notifiche di alcun tipo
detto questo ecco cosa faranno gli sviluppatori
inseriranno nella prossima versione di skype,l'api di cui vi ho parlato sopra dedicata al voip
quando premeremo il pulsante centrale,l'applicazione verrà chiusa come sopra
la differenza sarà che l'api introdotta,permettera di tenere attivo un processo che si occupera di controllare quando arriveranno delle chiamate
detto in modo molto semplice,verrà chiusa tutta l'applicazione tranne la parte che si occupa del ricevere chiamate
-tomtom
nel caso di tomtom(come negli altri navigatori) abbiamo lo stesso funzionamento
al momento,l'applicazione verrebbe chiusa
nella prossima versione,gli sviluppatori introdurranno l'api del gps,che si occupera di tenere attivo il processo che traccia la posizione
una volta riaperta l'applicazione,il navigatore sapra la strada fatta nel frattempo e dove ci troviamo,facendoci sembrare che sia rimasta attiva per tutto il tempo
per completare l'opera di simulazione del multitasking,ci sono poi altri 2 accorgimenti
-tutte le applicazioni chiuse verranno ibernate sulla memoria di massa
in pratica,ci sarà uno spazio dedicato sulla memoria interna,dove tutti i file di un'applicazione aperta che si trovano sulla ram,verranno salvati
quando andremo a riaprirla i file verranno rispostati sulla ram
questo eviterà semplicemente di dover ricaricare le applicazioni,potendole quindi mostrare nella stessa schermata dove le abbiamo lasciate
-secondo,a detta di jobs,ci sarà un piccolo lasso di tempo in cui le applicazioni si troveranno davvero in multitasking
secondo quanto ha detto,il firmware 4.0 sarà in grado di riconoscere se ci sono processi importanti attivi mentre chiudiamo l'applicazione
questo vuol dire che se stiamo per esempio caricando una foto con l'applicazione di facebook,dopo averla chiusa il sistema aspettera che la foto venga caricata completamente prima di chiudere efefttivamente l'applicazione
CONCLUSIONE
Il sistema che ho descritto dovrebbe almeno in teoria far risparmiare molta energia
Effettivamente,scordandoci per una attimo come funziona il tutto,all'utilizzo finale per noi potrebbe non creare differenza rispetto a un multitasking normale
D i contro pero,dobbiamo anche realizzare che questo sistema non permette di utilizzare realmente applicazioni in backgroud con tutti gli svantaggi che porta
per dirne uno,non ci sono api per tutto
per fare un esempio,per poter utilizzare infatti i vari client di chat (messenger e vari) dovremo continuare ad appoggiarci sulle ormai conosciute notifiche push,proprio perchè non ci sono api adatte a questo scopo
l'unica differenza è che cliccando sul messaggio ricevuto avremo una riapertura dell'applicazione piu tempestiva grazie al sistema sopra descritto