Multitasking: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
fix |
m →Multitasking con prelazione (preemptive): Corretto la formattazione di "context switch" |
||
(Una versione intermedia di uno stesso utente non è mostrata) | |||
Riga 1:
{{F|teorie dell'informatica|febbraio 2013|Mancano completamente le sezioni Note, Bibliografia e Collegamenti esterni}}
Con '''multitasking'''<ref>{{Cita libro|autore=Dave Crenshaw|titolo=The Myth of Multitasking: How 'Doing It All' Gets Nothing Done|anno=2008|url=https://archive.org/details/mythofmultitaski0000cren}}</ref> (in [[lingua italiana|italiano]] '''multiprocessualità'''), in [[informatica]], si indica la capacità di un [[software]] di [[esecuzione (informatica)|eseguire]] più [[programma (informatica)|programmi]] contemporaneamente: se ad esempio viene chiesto al sistema di eseguire contemporaneamente due [[processo (informatica)|processi]] <math>A</math> e <math>B</math>, la [[CPU]] eseguirà per qualche istante di tempo il [[Processo (informatica)|processo]] <math>A</math>, poi per qualche istante successivo il [[Processo (informatica)|processo]] <math>B</math>, poi tornerà a eseguire il processo <math>A</math> e così via; il passaggio dal processo <math>A</math> al processo <math>B</math> e viceversa viene definito
Le decisioni riguardanti l'esecuzione di un cambio di contesto tra due programmi vengono intraprese da un componente software del [[sistema operativo]], lo [[scheduler]], il quale invierà le proprie decisioni date principalmente dal ''[[
== Descrizione ==
Esistono principalmente due tipi di multiprogrammazione:
*
*
Per ''grado di multiprogrammazione'' si indica la capacità di un sistema di poter eseguire più [[Processo (informatica)|processi]] in [[Memoria (informatica)|memoria]].
Riga 20:
=== Multitasking con prelazione (''preemptive'') ===
La prelazione (o
* 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 ==
I primi sistemi operativi per [[Personal computer|personal e home computer]],
Il Sinclair QL (da ''
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 a [[16 bit]] quali il [[PC IBM]] e i primi sistemi ibridi a 16/32 bit [[Macintosh]], [[Atari ST]] e [[Amiga]].
Quest'ultimo computer in particolare è stato il primo computer di larga diffusione sul mercato ad adottare il multitasking ''preemptive'' col suo [[AmigaOS]], nel
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
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 il [[mouse]], in modo da poter vedere più programmi a schermo pieno aggiornare in parallelo i propri schermi grafici.
Negli [[anni 1990]] il multitasking ''preemptive'' conobbe vasta diffusione sui personal computer con i sistemi operativi [[Microsoft Windows|Windows]] dalla versione
== Altri significati ==
|