Операційні системи
Анотація навчальної дисципліни
Мета дисципліни:
формування комплексу знань основ операційних систем — багатозадачність, віртуальна пам'ять, управління пристроями і набуття практичних навичок використання можливостей операційних систем.
Практичне значення та використання отриманих знань: ознайомлення з загальними положеннями щодо принципів побудови та функціонування сучасних операційних систем; отримання навичок встановлення, настроювання та адміністрування операційних систем; отримання навички створення системних утиліт.
Основні результати навчання
ПРН01. Аналізувати, цілеспрямовано шукати і вибирати необхідні для вирішення професійних завдань інформаційно-довідкові ресурси і знання з урахуванням сучасних досягнень науки і техніки.
ПРН05. Знати і застосовувати відповідні математичні поняття, методи доменного, системного і об’єктно-орієнтованого аналізу та математичного моделювання для розробки програмного забезпечення.
ПРН07. Знати і застосовувати на практиці фундаментальні концепції, парадигми і основні принципи функціонування мовних, інструментальних і обчислювальних засобів інженерії програмного забезпечення.
ПРН21. Знати, аналізувати, вибирати, кваліфіковано застосовувати засоби забезпечення інформаційної безпеки (в тому числі кібербезпеки) і цілісності даних відповідно до розв'язуваних прикладних завдань та створюваних програмних систем.
Тематика та види навчальних занять
1 тиждень
Лекція 1. Історія операційних систем. Функції операційної системи. Архітектура операційних систем.
Практичне заняття 1. Програмування мовою SHELL.
2 тиждень
Лекція 2. Поняття процесу. Стани процесу. Операції над процесами. Переключення контексту. Потоки.Категорії засобів обміну інформацією між процесами. Особливості передачі інформаціями за допомогою ліній зв’язку. Надійність засобів зв’язку.
Лабораторне заняття 1. Робота в CLI операційної системи Linux.
3 тиждень
Лекція 3. Поняття дії. Достатні умови Бернстайна визначення детермінованості набору дій. Поняття критичної секції.
Практичне заняття 2. Програмування процесів.
4 тиждень
Лекція 4. Програмні алгоритми організації взаємодії процесів.
Лабораторне заняття 2. Обробка помилок у програмі. Аргументи командного рядка й ключі
5 тиждень
Лекція 5. Задача виробника і споживача. Семафори. М’ютекси. Монітори. Повідомлення.
Практичне заняття 3. Програмування каналів.
6 тиждень
Лекція 6. Задачі алгоритму планування. Параметри планування.
Лабораторне заняття 3. Робота c файлами.
7 тиждень
Лекція 7. Планування в пакетних системах. Планування в інтерактивних системах. Планування в системах реального часу.
Практичне заняття 4. Програмування обробників сигналів.
8 тиждень
Лекція 8. Ієрархія пам’яті комп’ютера. Функції системи управління пам'яттю..
Лабораторне заняття 4. Взаємодія процесів. Потік вводу-виводу. Частина 1.
Модульна контрольна робота 1.
9 тиждень
Лекція 9. Схема з фіксованими розділами. Оверлейна структура. Способи відстеження використання пам'яті. Віртуальна пам'ять. Стратегії управління сторінковою пам'яттю.
Практичне заняття 5. Програмування черги повідомлень.
10 тиждень
Лекція 10. Способи обслуговування дуже великих віртуальних адресних просторів. Розмір сторінки. Стратегії управління сторінковою пам'яттю.
Лабораторне заняття 5. Взаємодія процесів. Потік вводу-виводу. Частина 2.
11 тиждень
Лекція 6. Основні вимоги до довготривалого сховища інформації. Структура файлу. Каталоги. Загальна структура файлової системи.
Практичне заняття 6. Програмування файлового введення-виводу.
12 тиждень
Лекція 12. Методи виділення дискового простору. Розміщення з використанням зв'язаного списку. Таблиця відображення файлів. Індексні вузли.
Лабораторне заняття 6. Сигнали в UNIX.
13 тиждень
Лекція 13. Структура контролеру пристрою. Логічні принципи організації введення-виведення. Функції базової підсистеми введення-виведення.
Практичне заняття 7. Програмування складного файлового введення-виводу
14 тиждень
Лекція 14. Буферізація та кешування. Spooling та захват пристроїв. Виняткові ситуації та системні виклики. Обробка переривань та помилок.
Лабораторне заняття 7. Взаємодія процесів за допомогою черг повідомлень.
Модульна контрольна робота 2.
15 тиждень
Лекція 15. Побудова жорсткого диску. обробка помилок. Алгоритми планування запитів до жорсткого диска. RAID-системи.
Практичне заняття 7. Програмування складного файлового введення-виводу
Оцінювання результатів навчання
Оцінювання результатів навчання з дисципліни здійснюється за накопичувальною системою, яка дає можливість здобувачеві протягом семестру отримати максимально 100 балів.
Модуль 1
Повне виконання контрольного завдання – максимально 10 балів.
Оцінка за виконання лабораторних робіт – максимально 10 балів за модуль.
Модульна контрольна робота – бездоганне виконання 30 балів (в кожному завданні модульної контрольної роботи наведено максимальну кількість балів за виконання завдання).
Модуль 2
Повне виконання контрольного завдання – максимально 10 балів.
Оцінка за виконання лабораторних робіт – максимально 10 балів за модуль.
Модульна контрольна робота – бездоганне виконання 30 балів (в кожному завданні модульної контрольної роботи наведено максимальну кількість балів за виконання завдання).
Посилання на рекомендовані джерела
1. Silberschatz A., Gagne G., Galvin P. B. Operating System Concepts, 10th Edition. - John Wiley & Sons, Inc., 2018. - 1040 p.
2. Задерейко О. В., Зіноватна С. Л., Толокнов А. А. Операційні системи : навчальний посібник [Електронне видання] / О. В. Задерейко, С. Л. Зіноватна, А. А. Толокнов. – Одеса : Фенікс, 2022. – 140 с.
3. Зайцев В. Г., Дробязко І. П. Операційні системи: навч. посіб. – Київ: КПІ ім. Ігоря Сікорського, 2019. – 240 с.
4. Авраменко В. С., Авраменко А. С. Основи операційних систем. Навчальний посібник. – Черкаси: ЧНУ імені Богдана Хмельницького, 2018. – 524 с.
Методична література
1. Зіноватна С.Л. Конспект лекцій з дисципліни «Операційні системи» для студентів спеціальності 121 - «Інженерія програмного забезпечення», - Одеса: ОНПУ, 2019. -106 с. (КЛ11082)
2. Зіноватна, С.Л. Методичні вказівки до лабораторних робіт з дисципліни «Операційні системи» для студентів напрямку підготовки 121 - Інженерія програмного забезпечення. – Одеса: ОНПУ, 2021. - 54 с. (МВ10120)
3. Зіноватна, С.Л. Методичні вказівки до практичних занять з дисципліни «Операційні системи» для студентів напрямку підготовки 121 - Інженерія програмного забезпечення. – Одеса: ОНПУ, 2021. - 45 с. (МВ10120)
Додаткова література
1. Arpaci-Dusseau R. H., Arpaci-Dusseau A. C. Operating Systems: Three Easy Pieces. 1.00 Edition. - CreateSpace Independent Publishing Platform, 2018. - 714 p.
2. Tomsho G. Guide to Operating Systems, Sixth Edition. - Cengage, USA, 2020. - 595 p.