Raspodjela vremena

na terminalima, 1978]]
U računarstvu, **raspodjela vremena** () jest dijeljenje resursa jednog računara među više korisnika putem multiprogramiranja i višeprogramskog rada.

Pojavio se u 1970-im godinama, i bio je veliki tehnološki napredak u historiji računarstva. Omogućio je da više korisnika istovremeno komunicira sa jednim računarom, tako da je raspodjela vremena drastično smanjila troškove pružanja računarskog vremena, i omogućilo je pojedincima i firmama da koriste računar bez potrebe da ga kupe.

## Historija 
Najraniji računari bili su izuzetno skupi uređaji i vrlo spori u odnosu na kasnije modele. Mašine su obično bile posvećene određenom skupu zadataka a operater je ručno unosio manje programe koje bi učitavao i izvršavao. To je moglo da traje satima ili čak sedmicama.

Dijeljenja resursa razvijeno je zbog zaključka da pojedinačan korisnik neefikasno koristi računar. Prvenstveno se radilo o načinu korištenja, jer je pojedinačni korisnik unosio niz podataka ali je imao dosta dugih pauza, tako bi grupa korisnika koja radi *istovremeno* te pauze popunila aktivnošću drugih. Multiprogramirani sistemi su donijeli novi kvalitet u upravljanju računarskim sistemom, pogotovo kada je riječ o iskorištenosti uređaja. Međutim, njihov osnovni nedostatak bila je nemogućnost interakcije korisnika sa programom u toku izvođenja. Programi su bili prethodno pripremani a potom upisani u memoriju, i korisnik više nije imao kontakta sa programom sve dok se ne bi pojavio konačni rezultat izvršenja programa. Raspodjela vremena bio je logički nastavak multiprogramiranja. Više poslova se istovremeno izvršavalo (kao što je bio slučaj i kod multiprogramiranja), ali postojala je i mogućnost interakcije korisnika sa programom u toku izvršenja, jer se CPU veoma brzo u definiranim vremenskim intervalima prebacivao sa jednog posla, na drugi tako da je korisnik mogao "komunicirati" sa operativnim sistemom ili samim programom direktno. Komunikacija se odvijala instrukcijama, a uređaj koji je to omogućavao obično je bila tastatura, dok je monitor predstavljao izlazni uređaj, koji je signalizirao odgovor programa na određenu instrukciju.

Operativni sistemi sa dijeljenim vremenom omogućavaju mnogim korisnicima da simultano dijele računarski sistem. Pošto svaka akcija (instrukcija,komanda) kod ovih sistema ima tendenciju da je kratka za izvršenje, samo mali vremenski period procesora je potreban za svakog korisnika. Kako operativni sistem prebacuje kontrolu sa jednog korisnika na drugi, svaki korisnik ponaosob stiče dojam da samo on koristi računar. Međutim jedno od ograničenja kod operativnih sistema sa dijeljenim vremenom krije se u samoj sposobnosti korisnika, npr. kod brzine unosa komandi na tastaturi (pet karaktera u sekundi je poprilično brzo za čovjeka, ali sporo za sam računar).

Ovaj koncept je prvi opisao John Backus 1954. na MIT-u, a kasnije i Bob Bemer u svom članku iz 1957. "Kako razmotriti računar" u časopisu *Automatic Control Magazine*. U radu koji je W.F. Bauer objavio u decembru 1958. raspodjelu vremena opisao ovako: "Računari bi istovremeno mogli rješavati brojne probleme. Kompanije bi imale opremu za ulaz-izlaz instaliranu u vlastitim prostorijama i kupovale bi vrijeme na računaru gotovo na isti način na koji prosječno domaćinstvo kupuje struju i vodu od komunalnih preduzeća."

Izgradnja sistema koji bi mogao na taj način raditi je ispočetka bila teška. Prvi projekt koji je primijenio raspodjela vremena za raspoređivanje korisničkih programa uradio je John McCarthy na MIT-u 1959, u početku planiran na izmijenjenom IBM 704, a kasnije na dodatno modificiranom IBM 709 (jedan od prvih računara koji je bio dovoljno moćan za raspodjelu vremena na jednom računaru).

Tokom kasnih 1960-ih i 1970-ih računarski terminali bili su spojeni na velike centralne računare, gdje su korisnici mogli da unose svoje programe i izvršavaju ih. Takvi terminali su obično bili korišteni na fakultetima, i služili su svoju svrhu kao i današnji stolni lični računari, iako su ustvari bili samo terminali koji su se spajali na glavni računar. Predstavljanjem mikroračunara 1980-ih, raspodjela vremena je izgubilo značaj, jer su mikroprocesori postali dovoljno jeftini da svaki korisnik može imati procesorsko vrijeme samo za sebe.

Međutim, dolaskom Interneta koncept dijeljenja vremena se vratio i otvorio neke nove mogućnosti. Skupe server farme su mogle ugostiti hiljade kupaca koji svi dijele iste zajedničke resurse. Kao i kod ranih serijskih terminala, veb sajtovi rade tako što imaju nagli skok aktivnosti jedno određeno vrijeme, a onda imaju periode praznog vremena.

## Poznati sistemi za dijeljenje vrmena 
* Allen-Babcock RUSH (Remote Users of Shared Hardware) na IBM S/360 hardveru (1966) → Tymshare 
* AT&amp;amp;T Bell Labs Unix (1971) → UC Berkeley BSD Unix (1977) 
* BBN PDP-1 time-sharing → Massachusetts General Hospital PDP-1D → MUMPS 
* BBN TENEX → DEC TOPS-20, Foonly FOONEX, MAXC OS u PARC-u, Stanford Low Overhead TimeSharing (LOTS), kojim je upravljao TOPS-20 
* Berkeley Timesharing sistem u UC Berkeley Project Genie → Naučni podatkovni sistemi SDS 940 (Tymshare, BBN, SRI, Memorija zajednice) → BCC 500 → MAXC u PARC-u 
* Burroughs MCP → HP 3000 MPE 
* Cambridgeov sistem višestrukog pristupa razvijen je za Titan, prototip računara Atlas 2 koji je napravio Ferranti za Univerzitet u Cambridgeu. Ovo je prvi sistem dijeljenja vremena razvijen izvan Sjedinjenih Država i koji je uticao na kasniji razvoj UNIX-a. 
* CompuServe, također i kao Compu-Serv, CIS. 
* Compu-Time, Inc., na Honeywell 400/4000, pokrenut 1968. u Ft Lauderdaleu na Floridi, preselio se 1970. na Daytona Beach. 
* CDC MACE, APEX → Kronos → NOS → NOS / VE 
* Dartmouth Time Sharing System (DTSS) → GE Dijeljenje vremena → GEnie 
* DEC PDP-6 Time-sharing Monitor → TOPS-10 → BBN TENEX → DEC TOPS-20 
* DEC TSS-8 → RSTS-11, RSX-11 → VAX/VMS 
* English Electric KDF9 COTAN  
* HP 2000 
* HP 3000 series 
* IBM CALL / 360, CALL / OS - IBM System/360 Model 50 
* IBM CP-40 → CP-67 → CP-370 → CP/CMS → VM/CMS 
* IBM TSO za OS/MVT → za OS/VS2 → za MVS → za z/OS 
* IBM TSS/360 → TSS / 370 
* IKT 1900 serija GEORGE 3 MOP 
* Međunarodna Timesharing Corporation CDC 3300. 
* MIT CTSS → MULTICS (MIT/GE/Bell Labs) → Unix 
* MIT Time-Sharing sistem za DEC PDP-1 → ITS 
* McGill University MUSIC → IBM MUSIC/SP 
* Michigan Terminal System, na IBM S/360-67, S/370 i nasljednici. 
* SCCE/HUSTLER sistem CDC-a Michigan State University 
* Nacionalni CSS VP/CSS, na seriji IBM 360; izvorno zasnovan na IBM-ovom CP/CMS-u . 
* Oregon State University OS-3, CDC 3000 . 
* Prime Computer PRIMOS 
* RAND JOSS → JOSS-2 → JOSS-3 
* RCA TSOS → Univac/ Unisys VMOS → VS / 9 
* Stanford ORVYL i WYLBUR, na IBM S/360-67 . 
* Stanford PDP-1  → SAIL → WAITS 
* Time Sharing Ltd. (TSL)  na DEC PDP-10 sistemima→ Automatska obrada podataka (ADP), prvi komercijalni sistem za dijeljenje vremena u Europi i prvi dualni sistem dijeljenja vremena. 
* Tone (sličan TSO-u, za VS1),  
* Tymshare SDS-940 → Tymcom X → Tymcom XX 
* Unisys/UNIVAC 1108 EXEC 8 → OS 1100 → OS 2200 
* UC Berkeley CAL-TSS, na CDC 6400 . 
* XDS UTS → CP-V → Honeywell CP-6

## Također pogledajte 
* Računarstvo u oblaku 
* Multiseat konfiguracija, više korisnika na jednom ličnom računaru . 
*Projekt MAC, projekt koji je finansirao DARPA na MIT-u, poznat po revolucionarnim istraživanjima operativnih sistema, umjetne inteligencije i teorije računanja .
* Virtualna memorija

## Reference 
## Vanjski linkovi 
* „Time Sharing Supervisor Programs“ , bilješke kojima se uspoređuju supervizorski programi CP-67, TSS/360, Michigan Terminal System (MTS) i Multics Michael T. Alexander, *Napredne teme u sistemskom programiranju* (1970, revidirana 1971) 
* "Računarska usluga kao tržište računarskih usluga" , Magistarski rad MIT-a Roberta Frankstona, 1973. 
* Podsjećanja na teoriju dijeljenja vremena Johna McCarthyja, 1983. godine. 
* Porijeklo dijeljenja vremena  
* "40 godina Multica, 1969-2009." 

Kategorija:Računarski sistemi