Класифікація ОС
Існує кілька схем класифікації операційних систем. Нижче наведена класифікація по деяких ознаках з погляду користувача.
Реалізація багатозадачності
По числу одночасно виконуваних завдань операційні системи можна розділити на два класи:
- багатозадачні (Unix, OS/2, Windows);
- однозадачні (наприклад, MS-DOS).
Багатозадачна ОС, вирішуючи проблеми розподілу ресурсів і конкуренції, повністю реалізує мультипрограмний режим.
Багатозадачний режим, що втілює в собі ідею поділу часу, називається що витісняє (preemptive). Кожній програмі виділяється квант процесорного часу, після закінчення якого керування передається іншій програмі. Говорять, що перша програма буде витиснута. У режимі, що витісняє, працюють користувальницькі програми більшості комерційних ОС.
У деяких ОС (Windows, наприклад) користувальницька програма може монополізувати процесор, тобто працювати в режимі, що не витісняє. Як правило, у більшості систем не підлягає витисненню код властиво ОС. Відповідальні програми, зокрема завдання реального часу, також не витісняються.
По наведених прикладах можна судити про приблизність класифікації. Так, в ОС MS-DOS можна організувати запуск дочірнього завдання й наявність у пам’яті двох і більше завдань одночасно. Однак ця ОС традиційно вважається однозадачною, головним чином через відсутність захисних механізмів і комунікаційних можливостей.
Підтримка багатокористувацького режиму
По числу одночасно працюючих користувачів ОС можна розділити на:
- однокористувацькі (MS-DOS, Windows);
- багатокористувацькі (Windows NT, Unix).
Найбільш істотна відмінність між цими ОС полягає в наявності в багатокористувацьких системах механізмів захисту персональних даних кожного користувача.
Багатопроцесорна обробка
Аж до недавнього часу обчислювальні системи мали один центральний процесор. У результаті вимог до підвищення продуктивності з’явилися багатопроцесорні системи, що складаються із двох і більше процесорів загального призначення, що здійснюють паралельне виконання команд. Підтримка багатопроцесування є важливою властивістю ОС і приводить до ускладнення всіх алгоритмів керування ресурсами. Багатопроцесорна обробка реалізована в таких ОС, як Linux, Solaris, Windows NT, і ряді інших.
Багатопроцесорні ОС розділяють на симетричні й асиметричні. У симетричних ОС на кожному процесорі функціонує те саме ядро, і завдання може бути виконана на будь-якому процесорі, тобто обробка повністю децентралізована. При цьому кожному із процесорів доступна вся пам’ять.
В асиметричних ОС процесори нерівноправні. Звичайно існує головний процесор (master) і підлеглі (slave), завантаження й характер роботи яких визначає головний процесор.
Системи реального часу
У розряд багатозадачних ОС, поряд з пакетними системами й системами поділу часу, включаються також системи реального часу, що не згадувалися дотепер.
Вони використаються для керування різними технічними об’єктами або технологічними процесами. Такі системи характеризуються гранично припустимим часом реакції на зовнішню подію, протягом якого повинна бути виконана програма, що управляє об’єктом. Система повинна обробляти дані, що надходять, швидше, ніж вони можуть надходити, причому від декількох джерел одночасно.
Настільки жорсткі обмеження позначаються на архітектурі систем реального часу, наприклад, у них може бути відсутня віртуальна пам’ять, підтримка якої дає непередбачені затримки у виконанні програм.