- •Системне програмне забезпечення Конспект лекцій з дисципліни „Системне програмне забезпечення”
- •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 Концептуальні основи ос
2.1 Процеси
2.1.1 Означення процесу та граф його існування
Процесом називається будь-яка діяльність, пов’язана з виконанням програми на процесорі. Процес також – це система дій, яка зреалізовує певну функцію в обчислювальній системі й є оформлена у такий спосіб, що керувальна програма обчислювальної системи може перерозподілювати ресурси цієї системи з метою забезпечення багатозадачності.
Програма під час її виконання може вимагати надання їй процесора, а може відмовитись від нього. Програмі можуть бути потрібні пам’ять, пристрої введення/виведення, системний таймер тощо. Діяльністю, тобто перебігом розвинення процесу, треба керувати. Керування процесами, як поодинці, так і усіма разом, а їх у багатозадачній операційній системі водночас може існувати до 80, здійснює лише операційна система [2].
При виконанні програми на центральному процесорі найчастіше розрізнюють такі характерні окремі стани процесів:
породження – підготовлюються умови для першого виконання на процесорі;
активний стан або стан “лічби” – програма виконується на процесорі;
очікування – програма не виконується на процесорі через зайнятість певного необхідного ресурсу;
готовність – програма не виконується, але для виконання їй надано всі необхідні на даний момент ресурси, окрім центрального процесора;
завершення – нормальне або аварійне завершення виконання програми, після якого процесор й інші ресурси їй не надаються.
Процес перебуває в кожнім з власних припустимих станів впродовж певного часу, після чого переходить до якогось іншого припустимого стану. Склад припустимих станів, а також припустимі переходи зі стану до стану зазвичай задають у формі графа існування процесу, приклад якого наведено на рис. 2.1.
З боку операційної системи процес – це об’єкт, стасовно якого треба забезпечити реалізацію кожного з припустимих станів, а також припустимі переходи зі стану у стан у відповідь на події, які можуть стати причиною таких переходів. Такі події можуть ініціюватись і самими процесами, які можуть вимагати процесорний час або інший ресурс, необхідний для виконання програми.
Рисунок 2.1 – Граф існування процесу
2.1.2 Класифікування процесів
Інтервал часу поміж породженням процесу та його завершенням називається інтервалом існування процесу.
У момент породження послідовність та тривалість перебування процесу в кожному зі своїх станів (траса процесу) є невизначеними, так само, як і тривалість інтервалу існування. Процеси реального часу потребують такого планування, щоби гарантувати завершення процесу до конкретного моменту. Інтерактивні процеси мають мати інтервал існування не більший, аніж припустима реакція обчислювальної системи на запитання користувача. Решта процесів називають пакетними.
У будь-якій ОС за вимоги існуючого процесу чи процесу, що існував, може бути породжено новий процес. Процес, який задає вимогу, називають породжуючим, а створений за вимогою – породженим. Породжений процес на інтервалі свого існування, своєю чергою, може видати вимогу на породження іншого процесу.
При керуванні процесами важливим є забезпечення відтворювання результатів процесу за його багаторазового повторювання, керування ситуацією при розвиненні процесу. ОС має порівнювати процеси за їхними динамічними якостями. Порівняння провадиться за поняттям “траса” – послідовність та тривалість перебування процесу у дозволених станах на інтервалі існування.
Два процеси, які мають однаковий кінцевий результат опрацювання однакових даних за одною або навіть за різними програмами на одному або на різних процесорах, називають еквівалентними. У загальному випадку траси еквівалентних процесів не збігаються.
Якщо в кожному з еквівалентних процесів опрацювання даних відбувається за однією програмою, але траси не збігаються, то такі процеси називають тотожними.
За збігання трас у тотожних процесів їх називають рівними.
Якщо інтервали двох процесів не перемежаються під час виконання, то такі процеси називають послідовними один відносно другого.
Якщо на розглядуваному інтервалі часу існують одночасно два процеси, то вони на цьому інтервалі є паралельними один відносно другого.
Якщо на інтервалі часу є хоча б одна точка, в якій існує один процес, але не існує другий, і хоча б одна точка, де обидва процеси існують одночасно, то такі два процеси називають комбінованими.
В ОС процеси розрізнюють за місцем їхнього розвинення, тобто за тим, на якому з процесорів, у широкому розумінні, виконується програма процесу. На центральному процесорі розвиваються процеси, які називаються програмними або внутрішніми. Процеси, розвинення яких відбувається під контролем або керуванням ОС на процесорах, які не є центральними, називаються зовнішніми. Це, наприклад, процеси введення/виведення, які розвиваються в каналі, це також діяльність оператора, який обслуговує обчислювальну систему та спілкується з ОС, а також діяльність будь-якого користувача.
При розвиненні системного процесу виконується програма зі складу операційної системи. При розвиненні користувацького процесу виконується користувацька програма.
Процеси, незалежно від їхнього виду, можуть бути ізольованими або взаємопов’язаними, якщо поміж ними за допомогою системи керування процесами підтримуються функціональні, просторово-часові, керувальні чи інформаційні зв’язки. Строго кажучи, ізольовані процеси треба розглядати як процеси зі слабкими зв’язками, оскільки за відсутності наочних зв’язків вони можуть бути пов’язані поміж собою непрямо і впливати на розвинпння один одного. Наприклад, процес введення інформації через канал з певного зовнішнього пристрою може впливати на темп розвинення іншого внутрішнього процесу, в жлдній спосіб непов’язаного з даними, які вводяться, оскільки змінить склад траси внутрішнього процесу та збільшить інтервал його існування.
Взаємопов’язані процеси, які використовують спільно деякі ресурси, але не обмінюються інформацією, називаються інформаційно незалежними. Зв’язок поміж такими процесами може бути або функціональним або просторово-часовим. За наявності інформаційних зв’язків поміж двома процесами їх називають взаємодіючими. Взаємопов’язані за ресурсами процеси називаються конкуруючими.
Керування взаємопов’язаними процесами у складі ОС ґрунтується на низці обмежень, які регламентуються синхронізуючими правилами.
Відносини передування для двох процесів означають, що перший процес має переходити до активного стану завжди раніше за другого.
Відносини пріоритетності означають, що процес з пріоритетом Р може бути переведено до активного стану лише за при виконання двох умов:
у стані готовності до процесора немає процесів з більшим пріоритетом;
процесор є вільний або його використовує процес з меншим, ніж Р, пріоритетом.
Відносини взаємного вилучення стосуються ситуації, коли два процеси використовують спільний ресурс. Сукупність дій одного процесу над цим ресурсом називається критичною областю. За правилом, критична область одного процесу не повинна виконуватись в одночас з критичною областю у складі іншого процесу.
Багатозадачні ОС мають відповідні механізми й засоби, які враховують наведені властивості процесів при керуванні ними [2].