Originally posted by ragnos
View Post
Announcement
Collapse
No announcement yet.
Announcement
Collapse
No announcement yet.
Fedelissimi...Tasto CERCA...
Collapse
X
-
Talebano 2tempista DDG
- Nov 2007
- 31095
- 37
- Maschio
- 10
- Genova
- Aprilia RS 257 w.i.p. + Mv Agusta B3 675
- Send PM
-
Originally posted by Luka79 View PostMuahahahahahahah
Da Wikipedia, l'enciclopedia libera.
In informatica, un sistema operativo con supporto per il multitasking (multiprocessualit?) permette di eseguire pi? programmi contemporaneamente: se ad esempio viene chiesto al sistema di eseguire contemporaneamente due processi A e B, la CPU eseguir? per qualche istante il processo A, poi per qualche istante il processo B, poi torner? ad eseguire il processo A e cos? via.
Il passaggio dal processo A al processo B e viceversa viene definito "cambio di contesto" (context switch). Le decisioni riguardanti l'esecuzione di un cambio di contesto tra due programmi vengono intraprese da un componente del sistema operativo, lo scheduler, il quale invier? le proprie decisioni ad un altro modulo del sistema operativo, il dispatcher che 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'algoritmo di scheduling usato.
Indice [nascondi]
1 Il multitasking
1.1 Multitasking senza prelazione (cooperative)
1.2 Multitasking con prelazione (preemptive)
2 Punto storico sui sistemi operativi multitasking preemptive
3 Voci correlate
Il multitasking [modifica]
Esistono principalmente due tipi di multiprogrammazione:
Tipo batch: in cui non c'? interattivit? con l'utente. L'obiettivo di questo tipo di multiprogrammazione ? la massimizzazione delle prestazioni.
Tipo time-sharing: in cui si permette a pi? utenti di utilizzare contemporaneamente e interattivamente lo stesso sistema, massimizzando la praticit? d'uso, a scapito delle prestazioni.
Per grado di multiprogrammazione si indica la capacit? di un sistema di poter eseguire pi? processi in memoria.
Multitasking senza prelazione (cooperative) [modifica]
Detto anche multitasking cooperative, in questo caso i programmi cedono volontariamente il controllo al sistema operativo una volta finita l'operazione in corso: ? il caso di Mac OS fino alla versione 9, o di Windows 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]
La prelazione ? 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. Il preemptive multitask ? stato adottato dalla maggior parte dei sistemi operativi moderni.
Punto storico sui sistemi operativi multitasking preemptive [modifica]
I primi sistemi operativi per personal e home computer ad uscire sul mercato che presentavano il multitasking preemptive sono stati Minix, Xenix, OS-9 (tutti e tre derivati da Unix) ed il Sinclair QDOS (che equipaggiava la macchina Sinclair QL).
Il Sinclair QL (da Quantum Leap, salto quantico) era un home/personal computer basato sul 68008 ad 8 bit. Il suo sistema operativo, chiamato QDOS, era multitasking e multithreading ed integrava un potente interprete basic, programmi di utility e produttivit? ed una primitiva GUI a 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 ad Amstrad, che prefer? abbandonare il prodotto.
Il QL ebbe poco successo e la sfortuna di essere l'ultimo computer semi-professionale ad 8 bit ad 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 1985, quando Unix era 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? di Direct Memory Access.
A tali coprocessori erano delegati i calcoli aggiuntivi ed 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? ed 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, ed 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 ed 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 Windows dalla versione Windows 95 in poi, OS/2, BeOS, ed i vari sistemi Unix e Unix-like tra cui GNU/Linux e Mac OS X.
Voci correlate
mo ho capito:gaen:
Comment
-
Talebano 2tempista DDG
- Nov 2007
- 31095
- 37
- Maschio
- 10
- Genova
- Aprilia RS 257 w.i.p. + Mv Agusta B3 675
- Send PM
-
Talebano 2tempista DDG
- Nov 2007
- 31095
- 37
- Maschio
- 10
- Genova
- Aprilia RS 257 w.i.p. + Mv Agusta B3 675
- Send PM
X
Comment