Розподіл часу

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку

В комп'ютерних системах поділ часу — це спосіб розподілу обчислювальних ресурсів між багатьма користувачами за допомогою мультипрограмування та багатозадачності. Вперше презентований в 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.

Системи з поділом часу

[ред. | ред. код]

Див. також

[ред. | ред. код]

Джерела

[ред. | ред. код]

Посилання

[ред. | ред. код]