Класифікація програмних продуктів

Операційна система найбільшою мірою визначає вигляд всієїобчислювальної системи в цілому. Незважаючи на це, користувачі, які активно використовують обчислювальну техніку, часто зазнають труднощів при спробі дати визначення операційній системі. Частково це пов’язано з тим, що ОС виконує дві по суті мало пов’язані функції: забезпечення користувачеві-програмісту зручностей за допомогою надання для нього розширеної машини і підвищення ефективності використання комп’ютера шляхом раціонального управління його ресурсами.
На сьогодні існує ряд визначень поняття ОС:
Так як операційна система (ОС) призначена для управління ресурсами ЕОМ (ОП, процесор, система введення / виводу, програми, користувач і т.д.). Таке визначення передбачає в якості ресурсу будь-яку складову обчислювального процесу, включаючи самого користувача, а обчислювальний процес представляється у вигляді моделі, конкуруючої в боротьбі за обчислювальні ресурси.
При функціональному підході ОС визначається безліччю основних функцій, нею підтримуваних: розподіл ресурсів, підтримка мультипрограмних і діалогових режимів, управління процесами, даними тощо
В якості третього підходу, згадуваного раніше, можна відзначити визначення ОС як програмного розширення апаратної середовища ЕОМ, що забезпечує (у тому числі) інтерфейс більш високого рівня з користувачем. У цій ролі ОС замість фізичного (апаратного) забезпечує логічний (програмний) інтерфейс користувача з НД
У загальному випадку для ПК можна дати таке визначення ОС:
Операційна система – це комплекс взаємопов’язаних системних програм, призначення якого – організувати взаємодію користувача з комп’ютером і виконання всіх інших програм.
Операційна система виконує роль сполучної ланки між апаратурою комп’ютера, з одного боку, і виконуваними програмами, а також користувачем, з іншого боку.
Операційна система зазвичай зберігається в зовнішній пам’яті комп’ютера – на диску. При включенні комп’ютера вона зчитується з дискової пам’яті і розміщується в ОЗУ. Цей процес називається завантаженням операційної системи.
У функції операційної системи входить:
здійснення діалогу з користувачем;
введення-виведення і керування даними;
планування та організація процесу обробки програм;
розподіл ресурсів (оперативної пам’яті і кеша, процесора, зовнішніх пристроїв);
запуск програм на виконання;
всілякі допоміжні операції обслуговування;
передача інформації між різними внутрішніми пристроями;
програмна підтримка роботи периферійних пристроїв (дисплея, клавіатури, дискових накопичувачів, принтера та ін.).
Класифікація операційних систем
Операційні системи можуть відрізнятися особливостями реалізації внутрішніх алгоритмів керування основними ресурсами комп’ютера (процесорами, пам’яттю, пристроями), особливостями використаних методів проектування, типами апаратних платформ, областями використання і багатьма іншими властивостями. Нижче наведено класифікацію ОС по декількох найбільш основними ознаками.
Особливості алгоритмів керування ресурсами.
Характеризуючи ОС, часто призводять найважливіші особливості реалізації функцій ОС з управління процесорами, пам’яттю, зовнішніми пристроями автономного комп’ютера. Так, наприклад, в залежності від особливостей використаного алгоритму керування процесором, операційні системи ділять на багатозадачні і однозадачні, багатокористувацькі і однокористувацький, на системи, що підтримують багатонитковою обробку і не підтримують багатонитковою обробку, на багатопроцесорні і однопроцесорні системи.
Підтримка багатозадачності. По числу одночасно виконуваних завдань операційні системи можуть бути розділені на два класи:
однозадачні (наприклад, MS-DOS, MSX) і багатозадачні (OC EC, OS / 2, UNIX, Windows).
Однозадачні ОС в основному виконують функцію надання користувачу віртуальної машини, роблячи більш простим і зручним процес взаємодії користувача з комп’ютером. Однозадачні ОС включають засоби керування периферійними пристроями, засоби керування файлами, засоби спілкування з користувачем.
Багатозадачні ОС, крім перерахованих вище функцій, керують поділом спільно використовуваних ресурсів, таких як процесор, оперативна пам’ять, файли і зовнішні пристрої.
Підтримка багатокористувацького режиму. По числу одночасно працюючих користувачів ОС поділяються на:
однопользовательские (MS-DOS, Windows 3.x, ранні версії OS / 2); багатокористувацькі (UNIX, Windows).
Головною відмінністю багатокористувацьких систем від однокористувацьких є наявність засобів захисту інформації кожного користувача від несанкціонованого доступу інших користувачів. Слід зауважити, що не всяка багатозадачна система є багато користувачів, і не всяка однокористувальницька ОС є однозадачной.
Підтримка багатонитковою. Важливою властивістю операційних систем є можливість розпаралелювання обчислень в рамках одного завдання. Багатонитковою ОС розділяє процесорний час не між завданнями, а між їх окремими гілками (нитками).
Многопроцессорная обробка. Іншою важливою властивістю ОС є відсутність або наявність у ній засобів підтримки багатопроцесорної обробки – мультіпроцессірованіе. Мультіпроцессірованіе призводить до ускладнення всіх алгоритмів керування ресурсами. Зараз підтримка цієї функції є обов’язковою.
Реалізація мережевих можливостей. Специфіка ОС виявляється і в тому, яким чином вона реалізує мережеві функції: розпізнавання і перенаправлення в мережу запитів до віддалених ресурсів, передача повідомлень по мережі, виконання віддалених запитів. При реалізації мережевих функцій виникає комплекс завдань, пов’язаних з розподіленим характером зберігання і обробки даних у мережі: ведення довідкової інформації про всіх доступних в мережі ресурсах і серверах, адресація взаємодіючих процесів, забезпечення прозорості доступу, тиражування даних, узгодження копій, підтримка безпеки даних.
Особливості апаратних платформ. На властивості операційної системи безпосередній вплив надають апаратні засоби, на які вона орієнтована. За типом апаратури розрізняють операційні системи персональних комп’ютерів, міні-комп’ютерів, мейнфреймів, кластерів і мереж ЕОМ. Серед перерахованих типів комп’ютерів можуть зустрічатися як однопроцесорні варіанти, так і багатопроцесорні.
Особливості областей використання Багатозадачні ОС підрозділяються на три типи відповідно до використаними при їх розробці критеріями ефективності: системи пакетної обробки (наприклад, OC EC), системи поділу часу (UNIX, VMS), системи реального часу (QNX, RT / 11).
Системи пакетної обробки призначалися для вирішення завдань в основному обчислювального характеру, які не потребують швидкого отримання результатів. Головною метою і критерієм ефективності систем пакетної обробки є максимальна пропускна здатність, тобто рішення максимального числа завдань в одиницю часу. Для досягнення цієї мети в системах пакетної обробки використовуються наступна схема функціонування: на початку роботи формується пакет завдань, кожне завдання містить вимогу до системних ресурсів; з цього пакета завдань формується мультипрограмному суміш, тобто безліч одночасно виконуваних завдань. Для одночасного виконання вибираються завдання, що пред’являють відрізняються вимоги до ресурсів, так, щоб забезпечувалася збалансоване завантаження всіх пристроїв обчислювальної машини. Системи поділу часу покликані виправити основний недолік систем пакетної обробки – ізоляцію користувача-програміста від процесу виконання його завдань. Кожному користувачеві системи поділу часу надається термінал, з якого він може вести діалог зі своєю програмою. Так як в системах поділу часу кожній задачі виділяється тільки квант процесорного часу, жодна задача не займає процесор надовго, і час відповіді виявляється прийнятним. Якщо квант обраний досить невеликим, то у всіх користувачів, що одночасно працюють на одній і тій же машині, складається враження, що кожен з них одноосібно використовує машину. Ясно, що системи поділу часу володіють меншою пропускною здатністю, ніж системи пакетної обробки, так що на виконання приймається кожна запущена користувачем задача, а не та, яка “вигідна” системі, і, крім того, є накладні витрати обчислювальної потужності на більш часте переключення процесора з задачі на задачу. Критерієм ефективності систем поділу часу є не максимальна пропускна здатність, а зручність і ефективність роботи користувача. Системи реального часу застосовуються для керування різними технічними об’єктами, такими, наприклад, як верстат, супутник, наукова експериментальна установка технологічними процесами, такими, як гальванічна лінія, доменний процес і т.п. У всіх цих випадках існує гранично припустимий час, протягом якого повинна бути виконана та чи інша програма, що керує об’єктом, в іншому випадку може статися аварія: супутник вийде з зони видимості, експериментальні дані, що надходять з датчиків, будуть втрачені, товщина гальванічного покриття не буде відповідати нормі. Таким чином, критерієм ефективності для систем реального часу є їхня здатність витримувати заздалегідь задані інтервали часу між запуском програми й одержанням результату (керуючого впливу). Цей час називається часом реакції системи, а відповідне властивість системи – реактивністю. Для цих систем мультипрограмному суміш являє собою фіксований набір заздалегідь розроблених програм, а вибір програми на виконання здійснюється виходячи з поточного стану об’єкта або відповідно до розкладу планових робіт.
Деякі операційні системи можуть поєднувати в собі властивості систем різних типів, наприклад, частина завдань може виконуватися в режимі пакетної обробки, а частина – в режимі реального часу або в режимі поділу часу. У таких випадках режим пакетної обробки часто називають фоновим режимом.
Особливості методів побудови. При описі операційної системи часто вказуються особливості її структурної організації та основні концепції, покладені в її основу. До таких базовим концепціям відносяться:
Способи побудови ядра системи – монолітне ядро ​​або мікроядерний підхід. Більшість ОС використовує монолітне ядро, яке компонується як одна програма, що працює в привілейованому режимі і використовує швидкі переходи з однієї процедури на іншу, не потребують перемикання з привілейованого режиму в користувальницький і навпаки. Альтернативою є побудова ОС на базі мікроядра, що працює також у привілейованому режимі і виконує тільки мінімум функцій з управління апаратурою, у той час як функції ОС більш високого рівня виконують спеціалізовані компоненти ОС – сервери, що працюють в режимі користувача. При такій побудові ОС працює більш повільно, так як часто виконуються переходи між привілейованим режимом і користувальницькою, зате система виходить більш гнучкою – її функції можна нарощувати, модифікувати або звужувати, додаючи, модифікуючи або виключаючи сервери користувацького режиму. Крім того, сервери добре захищені один від одного, як і будь-які користувацькі процеси.
Побудова ОС на базі об’єктно-орієнтованого підходу дає можливість використовувати всі його достоїнства, добре зарекомендували себе на рівні додатків, всередині операційної системи, а саме: акумуляцію вдалих рішень у формі стандартних об’єктів, можливість створення нових об’єктів на базі наявних за допомогою механізму спадкування, хорошу захист даних за рахунок їх інкапсуляції у внутрішні структури об’єкта, що робить дані недоступними для несанкціонованого використання ззовні, структурованість системи, що складається з набору добре визначених об’єктів. Наявність декількох прикладних середовищ дає можливість у рамках однієї ОС одночасно виконувати додатки, розроблені для декількох ОС. Багато сучасні операційні системи підтримують одночасно прикладні середовища MS-DOS, Windows, UNIX (POSIX), OS / 2 або хоча б деякогопідмножини з цього популярного набору. Концепція множинних прикладних середовищ найбільше просто реалізується в ОС на базі мікроядра, над яким працюють різні сервери, частина яких реалізують прикладну середу тієї чи іншої операційної системи. Розподілена організація операційної системи дозволяє спростити роботу користувачів і програмістів в мережевих середовищах. У розподіленої ОС реалізовані механізми, які дають можливість користувачеві представляти і сприймати мережу у вигляді традиційного однопроцесорного комп’ютера. Характерними ознаками розподіленої організації ОС є: наявність єдиної довідкової служби поділюваних ресурсів, єдиної служби часу, використання механізму виклику віддалених процедур (RPC) для прозорого розподілу програмних процедур по машинах, багатонитковою обробки, що дозволяє распараллеливать обчислення в рамках однієї задачі і виконувати це завдання відразу на декількох комп’ютерах мережі, а також наявність інших розподілених служб.

Посилання на основну публікацію