Головна

Багатошарова структура ОС

  1. I-d діаграма вологого повітря, її структура. Характерні випадки зміни стану повітря і їх зображення на I-d діаграмі.
  2. I. Конституційний лад РФ: поняття, структура і базові характеристики.
  3. I.1. Структура грошової системи
  4. II. Структура державного устрою РФ.
  5. II. Структура конституційного статусу особистості.
  6. III. структура свідомості
  7. IV. Громадянське суспільство: поняття, структура, основні конституційні початку.

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

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

 
 


 22 1 - Програми, системні обробні

програми, бібліотеки.

2 - Ядро ОС.

3 - Апаратура.

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

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

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

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

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

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

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

До шару k + 2

 k + 1 k k k + 1 k k

F1 (F1, F2, ...) F2 (F1, F2, ...)

...

                       
 
 
   
           
 
 


Шар k + 1.

               
       
 


 k k-1 k-1 k k-1 k-1

F1 (F1, F2, ...) F2 (F1, F2, ...) ...міжшаровими

інтерфейс.

                   
 
 
     
         


Шар k.

 
 


...

k-1 k-1

 F1 () f2 ()

 
 


До шару k-1

Мал. 7. Концепція багатошарового взаємодії.

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

- Інтерфейс системних викликів. Цей шар є самим верхнім шаром ядра і взаємодіє безпосередньо з додатками і системними утилітами, утворюючи прикладний програмний інтерфейс ОС. Функції API, які обслуговують системні виклики, надають доступ до ресурсів системи в зручній і комфортній формі, без вказівки деталей їх фізичного розташування. Для здійснення таких комплексних дій системні виклики зазвичай звертаються за допомогою до функцій шару менеджерів ресурсів, причому для виконання одного системного виклику може знадобитися кілька таких звернень.


1 Апаратура.

2 - Засоби апаратної підтримки ОС.

 
 


3 - Машинно-залежні модулі.


 4 - Базові механізми ядра. 4 - Базові механізми ядра.

5 5 - Менеджери ресурсів.

6 - Інтерфейс системних викликів.

Мал. 8. Багатошарова структура ядра ОС.

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

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

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

Вибір кількості шарів ядра є відповідальним і складним справою: збільшення числа шарів веде до деякого уповільнення роботи ядра за рахунок додаткових накладних витрат на міжшарове взаємодія, а зменшення числа шарів погіршує розширюваність і логічність системи. Зазвичай ОС, що пройшли довгий шлях еволюційного розвитку, наприклад багато версій UNIX, мають невпорядковане ядро ??з невеликим числом чітко виділених шарів, а у порівняно "молодих" ОС, таких як Windows NT, ядро ??розділене на більше число шарів і їх взаємодія формалізовано в набагато більшій ступеня.



Ядро в привілейованому режимі | Типові засоби апаратної підтримки ОС

Ядро і допоміжні модулі ОС | Машинно-залежний комплекс ОС | переносимість ОС | Двійкова сумісність і сумісність вихідних текстів | трансляція бібліотек | Способи реалізації прикладних програмних середовищ | Висновки до розділу |

© um.co.ua - учбові матеріали та реферати