
- •6.080401 “Інформаційні управляючі системи та технології”
- •6.080402 “Інформаційні технології проектування”
- •6.080401 “Інформаційні управляючі системи та технології” 1
- •Розділ 1 Основні концепції операційних систем
- •1.1 Поняття операційної системи, ії призначення та функції
- •1.1.1 Поняття операційної системи
- •1.1.2 Призначення операційної системи
- •1.1.3 Операційна система як розширена машина
- •1.1.4 Операційна система як розподілювач ресурсів
- •1.2 Класифікація сучасних операційних систем
- •1.3 Функціональні компоненти операційних систем
- •1.3.1 Керування процесами і потоками
- •1.3.2 Керування пам’яттю
- •1.3.3 Керування введенням-виведенням
- •1.3.4 Керування файлами та файлові системи
- •1.3.5 Мережна підтримка
- •1.3.6 Безпека даних
- •1.3.7 Інтерфейс користувача
- •Розділ 2 Архітектура операційних систем
- •2.1 Базові поняття архітектури операційних систем
- •2.1.1 Ядро системи. Привілейований режим і режим користувача
- •2.2 Реалізація архітектури операційних систем
- •2.2.1 Монолітні системи
- •2.2.2 Багаторівневі системи
- •2.2.3 Системи з мікроядром
- •2.2.4 Концепція віртуальних машин
- •2.3 Особливості архітектури: unix і Linux
- •2.3.1 Базова архітектура unix
- •2.3.2 Архітектура Linux
- •Розділ 3 Керування процесами і потоками
- •3.1 Базові поняття процесів і потоків
- •3.1.1 Процеси і потоки в сучасних ос
- •3.1.2 Моделі процесів і потоків
- •3.1.3 Складові елементи процесів і потоків
- •3.2 Стани процесів і потоків
- •3.3 Опис процесів і потоків
- •3.3.1 Керуючи блоки процесів і потоків
- •3.3.2 Образи процесу і потоку
- •3.4 Створення і завершення процесів і потоків
- •3.4.1 Створення процесів
- •3.4.2 Керування адресним простором під час створення процесів
- •3.4.3 Особливості завершення процесів
- •3.4.4 Синхронне й асинхронне виконання процесів
- •3.4.5 Створення і завершення потоків
- •3. 5 Керування процесами в unix і Linux
- •3. 5. 1 Образ процесу
- •3. 5. 2 Ідентифікаційна інформація та атрибути безпеки процесу
- •3. 5.3 Керуючий блок процесу
- •3. 5. 4Створення процесу
- •3. 5. 5 Завершення процесу
- •3. 5. 6 Очікування завершення процесу
- •3. 5. 7 Сигнали
- •3.6 Керування потоками в Linux
- •3. 6. 1 Базова підтримка багатопотоковості
- •3. 6. 2 Потоки ядра Linux
- •3. 6. 2 Програмний інтерфейс керування потоками Створення потоків
- •Очікування завершення виконання потоків
- •Висновки
- •Розділ 4 Планування процесів і потоків
- •4. 1 Загальні принципи планування
- •4. 1. 1 Особливості виконання потоків
- •4. 1.2 Механізми і політика планування
- •4. 1. 3 Застовність принципів планування
- •4. 2 Види планування
- •4. 2. 1 Довготермінове планування
- •4. 2. 2 Середньотермінове планування
- •4. 2. 3 Короткотермінове планування
- •4. 3 Стратегії планування. Витісняльна і невитісняльна багатозадачність
- •4. 4 Алгоритми планування
- •4. 4. 1 Планування за принципом fifo
- •4. 4. 2 Кругове планування
- •4. 4. 3 Планування із приоритетами
- •4. 4. 4 Планування на підставі характеристик подальшого виконання
- •4. 4. 5 Багаторівневі черги зі зворотним зв’язком
- •4. 4. 6 Лотерейне планування
- •4. 5 Реалізація планування в Linux
- •4. 5. 1 Планування процесів реального часу в ядрі
- •4. 5. 2 Традиційний алгоритм планування
- •Умови виклику процедури планування
- •Процедура планування
- •Початок нової епохи
- •Розрахунок динамічного пріоритету
- •Перерахування кванта під час створення нового процесу
- •4. 5. 3 Сучасні підходи до реалізації планування
- •4. 5. 4 Програмний інтерфейс планування
- •Висновки
- •Розділ 5 Взаємодія потоків
- •5. 1 Основні принципи взаємодії потоків
- •5. 2 Основні проблеми взаємодії потоків
- •5. 2. 1 Проблема змагання
- •5. 2. 2 Критичні секції та блокування Поняття критичної секції
- •Блокування
- •Проблеми із реалізацією блокувань
- •5. 3 Базові механізми синхронізації потоків
- •5. 3. 1 Семафори
- •Особливості використання семафорів
- •Реалязація задачі виробників-споживачів за допомогою семафорів
- •5. 3. 2 М’ютекси
- •Висновки
- •Розділ 6 Міжпроцесова взаємодія
- •6. 1 Види міжпроцесової взаємодії
- •6. 1. 1 Технологія відображуваної пам’яті (mapped memory)
- •Розділ 7 Керування оперативною пам’яттю
- •7. 1 Основи технології віртуальної пам’яті
- •7. 1. 1. Поняття віртуальної пам’яті
- •7. 1. 2. Проблеми реалізації віртуальної пам’яті. Фрагментація пам’яті
- •7. 1. 3. Логічна і фізична адресація пам’яті
- •7. 1. 4 Підхід базового і межового регістрів
- •7. 2 Сегментація пам’яті
- •7.2. 1. Особливості сегментації пам’яті
- •7.2.2. Реалізація сегментації в архітектурі іа-32
- •7. 3 Сторінкова організація пам’яті
- •7.3.1. Базові принципи сторінкової організації пам’яті
- •7.3.2. Порівняльний аналіз сторінкової організації пам’яті та сегментації
- •7.3.3. Багаторівневі таблиці сторінок
- •7.3.4. Реалізація таблиць сторінок в архітектурі іа-32
- •7.3.5. Асоціативна пам’ять
- •7. 4. Сторінково-сегментна організація пам’яті
- •7. 5. Реалізація керування основною пам’яттю: Linux
- •7.5.1. Використання сегментації в Linux. Формування логічних адрес
- •7.5.2. Сторінкова адресація в Linux
- •7.5.3. Розташування ядра у фізичній пам’яті
- •7.5.4. Особливості адресації процесів і ядра
- •7.5.5. Використання асоціативної пам’яті
- •Розділ 8 Логічна організація файлових систем
- •8. 1. Поняття файла і файлової системи
- •8.1.1. Поняття файла
- •8.1.2. Поняття файлової системи
- •8.1.3. Типи файлів
- •8.1.4. Імена файлів
- •8. 2. Організація інформації у файловій системі
- •8.2.1. Розділи
- •8.2.2. Каталоги
- •8.2.3. Зв’язок розділів і структури каталогів
- •Єдине дерево каталогів. Монтування файлових систем
- •8. 3. Зв’язки
- •8. 3. 1. Жорсткі зв’язки
- •8. 3. 2. Символічні зв’язки
- •Підтримка символічних зв’язків на рівні системних викликів
- •8. 4. Атрибути файлів
- •8. 5. Операції над файлами і каталогами
- •8. 5. 1. Підходи до використання файлів процесами
- •8. 5. 2. Загальні відомості про файлові операції
- •8. 5. 3. Файлові операції posix
- •Література
1.3.3 Керування введенням-виведенням
Операційна система відповідає за керування пристроями введення-виведення, підключеним до комп’ютера. Підтримка таких пристроїв в ОС звичайно здійснюється на двох рівнях. До першого, нижчого, рівня належать драйвери пристроїв – програмні модулі, які керують пристроями конкретного типу з урахування усіх їхніх особливостей. До другого рівня належить універсальний інтерфейс введення-виведення, зручний для використання у прикладних програмах.
ОС має реалізовувати загальний інтерфейс драйверів введення-виведення, через який вони взаємодіють з іншими компонентами системи. Такий інтерфейс дає змогу спростити додавання драйверів для нових пристроїв.
Сучасні ОС надають великий вибір готових драйверів для конкретних периферійних пристроїв. Що більше пристроїв підтримує ОС, то більше в неї шансів на практичне використання.
1.3.4 Керування файлами та файлові системи
Для користувачів ОС і прикладних програмістів дисковий простір надається у вигляді сукупності файлів, організованих у файлову систему.
Файл – це набір даних у файловій системі, доступ до якого здійснюється за іменем. Термін “файлова система” може вживатися для двох понять: принципу організації даних у вигляді файлів і конкретного набору даних (зазвичай відповідної частини диска), організованих відповідно до такого принципу. У рамках ОС може бути реалізована одночасна підтримка декількох файлових систем.
Файлові системи розглядають на логічному і фізичному рівнях. Логічний рівень визначає зовнішне подання системи як сукупності файлів (які звичайно перебувають у каталогах), а також виконання операцій над файлами і каталогами (створення, вилучення тощо). Фізичний рівень визначае принципи розміщення структур даних файлової системи на диску або іншому пристрої.
1.3.5 Мережна підтримка
Мережні системи
Сучасні операційні системи пристосовані до роботи в мережі, їх називають мережгими операційними системами. Засоби мережної підтримки дають ОС можливість:
надавати локальні ресурси (дисковий простір, принтери тощо) у загальне користування через мережу, тобто функціювати як сервер;
звертатися до ресурсів інших комп’ютерів через мережу, тобто функціонувати як клієнт.
Реалізація функціональності сервера і клієнта базується на транспортних засобах, відповідальних за передачу даних між комп’ютерами відповідно до правил, обумовлених мережними протоколами.
Розподілені системи
Мережні ОС не приховують від користувача наявність мережі, мережна підтримка в них не визначає структуру системи, а збагачує її додатковими можливостями.Є також розподілені ОС, які дають змогу об’єднати ресурси декількох комп’ютерів у розподілену систему. Вона виглядає для користувача як один комп’ютер з декількома процесорами, що працюють паралельно. Розподілені та багатопрцесорні системиє двома основними категоріями ОС, які використовують декілька процесорів.
1.3.6 Безпека даних
Під безпекою даних в ОС розуміють забезпечення надійності системи (захисту даних від втрати у разі збоїв) і захист даних від несакціонованого доступу (випадкового чи навмісного).
Для захисту від несакнціонованого доступу ОС має забезпечувати наявність засобів аутентифікації користувачів (такі засоби дають змогу з’ясувати, чи э користувач тим, за кого себе видає; зазвичай для цього використовують систему паролів) та їхньої авторізації (дозволяють перевірити права користувача, що пройшов аутентифікацію, на виконання певної операції).