Особливості архітектури: UNIX і Linux 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Особливості архітектури: UNIX і Linux



Базова архітектура UNIX

UNIX є прикладом досить простої архітектури ОС. Більша частина функціональ ності цієї системи міститься в ядрі, ядро спілкується із прикладними програмами за допомогою системних викликів. Базова структура класичного ядра UNIX зобра жена на рис. 2.3 (див., наприклад, [33, 59]). 2.4. Особливості архітектури: UNIX і Linux 35 Система складається із трьох основних компонентів: підсистеми керування процесами, файлової підсистеми та підсистеми введення-виведення. Підсистема керування процесами контролює створення та вилучення проце сів, розподілення системних ресурсів між ними, міжпроцесову взаємодію, керу вання пам'яттю. Файлова підсистема забезпечує єдиний інтерфейс доступу до даних, розташо ваних на дискових накопичувачах, і до периферійних пристроїв. Такий інтерфейс є однією з найважливіших особливостей UNIX. Одні й ті самі системні виклики використовують як для обміну даними із диском, так і для виведення на термінал або принтер (програма працює із принтером так само, як із файлом). При цьому файлова система переадресовує запити відповідним модулям підсистеми введен ня-виведення, а ті - безпосередньо периферійним пристроям. Крім того, файлова підсистема контролює права доступу до файлів, які значною мірою визначають привілеї користувача в системі. Підсистема введення-виведення виконує запити файлової підсистеми, взаємо діючи з драйверами пристроїв. В UNIX розрізняють два типи пристроїв: сим вольні (наприклад, принтер) і блокові (наприклад, жорсткий диск). Основна відмінність між ними полягає в тому, що блоковий пристрій допускає прямий 36 Розділ 2. Архітектура операційних систем доступ. Для підвищення продуктивності роботи із блоковими пристроями вико ристовують буферний кеш — ділянку пам'яті, у якій зберігаються дані, зчитані з диска останніми. Під час наступних звертань до цих даних вони можуть бути от римані з кеша. Сучасні UNIX-системи дещо відрізняються за своєю архітектурою. • У них виділено окремий менеджер пам'яті, відповідальний за підтримку вір туальної пам'яті. • Стандартом для реалізації інтерфейсу файлової системи є віртуальна файло ва система, що абстрагує цей інтерфейс і дає змогу організувати підтримку різних типів файлових систем. • У цих системах підтримується багатопроцесорна обробка, а також багатопото ковість. Базові архітектурні рішення, такі як доступ до всіх пристроїв введення-виве дення через інтерфейс файлової системи або організація системних викликів, за лишаються незмінними в усіх реалізаціях UNIX.

Архітектура Linux

В ОС Linux можна виділити три основні частини: • ядро, яке реалізує основні функції ОС (керування процесами, пам'яттю, вве денням-виведенням тощо); • системні бібліотеки, що визначають стандартний набір функцій для вико ристання у застосуваннях (виконання таких функцій не потребує переходу в привілейований режим); • системні утиліти (прикладні програми, які виконують спеціалізовані задачі). Призначення ядра Linux і його особливості Linux реалізує технологію монолітного ядра. Весь код і структури даних ядра пе ребувають в одному адресному просторі. У ядрі можна виділити кілька функціо нальних компонентів [63]. • Планувальник процесів — відповідає за реалізацію багатозадачності в системі (обробка переривань, робота з таймером, створення і завершення процесів, пе ремикання контексту). • Менеджер пам'яті - виділяє окремий адресний простір для кожного процесу і реалізує підтримку віртуальної пам'яті. • Віртуальна файлова система — надає універсальний інтерфейс взаємодії з різ ними файловими системами та пристроями введення-виведення. • Драйвери пристроїв - забезпечують безпосередню роботу з периферійними пристроями. Доступ до них здійснюється через інтерфейс віртуальної фай лової системи. • Мережний інтерфейс — забезпечує доступ до реалізації мережних протоколів і драйверів мережних пристроїв. • Підсистема міжпроцесової взаємодії — пропонує механізми, які дають змогу різним процесам у системі обмінюватися даними між собою. Деякі із цих підсистем є логічними компонентами системи, вони завантажу ються у пам'ять разом із ядром і залишаються там постійно. Компоненти інших 2.4. Особливості архітектури: UNIX і Linux 37 підсистем (наприклад, драйвери пристроїв) вигідно реалізовувати так, щоб їхній код міг завантажуватися у пам'ять на вимогу. Для розв'язання цього завдання Linux підтримує концепцію модулів ядра. Модулі ядра Ядро Linux дає можливість на вимогу завантажувати у пам'ять і вивантажувати з неї окремі секції коду. Такі секції називають модулями ядра (kernel modules) [ЗО] і виконують у привілейованому режимі. Модулі ядра надають низку переваг. • Код модулів може завантажуватися в пам'ять у процесі роботи системи, що спрощує налагодження компонентів ядра, насамперед драйверів. • З'являється можливість змінювати набір компонентів ядра під час виконання: ті з них, які в цей момент не використовуються, можна не завантажувати у пам'ять. • Модулі є винятком із правила, за яким код, що розширює функції ядра, відпо відно до ліцензії Linux має бути відкритим. Це дає змогу виробникам апарат ного забезпечення розробляти драйвери під Linux, навіть якщо не запланова но надавати доступ до їхнього вихідного коду. Підтримка модулів у Linux складається із трьох компонентів. • Засоби керування модулями дають можливість завантажувати модулі у па м'ять і здійснювати обмін даними між модулями та іншою частиною ядра. • Засоби реєстрації драйверів дозволяють модулям повідомляти іншу частину ядра про те, що новий драйвер став доступним. • Засоби розв'язання конфліктів дають змогу драйверам пристроїв резервува ти апаратні ресурси і захищати їх від випадкового використання іншими драйверами. Один модуль може зареєструвати кілька драйверів, якщо це потрібно (на приклад, для двох різних механізмів доступу до пристрою). Модулі можуть бути завантажені заздалегідь — під час старту системи (заван тажувальні модулі) або у процесі виконання програми, яка викликає їхні функції. Після завантаження код модуля перебуває в тому ж самому адресному просторі, що й інший код ядра. Помилка в модулі є критичною для системи. Особливості системних бібліотек Системні бібліотеки Linux є динамічними бібліотеками, котрі завантажуються у пам'ять тільки тоді, коли у них виникає потреба. Вони виконують ряд функцій: • реалізацію пакувальників системних викликів; • розширення функціональності системних викликів (до таких бібліотек нале жить бібліотека введення-виведення мови С, яка реалізує на основі системних викликів такі функції, як printfO); • реалізацію службових функцій режиму користувача (сортування, функції об робки рядків тощо). Застосування користувача Застосування користувача в Linux використовують функції із системних бібліотек

і через них взаємодіють із ядром за допомогою системних викликів. 38 Розділ 2. Архітектура операційних систем



Поделиться:


Последнее изменение этой страницы: 2017-02-17; просмотров: 236; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.224.37.68 (0.005 с.)