Ժամանակաբաշխում

Վիքիպեդիայից՝ ազատ հանրագիտարանից

Հաշվարկներում ժամանակաբաշխումը մի քանի օգտագործողների միջև հաշվողական ռեսուրսների միաժամանակ բաշխումն է բազմածրագրավորման և բազմախնդրության միջոցով[1]։ Դրա ներկայացումը 1960-ականներին և որպես հաշվարկման մշտական մոդելի հզորացում 1970-ականներին հաշվարկման պատմության մեջ մեծագույն տեխնոլոգիական վերելք էր։ Թույլ տալով մի քանի օգտագործողների համաժամանակյա օգտագործել միևնույն համակարգիչը` ժամանակաբաշխումը կտրականապես իջեցրեց հաշվարկային կարողությունների գները և հնարավոր դարձրեց անհատներին և կազմակերպություններին օգտագործել համակարգիչ` առանց ձեռքի տակ ունենալու այն[2]։

Պատմություն[խմբագրել | խմբագրել կոդը]

Փաթեթային վերամշակում[խմբագրել | խմբագրել կոդը]

Վաղ համակարգիչներ չափազանց թարկարժեք սարքեր էին և չափազանց դանդաղ էին աշխատում նոր մոդելների համեմատությամբ։ Մեքենաներ սովորաբար հատուկ առաջադրանքների հաջորդականություն կատարելու համար էին ստեղծված և աշխատում էին ղեկավարման վահանակի միջոցով։ Օպերատորը ձեռքով մտնում էր ծրագրեր անջատիչների միջոցով, որպեսզի բեռնեն և աշխատեցնեն ծրագրաշարերը։ Այս ծրագրերը կարող էին խլել ժամեր, անգամ շաբաթներ աշխատելու համար։ Ինչքան համակարգիչների գործարկման արագությունը աճեց, աշխատաժամանակը նազեց, անհանգստության պատճառ էր մնում հաջորդ ծրագիրը սկսելու համար օգտագործող ժամանակը։ Զարգացան փաթեթային վերամշակման մեթոդները, որպեսզի նվազեցնեն անցման համար օգտագործվող ժամանակը` ծրագրերը հերթի մեջ գցելով այնպես, որ մեկը սկսեր աշխատանքը մյուսի ավարտելուն պես։

Որպեսզի սատարեն փաթեթային գործարկումը, մի շարք համեմատաբար էժան միջոցներ էին օգտագործում ծրագրաորողների կողմից` ծրագրերը թղթի վրա ոչ առցանց ռեժիմում գրելու համար։ Երբ ավարտեցին գրելը, ծրագրերը հաստատվեցին օպերացիոն խմբի կողմից, որոնք ըստ հերթականությամբ դասավորվեցին աշխատելու համար։ Կարևոր ծրագրերը անմիջապես աշխատում էին,իսկ թե ինչքան հետո հաջորդ ծրագիրը կաշխատեր, անհնար էր կանխագուշակել։ Երբ ծրագրի աշխատանքը ավարտվում էր, արդյունքը, հիմնականում` տպված, վերադարձում էր ծրագրավորողին։ Գործընթացի ավարտը կարող էր օրեր տևել, որի ընթացքում ծրագրավորողը կարող էր անգամ չտեսնել համակարգիչը։

Օգտագործողին համակարգիչը ուղղակիորեն օգտագործելու հնարավորություն տալու այլընտրանքը այնքան թանկ էր, որ չէր էլ քննարկվում։ Սա այն պատճառով էր, որ օգտագործողը կարող էր երկար ժամանակ կոդ մուտք անել, որի ընթացքում համակարգիչն անգործ էր մնում։ Այս իրավիճակը սահմանափակում էր այն կազմակերպությունների ինտերակտիվ զարգացումը, որոնք կարող էին իրենց թույլ տալ վատնել հաշվարկային ցիկլերը. սա հատկապես համալսարաններին է վերաբերում։

Ժամանակաբաշխում[խմբագրել | խմբագրել կոդը]

Ժամանակաբաշխման գաղափարը ծագել է այն գիտակցությունից, որ մինչդեռ ցանկացած օգտագործող համակարգիչը արդյունավետ է օգտագործում, մյուսները հնարավոր է, որ ինչ-որ բան այն չեն անում։ Սա փոխգործակցության օրինակ էր։ Սովորաբար երբ առանձին օգտագործող դիմում էր ինչ-որ ինֆորմացիայի, հնարավոր էր` դադարներ առաջանան, և մի խումբ օգտագործողների միաժամանակ մուտքը կարող էր լցնել այդ դադարը ոչ անհրաժեշտ ինֆորմացիայով։ Եթե տրված լիներ օգտագործողների օպտիմալ քանակ, ընդհանուր գործընթացը շատ արդյունավետ կկազմակերպվեր։ Նման մեխանիմով ժամանակի փոքր դադարները կարող էին տրամադրվել մյուս օգտագործողներին։

Այս գաղափարը առաջին անգամ նկարագրվել է 1954 թվականին MIT-ի ամառային դասընթացների ժամանակ Ջոն Բաքուսի կողմից[3]։ Հետագայում Բոբ Բեմերը իր` Automatic Control Magazine-ում տպված «Ինչպես դիտարկել համակարգիչը» հոդվածում խոսել է այդ մասին[4][5]։ 1958-ին տպագրված թերթում Վ. Ֆ. Բաուերը[6] գրում է. «Համակարգիչները պետք է մի քանի խնդիրներ միաժամանակ լուծեն։ Բոլոր կազմակերպությունները պետք է ներածման-արտածման համակարգեր տեղադրեն իրենց տարածքներում և ժամանակ գնեն համակարգչում ճիշտ այնպես, ինչպես ցանկացած տնային տնտեսություն էլեկտրաէներգիա կամ ջուր է գնում համապատասխան ընկերություններից»։

Այսպիսի համակարգ իրականացնելը այնքան էլ հեշտ խնդիր չէր։ Վաղ համակարգերի համար փաթեթային վերամշակումը արդյունավետ մեթոդոլոգիական արգացում էր։ Քանի որ համակարգիչները դեռևս միայն մեկ ծրագիր էին իրականացնում տրված ժամանակում, հիմնական փոփոխությունը եղավ կատարվող ծրագրի և հաջորդ ծրագրի միջև ընկած ժամանակը։ Մի քանի օգտագործողներին միաժամանակ հնարավորություն տալը լրիվ այլ գաղափար էր։ Մեքենայում պետք է պահվեր յուրաքանչյուր օգտագործողի վիճակը, այնուհետև արագորեն փոխվեր։ Սրանով համակարգչային նոր ցիկլեր կառաջանային, իսկ դանդաղագործ մեքենաներում սա լուրջ անհանգստություն էր։ Այնուամենայնիվ, ինչքան համակարգիչները արագությամբ զարգացան, և մեծացավ հիմնական հիշողությունը, որում օգտագործողների վիճակն էր պահվում, ժամանակաբաշխման գաղափար աստիճանաբար և հարաբերականորեն զարգացավ։

Առաջին նախագիծը, որ իրականացնում էր ժամանակաբաշխ համակարգ, MIT-ում նախաձեռնել է Ջոն ՄաքՔարթին 1959-ին։ Այն նախագծված էր IBM 704-ի վրա, իսկ հետագայում լրացուցիչ փոփոխությունների արդյունքում ստեղծվեց IBM 709-ը, որը ժամանակաբաշխման համար բավականաչափ հզորություն ունեցող առաջին համակարգիչներից էր։ Նախագծի արդյունքներից էր Compatible Time-Sharing System-ը կամ CTSS-ը, որը ցուցադրվեց 1961-ի նոյեմբերին։ CTSS-ը առաջին ժամանակաբաշխ համակարգն էր, որ գործածության մեջ մնաց մինչև 1973 թվականը։ Առաջին ցուցադրված ժամանակաբաշխ համակարգերից էր PLATO II-ը, որը ստեղծվել էր 1961-ին Դոնալդ Բիթզերի կողմից։ Բայց սա հատուկնպատակային համակարգ էր։ Բիթերը երկար ժամանակ ասել է, որ PLATO նախագիծը կստանար ժամանակաբաշխման արտոնագիր, եթե միայն Իլինոյսի համալսարանը չկորցներ 2 տարվա արտոնագիրը։ JOSS- ը սկսել է ժամանակաբաշխման ծառայությունը 1964 թվականի հունվարին։

Առևտրային լուրջ հաջողություններ ունեցող առաջին ժամանակաբաշխ համակարգը Dartmouth-ն էր։

Զարգացում[խմբագրել | խմբագրել կոդը]

Ուշ 1960-ականների և 1970-ականների ընթացքում համակարգչային տերմինալները բազմակողմանիորեն համալրվեցին մեծ կամակերպչական հիմնամասային համակարգիչներով, որտեղ շատ իրականացումներում անընդեմջ հարցվում էր` տեսնելու, թե որևէ լրացուցիչ ինֆորմացիա հասանելի է, կամ որևէ գործողության համար դիմում եղել է օգտագործողների կողմից։ Հետագայում տեխնոլոգիաները փոխկապակցված էին ընդմիջման պայմաններով, և նրանցից ոմանք օգտագործում էին զուգահեռ տվյալների փոխանցման տեխնոլոգիաները, ինչպիսին է IEEE 488 ստանդարտը։ Ընդհանուր առմամբ, համակարգչային տերմինալները օգտագործվել են համակցված հատկությունների վրա, ճիշտ այնպես, ինչպես սեղանի համակարգիչները կամ անձնական համակարգիչները։ Անհատական համակարգիչների վաղ օրերին շատերը, իրականում, օգտագործվում էին որպես ժամանակակից համակարգերի համար խելացի տերմինալներ։

Dartmouth ժամանակաբաշխ համակարգի ստեղծողը 1968-ին ասել է. «արձագանքման համար օգտագործվող 10 վայրկյանից ավելի ցանկացած ժամանակը ավերում է սեփական համակարգիչ ունենալու երաանքը»[7]։ Եվ հակառակը` ժամանակաբաշխ համակարգի օգտագործողները կարծում էին, որ իրենց տերմինալը համակարգիչն է[8]։ 1980-ականներին միկրոհաշվարկման զարգացմանը զուգընթաց` ժամանակաբաշխումը ստվերվեց, քանի որ միկրոպրոցեսրները բավական էժան էին, և յուրաքանչյուրը կարող էր օգտագործել CPU-ի ժամանակը իր կարիքների համար, անգամ եթե անգործության մեջ է։ Այնուամենայնիվ, համացանցը ժամանակաբաշխման ընդհանուր գաղափարը նորից արդիական դարձրեց։ Թանկարժեք կորպորատիվ սերվերները, որոնք միլիոններ արժեն, կարող են ընդունել հազարավոր հաճախորդներ, որոնք կիսում են ընդհանուր ռեսուրս։ Վաղ շրջանի հաջորդական տերմինալներով վեբ կայքերը հիմնականում լինում են գործունեության մեջ, որին հետևում է անգործության շրջանը։ Այս «պայթող» բնույթը թույլատրում է, որ ծառայությունը օգտագործվի միաժամանակ մի քանի հաճախորդների կողմից` սովորաբար առանց կանխատեսված հաղորդակցման ուշացումների, մինչև սերվերները չափազանց զբաղված չլինեն։

Ժամանակաբաշխումը որպես բիզնես[խմբագրել | խմբագրել կոդը]

1960-ականներին մի շարք ընկերություններ սկսեցին մատուցել ժամանակաբաշխման ծառայություններ` որպես ծառայողական գրասենյակներ։ Վաղ շրջանի համակարգերը օգտագործում էին Model 33 KSR, ASR, Teletype Model 35 KSR կամ ASR մեքենաներ ASCII միջավայրերում և IBM ընտրովի գրելու հիմքով տերմինալներ (հատկապես` IBM 2741)` երկու տարբեր յոթբիթանի կոդերով[9]։ Նրանք միանում էին կենտրոնական համակարգչին Bell 103A մոդեմի միջոցով կամ մի քանի միակցված մոդեմների միջոցով, որոնք կարող էին վայրկյանում 10–15 սիմվոլի հետ աշխատել։ Ավելի ուշ համակարգերում տերմինալներն ու մոդեմները սատարում էին վայրկյանում 30–120 սիմվոլ։ Ժամանակաբաշխման համակարգը պետք է ապահովեր ամբողջովին գործուն միջավայր, ներառյալ ծրագրավորման լեզուների տարբեր պրոցեսրներ, տարբեր ծրագրային համալիրներ, ֆայլերի պահեստներ, անգվածային տպագրություն և ոչ առցանց պահեստավորում։ Օգտագործողները վճարում էին տերմինալների համար, առանձին վճար կար միանալու յուրաքանչյուր ժամի համար, CPU-ի ժամանակի համար և սկավառակի պարունակության յուրաքանչյուր ամսվա սպառած կիլոբայթերի համար։

Համընդհանուր օգտագործվող ժամանակաբաշխ համակարգերից են SDS 940-ը, PDP-10-ը և IBM 360-ը։ Ծառայություններ մատուցող ընկերություններից են GE's GEISCO-ը, IBM-ի մասնաճյուղ համարվող The Service Bureau Corporation-ը, Tymshare-ը (1966-ին է հիմնադրվել), National CSS (հիմնադրվել է 1967-ին), Bolt-ը, Beranek-ը և Newman-ը (BBN): Մինչև 1968 թվական, միայն US National Institutes of Health (NIH)-ին սատարող 32 այդպիսի ծառայություններ կային[10]։ Auerbach Guide to Timesharing-ը (1973) lists ցուցակով ներկայացնում է ժամանակաբաշխում օգտագործող իրարից 125 տարբեր նծառայություններ`այնպիսի գործիքներ օգտագործող, ինչպիսին են Burroughs-ը, CDC-ը, DEC-ը, HP-ն, Honeywell-ը, IBM-ը, RCA-ը, Univac-ը, and XDS-ը[11]։

Վայրիվերումներ[խմբագրել | խմբագրել կոդը]

1975-ին խոսվում էր` սուպեր-մինի համակարգիչների հսկայածավալ արտադրությունը[12] օգտագործում էր ժամանակաբաշխում։ Ինչ վերաբերում է DEC-երին` մի ժամանակ IBM-ից հետո երկրորդ խոշորագույն համակարգչային ընկերությանը, նրանց PDP-10—ը և IBM-ի 360/67-ը[13] լայնորեն կիրառվում էին[14] կոմերցիոն ժամանակաբաշխ ծառայություններից, ինչպիսին են CompuServe-ը, On-Line Systems-ը (OLS) և Rapidata-ն։

Rapidat-ն` որպես օրինակ[խմբագրել | խմբագրել կոդը]

Չնայած ժամանակաբաշխման շատ ծառայություններ փակվեցին, Rapidata-ն[15][16] մնաց և դարձավ National Data Corporation-ի մի մասը[17]։ 1982-ին բավականին հետաքրքրություն կար նրա վերաբերյալ։ Անգամ նրանից ստացվող եկամուտների` 66% կրճատվելու[18] և National Data-ի կողմից սեփական խնդիրները մշակելու դեպքում էլ քայլեր էին արվում այս ժամանակաբաշխման բիզնեսը պահելու համար[19][20][21]։

Համակարգչային սպասարկման ծրագիր[խմբագրել | խմբագրել կոդը]

1964-ին ստեղծվելով` Multics օպերացիոն համակարգը նախագծված էր որպես հաշվարկային սպասարկող ծրագիր`մոդելավորված էլեկտրոնային կամ հեռախոսային ծրգրերի վրա։ 1970-ական թվականներին Թեդ Նելսոնի օրիգինալ «Xanadu» հիպերտեքստային պահոցը նախատեսված էր որպես այդպիսի ծառայություն։ Թվում էր, թե համակարգչային արդյունաբերությունը աճել է, երբ հաշվապահական ռեսուրսների նման համախմբումը չի հանդիսանա որպես ժամանակաբաշխ համակարգ։ 1990-ական թվականներին գաղափարը, սակայն, վերափոխվեց որոշ ամպային հաշվարկների։

Անվտանգություն[խմբագրել | խմբագրել կոդը]

Ժամանակաբաշխումը առաջին դեպքն էր, երբ տարբեր օգտագործողների մի քանի պրոցեսներ աշխատում էին միևնույն մեքենայի վրա, և պրոցեսները կարող էին խանգարել իրար։ Օրինակ` մի պրոցեսը կարող է փոփոխել բոլոր պրոցեսների կողմից օգտագործվող ընդհանուր ռեսուրսը, ինչպիսին հիշողության որևէ փոփոխականն է։ Երբ միայն մի օգտագործող էր համակարգում, սա կարող է սխալ արդյունքի բերել։ Մի քանի օգտագործողնեի դեպքում մյուսները չեն տեսնում այն ինֆորմացիան, որի համար դիմում են։ Սա կանխելու համար օպերացիոն համակարգը կարիք ունի մտածելու, թե յուրաքանչյուր պրոցես ինչ նախապատվություններ ունի։ Օրինակ` օպերացիոն համակարգը կարող է թույլ չտալ, որ կոնկրետ պրոցես դիմի կոնկրետ փոփոխականի։

Համակարգչային անվտանգության վերաբերյալ առաջին միջազգային համաժողովը անցկացվել է 1971-ին Լոնդոնում և հիմնականում անցկացվում էր ժամանակաբաշխման արտադրության և իր հաճախորդների համար։

Նշանավոր ժամանակաբաշխ համակարգեր[խմբագրել | խմբագրել կոդը]

Վաղ շրջանի կարևորագույն համակարգերը․

  • Allen-Babcock RUSH (Remote Users of Shared Hardware) Time-sharing System on IBM S/360 hardware (1966) → Tymshare
  • AT&T Bell Labs Unix (1971) → UC Berkeley BSD Unix (1977)
  • BBN PDP-1 Time-sharing System → Massachusetts General Hospital PDP-1D → MUMPS
  • BBN TENEX → DEC TOPS-20, Foonly FOONEX, MAXC OS at PARC, Stanford Low Overhead Timesharing System (LOTS)
  • Berkeley Timesharing System at UC Berkeley Project Genie → Scientific Data Systems SDS 940 (Tymshare, BBN, SRI, Community Memory) → BCC 500 → MAXC at PARC
  • Burroughs Time-sharing MCP → HP 3000 MPE
  • Cambridge Multiple Access System was developed for the Titan, the prototype Atlas 2 computer built by Ferranti for the University of Cambridge. This was the first time-sharing system developed outside the United States, and which influenced the later development of UNIX.
  • Compower Ltd., a wholly owned subsidiary of the National Coal Board (later British Coal Corporation) in the UK. Originally National Coal Board (NCB) Computer Services, it became Compower in 1973 providing computing and time-share services to internal NCB users and as a commercial service to external users. Sold to Philips C&P (Communications and Processing) in August 1994.
  • CompuServe, also branded as Compu-Serv, CIS.
  • Compu-Time, Inc., on Honeywell 400/4000, started in 1968 in Ft Lauderdale, Florida, moved to Daytona Beach in 1970.
  • CDC MACE, APEX → Kronos → NOS → NOS/VE
  • Dartmouth Time Sharing System (DTSS) → GE Time-sharing → GEnie
  • DEC PDP-6 Time-sharing Monitor → TOPS-10 → BBN TENEX → DEC TOPS-20
  • DEC TSS-8 → RSTS-11, RSX-11 → VAX/VMS
  • HP 2000 Time-Shared BASIC
  • HP 3000 series
  • IBM CALL/360, CALL/OS - using IBM System/360 Model 50
  • IBM CP-40 → CP-67 → CP-370 → CP/CMS → VM/CMS
  • IBM TSO for OS/MVT → for OS/VS2 → for MVS → for z/OS
  • IBM TSS/360 → TSS/370
  • International Timesharing Corporation on dual CDC 3300 systems.
  • MIT CTSS → MULTICS (MIT / GE / Bell Labs) → Unix
  • MIT Time-sharing System for the DEC PDP-1 → ITS
  • McGill University MUSIC → IBM MUSIC/SP
  • Michigan Terminal System, on the IBM S/360-67, S/370, and successors.
  • Michigan State University CDC SCOPE/HUSTLER System
  • National CSS VP/CSS, on IBM 360 series; originally based on IBM's CP/CMS.
  • Oregon State University OS-3, on CDC 3000 series.
  • Prime Computer PRIMOS
  • RAND JOSS → JOSS-2 → JOSS-3
  • RCA TSOS → Univac / Unisys VMOS → VS/9
  • Service in Informatics and Analysis (SIA), on CDC 6600 Kronos.
  • System Development Corporation Time-sharing System, on the AN/FSQ-32.
  • Stanford ORVYL and WYLBUR, on IBM S/360-67.
  • Stanford PDP-1 Time-sharing System → SAIL → WAITS
  • Time Sharing Ltd. (TSL) on DEC PDP-10 systems → Automatic Data Processing (ADP), first commercial time-sharing system in Europe and first dual (fault tolerant) time-sharing system.
  • Tone (TSO-like, for VS1), a non-IBM Time-sharing product, marketed by Tone Software Co; TSO required VS2.
  • Tymshare SDS-940 → Tymcom X → Tymcom XX
  • Unisys/UNIVAC 1108 EXEC 8 → OS 1100 → OS 2200
  • UC Berkeley CAL-TSS, on CDC 6400.
  • XDS UTS → CP-V → Honeywell CP-6

Ծանոթագրություններ[խմբագրել | խմբագրել կոդը]

  1. DEC TIMESHARING (1965), by Peter Clark, The DEC Professional, VOLUME 1, Number 1
  2. IBM advertised, early 1960s, with a headline: "This man is sharing a $2 million computer"
  3. Backus, John, Computer Advanced Coding Techniques Արխիվացված 2018-09-29 Wayback Machine, MIT 1954, page 16-2. The first known description of computer time-sharing.
  4. Bemer, Bob (March 1957). «Origins of Timesharing». bobbemer.com. Արխիվացված է օրիգինալից 2017 թ․ հուլիսի 2-ին. Վերցված է 2016 թ․ հունիսի 24-ին.
  5. Middleburg, C.A. (2010). «Searching Publications on Operating Systems». arXiv:1003.5525 [cs.OS].
  6. Bauer, W. F., Computer design from the programmer's viewpoint Արխիվացված 2016-07-23 Wayback Machine (Eastern Joint Computer Conference, December 1958) One of the first descriptions of computer time-sharing.
  7. Kemeny, John G.; Kurtz, Thomas E. (1968 թ․ հոկտեմբերի 11). «Dartmouth Time-Sharing». Science. 162: 223–228.
  8. «TRANSCRIPTS OF 1974 National Computer Conference Pioneer Day Session». Dartmouth Time Sharing System. Dartmouth College.
  9. IBM 2741 Communication Terminal (PDF). IBM. էջ 12. Արխիվացված է օրիգինալից (PDF) 2017 թ․ մարտի 16-ին. Վերցված է 2018 թ․ փետրվարի 12-ին.
  10. "Information Technology Corporate Histories Collection". Computer History Museum. Retrieved on 2013-11-29 from http://www.computerhistory.org/corphist/view.php?s=stories&id=136.
  11. Auerbach Guide to Time Sharing (PDF). Auerbach Publishers, Inc. 1973. Վերցված է 2013 թ․ նոյեմբերի 29-ին.
  12. Computerworld, June 11, 1975, p. 35
  13. One Two-page IBM print ad was headlined "100 or more people can use IBM's new time-sharing computer at the same time." Originals were/are? on e-Bay
  14. p.1425, Encyclopedia of Computer Science, Litton Educational Publishing, Inc.
  15. https://groups.google.com/forum/#!topic/alt.folklore.computers/aE4TwORruB8 - "I worked for RapiData Timesharing for about a year circa 1969..."
  16. someone else: "I worked there for almost 2 years 1977 to 1979." alt.folklore.computers/aE4TwORruB8/EdpKfFAlBncJ
  17. NDC started in 1967, and paralleled Rapidata; see Bloomberg's https://www.bloomberg.com/research/stocks/private/snapshot.asp?privcapId=290092
  18. Computerworld, Oct. 6, 1986, p.179, "Rapidata revenue was $11 million ... in 1986, down from ... ($31 million in 1982)."
  19. Computerworld, Aug.25,1986, p.5, "National Data Corp. said it is close to reaching an agreement with a buyer of its Rapidata timesharing division. In May, National Data said it would close down ..."
  20. National Data Corp became NDC-Health Corp in 2001 (bizjournals.com/atlanta/stories/2001/10/29/daily25.html)
  21. As for a place in history, Rapidata is listed in 'The AUERBACH Guide to Time Sharing (1973)' http://bitsavers.informatik.uni-stuttgart.de/pdf/auerbach/GuideToTimesharing_Jan73.pdf

Արտաքին հղումներ[խմբագրել | խմբագրել կոդը]