Time-sharing: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
Correzione di termini tecnici dell'introduzione dell'argomento |
|||
(35 versioni intermedie di 22 utenti non mostrate) | |||
Riga 1:
{{F|terminologia informatica|febbraio 2013}}
Il '''time-sharing''' (termine di origine [[lingua inglese|inglese]] che tradotto letteralmente significa "condivisione di tempo") è un approccio all'uso interattivo del [[processore]]. L'esecuzione della [[CPU]] viene suddivisa in '''quanti''' temporali. Il time-sharing è l'estensione logica della [[multiprogrammazione]] e non implica che il sistema sia [[multiutente]], ma se lo è allora più utenti possono, con i loro programmi in esecuzione, interagire con il sistema centralizzato ciascuno con un proprio terminale. La [[CPU]] del computer centrale viene utilizzata per rispondere alle richieste dei singoli utenti, passando rapidamente da uno all'altro ([[context switch]]) dando così l'impressione ad ognuno di avere a disposizione il computer centrale interamente per sé ovvero dando l'impressione di un processamento multiplo in parallelo di più processi verso più utenti.▼
Il '''time-sharing''' (anche '''timesharing''', altrimenti detto '''ripartizione di tempo''' o '''condivisione di tempo'''), in [[informatica]], è un modo del [[sistema operativo]] rivolto all'uso delle [[risorsa informatica|risorse]] da [[processore|processare]], attraverso il quale l'esecuzione dell'attività dell'[[unità di elaborazione centrale]] viene suddivisa in intervalli temporali. Ogni periodo di tempo è assegnato sequenzialmente a vari [[processo (informatica)|processi]] di uno stesso utente o a processi di più utenti.
Dal momento che i primi [[computer]] [[mainframe]] erano estremamente costosi, non era possibile garantire l'accesso esclusivo ad un singolo utilizzatore per l'uso in modo interattivo. Dal momento che con questa modalità di utilizzo i computer trascorrevano molto tempo in attesa dell'input dell'utente, si pensò di far utilizzare a più utenti lo stesso elaboratore, utilizzando i tempi morti per servire i diversi utenti a rotazione. Allo stesso modo, le piccole porzioni di tempo che trascorrevano nell'attesa dei dispositivi, quali [[disco fisso|dischi]], [[nastro magnetico]] o [[Rete informatica|rete]] potevano essere utilizzati per servire i vari utenti. I computer capaci di fornire servizi in time-sharing normalmente venivano impiegati per lavori in [[batch]] durante la notte.▼
== Descrizione ==
Da sole, queste soluzioni non erano sufficienti per costruire un sistema di time-sharing perfettamente funzionante. Per fare in modo che il servizio a più utenti fosse uniforme, era necessario un sistema che gestisse anche i processi che non fanno pause per l'attesa di input, quali i programmi che impiegavano molte risorse, ad esempio per calcoli di grande precisione. Si rendeva necessario un sistema di [[interrupt]] hardware, capace di mettere in pausa un processo in esecuzione, per dare tempo di processore ad un altro processo in attesa.▼
In italiano è tradotto sia con «ripartizione di tempo» che con «condivisione di tempo». La prima traduzione, ripartizione di tempo, è più fedele rispetto a ciò che effettivamente accade nel sistema operativo, ma meno rispondente al termine inglese e alla sua collocazione storica. La tecnica time-sharing, infatti, fu introdotta come evoluzione di quella [[batch]], per permettere a più utenti contemporaneamente di utilizzare il computer. La sincronia è apparente, poiché in ogni istante il processore centrale esegue un solo processo; il rapido avvicendamento dei processi li fa apparire come eseguiti contemporaneamente.
▲
Questo concetto fu descritto pubblicamente la prima volta all'inizio del [[1957]] da [[Bob Bemer]] in un articolo nella rivista ''Automatic Control Magazine''. Il primo progetto ad implementare un sistema di time-sharing fu iniziato da [[John McCarthy (computer scientist)|John McCarthy]] alla fine del 1957. Sebbene egli abbandonò per lavorare al [[Project MAC]] e ad altri progetti, uno dei risultati del suo lavoro, noto come ''Computer Time Sharing System'' o [[CTSS]], fu dimostrato nel novembre [[1961]] e costituisce, molto probabilmente, il primo sistema di time-sharing, che è rimasto in uso fino al [[1973]]. Il primo tentativo di introduzione commerciale del sistema in time-sharing, che poi si è diffuso ampiamente alla fine degli [[anni 1960]] e nei primi [[anni 1970]] è stato il ''Dartmouth Time Sharing System'' o [[DTSS]] che è stato implementato per la prima volta al Dartmouth College nel [[1964]] ed in seguito ha costituito la base del servizio di [[computer bureau]] di [[General Electric]].▼
▲Dal momento che i primi [[computer]] [[mainframe]] erano estremamente costosi, non era possibile garantire l'accesso esclusivo ad un singolo utilizzatore per l'uso in modo interattivo
A volte l'invenzione del concetto di time-sharing viene attribuita a [[Christopher Strachey]], tuttavia, sebbene egli abbia utilizzato il termine time-sharing, il concetto che egli descrisse è oggi noto come [[multitasking]]. Il time-sharing è correlato al multitasking nel senso che in ambedue i sistemi un singolo computer esegue più processi in modo che appare simultaneo. Tuttavia il time-sharing fa riferimento ad un computer che supporta più utenti simultaneamente, mentre il multitasking è un termine più ampio che implica l'esecuzione di più [[processo (informatica)|processi]], indipendentemente dal numero degli utenti.▼
▲Da sole, queste soluzioni non erano sufficienti per costruire un sistema di time-sharing perfettamente funzionante. Per fare in modo che il servizio a più utenti fosse uniforme, era necessario un sistema che gestisse anche i processi che non fanno pause per l'attesa di input, quali i programmi che impiegavano molte risorse, ad esempio per calcoli di grande precisione. Si rendeva necessario un sistema di [[interrupt]] hardware, capace di mettere in pausa un processo in esecuzione, per dare tempo
▲Questo concetto fu descritto pubblicamente la prima volta all'inizio del [[1957]] da [[Bob Bemer]] in un articolo nella rivista ''Automatic Control Magazine''. Il primo progetto ad implementare un sistema di time-sharing fu iniziato da [[
▲A volte l'invenzione del concetto di time-sharing viene attribuita a [[Christopher Strachey]]
== Voci correlate ==
* [[Cloud computing]]
* [[Multitasking]]
* [[Pre-rilascio]]
== Collegamenti esterni ==
* {{Collegamenti esterni}}
{{Controllo di autorità}}
{{Portale|Informatica}}
|