Лекція 2. Класифікація операційних систем

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

 

2.1. Класифікація за базовою технологією

При виборі ОС ключовим моментом є архітектура комп'ютера (зокрема центрального процесора), на котрій вона буде запускатись. На персональних комп'ютерах сумісних з ІВМ РС запускаються ОС сімейства Microsoft Windows, Linux та BSD. Крім того на більшості сучасних мейнфреймів запускаються різні варіанти Linux чи Unix, а на деяких — версія Datacenter Windows Server. На вбудованих системах використовується велика кількість вбудованих ОС.

За базовою технологією виділяють:

  • cімейство ОС Apple
  • сімейство ОС Microsoft
  • GNU/Linux
  • Unix-подібні ОС

До Unix-подібних ОС відноситься велика кількість операційних систем, які можна умовно поділити на три категорії — System V, BSD та Linux. Сама назва «Unix» є торговою маркою, що належить «The Open Group», котра власне й ліцензує кожну конкретну ОС на предмет того, чи відповідає вона стандарту. Тому через ліцензійні чи інші неузгодження деякі ОС, котрі фактично є Unix-подібними, не визнані такими офіційно.

 

Крім того, існує ряд операційних систем, що не належать до жодної з даних категорій класифікації: Novell NetWare, ReactOS, MenuetOS, KolibriOS, Syllable Desktop, Haiku та ін.

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

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

  • вільні — з відкритим програмним кодом (FreeBSD, OpenBSD, Linux);
  • пропрієтарні — комерційні з закритим кодом (macOS, Windows, Solaris).

 

2.2. Класифікація за підтримкою багатозадачності

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

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

Розвиненіші багатозадачні системи проводять розподіл ресурсів динамічно, коли завдання стартує в пам'яті або покидає пам'ять залежно від її пріоритету і від стратегії системи. Таке багатозадачне середовище володіє такими особливостями:

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

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

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

Типи псевдопаралельної багатозадачності:

  • просте перемикання

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

Переваги: ​​можна задіяти вже працюючі програми, написані без врахування багатозадачності.

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

  • спільна або кооперативна багатозадачність

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

Кооперативну багатозадачність можна назвати багатозадачністю «другого ступеня», оскільки вона використовує більш передові методи, ніж просте перемикання завдань, реалізоване багатьма відомими програмами. При простому перемиканні активна програма отримує весь процесорний час, а фонові програми повністю заморожуються. При кооперативної багатозадачності додаток може захопити фактично стільки процесорного часу, скільки вона вважає за потрібне. Всі додатки ділять процесорний час, періодично передаючи управління наступній задачі.

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

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

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

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

Переваги:

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

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

 

2.3. Класифікація за призначенням

Відносно свого призначення, операційні системи бувають:

  • для персональних комп’ютерів та робочих станцій (Windows, macOS, Linux Ubuntu);
  • для серверів (Windows Server, Linux Debian, FreeBSD, Solaris);
  • для мобільних платформ (Android, iOS, Tizen, Blackberry OS);
  • для маршрутизаторів (Cisco IOS, JUNOS, RouterOS, OpenWrt);
  • спеціалізовані (для мікроконтролерів, вбудовувані, реального часу).

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

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

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

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

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

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

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

Остання зміна: Saturday 30 May 2020 14:22 PM