Відмінності між версіями «Коротка історія еволюції обчислювальних систем. Тенденції розвитку»
(Створена сторінка: Розглядатимемо історію розвитку саме обчислювальних, а не операційних систем, тому ...) |
|||
Рядок 5: | Рядок 5: | ||
стимулювали пошуки нових технічних рішень. Саме критерії зручності, | стимулювали пошуки нових технічних рішень. Саме критерії зручності, | ||
ефективності і безпеки виконували роль чинників природного відбору при | ефективності і безпеки виконували роль чинників природного відбору при | ||
− | еволюції обчислювальних систем. | + | еволюції обчислювальних систем. |
− | Перший період | + | |
+ | '''Перший період (1945-1955). ''' ''Лампові машини. Операційні систем відсутні''. | ||
+ | |||
Перші кроки по створенню електронних обчислювальних машин були | Перші кроки по створенню електронних обчислювальних машин були | ||
зроблені в кінці другої світової війни. У середині 40-х були створені перші | зроблені в кінці другої світової війни. У середині 40-х були створені перші | ||
Рядок 20: | Рядок 22: | ||
пультом міг знаходитися тільки один користувач. Програма завантажувалася в | пультом міг знаходитися тільки один користувач. Програма завантажувалася в | ||
пам'ять машини в кращому разі з колоди перфокарт, а зазвичай за допомогою | пам'ять машини в кращому разі з колоди перфокарт, а зазвичай за допомогою | ||
− | + | панелі перемикачів.Обчислювальна система виконувала одночасно тільки одну | |
− | панелі перемикачів. Обчислювальна система виконувала одночасно тільки одну | + | |
операцію (введення-вивід, обчислення, роздуми програміста). Відладка програм | операцію (введення-вивід, обчислення, роздуми програміста). Відладка програм | ||
велася з пульта управління за допомогою вивчення стану пам'яті і регістрів | велася з пульта управління за допомогою вивчення стану пам'яті і регістрів | ||
Рядок 30: | Рядок 31: | ||
обчислювальних систем, їх малою кількістю і низькою ефективністю | обчислювальних систем, їх малою кількістю і низькою ефективністю | ||
використання. | використання. | ||
− | Другий період (1955-початок 60-х). | + | |
− | Пакетні операційні системи | + | '''Другий період (1955-початок 60-х). ''' ''Комп'ютери на основі транзисторів. |
+ | Пакетні операційні системи'' | ||
+ | |||
З середини 50-х років почався новий період в еволюції обчислювальної | З середини 50-х років почався новий період в еволюції обчислювальної | ||
техніки, пов'язаний з появою нової технічної бази — напівпровідникових | техніки, пов'язаний з появою нової технічної бази — напівпровідникових | ||
Рядок 48: | Рядок 51: | ||
застосовування комп'ютерів. Саме в цей період відбувається розділення | застосовування комп'ютерів. Саме в цей період відбувається розділення | ||
персоналу на програмістів і операторів, фахівців по експлуатації і розробників | персоналу на програмістів і операторів, фахівців по експлуатації і розробників | ||
− | обчислювальних машин. | + | обчислювальних машин. |
+ | |||
Змінюється сам процес прогону програм. Тепер користувач приносить | Змінюється сам процес прогону програм. Тепер користувач приносить | ||
програму з вхідними даними у вигляді колоди перфокарт і вказує ресурси, що | програму з вхідними даними у вигляді колоди перфокарт і вказує ресурси, що | ||
− | |||
вимагаються для неї. Такий набір перфокарт одержує назву “завдання”. | вимагаються для неї. Такий набір перфокарт одержує назву “завдання”. | ||
Оператор завантажує завдання в пам'ять машини і запускає його на виконання. | Оператор завантажує завдання в пам'ять машини і запускає його на виконання. | ||
Одержані вихідні дані друкуються на принтері, і користувач одержує їх назад | Одержані вихідні дані друкуються на принтері, і користувач одержує їх назад | ||
− | через деякий час. | + | через деякий час. |
+ | |||
З'являються перші системи пакетної обробки, які автоматизують запуск | З'являються перші системи пакетної обробки, які автоматизують запуск | ||
однієї програми з пакету за іншою і, тим самим, збільшують коефіцієнт | однієї програми з пакету за іншою і, тим самим, збільшують коефіцієнт | ||
Рядок 64: | Рядок 68: | ||
операційних систем, вони стали першими системними програмами, | операційних систем, вони стали першими системними програмами, | ||
призначеними для управління обчислювальним процесом. | призначеними для управління обчислювальним процесом. | ||
− | Третій період (Початок 60-х — 1980). | + | |
− | мікросхем. Перші багатозадачні ОС. | + | '''Третій період (Початок 60-х — 1980). ''' ''Комп'ютери на основі інтегральних |
+ | мікросхем. Перші багатозадачні ОС.'' | ||
Наступний важливий період розвитку обчислювальних машин відноситься | Наступний важливий період розвитку обчислювальних машин відноситься | ||
до початку 60-х — 1980 рокам. В цей час в технічній базі відбувся перехід від | до початку 60-х — 1980 рокам. В цей час в технічній базі відбувся перехід від | ||
Рядок 72: | Рядок 77: | ||
складність і кількість задач, вирішуваних комп'ютерами. Підвищується | складність і кількість задач, вирішуваних комп'ютерами. Підвищується | ||
продуктивність процесорів. | продуктивність процесорів. | ||
+ | |||
Підвищенню ефективності використання процесорного часу заважає низька | Підвищенню ефективності використання процесорного часу заважає низька | ||
швидкість механічних пристроїв вводу-виводу (швидкий зчитувач перфокарт | швидкість механічних пристроїв вводу-виводу (швидкий зчитувач перфокарт | ||
Рядок 82: | Рядок 88: | ||
реально друкується тільки після завершення завдання. Спочатку реальні | реально друкується тільки після завершення завдання. Спочатку реальні | ||
операції введення-виводу здійснювалися в режимі off-line, тобто з | операції введення-виводу здійснювалися в режимі off-line, тобто з | ||
− | |||
використанням інших, простіших, окремо взятих комп'ютерів. Надалі вони | використанням інших, простіших, окремо взятих комп'ютерів. Надалі вони | ||
починають виконуватися на тому ж комп'ютері, який виконує обчислення, | починають виконуватися на тому ж комп'ютері, який виконує обчислення, | ||
Рядок 91: | Рядок 96: | ||
зробило необхідним появу апарату перепинів для сповіщення процесора про | зробило необхідним появу апарату перепинів для сповіщення процесора про | ||
закінчення цих операцій. | закінчення цих операцій. | ||
+ | |||
Поява магнітного диску, для якого не важливий порядок читання інформації, | Поява магнітного диску, для якого не важливий порядок читання інформації, | ||
тобто пристрою прямого доступу, привело до подальшого розвитку | тобто пристрою прямого доступу, привело до подальшого розвитку | ||
Рядок 98: | Рядок 104: | ||
запитаних ресурсів, терміновості обчислень та ін. на обробку вибирається те | запитаних ресурсів, терміновості обчислень та ін. на обробку вибирається те | ||
або інше завдання. | або інше завдання. | ||
+ | |||
Подальше підвищення ефективності використання процесора було | Подальше підвищення ефективності використання процесора було | ||
досягнуто за допомогою мультипрограмування. Ідея мультипрограмування | досягнуто за допомогою мультипрограмування. Ідея мультипрограмування | ||
Рядок 112: | Рядок 119: | ||
оперативної пам'яті, і не повинна впливати на виконання іншої програми. | оперативної пам'яті, і не повинна впливати на виконання іншої програми. | ||
(Студенти сидять за окремими столами і не підказують один одному.) | (Студенти сидять за окремими столами і не підказують один одному.) | ||
− | + | Поява мультипрограмування вимагає цілої революції в будові | |
− | Поява мультипрограмування вимагає цілої революції в будові | + | |
обчислювальної системи. Велику роль, тут грає апаратна підтримка, | обчислювальної системи. Велику роль, тут грає апаратна підтримка, | ||
найістотніші особливості якої: | найістотніші особливості якої: | ||
+ | |||
• Реалізація захисних механізмів. Програми не повинні мати самостійного | • Реалізація захисних механізмів. Програми не повинні мати самостійного | ||
доступу до розподілу ресурсів, що приводить до появи привілейованих і | доступу до розподілу ресурсів, що приводить до появи привілейованих і | ||
Рядок 125: | Рядок 132: | ||
призначені для користувача конкуруючі програми одна від одної, а ОС | призначені для користувача конкуруючі програми одна від одної, а ОС | ||
від програм користувачів. | від програм користувачів. | ||
+ | |||
• Наявність перепинів. Зовнішні перепини сповіщають ОС про те, що | • Наявність перепинів. Зовнішні перепини сповіщають ОС про те, що | ||
відбулася асинхронна подія, наприклад, завершилася операція вводу- | відбулася асинхронна подія, наприклад, завершилася операція вводу- | ||
Рядок 131: | Рядок 139: | ||
що вимагає втручання ОС, наприклад, ділення на нуль або спроба | що вимагає втручання ОС, наприклад, ділення на нуль або спроба | ||
порушення захисту. | порушення захисту. | ||
+ | |||
Не менш важлива в організації мультипрограмування роль операційної | Не менш важлива в організації мультипрограмування роль операційної | ||
системи. Найістотніші зміни полягали в наступному: | системи. Найістотніші зміни полягали в наступному: | ||
+ | |||
• Інтерфейс між прикладною програмою і ОС був організований за | • Інтерфейс між прикладною програмою і ОС був організований за | ||
допомогою набору системних викликів. | допомогою набору системних викликів. | ||
+ | |||
• Організація черги із завдань в пам'яті і виділення процесора одному із | • Організація черги із завдань в пам'яті і виділення процесора одному із | ||
завдань потребували планування завдань. | завдань потребували планування завдань. | ||
+ | |||
• Для перемикання процесора з одного завдання на інше виникла потреба в | • Для перемикання процесора з одного завдання на інше виникла потреба в | ||
збереженні вмісту регістрів і структур даних, необхідних для виконання | збереженні вмісту регістрів і структур даних, необхідних для виконання | ||
завдання, інакше кажучи, контексту, для забезпечення правильного | завдання, інакше кажучи, контексту, для забезпечення правильного | ||
− | продовження обчислень. | + | продовження обчислень. |
− | + | ||
• Оскільки пам'ять є обмеженим ресурсом, виявилися потрібні стратегії | • Оскільки пам'ять є обмеженим ресурсом, виявилися потрібні стратегії | ||
управління пам'яттю, тобто потрібно було упорядкувати процеси | управління пам'яттю, тобто потрібно було упорядкувати процеси | ||
− | розміщення, заміщення і вибірки інформації з пам'яті. | + | розміщення, заміщення і вибірки інформації з пам'яті. |
+ | |||
• Оскільки програми можуть побажати зробити санкціонований обмін | • Оскільки програми можуть побажати зробити санкціонований обмін | ||
даними, стало необхідно їх забезпечити засобами комунікації. | даними, стало необхідно їх забезпечити засобами комунікації. | ||
+ | |||
• Для коректного обміну даними необхідно передбачити координацію | • Для коректного обміну даними необхідно передбачити координацію | ||
програмами своїх дій, тобто засоби синхронізації. | програмами своїх дій, тобто засоби синхронізації. | ||
+ | |||
Мультипрограмні пакетні системи дають оточення, в якому різні системні | Мультипрограмні пакетні системи дають оточення, в якому різні системні | ||
ресурси використовуються ефективно. Та все ж користувач не міг | ресурси використовуються ефективно. Та все ж користувач не міг | ||
Рядок 155: | Рядок 170: | ||
багато часу і вимагала вивчення багатосторінкових роздруків вмісту пам'яті і | багато часу і вимагала вивчення багатосторінкових роздруків вмісту пам'яті і | ||
регістрів або використання налагоджувального друку. | регістрів або використання налагоджувального друку. | ||
+ | |||
Поява електроннопроміневих дисплеїв і переосмислення можливостей | Поява електроннопроміневих дисплеїв і переосмислення можливостей | ||
застосування клавіатур дозволили підійти до вирішення цієї проблеми. | застосування клавіатур дозволили підійти до вирішення цієї проблеми. | ||
Рядок 172: | Рядок 188: | ||
пам'яті. Основною перевагою такого механізму є створення ілюзії необмеженої | пам'яті. Основною перевагою такого механізму є створення ілюзії необмеженої | ||
оперативної пам'яті. | оперативної пам'яті. | ||
− | + | ||
− | У системах поділу часу користувач отримав можливість легко і ефективно | + | У системах поділу часу користувач отримав можливість легко і ефективно |
вести відладку своєї програми в інтерактивному режимі, записувати | вести відладку своєї програми в інтерактивному режимі, записувати | ||
інформацію на диск, не використовуючи перфокарти, а безпосередньо з | інформацію на диск, не використовуючи перфокарти, а безпосередньо з | ||
клавіатури. Поява on-line файлів привела до необхідності розробки | клавіатури. Поява on-line файлів привела до необхідності розробки | ||
− | деревоподібних файлових систем. | + | деревоподібних файлових систем. |
+ | |||
Паралельно внутрішній еволюції обчислювальних систем в цей період | Паралельно внутрішній еволюції обчислювальних систем в цей період | ||
спостерігається і зовнішня їх еволюція. До початку цього періоду | спостерігається і зовнішня їх еволюція. До початку цього періоду | ||
Рядок 191: | Рядок 208: | ||
лінія комп'ютерів PDP, несумісних з лінією IBM, кульмінацією якої стала поява | лінія комп'ютерів PDP, несумісних з лінією IBM, кульмінацією якої стала поява | ||
PDP-11. | PDP-11. | ||
+ | |||
Сила однієї сім'ї ОС була одночасно і її слабкістю. Широкі можливості цієї | Сила однієї сім'ї ОС була одночасно і її слабкістю. Широкі можливості цієї | ||
концепції (наявність всіх моделей: від мінікомп'ютерів до гігантських машин; | концепції (наявність всіх моделей: від мінікомп'ютерів до гігантських машин; | ||
Рядок 199: | Рядок 217: | ||
Тільки в операційній системі OS/360 містилося більше 1000 відомих помилок. | Тільки в операційній системі OS/360 містилося більше 1000 відомих помилок. | ||
Проте, ідея стандартизації операційних систем була широко упроваджена в | Проте, ідея стандартизації операційних систем була широко упроваджена в | ||
− | свідомість користувачів і надалі одержала активний розвиток. | + | свідомість користувачів і надалі одержала активний розвиток. |
− | Четвертий період (1980-теперішній час). Персональні комп'ютери. Класичні, | + | |
− | мережеві і розподілені системи. | + | '''Четвертий період (1980-теперішній час).''' ''Персональні комп'ютери. Класичні, |
− | + | мережеві і розподілені системи. '' | |
Наступний період в еволюції обчислювальних систем пов'язаний з появою | Наступний період в еволюції обчислювальних систем пов'язаний з появою | ||
великих інтегральних схем. У ці роки відбулося різке зростання ступеня | великих інтегральних схем. У ці роки відбулося різке зростання ступеня | ||
Рядок 215: | Рядок 233: | ||
розробку "дружнього" програмного забезпечення, це поклало край кастовості | розробку "дружнього" програмного забезпечення, це поклало край кастовості | ||
програмістів. | програмістів. | ||
+ | |||
Проте зростання складності і різноманітності задач, вирішуваних на | Проте зростання складності і різноманітності задач, вирішуваних на | ||
персональних комп'ютерах, необхідність підвищення надійності їх роботи | персональних комп'ютерах, необхідність підвищення надійності їх роботи | ||
привели до відродження практично всіх рис, характерних для архітектури | привели до відродження практично всіх рис, характерних для архітектури | ||
великих обчислювальних систем. | великих обчислювальних систем. | ||
+ | |||
У середині 80-х стали бурхливо розвиватися мережі комп'ютерів, зокрема | У середині 80-х стали бурхливо розвиватися мережі комп'ютерів, зокрема | ||
персональних, що працюють під керуванням мережевих або розподілених | персональних, що працюють під керуванням мережевих або розподілених | ||
− | операційних систем. | + | операційних систем. |
+ | |||
У мережевих операційних системах користувачі, при необхідності | У мережевих операційних системах користувачі, при необхідності | ||
скористатися ресурсами іншого мережевого комп'ютера, повинні знати про | скористатися ресурсами іншого мережевого комп'ютера, повинні знати про | ||
Рядок 230: | Рядок 251: | ||
ресурсів), але ці доповнення істотно не змінюють структуру операційної | ресурсів), але ці доповнення істотно не змінюють структуру операційної | ||
системи. | системи. | ||
+ | |||
Розподілена система, навпаки, зовні виглядає як звична автономна система. | Розподілена система, навпаки, зовні виглядає як звична автономна система. | ||
Користувач не знає і не повинен знати, де його файли зберігаються на | Користувач не знає і не повинен знати, де його файли зберігаються на | ||
локальній або видаленій машині, і де його програми виконуються. Він може | локальній або видаленій машині, і де його програми виконуються. Він може | ||
− | + | взагалі не знати, чи підключений його комп'ютер до мережі. Внутрішня будова | |
− | взагалі не знати, чи підключений його комп'ютер до мережі. Внутрішня будова | + | |
розподіленої операційної системи має істотні відмінності від автономних | розподіленої операційної системи має істотні відмінності від автономних | ||
− | систем. | + | систем. |
+ | |||
Автономні операційні системи називають класичними операційними | Автономні операційні системи називають класичними операційними | ||
− | системами. | + | системами. |
+ | |||
Проглянувши етапи розвитку обчислювальних систем, можна виділити п'ять | Проглянувши етапи розвитку обчислювальних систем, можна виділити п'ять | ||
основних функцій, які виконували класичні операційні системи в процесі своєї | основних функцій, які виконували класичні операційні системи в процесі своєї | ||
еволюції: | еволюції: | ||
+ | |||
1. Планування завдань і використання процесора. | 1. Планування завдань і використання процесора. | ||
+ | |||
2. Забезпечення програм засобами комунікації і синхронізації. | 2. Забезпечення програм засобами комунікації і синхронізації. | ||
− | 3. Управління пам'яттю. | + | |
+ | 3. Управління пам'яттю. | ||
+ | |||
4. Управління файловою системою. | 4. Управління файловою системою. | ||
− | 5. Управління вводу-виводу. | + | |
+ | 5. Управління вводу-виводу. | ||
+ | |||
6. Забезпечення безпеки. | 6. Забезпечення безпеки. | ||
+ | |||
Кожна з приведених функцій звичайно реалізована у вигляді підсистеми, що | Кожна з приведених функцій звичайно реалізована у вигляді підсистеми, що | ||
є структурним компонентом ОС. У кожній конкретній операційній системі ці | є структурним компонентом ОС. У кожній конкретній операційній системі ці | ||
Рядок 256: | Рядок 286: | ||
створених людиною пішла по такому шляху, але ніхто ще не довів, що це єдино | створених людиною пішла по такому шляху, але ніхто ще не довів, що це єдино | ||
можливий шлях їх розвитку. Операційні системи існують тому, що на даний | можливий шлях їх розвитку. Операційні системи існують тому, що на даний | ||
− | момент часу — це розумний спосіб використання обчислювальних систем | + | момент часу — це розумний спосіб використання обчислювальних систем. |
− | + |
Версія за 11:16, 6 травня 2011
Розглядатимемо історію розвитку саме обчислювальних, а не операційних систем, тому що hardware і програмне забезпечення еволюціонували одночасно. Поява нових технічних можливостей приводила до прориву у області створення зручних, ефективних і безпечних програм, а нові ідеї в програмній області стимулювали пошуки нових технічних рішень. Саме критерії зручності, ефективності і безпеки виконували роль чинників природного відбору при еволюції обчислювальних систем.
Перший період (1945-1955). Лампові машини. Операційні систем відсутні.
Перші кроки по створенню електронних обчислювальних машин були зроблені в кінці другої світової війни. У середині 40-х були створені перші лампові обчислювальні пристрої, і з'явився принцип програми, що зберігається в пам'яті машини (John Von Neumann, червень 1945 г). У той час одна і та ж група людей брала участь і в проектуванні, і в експлуатації, і в програмуванні обчислювальної машини. Це була швидше науково-дослідна робота у області обчислювальної техніки, а не регулярне використання комп'ютерів як інструмента розв’язання яких-небудь практичних задач з прикладних областей. Програмування здійснювалося виключно на машинній мові. Про операційні системи не було і мови, всі задачі організації обчислювального процесу розв'язувалися власноруч кожним програмістом з пульта управління. За пультом міг знаходитися тільки один користувач. Програма завантажувалася в пам'ять машини в кращому разі з колоди перфокарт, а зазвичай за допомогою панелі перемикачів.Обчислювальна система виконувала одночасно тільки одну операцію (введення-вивід, обчислення, роздуми програміста). Відладка програм велася з пульта управління за допомогою вивчення стану пам'яті і регістрів машини. В кінці цього періоду з'являється перше системне програмне забезпечення: у 1951-52 рр. виникають прообрази перших компіляторів з символічних мов (Fortran і ін.), а в 1954 р. Nat Rochester розробляє асемблер для IBM-701. В цілому перший період характеризується високою вартістю обчислювальних систем, їх малою кількістю і низькою ефективністю використання.
Другий період (1955-початок 60-х). Комп'ютери на основі транзисторів. Пакетні операційні системи
З середини 50-х років почався новий період в еволюції обчислювальної техніки, пов'язаний з появою нової технічної бази — напівпровідникових елементів. Застосування транзисторів замість часто перегораючих електронних ламп привело до підвищення надійності комп'ютерів. Тепер вони змогли безперервно працювати настільки довго, щоб на них можна було покласти виконання дійсно практично важливих задач. Знизилося споживання обчислювальними машинами електроенергії. Простіше стали системи охолоджування. Розміри комп'ютерів зменшилися. Експлуатація і обслуговування обчислювальної техніки подешевшали. Почалося використання ЕОМ комерційними фірмами. Одночасно спостерігається бурхливий розвиток алгоритмічних мов (ALGOL-58, LISP, COBOL, ALGOL-60, PL-1 і т.д.). З'являються перші справжні компілятори, редактори зв'язків, бібліотеки математичних і службових підпрограм. Спрощується процес програмування. Зникає необхідності звалювати на одних і тих же людей весь процес розробки і застосовування комп'ютерів. Саме в цей період відбувається розділення персоналу на програмістів і операторів, фахівців по експлуатації і розробників обчислювальних машин.
Змінюється сам процес прогону програм. Тепер користувач приносить програму з вхідними даними у вигляді колоди перфокарт і вказує ресурси, що вимагаються для неї. Такий набір перфокарт одержує назву “завдання”. Оператор завантажує завдання в пам'ять машини і запускає його на виконання. Одержані вихідні дані друкуються на принтері, і користувач одержує їх назад через деякий час.
З'являються перші системи пакетної обробки, які автоматизують запуск однієї програми з пакету за іншою і, тим самим, збільшують коефіцієнт завантаження процесора. При реалізації систем пакетної обробки була розроблена формалізована мова управління завданнями, за допомогою якого програміст повідомляв систему і оператора, яку роботу він хоче виконати на обчислювальній машині. Системи пакетної обробки стали прообразом сучасних операційних систем, вони стали першими системними програмами, призначеними для управління обчислювальним процесом.
Третій період (Початок 60-х — 1980). Комп'ютери на основі інтегральних мікросхем. Перші багатозадачні ОС. Наступний важливий період розвитку обчислювальних машин відноситься до початку 60-х — 1980 рокам. В цей час в технічній базі відбувся перехід від окремих напівпровідникових елементів типу транзисторів до інтегральних мікросхем. Обчислювальна техніка стає надійнішою і дешевшою. Росте складність і кількість задач, вирішуваних комп'ютерами. Підвищується продуктивність процесорів.
Підвищенню ефективності використання процесорного часу заважає низька швидкість механічних пристроїв вводу-виводу (швидкий зчитувач перфокарт міг обробити 1200 перфокарт в хвилину, принтери друкували до 600 рядків в хвилину). Замість безпосереднього читання пакету завдань з перфокарт в пам'ять починають використовувати його попередній запис спочатку на магнітну стрічку, а потім і на диск. Коли в процесі виконання завдання потрібне введення даних, вони читаються з диска. Так само вихідна інформація спочатку копіюється в системний буфер і записується на стрічку або диск, а реально друкується тільки після завершення завдання. Спочатку реальні операції введення-виводу здійснювалися в режимі off-line, тобто з використанням інших, простіших, окремо взятих комп'ютерів. Надалі вони починають виконуватися на тому ж комп'ютері, який виконує обчислення, тобто в режимі on-line. Такий прийом одержує назву spooling (скорочення від Simultaneous Peripheral Operation On Line) або підкачки-відкачування даних. Введення техніки підкачки в пакетні системи дозволило сумістити реальні операції вводу-виводу одного завдання з виконанням іншого завдання, але зробило необхідним появу апарату перепинів для сповіщення процесора про закінчення цих операцій.
Поява магнітного диску, для якого не важливий порядок читання інформації, тобто пристрою прямого доступу, привело до подальшого розвитку обчислювальних систем. При обробці пакету завдань на магнітному диску з'являється можливість вибору чергового виконуваного завдання. Пакетні системи починають займатися плануванням завдань: залежно від наявності запитаних ресурсів, терміновості обчислень та ін. на обробку вибирається те або інше завдання.
Подальше підвищення ефективності використання процесора було досягнуто за допомогою мультипрограмування. Ідея мультипрограмування полягає в наступному: поки одна програма виконує операцію вводу-виводу, процесор не простоює, як це відбувалося при однопрограмному режимі, а виконує іншу програму. Коли операція вводу-виводу закінчується, процесор повертається до виконання першої програми. Ця ідея нагадує поведінку викладача і студентів на іспиті. Поки один студент (програма) обдумує відповідь на поставлене питання (операція вводу-виводу), викладач (процесор) вислуховує відповідь іншого студента (обчислення). Природно, що така ситуація вимагає наявності в кімнаті декількох студентів. Точно також мультипрограмування вимагає наявності в пам'яті декількох програм одночасно. При цьому кожна програма завантажується в свою ділянку оперативної пам'яті, і не повинна впливати на виконання іншої програми. (Студенти сидять за окремими столами і не підказують один одному.)
Поява мультипрограмування вимагає цілої революції в будові
обчислювальної системи. Велику роль, тут грає апаратна підтримка, найістотніші особливості якої:
• Реалізація захисних механізмів. Програми не повинні мати самостійного доступу до розподілу ресурсів, що приводить до появи привілейованих і непривілейованих команд. Привілейовані команди, наприклад команди вводу-виводу, можуть виконуватися тільки операційною системою. Говорять, що вона працює в привілейованому режимі. Перехід управління від прикладної програми до ОС супроводжується контрольованою зміною режиму. Захист пам'яті, дозволяє ізолювати призначені для користувача конкуруючі програми одна від одної, а ОС від програм користувачів.
• Наявність перепинів. Зовнішні перепини сповіщають ОС про те, що відбулася асинхронна подія, наприклад, завершилася операція вводу- виводу. Внутрішні перепини (зараз їх прийнято називати винятковими ситуаціями) виникають, коли виконання програми привело до ситуації, що вимагає втручання ОС, наприклад, ділення на нуль або спроба порушення захисту.
Не менш важлива в організації мультипрограмування роль операційної системи. Найістотніші зміни полягали в наступному:
• Інтерфейс між прикладною програмою і ОС був організований за допомогою набору системних викликів.
• Організація черги із завдань в пам'яті і виділення процесора одному із завдань потребували планування завдань.
• Для перемикання процесора з одного завдання на інше виникла потреба в збереженні вмісту регістрів і структур даних, необхідних для виконання завдання, інакше кажучи, контексту, для забезпечення правильного продовження обчислень.
• Оскільки пам'ять є обмеженим ресурсом, виявилися потрібні стратегії управління пам'яттю, тобто потрібно було упорядкувати процеси розміщення, заміщення і вибірки інформації з пам'яті.
• Оскільки програми можуть побажати зробити санкціонований обмін даними, стало необхідно їх забезпечити засобами комунікації.
• Для коректного обміну даними необхідно передбачити координацію програмами своїх дій, тобто засоби синхронізації.
Мультипрограмні пакетні системи дають оточення, в якому різні системні ресурси використовуються ефективно. Та все ж користувач не міг безпосередньо взаємодіяти із завданням і повинен передбачити за допомогою управляючих карт всі можливі ситуації. Відладка програм як і раніше займала багато часу і вимагала вивчення багатосторінкових роздруків вмісту пам'яті і регістрів або використання налагоджувального друку.
Поява електроннопроміневих дисплеїв і переосмислення можливостей застосування клавіатур дозволили підійти до вирішення цієї проблеми. Логічним розширенням систем мультипрограмування стали time-sharing системи або системи поділу часу. В них процесор перемикається між задачами не тільки на час операцій вводу-виводу, але і просто після певного інтервалу часу. Ці перемикання відбуваються так часто, що користувачі можуть взаємодіяти зі своїми програмами під час їх виконання, тобто працювати інтерактивно. В результаті з'являється можливість одночасної роботи багатьох користувачів на одній комп'ютерній системі. У кожного користувача для цього повинна бути хоча б одна програма в пам'яті. Щоб зменшити обмеження на кількість працюючих користувачів, була упроваджена ідея неповного знаходження виконуваної програми в оперативній пам'яті. Основна частина програми знаходиться на диску і необхідна для її подальшого виконання частина може бути легко завантажена в оперативну пам'ять, а непотрібна — викачана назад на диск. Це реалізується за допомогою механізму віртуальної пам'яті. Основною перевагою такого механізму є створення ілюзії необмеженої оперативної пам'яті.
У системах поділу часу користувач отримав можливість легко і ефективно
вести відладку своєї програми в інтерактивному режимі, записувати інформацію на диск, не використовуючи перфокарти, а безпосередньо з клавіатури. Поява on-line файлів привела до необхідності розробки деревоподібних файлових систем.
Паралельно внутрішній еволюції обчислювальних систем в цей період спостерігається і зовнішня їх еволюція. До початку цього періоду обчислювальні комплекси були, як правило, несумісні. Кожен мав свою власну спеціальну операційну систему, свою систему команд. В результаті програму, що успішно працює на одному типі машин, необхідно було повністю переписати і наново відладити для іншого типу комп'ютерів, все програмне забезпечення було платформо-залежним, або програмно-несумісним. На початку третього періоду з'явилася ідея створення сімейств програмно- сумісних машин, що працюють під управлінням однієї і тієї ж операційної системи. Першим сімейством програмно-сумісних машин, побудованих на інтегральних мікросхемах, з'явилася серія машин IBM/360. За нею з’явилася лінія комп'ютерів PDP, несумісних з лінією IBM, кульмінацією якої стала поява PDP-11.
Сила однієї сім'ї ОС була одночасно і її слабкістю. Широкі можливості цієї концепції (наявність всіх моделей: від мінікомп'ютерів до гігантських машин; велика кількість різноманітної периферії; різне оточення; різні користувачі) породжували складну і величезну операційну систему. Мільйони рядків асемблеру, написані тисячами програмістів, містили безліч помилок, що викликало безперервний потік публікацій про них і спроб їх виправлення. Тільки в операційній системі OS/360 містилося більше 1000 відомих помилок. Проте, ідея стандартизації операційних систем була широко упроваджена в свідомість користувачів і надалі одержала активний розвиток.
Четвертий період (1980-теперішній час). Персональні комп'ютери. Класичні, мережеві і розподілені системи. Наступний період в еволюції обчислювальних систем пов'язаний з появою великих інтегральних схем. У ці роки відбулося різке зростання ступеня інтеграції і здешевлення мікросхем. Комп'ютер, не відмінний по архітектурі від PDP-11, за ціною і простотою експлуатації став доступний окремій людині, а не відділу підприємства або університету. Наступила ера персональних комп'ютерів. Спочатку персональні комп'ютери призначалися для використовування одним користувачем в однопрограмному режимі, що спричинило за собою деградацію архітектури цих ЕОМ і їх операційних систем (зокрема, пропала необхідність захисту файлів і пам'яті, планування завдань). Комп'ютери стали широко використовуватися неспеціалістами, що вимагало розробку "дружнього" програмного забезпечення, це поклало край кастовості програмістів.
Проте зростання складності і різноманітності задач, вирішуваних на персональних комп'ютерах, необхідність підвищення надійності їх роботи привели до відродження практично всіх рис, характерних для архітектури великих обчислювальних систем.
У середині 80-х стали бурхливо розвиватися мережі комп'ютерів, зокрема персональних, що працюють під керуванням мережевих або розподілених операційних систем.
У мережевих операційних системах користувачі, при необхідності скористатися ресурсами іншого мережевого комп'ютера, повинні знати про його наявність і уміти це зробити. Кожна машина в мережі працює під управлінням своєї локальної операційної системи, відмінної від операційної системи автономного комп'ютера наявністю додаткових засобів (програмною підтримкою для мережевих інтерфейсних пристроїв і доступу до видалених ресурсів), але ці доповнення істотно не змінюють структуру операційної системи.
Розподілена система, навпаки, зовні виглядає як звична автономна система. Користувач не знає і не повинен знати, де його файли зберігаються на локальній або видаленій машині, і де його програми виконуються. Він може
взагалі не знати, чи підключений його комп'ютер до мережі. Внутрішня будова
розподіленої операційної системи має істотні відмінності від автономних систем.
Автономні операційні системи називають класичними операційними системами.
Проглянувши етапи розвитку обчислювальних систем, можна виділити п'ять основних функцій, які виконували класичні операційні системи в процесі своєї еволюції:
1. Планування завдань і використання процесора.
2. Забезпечення програм засобами комунікації і синхронізації.
3. Управління пам'яттю.
4. Управління файловою системою.
5. Управління вводу-виводу.
6. Забезпечення безпеки.
Кожна з приведених функцій звичайно реалізована у вигляді підсистеми, що є структурним компонентом ОС. У кожній конкретній операційній системі ці функції, звичайно, реалізовувалися по-своєму, в різному об'ємі. Вони не були придумані як складові частини діяльності операційних систем спочатку, а з'явилися в процесі розвитку, у міру того, як обчислювальні системи ставали зручніше, ефективніше і безпечніше. Еволюція обчислювальних систем, створених людиною пішла по такому шляху, але ніхто ще не довів, що це єдино можливий шлях їх розвитку. Операційні системи існують тому, що на даний момент часу — це розумний спосіб використання обчислювальних систем.