Ноу Інти, лекція, еволюція обчислювальних мереж від машини Чарльза Бебіджа до перших глобальних

Мультипрограмування

Наступний важливий період розвитку операційних систем відноситься до 1965-1975 років. В цей час в технічній базі обчислювальних машин відбувся перехід від окремих напівпровідникових елементів типу транзисторів до інтегральних мікросхем, що відкрило шлях до появи наступного покоління комп'ютерів, представником якого є, наприклад, IBM / 360.

У цей період були реалізовані практично всі основні механізми. властиві сучасним ОС: мультипрограмування. мультіпроцессірованіе, підтримка багатотермінальні багато режиму, віртуальна пам'ять. файлові системи, розмежування доступу і мережева робота. У ці роки починається розквіт системного програмування. З напряму прикладної математики. представляє інтерес для вузького кола фахівців, системне програмування перетворюється в галузь індустрії, відчутно допомагає безпосередній вплив на практичну діяльність мільйонів людей.

В умовах різко зрослих можливостей комп'ютера, пов'язаних з обробкою і зберіганням даних, виконання тільки однієї програми в кожен момент часу виявилося вкрай неефективним.

Почалися розробки в області мультипрограммирования.

Мультипрограмування - спосіб організації обчислювального процесу, при якому в пам'яті комп'ютера знаходиться одночасно кілька програм, поперемінно виконуються на одному процесорі.

Мультипрограмування було реалізовано в двох варіантах:

  • пакетна обробка;
  • поділ часу.

Системи пакетної обробки призначалися для вирішення завдань в основному обчислювального характеру, які не потребують швидкого отримання результатів. Головною метою і критерієм ефективності систем пакетної обробки є максимальна пропускна здатність. тобто рішення максимального числа завдань в одиницю часу.

Для досягнення цієї мети в системах пакетної обробки використовується наступна схема функціонування (рис.1.2): на початку роботи формується пакет завдань. кожне завдання містить вимогу до системних ресурсів; з цього пакета завдань формується мультипрограмний набір, тобто безліч одночасно виконуваних завдань. Для одночасного виконання вибираються завдання, що пред'являють до ресурсів різні вимоги, так, щоб забезпечувалася збалансована завантаження всіх пристроїв обчислювальної машини. Наприклад, в мультипрограммном наборі бажана присутність і обчислювальних задач. і завдань з інтенсивним введенням-виведенням. Таким чином, вибір нового завдання з пакета завдань залежить від внутрішньої ситуації, що складається в системі, тобто вибирається "вигідне" завдання. Отже, в обчислювальних системах. що працюють під управлінням пакетних ОС. неможливо гарантувати виконання того чи іншого завдання протягом певного періоду часу.


Мал. 1.2. Централізований характер обчислень в системах пакетної обробки.

У системах пакетної обробки переключення процесора з одного завдання на інше відбувається з ініціативи самої активної задачі, наприклад, коли вона "відмовляється" від процесора через необхідність виконати операцію вводу-виводу. Тому існує висока ймовірність того, що одна задача може надовго зайняти процесор. і виконання інтерактивних завдань стане неможливим. Взаємодія користувача з обчислювальною машиною, на якій установлена ​​система пакетної обробки. зводиться до того, що користувач приносить завдання, віддає його диспетчеру-оператору, а в кінці дня після виконання всього пакета завдань отримує результат. Очевидно, що такий порядок підвищує ефективність функціонування апаратури, але знижує ефективність роботи користувача.

У системах поділу часу користувачам (або одному користувачеві) надається можливість інтерактивної роботи відразу з декількома додатками. Для цього кожен додаток має регулярно взаємодіяти з користувачем. Зрозуміло, що в пакетних системах можливості діалогу користувача з додатком обмежені.

У системах поділу часу ця проблема вирішується за рахунок того, що ОС примусово періодично припиняє додатки, не чекаючи, коли вони самі звільнять процесор. Всіх програм по черзі виділяється квант процесорного часу. таким чином, користувачі, що запустили програми на виконання, отримують можливість підтримувати з ними діалог.

Системи поділу часу покликані виправити основний недолік систем пакетної обробки - ізоляцію користувача-програміста від процесу виконання завдань. Кожному користувачеві в цьому випадку надається термінал. з якого він може вести діалог зі своєю програмою. Так як в системах поділу часу кожній задачі виділяється тільки квант процесорного часу. жодна задача не займає процесор надовго, і час відповіді виявляється прийнятним. Якщо квант невеликий, то у всіх користувачів, що одночасно працюють на одній і тій же машині, складається враження, що кожен з них використовує машину одноосібно.

Ясно, що системи поділу часу володіють меншою пропускною спроможністю, ніж системи пакетної обробки. так як на виконання приймається кожна запущена користувачем задача, а не та, яка "вигідна" системі. Крім того, спостерігається уповільнення роботи системи через додаткового витрачання обчислювальної потужності на більш часте переключення процесора з задачі на задачу. Це цілком відповідає тому, що критерієм ефективності систем поділу часу є не максимальна пропускна здатність. а зручність і ефективність роботи користувача. Разом з тим, мультипрограмне виконання інтерактивних додатків підвищує і пропускну здатність комп'ютера (нехай і не в такій мірі, як пакетні системи). Апаратура завантажується краще, оскільки поки один додаток чекає повідомлення користувача, інші додатки можуть оброблятися процесором.

Багатотермінальні системи - прообраз мережі

Термінали, вийшовши за межі обчислювального центру, розосередилися по всьому підприємству. Багатотермінальні режим використовувався не тільки в системах поділу часу, але і в системах пакетної обробки. При цьому не тільки оператор, але і всі користувачі отримували можливість формувати свої завдання і управляти їх виконанням зі свого терміналу. Такі операційні системи отримали назву систем віддаленого вводу завдань.


Мал. 1.3. Багатотермінальна система - прообраз обчислювальної мережі.

Багатотермінальні централізовані системи вже мали всі зовнішні ознаки локальних обчислювальних мереж, однак по суті ними не були, так як зберігали сутність централізованої обробки даних автономно працюючого комп'ютера.

Дійсно, пересічний користувач роботу за терміналом мейнфрейма сприймав приблизно так само, як зараз сприймає роботу за підключеним до мережі персональним комп'ютером. Користувач міг отримати доступ до загальних файлів і периферійних пристроїв. при цьому у нього створювалася повна ілюзія одноосібного володіння комп'ютером, так як він міг запустити потрібну йому програму в будь-який момент і майже відразу ж отримати результат. (Деякі далекі від обчислювальної техніки користувачі навіть були упевнені, що всі обчислення виконуються всередині їх дисплея.)