раційну систему. Далі я пропоную розглянути ОС більш докладно.
1.2 Структура і функції ОС
Більшість сучасних ОС являють собою модульні системи (тобто колективні на окремі функціональні частини). Звичайно ж, єдиної архітектури ОС не існує, але є універсальні підходи до структурування операційних систем. Найбільш загальним підходом є поділ усіх її модулів на дві групи:
В· ядро - Модулі, що виконують основні функції ОС;
В· модулі, виконують допоміжні функції ОС [2].
Модулі ядра керують процесами, пам'яттю, пристроями введення-виведення і т.п. Функції, виконувані модулями ядра, є найбільш часто використовуваними, тому швидкість їх виконання визначає продуктивність всієї системи в цілому. Для забезпечення високої швидкості роботи ОС велика частина модулів ядра постійно знаходяться в оперативній пам'яті, тобто є резидентними
Решта модулі ОС (допоміжні) виконують корисні, але не настільки обов'язкові функції, наприклад перевірка справності блоків комп'ютера, виявлення відмов пристроїв і т.п. p> Найчастіше буває дуже складно провести межу між програмами, що входять до ОС, і простими додатками. Вважається, що ті програми, які запускаються в режимі ядра (тобто користувач не має до них апаратного доступу) завжди є частиною ОС, допоміжні ж програми запускаються в призначеному для користувача режимі (тобто користувач при бажанні може їх змінити) [3].
Ядро є рушійною силою всіх обчислювальних процесів, і крах ядра рівносильний краху всієї системи, саме тому розробники приділяють особливу увагу надійності кодів і захищають їх від вільного втручання користувача.
Ну, а тепер перейдемо до основних функцій, які виконує ОС в цілому. Взагалі, їх можна розділити на дві найважливіші, це зв'язок між людиною і машиною і керування ресурсами самої машини. Важливість першої функції ми вже розібрали вище, а от на другий варто зупинитися детальніше.
Сучасні комп'ютери складаються з процесора, пам'яті, датчиків часу, дисків, миші, мережевого інтерфейсу, принтерів і величезної кількості інших пристроїв. Так от, функцією ОС і є організоване і контрольоване розподіл ресурсів комп'ютера між різними програмами, змагаються за право їх використовувати. Дійсно, уявіть собі, що сталося б, якби на одному комп'ютері виявилися працюючими три програми і всі вони одночасно спробували надрукувати свої дані на одному і тому ж принтері. Швидше за все, перші кілька рядків на аркуші з'явилися б від першої програми, наступні кілька від другої і т.д. В результаті плутанина повна. ОС наводить порядок в таких ситуаціях. Операційна система дозволяє доступ спочатку тільки однієї програмі, а вихідні дані іншого зберігає в тимчасовому файлі і ставить його в чергу на друк. У цей час друга програма продовжує працювати, не помічаючи, що фактично вона посилає дані на принтер. Виходить, що ОС як би В«обманюєВ» програму. Це був приклад часового розподілу ресурсів. Не менш важливим є просторовий розподіл. Воно полягає в тому, що ОС відводить кожній програмі тільки частина конкретного ресурсу, а не весь ресурс цілком. Найяскравішим прикладом, на мою думку, є розподіл декількох програм в оперативній пам'яті комп'ютера. Важко навіть уявити, скільки часу б йшло на обробку команд, якби кожній програмі був наданий весь обсяг оперативної пам'яті, а всі решта чекали б своєї черги!
Наявність всіх цих функцій ще раз доводить необхідність і важливість операційних систем. Без ОС комп'ютер для користувача являє собою лише купу металу, до якої неможливо підступитися. p> Виходячи з основних функцій ОС, при її розробці керуються певними вимогами:
В· Модульність;
В· Можливість розвитку програмної системи;
В· Простота освоєння;
В· Гнучкість і адаптованість;
В· Сумісність програмного забезпечення різних ЕОМ у рамках однієї апаратної платформи;
В· Мінімальність втручання людини;
В· Параметрична універсальність;
В· Функціональна надмірність (наявність в системі декількох програм, що реалізують одну й ту ж функцію);
В· Функціональна вибірковість (можливість конфігурувати систему під конкретного користувача). [4]
Можна легко уявити, який довгий і цікавий шлях пройшли ОС у своєму розвитку, і з якими проблемами стикалися розробники, щоб задовольнити всім тим вимогам, які представлені вище.
1.3 Історія розвитку ОС
Безумовно, розвиток ОС тісно пов'язане з розвитком самих ЕОМ. Ранні ЕОМ не передбачали операційних систем, тому всі процеси запуску і зупинки програм, приєднання зовнішніх пристроїв проводилися вручну. Програмування велося виключно на машинній мові. У той час машини використовувалися скоріше для науково-дослідних цілей, а не для вирішення конкретних практичних завдань. До початку 50-х років з винаходом перфокарт - спеціальних карт, на які переносився алгоритм виконання програми -...