Percorso: ilMac.net > Scuola di Mac > Spiegazioni > Multitasking? Si grazie


Multitasking? Si grazie

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.


Data di pubblicazione: 16-06-2002
L'intero contenuto di questo sito è © dal 1998 del Team di ilMac.net, è vietata ogni riproduzione senza il consenso scritto da parte degli autori.