У нас: 141825 рефератів
Щойно додані Реферати Тор 100
Скористайтеся пошуком, наприклад Реферат        Грубий пошук Точний пошук
Вхід в абонемент


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

Рис. 43. Тришарова схема обчислювальної системи

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

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

Рис. 44. Концепція багатошарової взаємодії

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

Ядро може складатися з наступних шарів.

Засобу апаратної підтримки ОС. Дотепер про ОС говорилося як про комплекс програм, але, узагалі говорячи, частина функцій ОС може виконуватися й апаратними засобами. Тому іноді можна зустріти визначення ОС як сукупності програмних і апаратних засобів, що і відбито на мал. 45. До ОС відносять, природно, не всі апаратні пристрої комп'ютера, а тільки засоби апаратної підтримки ОС, тобто ті, котрі прямо беруть участь в організації обчислювальних процесів: засоби підтримки привілейованого режиму, систему переривань, засоби переключення контекстів процесів, засоби захисту областей пам'яті і т.п.

Машинно-залежні компоненти ОС. Цей шар утворюють програмні модулі, у яких відбивається специфіка апаратної платформи комп'ютера. В ідеалі цей шар цілком екранує вищележачі шари ядра від особливостей апаратури. Це дозволяє розробляти вищележачі шари на основі машинно-незалежних модулів, що існують у єдиному екземплярі для всіх типів апаратних платформ, підтримуваних даною ОС. Прикладом шару, що екранує, може служити шар HAL ОС Windows NT.

Базові механізми ядра. Цей шар виконує найбільш примітивні операції ядра, такі як програмне переключення контекстів процесів, диспетчеризацію переривань, переміщення сторінок з пам'яті на диск і назад і т.п. Модулі даного шару не приймають рішень про розподіл ресурсів — вони тільки відпрацьовують прийняті «нагорі» рішення, що і дає привід називати їх виконавчими механізмами для модулів верхніх шарів. Наприклад, рішення про те, що в даний момент потрібно перервати виконання поточного процесу А и почати виконання процесу В, приймається менеджером процесів на вищележачому шарі, а шару базових механізмів передається тільки директива про те, що потрібно виконати переключення з контексту поточного процесу на контекст процесу В.

Менеджери ресурсів. Цей шар складається з могутніх функціональних модулів, що реалізують стратегічні задачі по керуванню основними ресурсами обчислювальної системи. Звичайно на даному шарі працюють менеджери (названі також диспетчерами) процесів, в/в, ФС й ОП. Розбивка на менеджери може бути і трохи іншим, наприклад менеджер ФС іноді поєднують з менеджером в/в, а функції керування доступом користувачів до системи в цілому і її окремих об'єктах доручають окремому менеджеру безпеки. Кожний з менеджерів веде облік вільних і використовуваних ресурсів визначеного типу і планує їхній розподіл відповідно до запитів додатків. Наприклад, менеджер ВП керує переміщенням сторінок з ОП на диск і назад. Менеджер повинний відслідковувати інтенсивність звертань до сторінок, час перебування їх у пам'яті, стани процесів, що використовують дані, і багато інших параметрів, на підставі яких він час від часу приймає рішення про те, які сторінки необхідно вивантажити і які — завантажити. Для виконання прийнятих рішень менеджер звертається до нижчележачого шару базових механізмів із запитами про завантаження (вивантаження) конкретних сторінок. Усередині шару менеджерів існують тісні взаємні зв'язки, що відбивають той факт, що для виконання процесу потрібний доступ одночасно до декількох ресурсів — процесору, області пам'яті, можливо, до визначеного файлу чи пристрою в/в. Наприклад, при створенні процесу менеджер процесів звертається до менеджера пам'яті, що повинний виділити процесу визначену область пам'яті для його кодів і даних.

Інтерфейс системних викликів. Цей шар є самим верхнім шаром ядра і взаємодіє безпосередньо з додатками і системними утилітами, утворити прикладний програмний інтерфейс ОС. Функції API, що обслуговують системні виклики, надають доступ до ресурсів системи в зручній і компактній формі, без указівки деталей їхнього фізичного розташування. Наприклад, в ОС UNIX за допомогою системного виклику fd = open("/doc/a.txt", 0_RDONLY) додаток відкриває файл a.txt, що зберігається в каталозі /doc, а за допомогою системного виклику read(fd, buffer, count) читає з цього файлу в область свого адресного простору, що має ім'я buffer, деяку кількість байт. Для здійснення


Сторінки: 1 2 3 4 5 6 7 8