
- •Конспект лекцій по дисципліні
- •Ос загального призначення
- •Мікроядерна архітектура
- •Переваги мікроядерної архітектури
- •Блокування пам'яті.
- •Перевірка й установка.
- •Семафори.
- •Поштові скриньки.
- •Програмні переривання
- •Системні виклики
- •Типи адрес
- •Алгоритми розподілу пам'яті
- •Забезпечення зручного логічного інтерфейсу між пристроями й іншою частиною системи
- •Підтримка широкого спектра драйверів і простота включення нового драйвера в систему
- •Динамічне завантаження й вивантаження драйверів
Системні виклики
Системний виклик дозволяє додатку звернутися до ОС із проханням виконати ту або іншу дію, оформлена як процедура (або набір процедур) кодового сегмента ОС.
Для прикладного програміста ОС виглядає як якась бібліотека, що реалізує корисні функції, що полегшують керування прикладним завданням або виконання дій, заборонених у користувальницькому режимі, наприклад обмін даними із пристроєм вводу-виводу.
Реалізація системних викликів повинна задовольняти наступним вимогам:
забезпечувати перемикання в привілейований режим;
мати високу швидкість виклику процедур ОС;
забезпечувати однакове звертання до системних викликів для всіх апаратних платформ, на яких працюють ОС;
допускати легке розширення набору системних викликів;
забезпечувати контроль із боку ОС за коректним використанням системних викликів
У більшості ОС системних викликів обслуговуються за централізованою схемою, заснованої на існуванні диспетчера системних викликів.
При будь-якому системному виклику додаток виконує програмне переривання з певним й єдиним номером вектора.
Перед виконанням програмного переривання додаток передає ОС номер системного виклику. Спосіб передачі залежить від реалізації. Наприклад, номер можна помістити в певний регістр процесора або передати через стек. Також деяким способом передаються аргументи системного виклику, вони можуть міститися як, у регістри загального призначення, так і передаватися через стек або масив, оперативної пам'яті.
… |
Адреса процедури 21h |
Адреса процедури 22h |
Адреса процедури 23h |
… |

|
Адреса диспетчера системних викликів |
|
|
Диспетчер системних викликів |
|
Процедура обробки Системного виклику 21h |
|
Процедура обробки Системного виклику 22h |
|
Процедура обробки Системного виклику 23h |
|
Після завершення роботи системного виклику керування повертається диспетчерові, при цьому він одержує також код завершення цього виклику. Диспетчер відновлює регістри процесора, поміщає в певний регістр код повернення й виконує інструкцію повернення з переривання, що відновлює непривілейований режим роботи процесора.
Описаний табличний спосіб організації системних викликів прийнятий практично у всіх операційних системах. Він дозволяє легко модифікувати состав системних викликів, просто додавши в таблицю нову адресу й розширивши діапазон припустимих номерів викликів.
ОС може виконувати системні виклики в синхронному або асинхронному режимах.
Синхронний системний виклик означає, що процес, що зробив такий виклик, припиняється доти, поки системний виклик не виконає всю необхідну роботу. Після цього планувальник переводить процес у стан готовності.
Асинхронний системний виклик не приводить до переводу процесу в режим очікування після виконання деяких початкових системних дій, наприклад запуску операції виводу-виводу, керування повертається прикладному процесу.
Більшість системних викликів в ОС є синхронними.
Керування пам'яттю. Функції ОС по керуванню пам'яттю.
Під пам'яттю розуміється оперативна пам'ять комп'ютера. На відміну від пам'яті жорсткого диска, що називають зовнішньою пам'яттю, оперативна пам'ять для збереження інформації вимагає постійне електроживлення.
Особлива роль пам'яті в тім, що процесор може виконувати інструкції програми тільки в тому випадку, якщо вони перебувають у пам'яті.
Пам'ять розподіляється як між модулями прикладних програм, так і між модулями самої операційної системи.
Функціями ОС по керуванню пам'яттю в мультипрограмній системі є:
відстеження вільної й зайнятої пам'яті;
виділення пам'яті процесам і звільнення пам'яті по завершенні процесів;
витиснення кодів і даних процесів з оперативної пам'яті на диск, коли розміри основної пам'яті не достатні для розміщення в ній всіх процесів, і повернення їх в оперативну пам'ять, коли в ній звільняється місце;
настроювання адрес програми на конкретну область фізичної пам'яті.
Під час роботи ОС доводиться створювати нові службові інформаційні структури, такі як описувачі процесів і потоків, різні таблиці розподілу ресурсів, буфери для обміну даними й т.п. Всі ці системні об'єкти вимагають пам'яті.
У деяких ОС під час установки резервується деякий фіксований обсяг пам'яті для системних потреб. В інших же ОС використовується більш гнучкий підхід, при якому пам'ять для системних цілей виділяється динамічно.
Захист пам'яті — ще одне важливе завдання ОС. Вона полягає в тому, щоб не дозволити виконуваному процесу записувати або читати дані з пам'яті, призначеної іншому процесу.