Multitasking
Conmultitasking[1](initalianomultiprocessualità), ininformatica,si indica la capacità di unsoftwaredieseguirepiùprogrammicontemporaneamente: se ad esempio viene chiesto al sistema di eseguire contemporaneamente dueprocessiA e B, laCPUeseguirà per qualche istante di tempo ilprocessoA, poi per qualche istante successivo ilprocessoB, poi tornerà a eseguire il processo A e così via; il passaggio dal processo A al processo B e viceversa viene definito "commutazione di contesto"(context switch)[2].
Le decisioni riguardanti l'esecuzione di un cambio di contesto tra due programmi vengono intraprese da un componente software delsistema operativo,loscheduler,il quale invierà le proprie decisioni date principalmente dalnicea un altro modulo del sistema operativo, ildispatcherche eseguirà effettivamente il cambio di contesto: a seconda di quale strategia di servizio (algoritmo di scheduling) venga seguita, lo scheduler controlla la ripartizione del tempo di CPU tra tutti i processi attivi. Esistono due principali tecniche di controllo di termine e pausa del multitasking: il vecchio senza prelazione (cooperative) e il nuovo con prelazione (preemptive), ma oggigiorno la vera potenza del multitasking risiede solo nell'algoritmodi scheduling usato[3].
Descrizione
[modifica|modifica wikitesto]Esistono principalmente due tipi di multiprogrammazione:
- Tipobatch:in cui non c'èinterattivitàcon l'utente.L'obiettivo di questo tipo di multiprogrammazione è sfruttare al meglio le risorse hardware disponibili. È una metodologia tipica dei primordi dell'informatica, periodo in cui la disponibilità di computer era bassa.
- Tipotime-sharing:in cui si permette a più utenti di utilizzare contemporaneamente e interattivamente lo stessosistema,massimizzando la praticità d'uso, a scapito delle prestazioni.
Pergrado di multiprogrammazionesi indica la capacità di un sistema di poter eseguire piùprocessiinmemoria.
Multitasking senza prelazione (cooperative)
[modifica|modifica wikitesto]Detto anche multitaskingcooperative,in questo caso i programmi cedono volontariamente il controllo al sistema operativo una volta finita l'operazione in corso: è il caso dimacOSfino alla versione9,o diWindows 3.0 e 3.1.Il vantaggio maggiore di questo metodo è che non ha bisogno di supporto hardware e si può implementare su ogni tipo di architettura. Il grave svantaggio è che un singolo programma che si rifiuta di cedere il controllo, o che si ferma per qualche errore, può bloccare l'intero computer, in quanto il sistema operativo non ha modo di riprendere il controllo da solo.
Più precisamente lo scheduler senza prelazione attua un cambio di contesto solo in circostanze quali:
- il passaggio di un programma dallo stato di esecuzione allo stato di attesa;
- il termine del programma stesso.
Multitasking con prelazione (preemptive)
[modifica|modifica wikitesto]La prelazione (orilascio anticipato) è l'atto di interrompere un programma a prescindere dalla volontà del programma stesso, ciò avviene grazie a delle particolari strutture hardware integrate nel microprocessore che automatizzano il cambio di contesto (context switch): in questo caso non solo lo scheduler interviene nelle circostanze previste da uno scheduler senza prelazione, ma anche in casi quali:
- il passaggio di un programma dallo stato di esecuzione allo stato di pronto per essere eseguito;
- il passaggio di un programma dallo stato di attesa allo stato di pronto per essere eseguito;
Un multitasking con prelazione (preemptive) non può quindi essere implementato se la piattaforma hardware non mette a disposizione gli strumenti necessari, ma in compenso, grazie all'hardware, il cambio di contesto è molto più efficiente favorendo l'adozione di quanti di tempo regolari e una esecuzione più "fluida" dei vari processi. Full preemptive multitask è stato adottato dalla maggior parte dei sistemi operativi moderni.
Punto storico sui sistemi operativi multitasking preemptive
[modifica|modifica wikitesto]I primi sistemi operativi perpersonal e home computer,ad uscire sul mercato, che presentavano il multitasking preemptive, sono stati:Minix,Xenix,OS-9(tutti e tre derivati daUnix) e ilSinclair QDOS(che equipaggiava la macchinaSinclair QL).
Il Sinclair QL (daQuantumLeap,salto quantico) era un home/personal computer basato sul68008a8 bit.Il suo sistema operativo, chiamato QDOS, era multitasking e multithreading e integrava un potente interprete basic, programmi di utility e produttività e una primitivaGUIa finestre; esso tuttavia fu inizialmente viziato da parecchi bug, perché immesso sul mercato troppo in fretta nell'intento di contrastare l'assai pubblicizzata uscita dell'Apple Macintosh.Addirittura il Sinclair QL venne presentato ufficialmente al pubblico senza che il sistema operativo fosse pronto, a causa delle difficoltà incontrate in fase di programmazione e testing. In seguito i problemi furono risolti, ma Sinclair aveva a quel punto già venduto la divisione computer adAmstrad,che preferì abbandonare il prodotto.
Il QL ebbe poco successo e la sfortuna di essere l'ultimo computer semi-professionale a 8 bit a uscire sul mercato all'incirca nello stesso periodo in cui vennero presentati i nuovi sistemi a16 bitquali ilPC IBMe i primi sistemi ibridi a 16/32 bitMacintosh,Atari STeAmiga.
Quest'ultimo computer in particolare è stato il primo computer di larga diffusione sul mercato ad adottare il multitasking preemptive col suoAmigaOS,nel1985,quandoUnixera ancora appannaggio delle università e dei grandi centri di calcolo.
AmigaOS ha dimostrato al grande pubblico la validità di un'architettura multitasking preemptive, potenziata sia dall'aggiunta di un set di coprocessori dedicati alla grafica, al suono e soprattutto al controllo del BUS di memoria, sia dalla disponibilità di schede aggiuntive con capacità diDirect Memory Access.
A tali coprocessori erano delegati i calcoli aggiuntivi e il controllo diretto delle periferiche, consentendo di ottenere ottime prestazioni anche con processori dal basso numero di clock, che potevano quindi essere totalmente disponibili ai programmi di gestione e di produttività e alle necessità dei comandi di sistema.
Il meccanismo del multitasking preemptive su Amiga aveva modo così di essere immediatamente percepibile dall'utente, in prima battuta per via della relativa rapidità con cui il sistema veniva gestito, e in seconda battuta perché l'utente poteva vedere di persona i diversi programmi funzionare in concomitanza, grazie anche alla gestione particolare degli schermi multipli di Amiga. Quest'ultima caratteristica, unica al tempo, permetteva all'utente di avere sullo stesso monitor più schermi indipendenti e sovrapposti (anche con risoluzioni video diverse), che potevano essere alzati e abbassati con ilmouse,in modo da poter vedere più programmi a schermo pieno aggiornare in parallelo i propri schermi grafici.
Neglianni 1990il multitasking preemptive conobbe vasta diffusione sui personal computer con i sistemi operativiWindowsdalla versioneWindows 95in poi,OS/2,BeOS,e i vari sistemiUnixeUnix-liketra cuiGNU/LinuxemacOS.
Altri significati
[modifica|modifica wikitesto]In ambito psicologico permultitasking,omente da cavalletta,si intende l'uso spasmodico di più dispositivi contemporaneamente[4][5].
Note
[modifica|modifica wikitesto]- ^Dave Crenshaw,The Myth of Multitasking: How 'Doing It All' Gets Nothing Done,2008.
- ^Charles Duhigg,Smarter Faster Better: The Transformative Power of Real Productivity,2016.
- ^Gary Keller e Jay Papasan,The ONE Thing: The Surprisingly Simple Truth Behind Extraordinary Results.
- ^https:// stateofmind.it/multitasking/
- ^https:// interris.it/copertina/mente-cavalletta-disattenzione-superficialita-stress/
Voci correlate
[modifica|modifica wikitesto]Altri progetti
[modifica|modifica wikitesto]Wikizionariocontiene il lemma di dizionario «multitasking»
Collegamenti esterni
[modifica|modifica wikitesto]- Multitasking,inDizionario delle scienze fisiche,Istituto dell'Enciclopedia Italiana,1996.
- Multitasking,suVocabolario Treccani,Istituto dell'Enciclopedia Italiana.
- multitasking,susapere.it,De Agostini.
- (EN)multitasking,suEnciclopedia Britannica,Encyclopædia Britannica, Inc.
- (EN) Denis Howe,multitasking,inFree On-line Dictionary of Computing.Disponibile con licenzaGFDL
- Multitasking,inGrande Dizionario di Italiano,Garzanti Linguistica.
Controllo di autorità | GND(DE)4133249-0·J9U(EN,HE)987007548971705171 |
---|