
- •Системне програмне забезпечення Конспект лекцій з дисципліни „Системне програмне забезпечення”
- •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
- •Список рекомендованої літератури:
Віртуальний адресний простір
При написанні програми мовою високого рівня вона не вміщує посилання на реальні адреси, а звертається до пам’яті за допомогою імен: змінних, вхідних точок програмних модулів, міток. Ці імена, окрім масивів, не є впорядкованими. Імена змінних та точок входу програмних модулів становлять простір імен. Фізична ж пам’ять є впорядкованою множиною комірок, кількість яких обмежена та фіксована. Зв’язування кожного імені з фізичною адресою комірки пам’яті (відбиття) здійснюється у два етапи. Спочатку система програмування перетворює логічне (символьне) ім’я на віртуальну (надавану) адресу. Множина усіх можливих віртуальних адрес для програми називається віртуальним адресним простором. Вона залежить від архітектури процесора та системи програмування й не залежить від обсягу реальної пам’яті, встановленої у ПК. Адреси команд та змінних у готовій машинній програмі, підготовленій до виконання системою програмування, і є віртуальними (відносними) адресами. Окремим випадком відбиття простору імен на фізичну пам‘ять є ідентичність віртуальної адреси та фізичної. Це стосується частини керувальних програмних модулів будь-якої ОС, за допомогою яких потім відбуватиметься відбиття для решти програм. Для інтерпретаторів є справедливим тотожність віртуального адресного простору до вхідного. Другий етап відбиття віртуальних адрес на фізичні відбувається лише під керуванням ОС.
На рис. 1.2 подано пам’ять та її відбиття.
Внаслідок наявності зовнішньої пам’яті Vp віртуальна пам’ять Vv є набагато більша, а ніж реальна фізична. У сучасних комп’ютерах Vv може досягати 64 Тбайт для кожного з 80 процесів, які виконує „одночасно” багатозадачна ОС за середнього навантаження. Звичайно, це можливе лише за послідовного завантаження до віртуальної пам’яті окремих модулів різних програм та подальшого їхнього перевантаження до оперативної пам’яті. Віртуальний адресний простір у межах сегмента кодів, даних та бібліотек є неперервним, а фізична пам’ять може мати фрагментарний характер.
Рисунок 1.2 – Пам’ять та її відбиття
Операційні системи для персональних комп’ютерів
на 32-розрядних процесорах
Мікропроцесори, розпочинаючи з І80386, стали повністю 32-розрядними і можуть адресувати 4 Гбайти пам’яті. Завдяки програмній сумісності програмне забезпечення для 16-розрядних процесорів працює на 32-розрядних. Широке розповсюдження мають ОС Windows фірми Microsoft: Windows 98SE, Windows NT 4.0, Windows 2000, ОС UNIX тощо. Такі ОС можуть максимально використовувати усі можливості, що їх надають 32-розрядні мікропроцесори.
Багатозадачною (Multitasking) вважається ОС, яка може виконувати кілька програм „одночасно”. Насправді кожного конкретного моменту фоннейманівський МП зайнятий виконанням інструкцій лише однієї програми, інші пребувають у стані очикування. У середовищі багатозадачної ОС стан активності захищених одна від одної програм періодично змінюється, а у користувача складається ілюзія того, що вони виконуються в одночас.
Багатозадачність підвищує завантаження мікропроцесора та продуктивність праці користувача. Працюючи у багатозадачному середовищі, можна підготовлювати текстовий документ та обмінюватися файлами з іншим комп’ютером. У перебігу підготовки текстового документа можна скопіювати групу файлів. У багатозадачній ОС можливе виконання одних завдань без завершення й на фоні інших.
Кооперативна багатозадачність полягає в тому, що проблема розподілу процесорного часу розв’язується повністю виконуваними програмами. Активна програма сама вирішує, коли їй віддати ресурс, у тому числі процесорний час, іншій програмі.
За відсутності чітких критеріїв передавання ресурсів конкуруючій програмі реальної багатозадачності немає, а є лише розподіл процесорного часу за пріоритетами та перемикання завдань.
Витісняюча багатозадачність передбачає, що розподіл процесорного часу – виключне право ОС. Кожній програмі виокремлюється обмежений інтервал процесорного часу. За таким принципом побудовано сучасні ОС, але для 16-розрядних додатків, які підтримує, наприклад, MS DOS, витіснення є неможливим, і вони перебувають нібито у привілейованих умовах: кожному з додатків здається, що він володіє усіма ресурсами комп’ютера, а решта додатків Windows перебувають у менш вигідному становищі.
Багатопоточність ОС полягає в тому, що ОС здатна зорганізувати виконання програм, утворених кількома паралельними потоками (Threads), що конкурують поміж собою за процесорний час. Багатопоточна ОС забезпечує не лише одночасне виконання кількох програм, але й кількох фрагментів однієї чи сукупності програм, але лише 32-розрядних. Наприклад, табличний процесор може перераховувати значення в одних комірках водночас з введенням даних до інших.
Слід відзначити, що усі ці ОС є однокористувацькими [1].