Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОС Unix.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
92.16 Кб
Скачать

2. Функціональні характеристики

До основних функцій ядра ОС UNIX прийнято відносити наступні: 

1) Ініціалізація системи - функція запуску й розкручування. Ядро системи забезпечує засіб розкручування (bootstrap), що забезпечує завантаження повного ядра в пам'ять комп'ютера і запускає ядро. 

2) Управління процесами і нитками - функція створення, завершення та відстеження існуючих процесів і ниток ("процесів", виконуваних на загальній віртуальній пам'яті). Оскільки ОС UNIX є мультипроцессной операційною системою, ядро ​​забезпечує поділ між запущеними процесами часу процесора (або процесорів у мультипроцесорних системах) і інших ресурсів комп'ютера для створення зовнішнього відчуття того, що процесиреально виконуються в паралель. 

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

4) Управління файлами - функція, що реалізує абстракцію файлової системи, - ієрархії каталогів і файлів. Файлові системи ОС UNIX підтримують кілька типів файлів. Деякі файли можуть містити дані у форматі ASCII, інші будуть відповідати зовнішнім пристроям. У файловій системі зберігаються об'єктні файли, виконувані файли і т.д. Файли звичайно зберігаються на пристроях зовнішньої пам'яті; доступ до них забезпечується засобами ядра. У світі UNIX існує кілька типів організації файлових систем. Сучасні варіанти ОС UNIX одночасно підтримують більшість типів файлових систем.

5) Комунікаційні засоби - функція, що забезпечує можливості обміну даними між процесами, що виконуються всередині одного комп'ютера (IPC - Inter-Process Communications), між процесами, що виконуються в різних вузлах локальної або глобальної мережі передачі даних, а також між процесами і драйверами зовнішніх пристроїв. 

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

3. Особливості архітектури ос unix

Архітектура ОС UNIX - багаторівнева (рис.1). На нижньому рівні, безпосередньо над устаткуванням, працює ядро ​​операційної системи. Функціїядра доступні через інтерфейс системних викликів, що утворюють другий рівень. На наступному рівні працюють командні інтерпретатори, команди й утиліти системного адміністрування, комунікаційні драйвери та протоколи, - все те, що зазвичай відносять до системного програмного забезпечення. Нарешті, зовнішній рівень утворюють прикладні програми користувача, мережні та інші комунікаційні служби, СУБД і утиліти.

4. Способи управління процесами і ресурсами

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

Звернення до операційної системи виглядають так само, як звичайні виклики функцій в програмах на мові Сі, і бібліотеки встановлюють відповідність між цими викликами функцій і елементарними системними операціями. При цьому програми на асемблері можуть звертатися до операційної системи безпосередньо, без використання бібліотеки системних викликів. Програми часто звертаються до інших бібліотек, таким як бібліотека стандартних підпрограм введення-виведення, досягаючи тим самим більш повного використання системних послуг. Для цього під час компіляції бібліотеки зв'язуються з програмами і частково включаються в програму користувача. Сукупність звернень до операційної системи розділена на ті звернення, які взаємодіють з підсистемою управління файлами, і ті, які взаємодіють з підсистемою управління процесами. Файлова підсистема управляє файлами, розміщує запису файлів, управляє вільним простором, доступом до файлів і пошуком даних для користувачів.Процеси взаємодіють з підсистемою управління файлами, використовуючи при цьому сукупність спеціальних звернень до операційної системи, таких як open (для того, щоб відкрити файл на читання або запис), close, read, write, stat (запросити атрибути файлу), chown (змінити запис зінформацією про власника файлу) і chmod (змінити права доступу до файлу). 

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

Підсистема управління процесами відповідає за синхронізацію процесів, взаємодія процесів, розподіл пам'яті і планування виконання процесів. Підсистема управління файлами і підсистема управління процесами взаємодіють між собою, коли файл завантажується в пам'ять на виконання: підсистема управління процесами читає в пам'ять виконувані файли перед тим, як їх виконати.  Прикладами звернень до операційної системи, що використовуються при управлінні процесами, можуть служити fork (створення нового процесу), exec (накладення образу програми на виконуваний процес), exit (завершення виконання процесу), wait (синхронізація продовження виконання основного процесу з моментом виходу з породженого процесу ), brk (управління розміром пам'яті, виділеної процесу) і signal (управління реакцією процесу на виникнення екстраординарних подій. 

Модуль розподілу пам'яті контролює виділення пам'яті процесам. Якщо в якийсь момент система відчуває нестачу у фізичній пам'яті для запуску всіх процесів, ядро ​​пересилає процеси між основною і зовнішньою пам'яттю з тим, щоб всі процеси мали можливість виконуватися. Існує два способи управління розподілом пам'яті: завантаження (підкачка) і заміщення сторінок. Програму підкачки іноді називають планувальником, тому що вона "планує" виділення пам'яті процесам і впливає на роботу планувальника центрального процесора. «Планувальник» планує черговість виконання процесів до тих пір, поки вони добровільно не звільнять центральний процесор, дочекавшись виділення будь-якого ресурсу, або поки ядро ​​системи не вивантажить їх після того, як їхній час виконання перевищить заздалегідь певний квант часу. Планувальник вибирає на виконання готовий до запуску процес з найвищим пріоритетом; виконання попереднього процесу (призупиненого) буде продовжено тоді, коли його пріоритет буде найвищим серед пріоритетів всіх готових до запуску процесів. Існує кілька форм взаємодії процесів між собою, від асинхронного обміну сигналами про події до синхронного обміну повідомленнями.  Нарешті, апаратний контроль відповідає за обробку переривань і за зв'язок з машиною. Такі пристрої, як диски та термінали, можуть переривати роботу центрального процесора під час виконання процесу. При цьому ядро ​​системи після обробки переривання може відновити виконання перерваного процесу. Переривання певної групи. обробляються не самими процесами, а спеціальними функціями ядра системи, перерахованими в контексті виконуваного процесу.