Від ефективності алгоритмів керування локальними ресурсами комп'ютера багато в чому залежить ефективність усієї мережної ОС у цілому. Тому, характеризуючи мережну ОС, часто приводять найважливіші особливості реалізації функцій ОС по керуванню процесорами, пам'яттю, зовнішніми пристроями автономного комп'ютера.
Так, наприклад, у залежності від особливостей використаного алгоритму керування процесором, операційні системи поділяють на:
- багатозадачні й однозадачні;
- багатокористувальницькі й однокористувальницькі;
- на системи, що підтримують багатониткову обробку і не підтримуючі її;
- на багатопроцесорні й однопроцесорні системи.
За числом одночасно виконуваних задач операційні системи можуть бути розділені на два класи:
Ø однозадачні (наприклад, MS-DOS, MSX);
Ø багатозадачні (OC EC, OS/2, UNIX, Windows 95, Windows Seven).
Однозадачні ОС в основному виконують функцію надання користувачеві віртуальної машини, роблячи більш простим і зручним процес взаємодії користувача з комп'ютером.
|
|
Однозадачні ОС включають засоби керування периферійними пристроями, засоби керування файлами, засоби спілкування з користувачем. У таких системах в кожен момент часу може існувати не більше одного активного користувацького процесу. Притому, одночасно з ним можуть працювати системні процеси (наприклад ті, які виконують запити на ввід/вивід).
Багатозадачні ОС, крім перерахованих вище функцій, керують поділом спільно використовуваних ресурсів, таких як процесор, оперативна пам'ять, файли і зовнішні пристрої, забезпечують паралельне виконання декількох користувацьких процесів.
Реалізація багатозадачності потребує значного ускладнення алгоритмів і структур даних, які використовує система.
Багатозадачність - режим одночасного рішення декількох завдань на комп'ютері. Завдання в цьому випадку - це частина роботи, виконуваної процесором.
Найважливішим поділюваним ресурсом є процесорний час. Спосіб розподілу процесорного часу між декількома одночасно існуючими в системі процесами (або нитками) багато в чому визначає специфіку ОС. Серед безлічі існуючих варіантів реалізації багатозадачності можна виділити дві групи алгоритмів:
ü багатозадачність без витіснення (NetWare, Windows 3.x);
ü багатозадачність із витісненням (Windows NT, 2000, XP, OS/2, UNIX, Linux).
Основною відмінністю між багатозадачністю із витісненням та без витіснення є ступінь централізації механізму планування процесів. У першому випадку механізм планування процесів цілком зосереджений в операційній системі, а в іншому - розподілений між системою і прикладними програмами.
При багатозадачності без витіснення активний процес виконується доти, поки він сам, за власною ініціативою, не віддасть керування операційній системі для того, щоб та обрала з черги інший готовий до виконання процес.
|
|
При багатозадачності із витісненням, рішення про перемикання процесора з одного процесу на іншій приймається операційною системою, а не самим активним процесом. Кожній програмі виділяється квант процесорного часу, після закінчення якого керування передається іншій програмі. Говорять, що перша програма буде витиснута. У режимі, що витісняє, працюють користувальницькі програми більшості комерційних ОС.
У деяких ОС (Windows 3.х, наприклад) користувальницька програма може монополізувати процесор, тобто працювати в режимі, що не витісняє. Як правило, у більшості систем не підлягає витисненню код властиво ОС. Відповідальні програми, зокрема завдання реального часу, також не витісняються.
Багатозадачна ОС, вирішуючи проблеми розподілу ресурсів і конкуренції, повністю реалізує мультипрограмний режим
По режиму обробки задач:
ü однопрограмний режим;
ü мультипрограмний режим.
Мультипрограмування – спосіб організації обчислень, коли на однопрцесорній системі створюється видимість одночасного виконання декількох задач. Будь-яка затримка у виконанні однієї програми використовується для виконання інших програм.
Мультипрограмний і мультизадачний режими близькі за змістом, але синонімами не є. Мультипрограмний режим забезпечує паралельне виконання кількох додатків, а програмісти, що створюють ці програми, не повинні піклуватися про механізм організації їх паралельної роботи. Ці функції виконує ОС, яка розподіляє між запущеними додатками ресурси обчислювальної системи, забезпечує необхідну синхронізацію обчислень і взаємодію. Розділяють мультипрограмування в пакетних системах, системах реального часу і мультипрограмування в системах поділу часу.
Мультизадачний режим передбачає, що турбота про паралельне виконання та взаємодію додатків лягає на прикладних програмістів.
Сучасні ОС для ПК реалізують і мультипрограмний, і багатозадачний режими.