Per non farci prendere in giro da chi snocciola parole sconosciute
Parolona che ultimamente si sente spesso, e noi per
non fare la figura degli ignoranti tecnologici, annuiamo
compiaciuti a seri rivenditori e a ciarlatani che vantano
preziosità auree di questa strana cosa. Eppure
quando andiamo a dormire e poggiamo le nostre stanche
testoline sul guanciale, questa parola magica risuona
nella nostra testa come un'eco alpino. Eh, abbiamo
provato noi a vagare nel grande pentolone della rete,
ma non abbiamo trovato nulla, o quello che abbiamo
trovato è scritto in una lingua incomprensibile,
piena di altri paroloni per noi privi di comprensibilità.
A domanda risposta.
- Cosa vuol dire multitasking? -
- Dividendo la parola ci si può arrivare semplicemente,
deriva da multi, che vuol dire "più cose"
o "molteplici", e tasking, ovvero "compiere
una mansione", unendo le due viene "compiere
molteplici mansioni. -
- Ok, fin qui ci potevo arrivare, ma in un sistema operativo
che significato ha? -
- Significa che il tuo computer può far funzionare
più processi assieme. Un processo non è
altro che una serie di operazioni che il processore
deve eseguire per compiere un certo lavoro. Ogni programma
aperto sul tuo Mac è un processo che il microprocessore
esegue, quindi puoi avere aperti più programmi
nello stesso momento -
- Bella scoperta, questo il mio computer l'ha sempre
fatto! -
- Non lo metto in dubbio, ma c'è modo e modo
per farlo, e poi questo non è sempre una cosa
reale, non è mica vero che mentre il tuo Mac
fa una operazione tu puoi usare altri programmi tranquillamente.
Ad esempio, prova a formattare un dischetto con un
vecchio Mac, o ad esportare un filmato con QuickTime,
o ad applicare un filtro con Photoshop, e mentre si
sta eseguendo una di queste operazioni cerca di andare
sul Finder e aprire una cartella... Cosa? Non ci riesci?
Vedi che non riesce a fare sempre più di una
cosa per volta?? -
- Uhm, si, bella dimostrazione, se mi spieghi il perché
magari capisco anch'io -
- Beh, è semplice, perché ci sono diversi
modi di fare il multitasking, e principalmente ce n'è
due, quello "cooperativo" che si chiama Cooperative
e quello "prerelazionale" chiamato Preemptive.
-
- E che differenza c'è tra i due? - - Devi sapere che il processore non è altro che una macchinetta che fa operazioni, e le fa con un "ritmo" che non è altro che il famoso MHz, più è altro quel numero, più veloce è il ritmo. D'ora in poi chiameremo processo ogni cosa che viene data da fare al processore, quindi una applicazione che tu hai aperto per il nostro processore non è altro che un processo, ovvero una serie di operazioni da svolgere. Il Multitasking Cooperative funziona per cooperazione tra questi processi, ovvero un processo viene iniziato a essere svolto dal processore, e dopo un po' questo processo si ferma, memorizza quello che ha fatto e cede il processore al processo che lo segue. Un po' come se ci fossero cinque scrittori e una sola macchina da scrivere, il primo che la prende scrive un po', poi toglie il foglio e passa la macchina da scrivere al suo vicino, così finché non ritorna al primo, ma se uno si impossessa della macchina da scrivere e continua a scrivere, o lascia li il foglio e se la tiene davanti senza darla al suo vicino tutto si ferma. E così succede anche per il processore, se un processo non ridà il processore a quello che lo segue il tutto si blocca, e se il processo si era proprio piantato, per un errore, bisogna resettare forzando il processo ad uscire dal processore e a lasciar spazio agli altri processi. Nel caso del Multitasking Preemptive c'è come un arbitro, che decide per quanto tempo un processo debba venir eseguito dal processore, e finito quel tempo il processo deve lasciare spazio agli altri, quindi se si pianta sono cavoli suoi, e viene sbattuto fuori dal processore, che da spazio agli altri processi attivi. Per dirla semplice è come se ci fosse una tabella di marcia dove per ogni processo c'è scritto quando deve essere eseguito e per quanto tempo, ovviamente ognuno ha una importanza diversa, quindi chi è più importante riceve più spesso il processore, o lo riceve per un tempo più lungo. -
- Quindi è meglio quest'ultimo, che se un processo
si pianta gli altri possono andare avanti comunque,
vero? -
- In effetti per un certo verso si, ma non ha solo lati
positivi, prova a pensare a un processo sfortunato,
che ha poca importanza, e si trova in mezzo a processi
più importanti di lui, fa conto un processo
di stampa che deve essere eseguito mentre masterizzi
o ascolti una canzone, quel povero processo di stampa
verrà sempre messo per ultimo come importanza,
e dovrà sempre aspettare gli altri, con il rischio
di non andare mai in esecuzione, per questo l'arbitro
deve trovare il giusto tempo per tutti. Un altro svantaggio
si può avere quando un processo si blocca, ovvero
fa un errore, e non riesce più ad andare avanti,
l'arbitro non si avvede di ciò, e continua a
dargli un tempo per lavorare al processore, nonostante
lui poi non faccia nulla, e questo fa si che gli altri
processi risultino rallentati, perché se lui
non ci fosse gli altri userebbero il tempo in cui lui
non fa niente. -
Chi conosciamo
Sul Mac, fino al MacOS 9 siamo stati abituati al Multitasking
Cooperative, che per un certo verso funziona, ma spesso
se qualche applicazione si pianta dobbiamo forzare
il riavvio, perdendo anche i dati su cui stavamo lavorando
con altri programmi, ora con MacOS X il multitasking
è diventato preemptive, che unito alla stabilità
di Unix darà sicuramente soddisfazioni.