Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lekcija_Modul_1.docx
Скачиваний:
1
Добавлен:
14.08.2019
Размер:
53.16 Кб
Скачать
      1. Третє покоління (1965-1980): інтегральні схеми і багатозадачність

На початок 60-х років більшість виробників випускало дві повністю

несумісні лінійки комп'ютерів. З одного боку, існували великі

комп'ютери з послівний обробкою тексту типу IBM 7094, що використовувалися для

числових обчислень в науці і техніці. З іншого боку, випускалися

комерційні комп'ютери з посимвольної обробкою, такі як IBM 1401, широко

застосовувалися в банках і страхових компаніях для сортування і друку даних.

Розвиток, підтримка та маркетинг двох зовсім різних лінійок комп'ютерів

для виробників були досить дорогим задоволенням. Крім того, багатьом

покупцям спочатку була потрібна невелика машина, однак пізніше її

можливостей ставало недостатньо, і був потрібний більш потужний комп'ютер,

який мав би ту ж архітектуру і працював би з тими ж самими програмами, але швидше.

Корпорація IBM спробувала вирішити ці проблеми разом, випустивши лінійку

машин IBM/360. Це була серія програмно сумісних машин, починаючи від

комп'ютерів розміром з IBM 1401 і закінчуючи машинами, значно більш

потужними, ніж IBM 7094. Вони різнилися тільки ціною і продуктивністю

(Максимальним об'ємом пам'яті, швидкодією процесора, кількістю

пристроїв введення-виведення і т. д.). Так як всі машини мали однакову

архітектуру і набір команд, програми, написані для одного комп'ютера, могли

працювати на всіх інших (хоча би в теорії). Крім того, сімейство м

машин 360 було розроблено для підтримки як наукових (тобто чисельних), так

і комерційних обчислень. Одне сімейство машин могло задовольнити потреби

всіх покупців. У наступні роки, використовуючи більш сучасні

технології, корпорація IBM випустила комп'ютери, сумісні з 360, ці машини

відомі під номерами 370, 4300, 3080, 3090 і Z.

Сімейство машин 360 стало першою основною лінійкою комп'ютерів, на

якій використовувалися малі інтегральні схеми, які давали перевагу в ціні

та якість в порівнянні з машинами другого покоління, створеними на базі

окремих транзисторів. Корпорація IBM домоглася миттєвого успіху, а ідею

сімейства сумісних комп'ютерів скоро прийняли і всі інші основні

виробники. У комп'ютерних центрах до сих пір можна зустріти нащадків

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

даних (наприклад, для систем бронювання та продажу квитків на авіалініях)

або як сервери вузлів Інтернету, які повинні обробляти тисячі запитів в секунду.

Основна перевага «одного сімейства» виявилося одночасно і найбільшою його слабкістю. За задумом його творців все програмне забезпечення,включаючи операційну систему OS/360, повинно було однаково добре працювати на всіх моделях комп'ютерів: і в невеликих системах, які часто замінювали машини 1401 і застосовувалися для копіювання перфокарт на магнітні стрічки, і на величезних системах, замінюють машини 7094 і використовувалися для розрахунку прогнозу погоди і інших складних обчислень. Крім того, передбачалося, що одну операційну систему можна буде використовувати як з

декількома зовнішніми пристроями, так і з великою їх кількістю, а також

як у комерційних, так і в наукових областях. Але найважливішим було, щоб

це сімейство машин давало результати незалежно від того, хто і як його

використовує.

Проте ні IBM, ні будь-кому іншому поки не вдалося написати програмного

забезпечення, що задовольняє всім цим суперечливим вимогам. В

результаті з'явилася величезна і надзвичайно складна операційна система,

приблизно на два або три порядки перевищує за складністю FMS. Вона складалася

з мільйонів рядків, написаних на асемблері тисячами програмістів, що містить

містила тисячі і тисячі помилок, що спричинило за собою безперервний потік нових

версій, в яких усувалася частина помилок, але замість них з'являлися нові,

так що загальна їх кількість, ймовірно, залишалося постійним.

Один з розробників OS/360, Фред Брукс (Fred Brooks), згодом написав

дотепну і уїдливу книгу з описом свого досвіду роботи з OS/360

[14]. Ми не можемо тут дати повну оцінку цієї книги, але достатньо буде

сказати, що на її обкладинці зображено стадо доісторичних тварин,

загрузли в ямі з дьогтем. Обкладинка книги демонструє схожу точку зору

на операційні системи, колишні динозаврами в світі комп'ютерів.

Незважаючи на свої величезні розміри і недоліки, система OS/360 і подібні

їй операційні системи третього покоління, створені іншими

виробниками комп'ютерів, насправді досить непогано задовольняли

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

ключових технічних прийомів, не підтримуваних в операційних системах

другого покоління. Найважливішим досягненням стала багатозадачність. На

комп'ютері IBM 7094, коли поточна робота припинялася в очікуванні

операцій введення-виведення з магнітної стрічки або інших пристроїв, центральний

процесор просто не діяв до закінчення операції введення-виведення. В складність

складних наукових обчисленнях і при обмежених можливостях процесора

пристрої введення-виведення задіяні досить рідко, так що це витрачений

даремно час не грало істотної ролі. Але при комерційної обробці

даних час очікування пристрої введення-виведення могло займати 80 або 90%

усього робочого часу, тому необхідно було щось зробити щоб

уникнути тривалого простою вельми дорогого процесора.

Вирішення цієї проблеми полягала в розбитті пам'яті на кілька частин,

званих розділами, кожному з яких давалося окреме завдання.

Поки одне завдання чекало завершення роботи пристрою введення-виведення, інше могло використовувати центральний процесор. Якщо в

оперативної пам'яті містилася достатня кількість завдань, центральний

процесор міг бути завантажений майже на всі 100% за часом. Безліч

одночасно зберігаються в пам'яті завдань вимагало наявності спеціального

обладнання для захисту кожного завдання від можливого цікавості і збитку з

боку інших завдань. Машина 360 і інші системи третього покоління

були забезпечені подібними апаратними засобами.

Іншим важливим плюсом операційних систем третього покоління стала

здатність зчитувати завдання з перфокарт на диск у міру того, як їх

приносили в машинний зал. Всякий раз, коли поточне завдання закінчувалося,

операційна система могла завантажити нове завдання з диска в звільнився

розділ пам'яті і запустити його. Цей технічний прийом називається підкачкою

даних, або спулінг (англійське слово spooling походить від абревіатури

SPOOL, яка розшифровується як Simultaneous Peripheral Operation On

Line - спільні периферійні операції в режимі підключення), і його також

використовують для видачі отриманих даних. З появою механізму підкачки

машини 1401 стали більше не потрібними, а багаторазові переміщення магнітних

стрічок зійшли «нанівець».

Хоча операційні системи третього покоління цілком підходили для складність

складних наукових обчислень і справлялися з великими комерційними завданнями,

вони все ще, по суті, представляли собою різновиди систем пакетної

обробки. Багато програмістів тужили за першого покоління машин,

коли вони могли розпоряджатися всією машиною протягом декількох годин і мали

можливість швидко налагоджувати свої програми. В система третього

покоління часовий проміжок між передачею завдання і поверненням

результатів часто складав декілька годин, так що одна зайва кома могла стати

причиною збою при компіляції, і виходило, що програміст витрачав даремно

половину дня.

Бажання скоротити час очікування відповіді привело до розробки системи

поділу часу, варіанту багатозадачной системи, в якій у кожного

користувача є свій діалоговий термінал. Якщо двадцять користувачів

зареєстровані в системі, що працює в режимі поділу часу, і сімнадцять з

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

надається трьом користувачам, що бажають працювати на машині. Так як

люди, налагоджуючи програми, зазвичай виконують короткі команди (наприклад,

компілювати процедуру на п'яти сторінках) частіше, ніж довгі (наприклад,

упорядкувати файл з мільйонами записів), то комп'ютер може забезпечувати

швидке інтерактивне обслуговування декількох користувачів. При цьому він

може працювати з великими пакетами у фоновому режимі, коли центральний

процесор не зайнятий іншими завданнями. Перша серйозна система поділу

часу під назвою CTSS (Compatible Time Sharing System - сумісна

система поділу часу) була розроблена в Массачусетському технологічного

технологічному інституті (MIT) на спеціально переробленому комп'ютері IBM 7094 [23].

Проте розподіл часу не стало справді популярним до тих пір,

поки серед машин третього покоління не отримали широкого поширення

необхідні технічні засоби захисту.

Після успіху системи CTSS Массачусетський технологічний інститут,

дослідні лабораторії Bell Labs і корпорація General Electric (тоді -

головний виробник комп'ютерів) вирішили почати розробку «комп'ютерного

додатки »- машини, яка повинна була підтримувати одночасну

роботу сотень користувачів в режимі поділу часу. Зразком для нової

машини послужила система розподілу електроенергії. Коли вам потрібна

електроенергія, ви просто вставляєте вилку в розетку і отримуєте енергії

стільки, скільки вам потрібно. Проектувальники цієї системи, відомої як MULTICS

(MULTiplexed Information and Computing Service - мультиплексна

інформаційна та обчислювальна служба), уявляли собі одну величезну

обчислювальну машину, скористатися якою міг кожна людина в районі Бостона.

Думка про те, що машини, набагато могутніші, ніж їх мейнфрейм GE-645,

будуть продаватися мільйонами за ціною тисяча доларів за штуку всього лише

через тридцять років, здавалася найчистішої науковою фантастикою, як якщо б

сьогодні будь-хто надумав проектувати надзвукові трансатлантичні

підводні поїзда.

Успіх MULTICS не був повним. Передбачалося, що система зможе

обслуговувати сотні користувачів, будучи лише трохи могутніше персональних

комп'ютерів на базі Intel 80386 (хоча система MULTICS значно перевершувала

їх в обсязі вводу-виводу). Ідея була не настільки божевільна, як здається, оскільки

в той час люди вміли писати компактні й ефективні програми (схоже,

згодом це вміння було втрачено). Системі MULTICS не вдалося

підкорити світ в силу цілого ряду причин, дуже важливою з яких є

використання мови PL / I для її створення. Компілятор PL / I з'явився з

запізненням на кілька років і виявився практично не функціональним. Крім того,

для свого часу система MULTICS була надто амбітною, подібно

аналітичної машині Беббіджа в XIX столітті.

В результаті система MULTICS стала джерелом багатьох конструктивних ідей для

комп'ютерних теоретиків, але перетворити її на серйозний продукт і добитися

комерційного успіху виявилося набагато важче, ніж очікувалося. Група

дослідних лабораторій Bell Labs вибула з проекту, а компанія General

Electric зовсім залишила комп'ютерний бізнес. Однак Массачусетський

технологічний інститут виявив завзятість і з часом отримав цілком працездатності

працездатну систему. Зрештою, вона була продана як комерційне з-

виріб компанією Honeywell, що купила комп'ютерний бізнес General Electric,

та встановлено приблизно у вісімдесяти великих компаніях і університетах по

всьому світу. Незважаючи на невеликий тираж системи MULTICS, її користувачі

проявили виняткову лояльність до свого придбання. Компанії General

Motors, Ford і Національне агентство безпеки США згорнули системи

MULTICS лише наприкінці 90-х, а остання машина MULTICS, що працювала в

Міністерстві оборони Канади, була знята з експлуатації в жовтні 2000 р.

Незважаючи на невдачу з точки зору комерції, система MULTICS значно

вплинула на наступні операційні системи [24, 25, 28, 94, 101].

Словосполучення «комп'ютерна програма» вийшло з ужитку, проте

в останні роки його ідея отримала «друге життя». У простому випадку

комп'ютери, або робочі станції (персональні комп'ютери великої потужності),

розташовані в компанії або класній кімнаті, за допомогою локальної мережі

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

такий топології системний адміністратор встановлює і забезпечує захист

єдиного набору програм і даних. Адміністратору не потрібно

піклуватися про видобування і збереженні локальних даних несправного комп'ютера;

він може без проблем перевстановити його програмне забезпечення. В

неоднорідному оточенні з'являється додатковий клас програм, званих

проміжним, або сполучною, програмним забезпеченням і заповнюють

пробіл між локальними користувачами і файлами, програмами та базами

даних, розташованими на віддалених серверах. Завдяки сполучним

програмам користувачі сприймають мережеві персональні комп'ютери і робочі

станції як локальні. Сполучні програми створюють єдиний

користувальницький інтерфейс в умовах неоднорідності серверів, комп'ютерів і робочих

станцій. Хорошим прикладом є веб-браузер. Він відображає користувачем

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

розташованому в іншій будівлі або навіть в іншому місті. Може здатися,

що сполучні програми утворюють операційну систему для розподіленої

системи, однак, насправді, вони взагалі не є операційною

системою і їх розгляд виходить за рамки теми цієї книги. Більш детальну

інформацію про розподілених системах ви знайдете в [117].

Ще одним важливим моментом розвитку третього покоління машин був

феноменальне зростання числа міні-комп'ютерів після випуску машини PDP-1

корпорацією DEC в 1961 році. Комп'ютери PDP-1 мали оперативною пам'яттю,

складається всього лише з 4 До 18-розрядних слів, але коштували вони по 120 тисяч доларів за штуку (це менше 5% ціни IBM 7094) і тому розхапувалися як гарячі

пиріжки. На деяких видах нечислової роботи вони працювали майже з такою

ж швидкістю, як IBM 7094, що стало поштовхом до народження нової індустрії.

За цією машиною пішла ціла серія інших машин сімейства PDP (на

відміну від сімейства IBM, повністю несумісних), і як кульмінація - PDP-11.

Кен Томпсон (Ken Thompson), один з фахівців з комп'ютерів в Bell Labs,

працював над проектом MULTICS, згодом знайшов міні-комп'ютер

PDP-7, яким ніхто не користувався, і вирішив написати усічену

версію на одного користувача системи MULTICS. Ця робота пізніше розвинулася в

операційну систему UNIX, що стала популярною в академічному світі, в

урядових управліннях і в багатьох компаніях.

Історія розвитку UNIX вже багато разів описувалася в самих різних -

книгах. Унаслідок широкої доступності вихідного коду

різні організації створювали власні (несумісні) версії, що

призвело до хаосу. Були розроблені дві головні версії UNIX: System V корпорації

AT & T і BSD (Berkeley Software Distribution) Каліфорнійського університету

Берклі. Ці системи, у свою чергу, розпадаються на окремі різновиди,

серед яких в даний час відомі FreeBSD, OpenBSD і NetBSD. Щоб

можна було писати програми, що працюють в будь-якій системі UNIX, Інститут

інженерів з електротехніки та електроніки (Institute of Electrical and Electronic

Engineers, IEEE) розробив стандарт системи UNIX, званий POSIX,

який тепер підтримує більшість версій UNIX. Стандарт POSIX

визначає мінімальний інтерфейс системного виклику, який повинні

підтримувати сумісні з UNIX системи. Деякі інші операційні системи

тепер теж підтримують інтерфейс POSIX. Інформація, необхідна для

написання програм в стандарті POSIX, цілком доступна [64, 79]. Далі в цій

книзі під ім'ям UNIX ми будемо розуміти все POSIX-сумісні

операційні системи, за винятком особливо обумовлених випадків. Незважаючи на

внутрішні відмінності, ці системи слідують стандарту POSIX і досить схожі

один з одним з точки зору програміста.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]