Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
СПЗ_лекції.docx
Скачиваний:
148
Добавлен:
23.02.2016
Размер:
136.33 Кб
Скачать

5.Модульна структура операційної системи Linux.

Ядра більшості версій операційної системи UNIX є монолітними. Монолітне ядро – це ядро, яке віртуально включає в себе всі можливості операційної системи у вигляді одного великого блоку коду, який запускається як єдиний процес в єдиному адресному просторі. Всі функціональні компоненти такого ядра мають доступ до всіх його внутрішніх структур даних і до всіх програм. При внесенні змін в будь-яку частину типової монолітної операційної системи всі її модулі і підпрограми необхідно повторно компонувати і перевстановлювати, а перед тим як зміни ввійдуть в силу, систему потрібно буде перезавантажити. В результаті всі модифікації, такі, як добавлення драйвера нового пристрою або нових функцій файлової системи, ускладнюються. Особливо гостро ця проблема стоїть в системі Linux, глобальну розробку якої виконують об’єднані на добровільних засадах групи незалежних програмістів.

Динамічне зв’язування полегшує налагодження системи і економить пам’ять, яку займає ядро. В системі Linux програма користувача або сам користувач може завантажувати або вивантажувати модулі за допомогою команд insmod i rmmod. Саме ядро керує роботою окремих функцій і по мірі необхідності завантажує потрібні модулі або вивантажує ті, потреби в яких вже немає. Крім того, стекова організація дозволяє задавати залежності модулів, що дає дві основних переваги:

  1. Код, що є загальним для набору однотипних модулів (наприклад, драйвери подібних пристроїв), можна розмістити в один модуль, що дозволяє скоротити кількість повторень.

  2. Ядро може перевірити наявність в пам’яті потрібних модулів, утримуючись від вивантаження модуля, який потрібен для роботи інших, залежних від нього, і завантажуючи разом з новим потрібним модулем всі необхідні додаткові модулі.

6.Традиційне планування unix.

Системи SVR3 i 4.3BSD UNIX в першу чергу призначені для роботи в інтерактивному середовищі з розділенням часу. Алгоритми планування розроблено так, щоб забезпечити прийнятний час відгуку для інтерактивних користувачів, в той же час гарантуючи відсутність «голодання» низькопріоритетних завдань. [Хоча описуваний алгоритм і був замінений в більш сучасних версіях UNIX, його вивчення як представника практично використовуваних алгоритмів з розділенням часу має підставу.] Схема планування SVR4 відповідає вимогам реального часу.

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

де - міра використання процесора процесом j на протязі інтервалу і;

- пріоритет процесу j на початку інтервалу і (менше значення відповідає більшому пріоритету);

- базовий пріоритет процесу j;

- вказуваний користувачем коефіцієнт.

Пріоритет кожного процесу перераховується один раз в секунду, в момент прийняття рішення про те, який процес буде виконуватись наступним. Призначення базового пріоритету полягає в розділенні процесів на фіксовані групи рівнів пріоритетів. Значення компонентів CPU i nice обмежені вимогами того, щоб процес не міг вийти з призначеної йому на основі базового пріоритету групи. Ці групи використовуються для оптимізації доступу до блочних пристроїв (наприклад, до диску) і забезпечення швидкого відгуку операційної системи на системні виклики. Є такі групи пріоритетів (наведено в порядку зниження):

  • програма свопінгу;

  • керування блочними пристроями введення-виведення;

  • керування файлами;

  • керування символьними пристроями введення-виведення;

  • користувацькі процеси.

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