Наша совместная команда Banwar.org

Связаться с нами

  • (097) ?601-88-87
    (067) ?493-44-27
    (096) ?830-00-01

Статьи

Архітектура операційної системи UNIX

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

Як вже раніше було відмічено (див. [Christian 83], стр.239), в системі UNIX створюється ілюзія того, що файлова система має "місця" і що у процесів є "життя". Обидві сутності, файли і процеси, є центральними поняттями моделі операційної системи UNIX. На малюнку 2.1 представлена ​​блок-схема ядра системи, що відображає склад модулів, з яких складається ядро, і їх взаємозв'язку один з одним. Зокрема, на ній зліва зображена файлова підсистема, а праворуч підсистема управління процесами, дві головні компоненти ядра. Ця схема дає логічне уявлення про ядро, хоча в дійсності в структурі ядра є відхилення від моделі, оскільки окремі модулі відчувають внутрішній вплив з боку інших модулів.

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

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

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

У попередньому розділі був зроблений тільки поверхневий огляд особливостей операційного середовища UNIX
Малюнок 2.1.Блок-схема ядра операційної системи

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

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

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

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

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

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

Попередня глава

|| Зміст || Наступна глава

Спонсори:

Хостинг:



Новости

Banwar.org
Наша совместная команда Banwar.org. Сайт казино "Пари Матч" теперь доступен для всех желающих, жаждущих волнения и азартных приключений.