Класифікація Операційних Систем
Вступ
Операційні системи можуть відрізнятися особливостями реалізації внутрішніх алгоритмів керування основними ресурсами комп'ютера (процесорами, пам'яттю, пристроями), особливостями використаних методів проектування, типами апаратних платформ, областями використання і багатьма іншими властивостями. Нижче наведено класифікацію ОЗ за кількома найбільш основними ознаками.
Особливості алгоритмів керування ресурсами
Від ефективності алгоритмів керування локальними ресурсами комп'ютера багато в чому залежить ефективність всієї мережевої ОС в цілому. Тому, характеризуючи мережну ОС, часто призводять найважливіші особливості реалізації функцій ОС з управління процесорами, пам'яттю, зовнішніми пристроями автономного комп'ютера. Так, наприклад, в залежності від особливостей використаного алгоритму керування процесором, операційні системи ділять на багатозадачні і однозадачние, розраховані на багато користувачів і однокористувацькі, на системи, що підтримують багатонитковою обробку і не підтримують її, на багатопроцесорні і однопроцесорні системи. Підтримка багатозадачності. По числу одночасно виконуваних завдань операційні системи можуть бути розділені на два класи:
- Однозадачние (наприклад, MS-DOS, MSX) і
- Багатозадачні (OC EC, OS / 2, UNIX, Windows 95).
Однозадачні ОС в основному виконують функцію надання користувачу віртуальної машини, роблячи більш простим і зручним процес взаємодії користувача з комп'ютером. Однозадачні ОС включають засоби керування периферійними пристроями, засоби керування файлами, засоби спілкування з користувачем. Багатозадачні ОС, крім перерахованих вище функцій, керують поділом спільно використовуваних ресурсів, таких як процесор, оперативна пам'ять, файли і зовнішні пристрої. Підтримка розрахованого на багато режиму. По числу одночасно працюючих користувачів ОС поділяються на:
- Однокористувацькі (MS-DOS, Windows 3.x, ранні версії OS / 2);
- Багатокористувацькі (UNIX, Windows NT).
Головною відмінністю багатокористувацьких систем від однокористувацьких є наявність засобів захисту інформації кожного користувача від несанкціонованого доступу інших користувачів. Слід зауважити, що не всяка багатозадачна система є багато користувачів, і не всяка однокористувальницька ОС є однозадачной. Витісняюча і невитесняющая багатозадачність. Найважливішим ресурсом є процесорний час. Спосіб розподілу процесорного часу між декількома одночасно існуючими в системі процесами (чи нитками) багато в чому визначає специфіку ОС. Серед безлічі існуючих варіантів реалізації багатозадачності можна виділити дві групи алгоритмів:
- Невитесняющая багатозадачність (NetWare, Windows 3.x);
- Витісняє багатозадачність (Windows NT, OS / 2, UNIX).
Основною відмінністю між витісняючим і невитесняющая варіантами багатозадачності є ступінь централізації механізму планування процесів. У першому випадку механізм планування процесів цілком зосереджений в операційній системі, а в другому - розподілений між системою і прикладними програмами. При невитискаючої багатозадачності активний процес виконується до тих пір, поки він сам, з власної ініціативи, не віддасть управління операційній системі для того, щоб та вибрала з черги інший готовий до виконання процес. При витісняючої багатозадачності рішення про переключення процесора з одного процесу на інший приймається операційною системою, а не самим активним процесом. Підтримка багатонитковою. Важливою властивістю операційних систем є можливість розпаралелювання обчислень у рамках одного завдання. Багатонитковою ОС розділяє процесорний час не між завданнями, а між їх окремими гілками (нитками). Багатопроцесорна обробка. Іншою важливою властивістю ОС є відсутність або наявність у ній засобів підтримки багатопроцесорної обробки - мультипроцессирования. Мультипроцессирования призводить до ускладнення всіх алгоритмів керування ресурсами. У наші дні стає загальноприйнятим введення в ОС функцій підтримки багатопроцесорної обробки даних. Такі функції є в операційних системах Solaris 2.x фірми Sun, Open Server 3.x компанії Santa Crus Operations, OS / 2 фірми IBM, Windows NT фірми Microsoft і NetWare 4.1 фірми Novell. Багатопроцесорні ОС можуть класифікуватися за способом організації обчислювального процесу в системі з багатопроцесорної архітектурою: асиметричні ОС і симетричні ОС. Асиметрична ОС цілком виконується тільки на одному з процесорів системи, розподіляючи прикладні завдання по іншим процесорам. Симетрична ОС повністю децентралізована і використовує весь пул процесорів, поділяючи їх між системними та прикладними завданнями. Вище були розглянуті характеристики ОС, пов'язані з управлінням тільки одним типом ресурсів - процесором. Важливе вплив на вигляд операційної системи в цілому, на можливості її використання в тій чи іншій області надають особливості та інших підсистем управління локальними ресурсами - підсистем управління пам'яттю, файлами, пристроями введення-виведення. Специфіка ОС виявляється і в тому, яким чином вона реалізує мережеві функції: розпізнавання і перенаправлення в мережу запитів до віддалених ресурсів, передача повідомлень по мережі, виконання віддалених запитів. При реалізації мережевих функцій виникає комплекс завдань, пов'язаних з розподіленим характером зберігання і обробки даних у мережі: ведення довідкової інформації про всі доступні в мережі ресурсах і серверах, адресація взаємодіючих процесів, забезпечення прозорості доступу, тиражування даних, узгодження копій, підтримка безпеки даних.
Особливості апаратних платформ
На властивості операційної системи безпосередній вплив надають апаратні засоби, на які вона орієнтована. За типом апаратури розрізняють операційні системи персональних комп'ютерів, міні-комп'ютерів, кластерів та мереж ЕОМ. Серед перерахованих типів комп'ютерів можуть зустрічатися як однопроцесорні варіанти, так і багатопроцесорні. У будь-якому випадку специфіка апаратних засобів, як правило, відбивається на специфіці операційних систем. Очевидно, що ОС великої машини є більш складною і функціональною, ніж ОС персонального комп'ютера. Так в ОС великих машин функції з планування потоку виконуваних завдань, очевидно, реалізуються шляхом використання складних пріоритетних дисциплін і вимагають більшої обчислювальної потужності, ніж в ОС персональних комп'ютерів. Аналогічно йде справа і з іншими функціями. Мережева ОС має у своєму складі засоби передачі повідомлень між комп'ютерами по лініях зв'язку, які абсолютно не потрібні в автономній ОС. На основі цих повідомлень мережева ОС підтримує розподіл ресурсів комп'ютера між віддаленими користувачами, підключеними до мережі. Для підтримки функцій передачі повідомлень мережеві ОС містять спеціальні програмні компоненти, що реалізують популярні комунікаційні протоколи, такі як IP, IPX, Ethernet і інші. Багатопроцесорні системи вимагають від операційної системи особливої організації, за допомогою якої сама операційна система, а також підтримувані нею програми могли б виконуватися паралельно окремими процесорами системи. Паралельна робота окремих частин ОС створює додаткові проблеми для розробників ОС, так як в цьому випадку набагато складніше забезпечити узгоджений доступ окремих процесів до загальних системних таблиць, виключити ефект гонок і інші небажані наслідки асинхронного виконання робіт. Поряд з ОС, орієнтованими на певний тип апаратної платформи, існують операційні системи, спеціально розроблені таким чином, щоб вони могли бути легко перенесені з комп'ютера одного типу на комп'ютер іншого типу, так звані мобільні ОС. Найбільш яскравим прикладом такої ОС є популярна система UNIX. У цих системах апаратно-залежні місця ретельно локалізовані, так що при переносі системи на нову платформу переписуються тільки вони. Засобом, що полегшує перенесення іншої частини ОС, є написання її на машинно-незалежній мові, наприклад, на С, який і був розроблений для програмування операційних систем.