Розподіл часу
В комп'ютерних системах поділ часу — це спосіб розподілу обчислювальних ресурсів між багатьма користувачами за допомогою мультипрограмування та багатозадачності. Вперше презентований в 1960-тих, та розвинутий в помітну обчислювальну модель в 1970-тих він здійснив значний технологічний прорив в історії обчислювальної техніки.
Дозволяючи багатьом користувачам одночасно взаємодіяти з одним комп'ютером, поділ часу значно знизив ціну надання обчислювальних потужностей, уможлививши використання комп'ютера організаціями та індивідами без необхідності його покупки. Також поділ часу посприяв розробці нових інтерактивних програм.
Історія
Пакетна обробка
Перші комп'ютери були надзвичайно дорогими та повільними пристроями. Зазвичай вони призначались для виконання конкретного набору завдань і керувались з панелі оператора, який вручну вводив короткі програми за допомогою зміни позиції перемикачів на панелі. Ці програми могли виконуватись протягом годин, чи навіть тижнів. Але коли швидкість комп'ютерів почала зростати, всіх зацікавив час потрібний для вводу наступної програми. Методологія пакетної обробки з'явилась щоб зменшити час простою машини під час вводу програми. В пакетній обробці як тільки одна програма завершувала виконання комп'ютер завантажував наступну.
Щоб підтримувати процес пакетної оброки, програмісти використовували перфоратори перфокарт чи перфострічок. Це були недорогі пристрої, які дозволяли створювати програми «офлайн». Після набору програми їх передавали операторам машини, які записували їх в розклад. Програма-планувальник (диспетчер) операційної системи сортувала програми, що мали виконуватися, за пріоритетом: важливіші — на виконання у першу чергу, менш важливі — за можливості. Коли програму нарешті виконають, результат її роботи зазвичай в роздрукованому вигляді повертається програмісту. Ввесь процес міг займати багато днів, протягом яких програміст взагалі не бачив комп'ютера.
Альтернатива дозволити користувачу керувати комп'ютером напряму, була занадто дорога щоб її взагалі могли розглядати.
Поділ часу
Поділ часу з'явився від усвідомлення того, що хоча й кожен окремий користувач неефективний, велика група користувачів разом — ні. Це спричинено формою взаємодії; в більшості випадків користувач вводить короткий імпульс інформації, за яким слідує довга пауза, але група користувачів які працюють одночасно, означатиме, що паузи одного користувача можуть заповнюватись активностями інших. Якщо підібрати оптимальний розмір групи, загальний процес може бути дуже ефективним. Подібно, малі відрізки часу проведені в очікуванні на читання диска, стрічки чи передачі по мережі можуть надаватись іншим користувачам.
Реалізація системи яка б отримувала з цього перевагу складна. Пакетна обробка була тільки методологією що застосовувалась поверх найраніших систем. Комп'ютери все ще виконували одну програму для одного користувача за раз, а все що змінила пакетна обробка — скорочення часу між запусками програм. Розробка системи яка б підтримувала одночасну роботу багатьох користувачів була зовсім іншою ідеєю. «Стан» («контекст», у сучасних термінах) кожного користувача та його програм мав зберігатись в машині, і міг швидко замінюватись іншим. Зміна станів займала дорогоцінні процесорні такти, і це було великою проблемою для повільних машин тієї епохи. Тим не менш, швидкодія комп'ютерів і розміри їх оперативної пам'яті (у якій зберігались стани користувачів) постійно зростали, відповідно накладні витрати на поділ часу зменшувались.
Ідею вперше публічно описав Боб Бемер на початку 1957, в статті для Automatic Control Magazine. Перший проект реалізації системи з поділом часу був початий Джоном Маккарті наприкінці 1957, на модифікації IBM 704, та пізніше на модифікованому IBM 7090. Хоча він і покинув роботу заради Проекту MAC та інших, один з отриманих результатів, відомий як Compatible Time-Sharing System чи CTSS, був продемонстрований в листопаді 1961. Стверджують що CTSS — перша система з поділом часу. Вона використовувалась аж до 1973. Іншим претендентом на першу продемонстровану систему поділу часу була PLATO II, створена Дональдом Блітцером на публічній демонстрації в Роберт Аллертон Парк біля Універстету Іллінойса на початку 1961. Блітцер казав що проект PLATO отримав би патент на поділ часу, якби тільки Університет Іллінойса знав як опрацьовувати заявки на патент швидше. Першою комерційно успішною системою поділу часу була Dartmouth Time Sharing System.
Системи з поділом часу
- Allen-Babcock RUSH Time-sharing System
- BBN PDP-1 Time-sharing System → Massachusetts General Hospital PDP-1D → MUMPS
- BBN TENEX (розвинувся у DEC TOPS-20), Foonly FOONEX, MAXC OS для Xerox PARC, Stanford LOTS
- Burroughs Time-sharing MCP (наступник: HP 3000 MPE)
- Berkeley Timesharing System в Університеті Берклі (Каліфорнія), Project Genie, Scientific Data Systems SDS 940 (Tymshare, BBN, SRI, Community Memory), BCC 500, MAXC у Xerox PARC
- UC Berkeley CAL-TSS (для комп'ютерів CDC 6400)
- UC Berkeley BSD UNIX
- CDC KRONOS
- Dartmouth Time Sharing System (DTSS) → GE Time-sharing → GEnie
- DEC PDP-6 Time-sharing Monitor → TOPS-10 → TSS-8, RSTS-11, RSX-11 → VAX/VMS
- HP-2000 Timeshared BASIC
- IBM TSS/360
- IBM CP-67 → VM/CMS
- IBM CALL/360, CALL/OS — using IBM 360/50
- International Timesharing Corporation
- Michigan Terminal System
- Michigan State University CDC SCOPE/HUSTLER System
- MIT CTSS → MULTICS (MIT/GE/Bell Labs) → UNIX, PRIMOS
- MIT PDP-1 Time-sharing System → ITS
- MUSIC/SP → McGill University System for Interactive Computing
- National CSS → VP/CSS (ran on IBM 360 series; originally based on IBM's CP/CMS
- Oregon State University OS-3 (для серії CDC 3000)
- RAND JOSS → JOSS-2 → JOSS-3
- Service in Informatics and Analysis (SIA) (для систем CDC 6600 Kronos)
- System Development Corporation Time-sharing System on the AN/FSQ-32
- Stanford PDP-1 Time-sharing System → SAIL → WAITS
- Time Sharing Ltd — перша комерційна система з поділом часу у Європі, і перша система з поділом часу з дублюванням (стійка до збоїв).
- Tymshare SDS-940 → Tymcom X → Tymcom XX
- XDS CP-V → Honeywell CP-6
Див. також
- Багатомісна конфігурація
- Linux Terminal Server Project
- Тонкий клієнт
- TELCOMP
- Процесорний час
Джерела
Посилання
- Reminiscences of the history of time sharing Джон Маккарті
- Origins of timesharing Боб Бемер
- Interview with Professor Fernando J. Corbato on the history of Multics and origins of time-sharing