Операційні системи
Анотація навчальної дисципліни
Мета вивчення дисципліни: надання знань з основ побудови, функціонування сучасних операційних систем, а також навичок з їх використання.
Практичне значення та використання отриманих знань:
Отримання знань з основ проектування, функціонування та використання операційних систем (ОС). Отримання навичок роботи із сучасними ОС на прикладі Unix-подібних ОС. Отримання знань про особливості роботи процесів, потоків та алгоритми планування процесів в ОС. Отримання знань про концепцію управління пам’яттю, файловою системою та периферійними пристроями засобами ОС. Отримання знань та навичок про забезпечення безпеки даних засобами ОС. Отримання навичок з використання сучасних засобів людино-машинної взаємодії на прикладі маркерної технології доповненої реальності.
Основні результати навчання
ПРН13–ПРН14. Володіти мовами системного програмування та методами розробки програм, що взаємодіють з компонентами комп’ютерних систем, знати мережні технології, архітектури комп’ютерних мереж, мати практичні навички технології адміністрування комп’ютерних мереж та їх програмного забезпечення
Тематика та види навчальних занять
1 тиждень.
Лекція 1 «Історія людино-машинної взаємодії (Human-Computer-Interaction). Доповнена реальність (Augmented Reality, AR) та змішана реальність (Mixed Reality, MR) як новітня історія розвитку людино-машинної взаємодії».
Лабораторне заняття 1. Лабораторна робота 1 «Розробка мульти-маркерного WebAR-застосунку з використанням GitHub-репозиторію: налаштування GitHub-репозиторію для розміщення WebAR-застосунку, створення контенту три-BarCode-маркерного WebAR-застосунку інформаційного буклету з описом роботи механічного обчислювального пристрою».
2 тиждень.
Лекція 2 «ОС та механічний світ».
Лабораторне заняття 2. Лабораторна робота 2 «Модифікація WebAR-застосунку та основи роботи з Git-системою контроля версій: особливості редагування файлів на GitHub, початок роботи з Git-клієнтом, огляд команд Bash-оболонки, налаштування Git-клієнту, безпечна робота з Git-репозиторієм, cтворення WebAR-застосунку з використанням Pattern-маркерів».
3 тиждень.
Лекція 3 «ОС для великих електронних комп`ютерів».
Лабораторне заняття 3. Лабораторна робота 3 «Проста обробка текстових даних засобами оболонки Unix-подібних ОС інтерфейсу командного рядку: перші кроки роботи з оболонкою Bash інтерфейсу командного рядку, перенаправлення потоків даних, конвеєризація команд, команди оболонки командного рядку з обробки тексту».
4 тиждень.
Лекція 4 «ОС для малих електронних комп`ютерів».
Лабораторне заняття 4. Лабораторна робота 4 «Складна обробка текстових даних засобами оболонки Unix-подібних ОС інтерфейсу командного рядку: використання регулярних виразів шаблонів складного пошуку текстових даних в утиліті GREP, автоматизована модифікація текстових даних потоковим редактором SED».
5 тиждень.
Лекція 5 «Трансляція програм та спрощення життя програмістам».
Лабораторне заняття 5. Лабораторна робота 5 «Основи керування файлами у файловій системі Unix-подібних ОС: сучасна термінальна взаємодія у комп’ютерних мережах, особливості файлової структури Unix-подібних ОС, керування правами (повноваженнями) доступу до файлів».
6 тиждень.
Лекція 6 «Мови адміністрування ОС».
Лабораторне заняття 6. Лабораторна робота 6. «Основи використання скриптової мови інтерпретатору оболонки командного рядку Unix-подібних ОС. Частина 1».
7 тиждень.
Лекція 7 «ОС для перших персональних комп'ютерів».
Лабораторне заняття 7. Лабораторна робота 6 «Основи використання скриптової мови інтерпретатору оболонки командного рядку Unix-подібних ОС. Частина 2»
Модульна контрольна робота 1.
8 тиждень.
Лекція 8 «ОС UNIX та розвиток Unix-подібної ОС Linux».
Лабораторне заняття 8. Лабораторна робота 7 «Основи операційного керування процесами в Unix-подібних ОС: операційна трійка «Програма-Процесор-Процес», керування процесами Unix-подібних ОС, програмування поведінки процесів мовою програмування Bash».
9 тиждень.
Лекція 9 «Основи операційного керування процесами в Unix-подібних ОС.
Лабораторне заняття 9. Лабораторна робота 8 «Основи програмного керування процесами в Unix-подібних ОС: основи роботи з GCC - General Public License Compiler Collection, C-функції перегляду ідентифікаторів процесів та їх груп, С-функції керування процесами, С-функції керування сигналами, С-функції керування завершенням процесів».
10 тиждень.
Лекція 10 «Керування процесами-транзакціями в базах даних».
Лабораторне заняття 10. Лабораторна робота 9 «Керування процесами-транзакціями в базах даних: приклади виникаючих проблем при одночасному виконанні транзакцій, протидія виникненню проблем квазіпаралельного виконання транзакцій, боротьба з Deadlock-станами транзакцій, основи керування базами даних з використанням мови SQL, основи роботи з СКБД PostgreSQL, робота з транзакціями в СКБД, робота протоколу блокування в СКБД, аналіз процесів СКБД та особливість взаємовідносин psql-процесу та СКБД-процесу, боротьба з Deadlock-станами в СКБД PostgreSQL».
11 тиждень.
Лекція 11 «Ядро операційної системи».
Лабораторне заняття 11. Лабораторна робота 10 «Етапи компіляції GCC.Налаштування проектів утилітою make. Програмування міжпроцесної та багатопоточної взаємодії: особливості роботи каналів, програмування черг повідомлень (message queues), процеси та потоки. Частина 1».
12 тиждень.
Лекція 12 «Програмування міжпроцесної та багатопоточної взаємодії».
Лабораторне заняття 12. Лабораторна робота 10 «Етапи компіляції GCC.Налаштування проектів утилітою make. Програмування міжпроцесної та багатопоточної взаємодії: особливості роботи каналів, програмування черг повідомлень (message queues), процеси та потоки. Частина 2».
13 тиждень.
Лекція 13 «Основи планування процесами».
Лабораторне заняття 13. Лабораторна робота 11 «Синхронізація процесів в Unix-подібних ОС: програмування семафорів, програмування мютексів».
14 тиждень.
Лекція 14 «Віртуальна пам’ять».
Лабораторне заняття 14. Лабораторна робота 12 «Основи керування віртуальними ОС: встановлення віртуальної операційної системи на прикладі програми Oracle VirtualBox, запуск та налаштування пакетів віртуальної ОС, основи адміністрування ОС Linux. Частина 1».
15 тиждень.
Лекція 15 «Ліцензування програмного забезпечення».
Лабораторне заняття 15. Лабораторна робота 13 «Основи керування віртуальними ОС: встановлення віртуальної операційної системи на прикладі програми Oracle VirtualBox, запуск та налаштування пакетів віртуальної ОС, основи адміністрування ОС Linux. Частина 2».
Модульна контрольна робота 2.
Оцінювання результатів навчання
Оцінювання результатів навчання з дисципліни здійснюється за накопичувальною системою, яка дає можливість здобувачеві протягом семестру отримати максимально 100 балів.
Модуль 1
Виконання та захист лабораторних робіт №1-6 – максимально по 5 балів за роботу.
Модульна контрольна робота 1 – бездоганне виконання 20 балів (в кожному завданні модульної контрольної роботи наведено максимальну кількість балів за виконання кожного завдання).
Модуль 2
Виконання та захист лабораторних робіт №7-12 – максимально по 5 балів за роботу.
Модульна контрольна робота 2 – бездоганне виконання 20 балів (в кожному завданні модульної контрольної роботи наведено максимальну кількість балів за виконання кожного завдання).
Посилання на рекомендовані джерела
1. Операційні системи: [Електронний ресурс]: навч. посіб. для студ. спеціальності 123 «Комп’ютерна інженерія» / В. Г. Зайцев, І. П. Дробязко;КПІ ім. Ігоря Сікорського. – Електронні текстові дані (1 файл: 3 Мбайт). – Київ: КПІ ім. Ігоря Сікорського, 2019. – 240 с. URL: https://ela.kpi.ua/bitstream/123456789/29600/1/Operatsiini_systemy.pdf
2. Авраменко В. С., Авраменко А. С.Основи операційних систем. Навчальний посібник. – Черкаси: ЧНУ іменіБогдана Хмельницького, 2018. – 524 с.URL : http://eprints.cdu.edu.ua/1480/1/osnovu.pdf
3. Blazhko, O. Youtube-канал з відео-записами лекцій 2022 року за попередньою робочою навчальною програмою. URL : https://www.youtube.com/playlist?list=PLFGelpaZu_4_1PdZY66WC890pk55-WdRQ