- •Системне програмне забезпечення Конспект лекцій з дисципліни „Системне програмне забезпечення”
- •2 Концептуальні основи ос.....................................................................................16
- •2.4 Концепція віртуалізації....................................................................................28
- •2.5 Концепція переривань.....................................................................................30
- •5 Операційна система unix....................................................................................57
- •1 Операційні системи та середовища
- •Основні означення та терміни
- •Сучасні системи програмування
- •Віртуальний адресний простір
- •Операційні системи для персональних комп’ютерів
- •1.5 Принципи побудови ос
- •1.5.1 Модульність
- •1.5.2 Функціональна вибірковість
- •1.5.3 Генерованость ос
- •1.5.4 Функціональна надлишковість
- •1.5.5 Незалежність програм від зовнішніх пристроїв
- •1.5.7 Відкритість та нарощуваність ос
- •1.5.9 Забезпечення безпеки обчислень
- •1.5.10 Принципи проектування ос
- •2 Концептуальні основи ос
- •2.1 Процеси
- •2.1.1 Означення процесу та граф його існування
- •2.1.2 Класифікування процесів
- •2.2 Ресурс
- •2.2.1 Означення ресурсу
- •2.2.2 Властивості та класифікування ресурсів
- •2.3 Система керування процесами
- •2.3.1 Дворівнева система керування процесами
- •2.3.2 Дисципліни розподілу процесів
- •2.4 Концепція віртуалізації
- •2.5 Концепція переривань
- •3 Захищений режим 32-розрядних процесорів
- •3.1 Основні поняття захищеного режиму
- •3.2 Сегментний механізм віртуалізації пам’яті
- •3.3 Сторінковий механізм віртуалізації пам’яті
- •4 Архітектура операційних системWindows
- •4.1 Архітектура ос Windows 98se
- •4.1.1 Драйвери пристроїв
- •4.1.2 Диспетчер віртуальних машин
- •4.1.3 Встановлювані файлові системи
- •4.1.4 Диспетчер конфігурування
- •4.1.5 Диспетчер драйверів wdm
- •4.1.6 Ядро Windows 98se
- •4.1.8 Оболонка ос
- •4.1.9 Стандартні програми Windows 98se та додатки
- •4.2 Мережна підтримка ос Windows 98se
- •4.2.1 Взаємодія відкритих систем
- •4.2.2 Мережна архітектура Windows 98se
- •4.3 Апаратна підтримка захисту ос
- •4.4 Особливості розподілу оперативної пам’яті в ос Windows nt
- •4.5 Архітектура Windows 2000
- •5 Операційна система unix
- •5.1 Загальна характеристика ос сімейства unix
- •5.2 Архітектура операційної системи unix
- •5.3 Функціонування ос unix
- •5.3.1 Ядро системи
- •5.3.2 Файлова підсистема
- •5.3.3 Підсистема керування процесами та пам’яттю
- •5.3.4 Підсистема введення/виведення
- •5.3.5 Користувачі ос unix
- •5.4 Поняття процесу в ос unix
- •5.4.1 Компоненти процесу
- •5.4.2 Ідентифікатор процесу
- •5.4.2.1 Ідентифікатор батьківського процесу
- •5.4.2.2 Ідентифікатор користувача та групи
- •5.4.3 Стани процесу в unix
- •5.4.4 Керування процесами
- •5.5 Права доступу ос unix
- •5.5.1 Поняття прав доступу користувача
- •5.5.2 Основні біти доступу
- •5.5.3 Додаткові біти доступу
- •5.5.4 Сполучення бітів доступу
- •5.6 Мережні можливості ос unix
- •Список рекомендованої літератури:
2.4 Концепція віртуалізації
Метою віртуалізації ресурсів в ОС є зменшення конфліктів при керуванні процесами й розподілі ресурсів та надання користувачеві ресурсів, які реально не існують, тобто віртуальних ресурсів, або реальних, але з погіршеними характеристиками. Віртуалізація ресурсів для паралельно виконуваних процесів створює ілюзію одночасного використання того, що у фоннеймановських процесорах одночасно існувати не може, і є основою багатозадачності. Користувачі дістануть ресурси, які значною мірою задовольняють їх за своїми характеристиками, знімається велика частка обмежень на кількість розподілюваних ресурсів. Це збільшує швидкість розвинення процесів та гнучкість їхнього керування у межах багатозадачності [2].
На прикладі інтервального таймера можна подати віртуалізацію фізичного пристрою, коли він “розмножується” й на його підставі будується потрібна кількість віртуальних таймерів, але жоден з користувачів-процесів не відчуває нестачі цього ресурсу.
Принцип віртуалізації у даному разі є такий: таймер – це пристрій, який може оцінювати інтервал часу, після завершення якого він подає сигнал на переривання обслуговування процесу. До диспетчера інтервального таймера формується черга запитів від окремих процесів. Процеси у черзі розташовано за зростанням часових інтервалів, і це трактується як пріоритет процесів на використання ресурсу інтервального таймера. Після чергового переривання на інтервальний таймер встановлюється інтервал, що він дорівнює різниці поміж моментом часу, коли має виникнути наступне поточне переривання, та моментом поточного переривання, тощо.
Віртуалізація каналів (шин), до яких в обчислювальній системі підмикаються різні периферійні пристрої, зреалізовується засобами мультиплексування, і для кожного пристрою складається ілюзія використання власного каналу. Під час роботи вони працюють з номінальними для них швидкостями.
Віртуалізація периферійних пристроїв, які за своїм типом є послідовно використовуваними ресурсами, називається спулінгом. Найбільш типовим з таких пристроїв є принтер, який у системі, зокрема в локальній мережі, надто активно використовується, причому процесами, які розвиваються паралельно.
Спулінг зреалізовується за таким алгоритмом: кожний периферійний пристрій як віртуальний моделюється областю зовнішньої пам’яті, як правило, на твердому диску. Така пам’ять може тлумачитися як буфер поміж реальним пристроєм та відповідним процесом, який потребує цього пристрою. Буфер накопичує дані в міру виконання процесом команд виведення, але ці команди надсилають дані насправді не на принтер, а до буфера на диску. У кожного з процесів виникає ілюзія, що він надіслав дані на реальний пристрій. Фактичне ж передавання інформації на принтер відбудеться за чергою після того, як процес завершиться. Це зберігає цілісність даних. Так само може бути віртуалізовано пристрій введення. Одночасно багатозадачна операційна система підтримує безліч вхідних та вихідних буферів; їхне заповнення, моменти готовності використання процесами вхідних буферів та моменти завершення процесами заповнювання вихідних буферів нескінченно змінюються, тому вхідні та вихідні буфери сполучаються у черги, які обслуговуються за певними дисциплінами.
Віртуалізація пам’яті здійснюється на підставі твердого диска та апаратної підтримки на рівні архітектури сучасних 32-розрядних процесорів сегментного, сторінкового або сегментно-сторінкового обміну (свопингу) поміж ПЗП та твердим диском під керуванням ОС.
Узагальненням поняття віртуалізації є віртуальна машина. Надана користувачеві віртуальна машина відтворює архітектуру реальної машини, але з новими, зоптимізованими характеристиками:
необмежена за обсягом пам’ять з довільним, зручним для користувача доступом;
один чи більше процесорів, здатних виконувати програми, написані кількома мовами програмування;
необхідна кількість зовнішніх пристроїв зі зручним способом доступу та подання інформації без обмеження щодо її обсягу.
Чим більше наближується віртуальна машина до ідеальної, тим більше її характеристики відрізняються від тих, які має апаратна платформа, на базі якої засобами конкретної ОС вона зреалізовується, й тим вище ступінь її віртуальності.
Примірні характеристики віртуальної машини можуть бути такі:
1 Єдина за логікою роботи віртуальна пам’ять, практично необмежена за обсягом пам’ять із середнім терміном доступу, близьким до значення цього параметра для ПЗП. Робота з інформацією, розміщеною в такій пам’яті, провадиться в термінах опрацьовування даних на рівні обраної мови програмування.
2 Необхідна кількість віртуальних процесорів, які можуть працювати паралельно та взаємодіяти під час роботи, способи керування процесорами – синхронізація, інформаційна взаємодія – доступні користувачам з рівня використовуваної мови програмування в термінах керування процесами.
3 Необхідна кількість віртуальних зовнішніх пристроїв, здатних працювати з пам’яттю віртуальної машини паралельно чи послідовно, асинхронно чи синхронно стосовно роботи того чи іншого віртуального процесора, які ініціюють роботу цих пристроїв. Дані, що передаються або зберігаються на віртуальних пристроях, є не обмежені за обсягом, доступ до них здійснюється на підставі послідовного чи прямого доступу до пам’яті.
Концепція віртуалізації широко використовується у проектуванні та зреалізовуванні операційних систем, структуру яких можна подати у вигляді набору планувачів процесів та розподілювачів ресурсів, моніторів, які й забезпечують їхню віртуалізацію [2].