Дисципліна: Операційні системи та системне програмування
Кількість годин (кредитів ЄКТС): 180 (6)
Мета навчальної дисципліни: навчити студентів працювати в середовищах сучасних операційних систем, виробити вміння ефективно використовувати новітні засоби та технології сучасних операційних систем.
Вивчення курсу базується на закріпленні навичок використання сучасних операційних систем.
Результати навчання за навчальною дисципліною:
- прищепити вміння застосовувати теоретичні знання на практиці;
- прищепити вміння самостійно розширювати свої знання про основні операційні системи та принципи їх побудови;
- розвивати логічне мислення та вміння самостійно працювати зі спеціальною літературою з метою поглиблення знань про сучасний стан та тенденції розвитку операційних систем.
Зміст дисципліни (тематика):
- Основні концепції операційних систем.
Поняття операційної системи, її призначення та функції. Функціональні компоненти операційних систем. Керування процесами й потоками. Керування пам'яттю. Керування введенням-виведенням. Керування файлами та файлові системи. Мережна підтримка. Безпека даних. Інтерфейс користувача.
- Архітектура операційних систем.
Базові поняття архітектури операційних систем. Механізми і політика. Ядро системи. Привілейований режим і режим користувача. Системне програмне забезпечення. Реалізація архітектури операційних систем.
Операційна система та її оточення. Взаємодія ОС і апаратного забезпечення. Взаємодія ОС і виконуваного програмного коду.
Особливості архітектури ОСWindows 10, Linux таAndroid.
- Керування процесами і потоками.
Базові поняття процесів і потоків. Процеси і потоки в сучасних ОС. Моделі процесів і потоків. Складові елементи процесів і потоків. Багатопотоковість та її реалізація.
Планування процесів і потоків. Загальні принципи планування. Види планування. Алгоритми планування.
Взаємодія потоків. Основні принципи взаємодії потоків. Основні проблеми взаємодії потоків. Базові механізми синхронізації потоків.
Міжпроцесова взаємодія.Види міжпроцесової взаємодії.
Керування процесами і потоками в Windows 10, Linux таAndroid.
- Керування оперативною пам'яттю.
Основи технології віртуальної пам'яті. Поняття віртуальної пам'яті. Проблеми реалізації віртуальної пам'яті. Фрагментація пам'яті. Логічна і фізична адресація пам'яті.
Реалізація керування основною пам'яттю у Windows 10, Linux та Android.
- Логічна та фізична організація файлових систем.
Поняття файла і файлової системи. Типи файлів. Імена файлів. Організація інформації у файловій системі. Розділи. Каталоги.Атрибути файлів. Операції над файлами і каталогами.
Базові відомості про дискові пристрої. Принцип дії жорсткого диска. Ефективність операцій доступу до диска. Розміщення інформації у файлових системах. Фізична організація розділів на диску. Основні вимоги до фізичної організації файлових систем.
Реалізація файлових систем.Структура виконуваних файлів. Виконувані файлиу Windows 10, Linux, та Android.
- Керування пристроями введення-виведення.
Завдання підсистеми введення-виведення. Забезпечення ефективності доступу до пристроїв. Забезпечення спільного використання зовнішніх пристроїв. Універсальність інтерфейсу прикладного програмування. Універсальність інтерфейсу драйверів пристроїв. Організація підсистеми введення-виведення.
Підсистема введення-виведення ядра. Планування операцій введення-виведення.
Керування введенням-виведенням у Windows 10, Linux та Android.
- Мережні засоби операційних систем.
Загальні принципи мережної підтримки. Рівні мережної архітектури і мережні сервіси. Мережні протоколи. Реалізація стека протоколів Інтернету. Рівні мережної архітектури TCP/IP. Канальний рівень. Мережний рівень. Транспортний рівень. Передавання даних стеком протоколів Інтернету. Система імен DNS. Загальна характеристика DNS. Простір імен DNS. Архітектура мережної підтримки у Windows 10, Linux та Android.
- Взаємодія з користувачем в операційних системах.
Термінальне введення-виведення. Організація термінального введення-виведення. Графічний інтерфейс користувача. Інтерфейс віконної та графічної підсистеми Windows 10, Linux та Android.
- Захист інформації в операційних системах.
Основні завдання забезпечення безпеки. Базові поняття криптографії. Поняття криптографічного алгоритму і протоколу.
Принципи аутентифікації і керування доступом. Основи аутентифікації. Основи керування доступом. Облікові записи користувачів. Аутентифікація. Керування доступом. Локальна безпека даних. Мережна безпека даних.
Аутентифікація та керування доступом у Windows 10 та Linux.
10. Завантаження операційних систем.
Загальні принципи завантаження ОС. Апаратна ініціалізація комп'ютера. Завантажувач ОС. Двоетапне завантаження. Завантаження та ініціалізація ядра. Завантаження компонентів системи. Завантаження у Windows 10 та Linux.
11. Багатопроцесорні та розподілені системи.
Багатопроцесорні системи. Типи багатопроцесорних систем. Підтримка багатопроцесорності в операційних системах.
Підтримка багатопроцесорності у Windows 10 та Linux.
Принципи розробки розподілених систем. Сучасні архітектури розподілених систем. Кластерні системи. Grid-системи.
Види робіт: лекційні заняття, практичні заняття, модульні контрольні роботи, самостійна робота студентів.
