- •Системне програмне забезпечення Конспект лекцій з дисципліни „Системне програмне забезпечення”
- •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
- •Список рекомендованої літератури:
5.2 Архітектура операційної системи unix
Дворівневу модель системи подано на рис. 5.1.
Рисунок 5.1 – Дворівнева модель UNIX-системи
У центрі розміщено ядро системи (kernel). Ядро безпосередньо взаємодіє з апаратною частиною комп’ютера, ізолюючи прикладні програми від особливостей її архітектури. Ядро має набір послуг, надаваних прикладним програмам. До послуг ядра належать операції введення/виведення (відкриття, читання, записування й керування файлами), створювання й керування процесами, їхньої синхронізації й міжпроцесної взаємодії. Усі додатки запитують послуги ядра за допомогою системних викликів.
Другий рівень становлять додатки та завдання, як системні, які визначають функціональність системи, так і прикладні, які забезпечують користувацький інтерфейс UNIX. Однак, незважаючи на зовнішню різнорідність додатків, схеми їхньої взаємодії з ядром є однакові.
5.3 Функціонування ос unix
5.3.1 Ядро системи
Ядро забезпечує базову функціональність ОС: створює процеси й керує ними, розподілює пам’ять і забезпечує доступ до файлів та периферійних пристроїв.
Взаємодія прикладних завдань з ядром відбувається за допомогою стандартного інтерфейсу системних викликів.
Інтерфейс системних викликів являє собою набір послуг ядра й визначає формат запитів на послуги. Процес запитує послугу за допомогою системного виклику певної процедури ядра, зовні схожого на звичайний виклик бібліотечної функції. Ядро від імені процесу виконує запит – і повертає процесові потрібні дані.
У наведеному прикладі програма відкриває файл, зчитує з нього дані і закриває цей файл. При цьому операція відкриття (open), читання (read) і закриття (close) файла виконуються ядром за запитом завдання, а функції open (2), read (2), close (2) є системними викликами.
main()
{
int fd;
char buf [80];
/*Відкриємо файл–дістанемо надсилання (файловий дескриптор) fd*/
fd=open(“filed”,O_RDONLY);
/*Вводимо до буфера buf 80 символів*/
read (fd,buf, sizeof(buf));
/*Закриємо файл*/
close (fd);
}
Ядро складається з трьох основних підсистем:
файлова підсистема;
підсистема керування процесами та пам’яттю;
підсистема введення/виведення.
5.3.2 Файлова підсистема
Файлова підсистема забезпечує уніфікований інтерфейс доступу до даних, розташованих на дискових накопичувачах, і до периферійних пристроїв. Ті самі функції open (2), read (2), write (2) можуть використовуватися як при зчитуванні запису даних на диск, так і при виведенні тексту на принтер або термінал.
Файлова підсистема контролює права доступу до файла, виконує операції розміщування й вилучання файла, а також виконує запис/читання даних файла. Оскільки більшість прикладних функцій виконується через інтерфейс файлової системи, права доступу до файлів визначають привілей користувача в системі.
Файлова підсистема забезпечує переспрямовування запитів, адресованих периферійним пристроям, котрі збігаються з модулями підсистеми введення/виведення. Внутрішню структура ядра наведено на рис. 5.2.
Рисунок 5.2 — Внутрішня структура ядра UNIX