Розподіл часу
В комп'ютерних системах поділ часу - це спосіб розподілу обчислювальних ресурсів між багатьма користувачами за допомогою мультипрограмування та багатозадачності. Вперше презентований в 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.
Системи з поділом часу [ред.]
Дивіться також: Time-sharing system evolution
- 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 at PARC, Stanford LOTS
- Burroughs Time-sharing MCP -> HP 3000 MPE
- Berkeley Timesharing System at UC Berkeley Project Genie -> Scientific Data Systems SDS 940 (Tymshare, BBN, SRI, Community Memory) -> BCC 500 -> MAXC at PARC
- UC Berkeley CAL-TSS (ran on 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 (ran on CDC 3000 series)
- RAND JOSS -> JOSS-2 -> JOSS-3
- Service in Informatics and Analysis (SIA) (ran on CDC 6600 Kronos system)
- System Development Corporation Time-sharing System on the AN/FSQ-32
- Stanford PDP-1 Time-sharing System -> SAIL -> WAITS
- Time Sharing Ltd. First commercial Time-sharing system in Europe and first dual (fault tolerant) Time-sharing system.
- Tymshare SDS-940 -> Tymcom X -> Tymcom XX
- XDS CP-V -> Honeywell CP-6
