Підсистеми ядра ОС


Інтерфейс ядра операційної системи.

Функції ядра операційної системи можуть бути виконані внаслідок виконання в прикладних програмах спеціальних функцій — системних викликів. Призначення системного виклику полягає в тому, що прикладні програми не в змозі самотужки визначити, за якими адресами знаходяться функції ядра.

Системний виклик в один з машинно-залежних способів реалізує механізм отримання адрес функцій ядра та передачу в ці функції необхідних параметрів системного виклику, а також отримання результату системного виклику. Найчастіше системні виклики забезпечуються через систему переривань, завдяки чому адреса функції ядра не тільки обраховується апаратно (в процесі обробки переривання), але й забезпечується захист інформаційних ресурсів ядра.

Системні виклики найчастіше мають синтаксис функції мови програмування, на якій написано ядро ОС.

Підсистема керування введенням-виведенням.

Підсистема керування введенням-виведенням реалізує базові механізми обміну даними між пристроями введення-виведення та оперативною пам'яттю обчислювальної машини та забезпечує організацію файлів в файлові системи.

Операція введення виконується як читання даних з зовнішнього пристрою в оперативну пам'ять, операція виведення — як запис даних з оперативної пам'яті на зовнішній пристрій.

При роботі з файлами система введення-виведення впроваджує спеціальну абстракцію — потік вводу-виводу, що дозволяє програмам, які звертаються за сервісами введення-виведення, використовувати одноманітний перелік функцій роботи з файлами незалежно від типу пристрою, на якому знаходиться файл, та типу файлової системи, яка містить цей файл. Відмінності доступу до різних пристроїв та файлових систем забезпечуються додатковими програмними модулями — драйверами пристроїв та файлових систем.

В окремих операційних системах підсистема керування введенням-виведенням також може впроваджувати механізми, які призвані підвищити швидкість обміну даними між задачами та файлами. Найчастіше використовується механізм буферизації (кешування) даних, який полягає в тому, що при читанні даних з файлу підсистема намагається за одну операцію введення читати дані блоками зручного (звичайно досить великого) розміру, а не порціями, які запитує задача. Завдяки цьому за одну операцію введення в оперативну пам'ять потрапляють також додаткові дані, які зберігаються в кеші і в подальшому передаються в програму без додаткових звернень до пристрою. Подібним чином цей механізм працює і при виконанні операцій запису.

Підсистема керування оперативною пам'яттю.

Будь-яка програма може виконуватись лише тоді, коли вона завантажена в оперативну пам'ять, так само, будь-які дані з файлів можуть оброблятись лише тоді, коли вони завантажені в оперативну пам'ять. Завантаження програми та даних в оперативну пам'ять призводить до того, що в оперативній пам'яті одночасно знаходяться одразу кілька компонентів: ядро операційної системи, командний інтерпретатор, програма, що виконується, та дані, що обробляються. Крім того, програма в процесі свого виконання може звертатись до підсистеми керування оперативною пам'яттю з запитами на виділення додаткової — динамічної — оперативної пам'яті.

В багатозадачних операційних системах кількість компонентів, що одночасно можуть знаходитись в оперативній пам'яті зростає пропорційно кількості задач і може сягати сотень.

Підсистема керування оперативною пам'яттю забезпечує розподіл оперативної пам'яті між різними компонентами, а також розподіляє пам'ять під кеш системи введення-виведення.

В окремих багатозадачних операційних системах підсистема керування оперативною пам'яттю також забезпечує віртуалізацію оперативної пам'яті, завдяки чому кожна задача (процес) отримує власну віртуальну пам'ять, причому таким чином, що нестача реальної (фізичної) пам'яті покривається за рахунок перерозподілу даних між оперативною пам'яттю та зовнішнім накопичувачем і переміщення даних між фізичною оперативною пам'яттю і зовнішнім накопичувачем приховується від задач. Це переміщення називається пейджингом (англ. paging) або свопінгом (англ. swapping — обмін) — в залежності від термінології конкретної ОС.

Запровадження механізму віртуалізації оперативної пам'яті дозволяє отримати два корисних наслідки:

кожна задача фактично виконується у власному адресовому просторі, тобто таким чином, якби вона виконувалась в однозадачній операційній системі, завдяки чому значно зменшується вплив окремих задач однією на одну та на ядро системи, а завдяки цьому — і надійність системи;

кожна задача отримує стільки віртуальної оперативної пам'яті, скільки потрібно, а не стільки, скільки є наявної фізичної оперативної пам'яті.

Віртуалізація оперативної пам'яті вимагає апаратної підтримки і звичайно забезпечується через спеціальну таблицю сторінок пам'яті, що містить відповідності між віртуальними та фізичними адресами.

Підсистема керування задачами (процесами).

Докладніше: Процес (інформатика)

Докладніше: Планувальник операційної системи

Підсистема керування задачами (процесами) забезпечує створення задачі (процесу), завантаження програмного коду і його виконання та завершення задачі (процесу).

В багатозадачних системах підсистема керування задачами (процесами) також забезпечує механізми залежностей між задачами, в тому числі: синхронізацію задач та успадкування властивостей.

Засоби міжпроцесної взаємодії.

Докладніше: Взаємодія між процесами

Взаємодія процесів дозволяє процесам синхронізувати свою роботу, сумісно і узгоджено використовувати спільні ресурси та спільно виконувати обробку даних.

Взаємодія процесів забезпечується всіма підсистемами ядра ОС: підсистема керування введенням-виведенням забезпечує передачу даних між процесами; підсистема керування оперативною пам'яттю розподіляє під процеси спільну оперативну пам'ять, підсистема керування процесами забезпечує синхронізацію виконання процесів та впроваджує механізм обміну сигналів, за допомогою якого процеси повідомляються про виникнення в системі надзвичайних подій.


Комментариев нет:

Отправить комментарий

Складові ОС

До складу операційної системи входять: ядро операційної системи, що забезпечує розподіл та керування ресурсами обчислювальної системи; б...