Типова структура системного програмного забезпечення
Охарактеризуйте узагальнену структуру програмного забезпечення обчислювальних систем.
Узагальнена структура програмного забезпечення обчислювальної системи
Під ОС звичайно розуміють комплекс керуючих та обробляючих програм, який з одного боку виступає як інтерфейс між апаратурою комп’ютера та користувачем з його задачами, а з другого боку – призначений для найбільш ефективного використання ресурсів комп’ютера (або ширше – обчислювано системи) та організації надійних обчислень.
Довільний з компонентів прикладного програмування обов’язково працює під керуванням ОС. Жодна з компонент програмного забезпечення, за виключенням ОС не має безпосереднього доступу до апаратури комп’ютера. Навіть користувачі взаємодіють із своїми програмами через інтерфейс ОС. Довільні команди, перш ніж попасти у прикладу програму, спочатку проходять через ОС.
Системи програмування включають в себе перш за все такі компоненти як транслятори з мов програмування, бібліотеки підпрограм, редактори, компановщики та відлагоджувачі. Зовсім самостійних, тобто відірваних від конкретної ОС систем програмування не буває. Довільна система програмування може працювати тільки під відповідною ОС, під яку вона і створена. Але система програмування може давати можливість розробляти програмне забезпечення і під інші ОС. У такому випадку, коли програми, що створюється, повинні працювати на іншій апаратній базі, маємо крос – систему.
Утиліти. Це спеціальні системні програми за допомогою яких можна як обслуговувати саму ОС, так і готувати для роботи носії даних, виконувати перекодування даних, оптимізацію розміщення даних на носії та виконувати деякі інші роботи, пов’язані із обслуговуванням обчислювальних систем. Зрозуміло, що утиліти можуть працювати тільки під відповідною операційною системою.
Типова структура системного програмного забезпечення.
4. Основні функції операційної системи.
Основними функціями ОС є:
1. Сприймання від користувача (або від оператора системи) завдань або команд у вигляді директив (або команд) оператора, а також у вигляді вказівок від маніпуляторів (наприклад, миші) та їх обробка.
2. Завантаження, запуск, призупинення, зупинка програм.
Керування файловими системами та системами управління базами даних.
3. Забезпечення режиму мультипрограмування, тобто виконання двох та більше програм на одному процесорі.
4. Забезпечення функцій з організації та керування усіма операціями вводу/виводу.
5. Забезпечення виконання обмежень на час відповіді в режимі реального часу (для ОС відповідного типу).
6. Розподіл пам’яті (як основної, так і зовнішньої), та організація віртуальної пам’яті.
7. Планування та диспетчеризація задач у відповідності із заданими стратегією та дисципліною обслуговування.
8. Організація механізмів обміну повідомленнями і даними між програмами, що виконуються, а також захист одної програми від впливу інших.
9. Забезпечення роботи систем програмування.
Таким чином, ОС виконує функції керування обчислювальними процесами в комп’ютерній системі, розподіляє ресурси комп’ютерної системи між різними обчислювальними процесами і створює програмне середовище, в якому виконуються прикладні програми користувачів. Таке середовище називається операційним середовищем або операційним оточенням.
Взаємодія користувача з комп’ютерною системою відбувається через інтерфейс користувача, який підтримується ОС. Надалі приймається, що функції ОС реалізуються тільки програмним способом. Але деякі з них можуть бути представлені програмно-апаратними засобами (firmware) у вигляді постійних запам’ятовуючих пристроїв (BIOS).
Операційна система складається з деякої множини стандартних сервісних програм, які можуть бути використані в процесі виконання задачі і які надають засоби для керування ресурсами обчислювальної системи, виділяючи їх користувачам по потребі.
Наприклад: користування вводом/виводом.
Операційне оточення разом з реальною машиною (апаратурою комп’ютера) створюють розширену машину, яка і використовується під час виконання програм. Завдяки операційному оточенню кожна програма (тобто завдання для ОС) виконується ніби на окремій розширеній машині, хоча в дійсності ресурси реальної машини можуть розподілятись між багатьма користувачами.
5. Охарактеризуйте основні типи операційних систем.
Не завжди можна досягнути повної ясності у визначенні типів ОС, які можуть підпадати більш ніж під одну категорію класифікації.
За призначенням.
1.1 ОС великих ЕОМ (MainFrame)
1.2 серверні ОС (здатність обслуговувати велику к-ть запитів та ефективно підтримувати мережу)
1.3 ОС для ПК
1.4 ОС реального часу (гарантування заданого часу відповіді на запит). Для обробки зовнішніх сигналів, які надходять, наприклад, з різних давачів, і швидкої відповіді на них використовуються ОС реального часу. Такі ОС працюють на комп’ютерах, для яких час є критичним параметром. Вони повинні забезпечувати гарантований час реакції на зовнішні події.
1.5 вбудовані ОС (спеціалізована техніка)
2. Класифікація, за кількістю користувачів, які одночасно обслуговуються ОС (за режимом обробки задач):
2.1 Одно програмна — забезпечує роботу одної задачі одного користувача. - DOS
2.2 Мульти (багато) програмна — дозволяє одночасно виконувати декілька програм одного користувача.
2.3 Багатокористувацька — багато задач багатьох користувачів, поділяється на мульти-процесорну та мульти-машинну (мережева ОС).
Основна мета мультипрограмування — підвищення продуктивності обчислювальної системи за рахунок розподілення її ресурсів між декількома завданнями.
3. Класифікація за типами доступу, який надається інтерфейсом користувача (за способом взаємодії із системою).
3.1 Сиситеми пакетної обробки – обробляють потік завдань. Все керування з читання та виконання завданнями бере на себе ОС. Зараз втратили актуальність.
3.2 Діалоговий або інтерактивний доступ – забезпечується для деякої кількості користувачів одночасно системами розподілу часу.
За способом побудови
4.1. мікроядерні ОС(QNX)
4.2 монолітні ОС(Windows, UNIX)
ОС виконує директиви користувачів в темпі надходження та намагається дати відповідь на кожну команду користувача за найкоротший час.
Досить часто всі ознаки класифікації реалізуються в одній системі.
На рівні функцій та послуг, що надаються операційцним оточенням, є багато спільного між ОС, які на рівні інтерфейсу користувача зовсім різні (і навпаки).
Операційне оточення може включати декілька інтерфейсів: користувацькі і програмні:
Linux – має інтерфейс командного рядка (shell);
інтерфейс Midnight Commander (типу NC);
графічні інтерфейси – Х-Window з різними менеджерами вікон (KDE, Gnome)
Програмні інтерфейси – в Linux програми можуть звертатись як до ОС за відповідними сервісами і функціями, так і до графічної підсистеми (якщо вона використовується).
З точки зору процесора комп’ютера, як і всього комп’ютера в цілому, двійкова програма, створена для роботи в середовищі Linux, використовує ті самі команди і формати даних, що і програма, створена для роботи в середовищі Windows NT.
Але в першому випадку ми маємо звертання до одного операційного середовища, а в другому випадку – а в другому випадку – до другого. Програма, створена під Windows безпосередньо, не буде виконуватись в Linux. Але якщо в ОС Linux створити повноцінне операційне середовище Windows, то Windows-програма може бути виконана.
Таким чином операційне середовище – це системне програмне оточення, в якому можуть виконуватись програми, створені за правилами роботи цього середовища.
6. Основні концепції побудови операційних систем.
При описі ОС часто вказуються особливості її структурної організації й основні концепції, покладені в її основу.
До таких базових концепцій відносяться:
-способи побудови ядра системи - монолітне чи ядро мікроядерний підхід. Більшість ОС використовує монолітне ядро, що компонується як одна програма, що працює в привілейованому режимі і використовує швидкий перехід з однієї процедури на іншу, не потребуючі переключення з привілейованого режиму в користувальницький і навпаки. Альтернативою є побудова ОС на базі мікроядра, що працює також у привілейованому режимі і виконуючого тільки мінімум функцій по керуванню апаратурою, у той час як функції ОС більш високого рівня виконують спеціалізовані компоненти ОС - сервери, що працюють у користувальницькому режимі. При такій побудові ОС працює більш повільно, тому що часто виконуються переходи між привілейованим режимом і користувацьким, зате система виходить більш гнучкої - її функції можна нарощувати, чи модифікувати звужувати, додаючи, чи модифікуючи крім серверів користувацького режиму. Крім того, сервери добре захищені один від одного, як і будь-які користувацькі процеси.
-Побудова ОС на базі об’єктно-орієнтованого підходу дає можливість використовувати всі його достоїнства, що добре зарекомендували себе на рівні додатків, всередині ОС, а саме: акумуляцію вдалих рішень у формі стандартних об'єктів, можливість створення нових об'єктів на базі наявних за допомогою механізму спадкування, гарний захист даних за рахунок їхньої інкапсуляції у внутрішні структури об'єкта, що робить дані недоступними для несанкціонованого використання ззовні, структуризованность системи, що складає з набору добре визначених об'єктів.
-Наявність декількох прикладних середовищ дає можливість у рамках однієї ОС одночасно виконувати додатка, розроблені для декількох ОС. Багато сучасних ОС підтримують одночасно прикладні середовища MS-DOS, Wіndows, UNІ (POSІ), OS/2 чи хоча б деякої підмножини з цього популярного набору. Концепція множинних прикладних середовищ найбільше просто реалізується в ОС на базі мікроядра, над яким працюють різні сервери, частина яких реалізують прикладне середовище тієї чи іншої ОС.
-Розподілена організація ОС дозволяє спростити роботу користувачів і програмістів у мережних середовищах. У розподіленої ОС реалізовані механізми, що дають можливість користувачу представляти і сприймати мережу у виді традиційного однопроцесорного комп'ютера. Характерними ознаками розподіленої організації ОС є: наявність єдиної довідкової служби розподілених ресурсів, єдиної служби часу, використання механізму виклику вилучених процедур (RPC) для прозорого розподілу програмних процедур по машинах, многонитевой обробки, що дозволяє розпаралелювати обчислення в рамках однієї задачі і виконувати цю задачу одночасно на декількох комп'ютерах мережі, а також наявність інших розподілених служб.
7. Класифікація ОС, за призначенням.
1.1 ОС великих ЕОМ (MainFrame)
1.2 серверні ОС (здатність обслуговувати велику к-ть запитів та ефективно підтримувати мережу)
1.3 ОС для ПК
1.4 ОС реального часу (гарантування заданого часу відповіді на запит). Для обробки зовнішніх сигналів, які надходять, наприклад, з різних давачів, і швидкої відповіді на них використовуються ОС реального часу. Такі ОС працюють на комп’ютерах, для яких час є критичним параметром. Вони повинні забезпечувати гарантований час реакції на зовнішні події.
1.5 вбудовані ОС (спеціалізована техніка)
8. Класифікація ОС, за режимом обробки задач.
2. Класифікація, за кількістю користувачів, які одночасно обслуговуються ОС (за режимом обробки задач):
2.1 Одно програмна — забезпечує роботу одної задачі одного користувача. - DOS
2.2 Мульти (багато) програмна — дозволяє одночасно виконувати декілька програм одного користувача.
2.3 Багатокористувацька — багато задач багатьох користувачів, поділяється на мульти-процесорну та мульти-машинну (мережева ОС).
Основна мета мультипрограмування — підвищення продуктивності обчислювальної системи за рахунок розподілення її ресурсів між декількома завданнями.
9. Класифікація ОС, за способами взаємодії із системами.
3. Класифікація за типами доступу, який надається інтерфейсом користувача (за способом взаємодії із системою).
3.1 Сиситеми пакетної обробки – обробляють потік завдань. Все керування з читання та виконання завданнями бере на себе ОС. Зараз втратили актуальність.
3.2 Діалоговий або інтерактивний доступ – забезпечується для деякої кількості користувачів одночасно системами розподілу часу.
10. Класифікація ОС, за способами побудови.
4.1. мікроядерні ОС(QNX)
4.2 монолітні ОС(Windows, UNIX)
11. Охарактеризуйте підсистему керування ресурсами.
Найважливіші ресурси — це пам’ять та процесор (тобто процесорний час).
Основна пам'ять є одним із видів ресурсів, розподілюваних між процесами. ОС відповідає за виділення пам'яті під захищений адресний простір процесу і за вивільнення пам'яті після завершення процесу. Обсяг пам'яті, доступний процесу, може змінюватися в ході виконання, у цьому разі говорять про динамічний розподіл пам'яті.
ОС повинна забезпечувати можливість виконання програм, які окремо або разом перевищують за обсягом доступну основну пам'ять. Для цього в ній має бути реалізована технологія віртуальної пам'яті. Така технологія дає можливість розміщувати в основній пам'яті тільки потрьіні в поточний момент часу інструкції й дані процесу, при цьому вміст іншої частини адресного простору зберігається на диску.
Процеси отримують можливість виконувати конкретну роботу, коли в їх розпорядження надаються фізичні процесори. Задачу розподілу процесорів вирішують операційні системи. Визначення того, коли слід виділяти процесори і яким саме процесам - називається плануванням. Існує планування на верхньому рівні (визначає яким завданням буде дозволено активно конкурувати за захоплення ресурсів системи), на проміжному рівні (визначає яким процесам буде дозволено змагатись за захоплення ЦП.) , на нижньому рівні (визначає якому з процесів, що готові до виконання, буде надаватись ЦП, який звільнився.). Якщо після надання ЦП в розпорядження деякого процесу, відібрати ЦП у нього не можна, то має місце дисципліна планування без переключення. Інакше має місце дисципліна з переключенням.
12. Охарактеризуйте підсистему керування введенням-виведенням.
Операційна система відповідає за керування пристроями введення-виведення, підключеними до комп'ютера. Підтримка таких пристроїв в ОС звичайно здійснюється на двох рівнях. До першого, нижчого, рівня належать драйвери пристроїв —програмні модулі, які керують пристроями конкретного типу з урахуванням усіхїхніх особливостей. До другого рівня належить універсальний інтерфейс введення-виведення, зручний для використання у прикладних програмах.
ОС має реалізовувати загальний інтерфейс драйверів введення-виведення, через який вони взаємодіють з іншими компонентами системи. Такий інтерфейс дає змогу спростити додавання в систему драйверів для нових пристроїв.
Сучасні ОС надають великий вибір готових драйверів для конкретних периферійних пристроїв. Що більше пристроїв підтримує ОС, то більше в неї шансів на практичне використання.
13. Охарактеризуйте підсистему керування файлами та файлові системи.
Для користувачів ОС і прикладних програмістів дисковий простір надається у вигляді сукупності файлів, організованих у файлову систему.
Файл — це набір даних у файловій системі, доступ до якого здійснюється за іменем. Термін «файлова система» може вживатися для двох понять: принципу організації даних у вигляді файлів і конкретного набору даних (зазвичай відповідної частини диска), організованих відповідно до такого принципу. У рамках ОС може бути реалізована одночасна підтримка декількох файлових систем.
Файлові системи розглядають на логічному і фізичному рівнях. Логічний рівень визначає зовнішнє подання системи як сукупності файлів (які звичайно перебувають у каталогах), а також виконання операцій над файлами і каталогами (створення, вилучення тощо). Фізичний рівень визначає принципи розміщення структур даних файлової системи на диску або іншому пристрої.
14. Призначення та особливості ядра операційної системи
Усі операції, що пов’язані з процесами, виконуються під керуванням ядра. Ядро – невелика частина ОС, але вона відноситься до найбільш інтенсивно використовуваних компонентів ОС.
З цієї причини ядро, зазвичай, резидентно розміщено в оперативній пам’яті, в той час як інші частини ОС переміщаються у зовнішню пам’ять та назад за необхідністю.
Одною з найважливіших операцій ядра є обробка переривань. У великих, багато абонентських системах у процесор надходить постійний потік переривань. Коли ядро обробляє біжуче переривання, воно заблоковує інші переривання і дозволяє їх знову тільки після завершення обробки біжучого переривання. При постійному потоці переривань може скластися, ситуація, що ядро блокуватиме переривання протягом тривалого часу, тоді система не буде мати можливості ефективно реагувати на переривання. Тому, ядро розробляється таким чином, щоб воно виконувало тільки мінімально можливу попередню обробку кожного переривання, а потім передавало це переривання на подальшу обробку відповідному системному процесові. Після передачі обробки переривання іншому процесові, ядро може дозволити наступні переривання. Таким чином, середня швидкість реакції системи суттєво зростає.
15. Основні функції ядра операційної системи.
Ядро, як правило, містить програми для реалізації наступних функцій:
- обробка переривань;
- створення та знищення процесів;
- перемикання процесів зі стану в стан;
- диспетчеризація;
- припинення та активізація процесів;
- синхронізація процесів;
- організація взаємодії між процесами;
- маніпуляція блоками керування процесами (PCB);
- підтримка операцій вводу-виводу;
- підтримка розподілу та перерозподілу пам’яті;
- підтримка механізму виклику-повернення при звертанні до процедур;
- підтримка функцій з обліку роботи машини.
Функції, що реалізовані в ядрі є примітивними.
16. Основні види архітектури операційних систем.
Операційну систему можна розглядати як сукупність компонентів, кожен з яких відповідає за певні функції. Набір таких компонентів і порядок їхньої взаємодії один з одним та із зовнішнім середовищем визначається архітектурою операційної системи.
Виділяють такі основні архітектури операційних систем:
1. Монолітні системи
ОС, у яких усі базові функції сконцентровані в ядрі, називають монолітними системами. У разі реалізації монолітного ядра ОС стає продуктивнішою, бо процесор не перемикається між режимами під час взаємодії між її компонентами, але менш надійною, бо весь її код виконується у привілейованому режимі, і помилка в кожному з компонентів є критичною.
2. Багаторівневі системи
Компоненти багаторівневих ОС утворюють ієрархію рівнів (шарів), кожен з яких спирається на функції попереднього рівня. Найнижчий рівень безпосередньо взаємодіє з апаратним забезпеченням, на найвищому рівні реалізуються системні виклики.
У традиційних багаторівневих ОС передача керування з верхнього рівня на нижній реалізується як системний виклик. Верхній рівень повинен мати права на виконання цього виклику, перевірка цих прав виконується за підтримки апаратного забезпечення.
Практичне застосування цього підходу сьогодні обмежене через низьку продуктивність.
3. Системи з мікроядром
Мікроядро — це мінімальна реалізація функцій ядра ОС. Інші функції ОС виконуються процесами режиму користувача (серверами). Мікроядро здійснює зв'язок між компонентами системи і виконує базовий розподіл ресурсів
4. Системи віртуальних машин
У системах віртуальних машин програмним шляхом створюють копії апаратного забезпечення (відбувається його емуляція). Ці копії (віртуальні машини) працюють паралельно, на кожній із них функціонує програмне забезпечення, з яким взаємодіють прикладні програми і користувачі.
17. Операційні системи з монолітним ядром.
ОС, у яких усі базові функції сконцентровані в ядрі, називають монолітними системами. У разі реалізації монолітного ядра ОС стає продуктивнішою (процесор не перемикається між режимами під час взаємодії між її компонентами), але менш надійною (весь її код виконується у привілейованому режимі, і помилка в кожному з компонентів є критичною).
Монолітність ядра не означає, що всі його компоненти мають постійно перебувати у пам'яті. Сучасні ОС дають можливість динамічно розміщувати в адресному просторі ядра фрагменти коду (модулі ядра). Реалізація модулів ядра дає можливість також досягти його розширюваності (для додання нової функціональності досить розробити і завантажити у пам'ять відповідний модуль).
У монолітному ядрі можуть виділятися рівні, які підтримуються програмно і спричиняють спрощення реалізації системи:
1. Засоби абстрагування від устаткування, які безпосередньо взаємодіють з апаратним забезпечення
2. Базові засоби ядра, які відповідають за його найпростіші дії.
3. Засоби керування ресурсами, що реалізують основні функції ОС
4. Інтерфейс системних викликів, який служить для реалізації зв’язку із системним і прикладним програмним забезпеченням.
18. Багаторівневі операційні системи.
Компоненти багаторівневих ОС утворюють ієрархію рівнів (шарів), кожен з яких спирається на функції попереднього рівня. Найнижчий рівень безпосередньо взаємодіє з апаратним забезпеченням, на найвищому рівні реалізуються системні виклики.
У традиційних багаторівневих ОС передача керування з верхнього рівня на нижній реалізується як системний виклик. Верхній рівень повинен мати права на виконання цього виклику, перевірка цих прав виконується за підтримки апаратного забезпечення. Прикладом такої системи є ОС Multics, розроблена в 60-ті роки. Практичне застосування цього підходу сьогодні обмежене через низьку продуктивність.
Рівні можуть виділятися й у монолітному ядрі; у такому разі вони підтримуються програмно і спричиняють спрощення реалізації системи. У монолітному ядрі визначають рівні, перелічені нижче:
1. Засоби абстрагування від устаткування, які безпосередньо взаємодіють з апаратним забезпечення
2. Базові засоби ядра, які відповідають за його найпростіші дії.
3. Засоби керування ресурсами, що реалізують основні функції ОС
4. Інтерфейс системних викликів, який служить для реалізації зв’язку із системним і прикладним програмним забезпеченням.
19. Операційні системи з мікроядром.
Мікроядро — це мінімальна реалізація функцій ядра ОС. Інші функції ОС виконуються процесами режиму користувача (серверами).
Мікроядро здійснює зв'язок між компонентами системи і виконує базовий розподіл ресурсів. Щоб виконати системний виклик, процес (клієнт) звертається до мікроядра. Мікроядро посилає серверу запит, сервер виконує роботу і пересилає відповідь назад, а мікроядро переправляє його клієнтові. Клієнтами можуть бути не лише процеси користувача, а й інші модулі ОС.
Переваги мікроядерного підходу:
1. Невеликі розміри ядра спрощують розробку
2. Висока надійність системи, внаслідок того що сервери працюють у режимі користувача й у них немає прямого доступу до апаратного забезпечення
3. Більша гнучкість і розширюваність системи. Непотрібні компоненти не займають місця в пам’яті, можна добавляти нові сервери
4. Можливість адаптацій до роботи в мережі.
Недолік – зниження продуктивності за рахунок подвійного перемикання.
20. Концепція віртуальних машин в побудові операційних систем.
У системах віртуальних машин програмним шляхом створюють копії апаратного забезпечення (відбувається його емуляція). Ці копії (віртуальні машини) працюють паралельно, на кожній із них функціонує програмне забезпечення, з яким взаємодіють прикладні програми і користувачі.
ПДО – підсистема діалогової обробки
ВМ – віртуальна машина
Ядро системи, яке називалося монітором ВМ виконувалося на фізичній машині, безпосередньо взаємодіючи з її апаратним забезпеченням. Монітор реалізовував набір ВМ. Кожна ВМ була точною копією апаратного забезпечення, на ній могла бути запущена будь-яка ОС, розроблена для цієї архітектури. Найчастіше на ВМ встановлювали спеціальну однокористувацьку ОС CMS (ПДО). На різних ВМ могли одночасно функціонувати різні ОС.
Коли програма, написана для ПДО, виконувала системний виклик, його перехоплювала копія ПДО, запущена на відповідній віртуальній машині. Потім ПДО виконувала відповідні апаратні інструкції, наприклад інструкції введення-виведення для читання диска. Ці інструкції перехоплював монітор ВМ і перетворював їх на апаратні інструкції фізичної машини.
Сьогодні концепція віртуальних машин застосовується і в прикладному програмному забезпеченні.
21. Засоби апаратної підтримки операційних систем
Взаємодію ОС і апаратного забезпечення слід розглядати з двох боків. З одного боку, ОС повинна реалізовувати засоби взаємодії з апаратним забезпеченням, з іншого — архітектуру комп’ютера треба проектувати з урахуванням того, що на комп’ютері функціонуватиме ОС.
Інтерфейс апаратного забезпечення має бути повністю схований від прикладних програм і користувачів, усю роботу з ним виконує ОС. Розглянемо особливості апаратної підтримки цього інтерфейсу і його використання в сучасних ОС.
Сучасні апаратні архітектури комп’ютерів реалізують базові засоби підтримки операційних систем. До них належать: система переривань, привілейований режим процесора, засоби перемикання задач, підтримка керування пам’яттю (механізми трансляції адрес, захист пам’яті), системний таймер, захист пристроїв введення-виведення, базова система введення-виведення (BIOS).
Система переривань є основним механізмом, що забезпечує функціонування ОС. За допомогою переривань процесор отримує інформацію про події, не пов’язані з основним циклом його роботи (отриманням інструкцій з пам’яті та їхнім виконанням). Переривання бувають двох типів: апаратні і програмні.
Апаратне переривання — це спеціальний сигнал (запит переривання, IRQ), що передається процесору від апаратного пристрою.
До апаратних переривань належать:
- переривання введення-виведення, що надходять від контролера периферійного пристрою; наприклад, таке переривання генерує контролер клавіатурипри натисканні на клавішу;
- переривання, пов’язані з апаратними або програмними помилками (такі переривання виникають, наприклад, у разі збою контролера диска, доступу до забороненої області пам’яті або ділення на нуль).
Програмні переривання генерує прикладна програма, виконуючи спеціальну інструкцію переривання. Така інструкція є в системі команд більшості процесорів. Обробка програмних переривань процесором не відрізняється від обробки апаратних переривань.
Якщо переривання відбулося, то процесор негайно передає керування спеціальній процедурі — оброблювачеві переривання. Після виходу з оброблювача процесор продовжує виконання інструкцій перерваної програми.
Можна сказати, що сучасні ОС керовані перериваннями (interrupt-driven), бо, якщо ОС не зайнята виконанням якої-небудь задачі, вона очікує на переривання, яке й за лучає її до роботи.
Для реалізації привілейованого режиму процесора в одному з його регістрів передбачено спеціальний біт (біт режиму), котрий показує, у якому режимі перебуває процесор. У разі програмного або апаратного переривання процесор автоматично перемикається у привілейований режим, і саме тому ядро ОС (яке складається з оброблювачів переривань) завжди отримує керування в цьому режимі. За будь-якої спроби безпосередньо виконати привілейовану інструкцію в режимі користувача відбувається апаратне переривання.
Засоби перемикання задач дають змогу зберігати вміст регістрів процесора (контекст задачі) у разі припинення задачі та відновлювати дані перед її подальшим виконанням.
Механізм трансляції адрес забезпечує перетворення адрес пам’яті, з якими працює програма, в адреси фізичної пам’яті комп’ютера. Апаратне забезпечення генерує фізичну адресу, використовуючи спеціальні таблиці трансляції.
Захист пам’яті забезпечує перевірку прав доступу до пам’яті під час кожної спроби його отримати. Засоби захисту пам’яті інтегровані з механізмами трансляції адрес: у таблицях трансляції утримується інформація про права, необхідні для їхнього використання, і про ліміт (розміри ділянки пам’яті, до якої можна отримати доступ з їхньою допомогою). Неможливо одержати доступ до пам’яті поверх ліміту або за відсутності прав на використання таблиці трансляції.
Системний таймер є апаратним пристроєм, який генерує переривання таймера через певні проміжки часу. Такі переривання обробляє ОС, інформацію від таймера найчастіше використовують для визначення часу перемикання задач.
Захист пристроїв введення-виведення ґрунтується на тому, що всі інструкції введення-виведення визначені як привілейовані. Прикладні програми здійснюють введення-виведення не прямо, а за посередництвом ОС.
Базова система введення-виведення (BIOS) — службовий програмний код, що зберігається в постійному запам’ятовувальному пристрої і призначений для ізоляції ОС від конкретного апаратного забезпечення. Зазначимо, що засоби BIOS не завжди дають змогу використати всі можливості архітектури: наприклад, процедури BIOS для архітектури ІА/32 не працюють у захищеному режимі. Тому сучасні ОС використовують їх тільки для початкового завантаження системи.