Класифікація Операційних Систем

Матеріал з Вікі ЦДУ
Перейти до: навігація, пошук

Вступ

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

Особливості алгоритмів керування ресурсами

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

  • Однозадачние (наприклад, 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. У цих системах апаратно-залежні місця ретельно локалізовані, так що при переносі системи на нову платформу переписуються тільки вони. Засобом, що полегшує перенесення іншої частини ОС, є написання її на машинно-незалежній мові, наприклад, на С, який і був розроблений для програмування операційних систем.

Особливості областей використання

Багатозадачні ОС поділяються на три типи відповідно до використаними при їх розробці критеріями ефективності:

  • Системи пакетної обробки (наприклад, OC EC),
  • Системи поділу часу (UNIX, VMS),
  • Системи реального часу (QNX, RT/11).

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

Особливості методів побудови

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

  • Способи побудови ядра системи - монолітне ядро ​​або мікроядерний підхід. Більшість ОС використовує монолітне ядро, яке компонується як одна програма, що працює в привілейованому режимі і використовує швидкі переходи з однієї процедури на іншу, не потребують переключення з привілейованого режиму в призначений для користувача і навпаки. Альтернативою є побудова ОС на базі мікроядра, що працює також у привілейованому режимі і виконує тільки мінімум функцій з управління апаратурою, у той час як функції ОС більш високого рівня виконують спеціалізовані компоненти ОС - сервери, що працюють в режимі користувача. При такій побудові ОС працює більш повільно, тому що часто виконуються переходи між привілейованим режимом і призначеним для користувача, зате система виходить більш гнучкої - її функції можна нарощувати, модифіковані або звужувати, додаючи, модифікуючи або виключаючи сервери режиму. Крім того, сервери добре захищені один від одного, як і будь-які користувацькі процеси.
  • Побудова ОС на базі об'єктно-орієнтованого підходу дає можливість використовувати всі його достоїнства, що добре зарекомендували себе на рівні додатків, всередині ОС, а саме: акумуляцію вдалих рішень у формі стандартних об'єктів, можливість створення нових об'єктів на базі наявних за допомогою механізму успадкування, гарний захист даних за рахунок їх інкапсуляції у внутрішні структури об'єкта, що робить дані недоступними для несанкціонованого використання ззовні, структурізованность системи, що складається з набору добре визначених об'єктів. Наявність декількох прикладних середовищ дає можливість у рамках однієї ОС одночасно виконувати додатки, розроблені для декількох ОС. Багато сучасні операційні системи підтримують одночасно прикладні середовища MS-DOS, Windows, UNIX (POSIX), OS / 2 або хоча б деякої підмножини з цього популярного набору. Концепція множинних прикладних середовищ найбільше просто реалізується в ОС на базі мікроядра, над яким працюють різні сервери, частина яких реалізують прикладну середовище тієї або іншої операційної системи.
  • Розподілена організація операційної системи дозволяє спростити роботу користувачів і програмістів у мережних середовищах. У розподіленої ОС реалізовані механізми, які дають можливість користувачеві представляти і сприймати мережу у вигляді традиційного однопроцесорного комп'ютера. Характерними ознаками розподіленої організації ОС є: наявність єдиної довідкової служби поділюваних ресурсів, єдиної служби часу, використання механізму виклику віддалених процедур (RPC) для прозорого розподілу програмних процедур по машинах, багатонитковою обробки, що дозволяє распараллелівать обчислення в рамках однієї задачі і виконувати це завдання відразу на декількох комп'ютерах мережі, а також наявність інших розподілених служб.