Операційні системи

Спеціальність: Інженерія програмного забезпечення
Код дисципліни: 6.121.00.O.019
Кількість кредитів: 6.00
Кафедра: Програмне забезпечення
Лектор: Грицай О.Д.
Семестр: 3 семестр
Форма навчання: денна
Мета вивчення дисципліни: Метою викладання дисципліни є вивчення студентами класифікації та принципів проектування, а також теоретичних основ та алгоритмів функціонування сучасних операційних систем. В результаті навчання студенти повинні отримати базові знання про архітектуру та структуру операційних систем, її функції та алгоритми управління ресурсами.
Завдання: Вивчення навчальної дисципліни передбачає формування у здобувачів освіти компетентностей: К02. Здатність застосовувати знання у практичних ситуаціях. К05. Здатність вчитися і оволодівати сучасними знаннями. К15. Здатність розробляти архітектури, модулі та компоненти програмних систем. К18. Здатність аналізувати, вибирати і застосовувати методи і засоби для забезпечення інформаційної безпеки (в тому числі кібербезпеки). К27. Здатність демонструвати розуміння принципів побудови і функціонування обчислювальних систем та комп'ютерних мереж для врахування їх особливостей при розробці програмного забезпечення, що функціонує на різних платформах.
Результати навчання: У результаті вивчення навчальної дисципліни здобувач освіти повинен бути здатним продемонструвати такі результати навчання: - Здатність демонструвати знання принципів функціонування та структури різних операційних систем. - Здатність демонструвати знання алгоритмів управління ресурсами операційною системою. - Здатність демонструвати знання принципів взаємодії між процесами та розподілу пам'яті. - Здатність демонструвати знання організації підсистеми вводу-виводу в сучасних операційних системах. - Здатність демонструвати знання принципів розробки файлових систем, безпеки і захисту даних. - Вміти використовувати методи взаємодії між процесами, такі як семафори, монітори, передача повідомлень тощо. - Вміти управляти розподілом пам'яті, використовувати віртуальний адресний простір. - Вміти ефективно використовувати підсистему вводу-виводу та файлові системи. У результаті вивчення навчальної дисципліни здобувач освіти повинен бути здатним продемонструвати такі програмні результати навчання: ПР01. Аналізувати, цілеспрямовано шукати і вибирати необхідні для вирішення професійних завдань інформаційно-довідникові ресурси і знання з урахуванням сучасних досягнень науки і техніки. ПР07. Знати і застосовувати на практиці фундаментальні концепції, парадигми і основні принципи функціонування мовних, інструментальних і обчислювальних засобів інженерії програмного забезпечення. ПР17. Вміти застосовувати методи компонентної розробки програмного забезпечення. ПР18. Знати та вміти застосовувати інформаційні технології обробки, зберігання та передачі даних. ПР21. Знати, аналізувати, вибирати, кваліфіковано застосовувати засоби забезпечення інформаційної безпеки (в тому числі кібербезпеки) і цілісності даних відповідно до розв’язуваних прикладних завдань та створюваних програмних систем. ПР25. Використовувати знання принципів побудови і функціонування обчислювальних систем та комп'ютерних мереж для створення ефективного програмного забезпечення.
Необхідні обов'язкові попередні та супутні навчальні дисципліни: Основи програмування Архітектура комп'ютера та комп'ютерних мереж Кросплатформне програмування
Короткий зміст навчальної програми: "Операційні системи" – навчальний курс, який належить до професійно-орієнтованих дисциплін підготовки розробника програмного забезпечення, є корисним як для тих хто використовує програмне забезпечення, так і для тих, хто його створює. Вивчення курсу "Операційні системи" забезпечує розуміння того, як функціонує операційна система, як вона взаємодіє з комп’ютерним обладнанням і користувачем, як можна використати її механізми для створення ефективних і безпечних застосунків. Дисципліна передбачає вивчення класифікації, архітектури та алгоритмів функціонування сучасних операційних систем. Лекції дисципліни розглядають алгоритми управління ресурсами системи, їх ефективне використання для проектування та конструювання програмного забезпечення, а також принципи розробки файлових систем, безпеки і захисту даних. Практичні та лабораторні включають використання інструментальних засобів та API для моніторингу та управління ресурсами операційної системи, програмування алгоритмів взаємодії між процесами, потоками, використовуючи управління підсистемою вводу-виводу і пам’яттю, файлову систему та базові методи синхронізації (семафори, мютекси, монітори та ін.). Частина програмних результатів дисципліни може бути оцінена через представлення результатів неформальної та інформальної освіти (сертифікати платформи Coursera для Intro to Operating Systems, сертифікати навчальних програм ІТ фірм, напр.. Linux Kernel GL BaseCamp, та ін..).
Опис: - Вступ. (Загальна характеристика предмету. Академічна доброчесність. Можливості неформальної та інформальної освіти. Основні поняття, концепції операційної системи. Архітектура операційної системи). - Процеси (Поняття процесу, стани, моделі представлення процесів , операції над процесами. Планування процесів: рівні, критерії та вимоги до алгоритмів. Алгоритми планування FCFS, RR, SJF. Гарантоване, пріоритетне планування. Багаторівневі черги.) - Кооперація процесів та основні аспекти її логічної організації ( Потоки виконання. Поняття чергування, умови перегонів та взаємовиключення. Критична секція програми. Апаратні засоби та програмні алгоритми організації синхронізації процесів. Механізми синхронізації: семафори, монітори, повідомлення. Еквівалентність семафорів, моніторів та повідомлень.) - Тупики. ( Поняття взаємного блокування, тупикових ситуацій та «зависання» системи. Умови виникнення тупиків. Основні напрямки боротьби з тупиками.) - Управління пам’яттю в операційних системах (Фізична та логічна організація пам’яті комп’ютера. Найпростіші схеми управління пам’яттю: фіксовані та змінні розділи, оверлейна структура, сторінкова пам’ять, сегментна і сегментно-сторінкова організація пам’яті, динамічний розподіл, підкачування. Віртуальна пам’ять, сторінкова та сегментно-сторінкова організація віртуальної пам’яті. Структура таблиці сторінок, інвертована таблиця. Виняткові ситуації при роботі з пам’яттю. Стратегії управління сторінковою пам’яттю. Алгоритми заміщення сторінок: FIFO, OPT, LRU, NFU. Модель робочої множини процесу.) - Файлові системи (Основні функції та інтерфейс файлової системи. Організація файлів та доступ до них. Розділи диску, організація доступу до каталогів. Структура файлових систем. Методи виділення дискового простору: таблиця розміщення файлів та індексні вузли. Приклади реалізації файлових систем в сучасних ОС. Кооперація процесів при роботі з файлами. Сучасні архітектури файлових систем. Безпека та механізми захисту файлових систем.) - Система управління вводом-виводом. (Фізичні принципи організації вводу-виводу. Переривання, виняткові ситуації та системні виклики. Логічні принципи організації вводу-виводу. Структура системи вводу-виводу. Типи системних викликів. Обробка переривань та помилок.)
Методи та критерії оцінювання: 1. Усне та письмове опитування на практичних заняттях 2. Захист лабораторних робіт 3. Результати неформальної та інформальної освіти (сертифікати платформи Coursera для Intro to Operating Systems, сертифікати навчальних програм ІТ фірм, напр.. Linux Kernel GL BaseCamp, та ін.) можуть бути зараховані для оцінення результатів лабораторних і практичних занять відповідно до тем заняття і тем зазначених у сертифікатах. 4. Екзаменаційна робота (письмова та усна компоненти)
Критерії оцінювання результатів навчання: • поточний контроль включає захист 9 лабораторних робіт з усним опитуванням та письмовими звітами (3+3+3+3+3+3+3+3+6=30%) та усне і письмове опитування на практичних заняттях (10%). Для захисту лабораторних з балами встановлюються крайні терміни. За межами крайніх термінів роботи оцінюються в 0 балів; • контрольний захід - екзамен: письмово-усна форма (50+10=60%)
Порядок та критерії виставляння балів та оцінок: 100–88 балів – («відмінно») виставляється за високий рівень знань (допускаються деякі неточності) навчального матеріалу компонента, що міститься в основних і додаткових рекомендованих літературних джерелах, вміння аналізувати явища, які вивчаються, у їхньому взаємозв’язку і роз витку, чітко, лаконічно, логічно, послідовно відповідати на поставлені запитання, вміння застосовувати теоретичні положення під час розв’язання практичних задач; 87–71 бал – («добре») виставляється за загалом правильне розуміння навчального матеріалу компонента, включаючи розрахунки , аргументовані відповіді на поставлені запитання, які, однак, містять певні (неістотні) недоліки, за вміння застосовувати теоретичні положення під час розв’язання практичних задач; 70 – 50 балів – («задовільно») виставляється за слабкі знання навчального матеріалу компонента, неточні або мало аргументовані відповіді, з порушенням послідовності викладення, за слабке застосування теоретичних положень під час розв’язання практичних задач; 49–26 балів – («не атестований» з можливістю повторного складання семестрового контролю) виставляється за незнання значної частини навчального матеріалу компонента, істотні помилки у відповідях на запитання, невміння застосувати теоретичні положення під час розв’язання практичних задач; 25–00 балів – («незадовільно» з обов’язковим повторним вивченням) виставляється за незнання значної частини навчального матеріалу компонента, істотні помилки у відповідях на запитання, невміння орієнтуватися під час розв’язання практичних задач, незнання основних фундаментальних положень.
Рекомендована література: 1)Операційні системи [Електронний ресурс] : електронний навчально-методичний комплекс. Укладачі: Грицай О. Д., Яковина В. С. - Національний університет "Львівська політехніка" , Львів, 2021. 2) Горбань Г. В. Операційна система Linux : навч. посіб. / Г. В. Горбань, І. О. Кандиба. – Миколаїв : Вид-во ЧНУ ім. Петра Могили, 2019. – 276 с 3) Федотова-Півень І.М., Миронець І.В., Півень О.Б., Сисоєнко С.В, Миронюк Т.В, Операційні системи: навчальний посібник. – ТОВ «ДІСА ПЛЮС», 2019. – 216 с. 4) Шеховцов В.А. Операційні системи: підручник для студентів вищих навчальних закладів, які навчаються за напрямами «Комп’ютерні науки», «Комп’ютерні системи, автоматика і управління», «Комп’ютерна інженерія», «Прикладна математика». – К.: Вид. група BHV, 2005. – 576 с. 5) Silberschatz A., Galvin P. B., Gagne G. Operating system concepts. 10th edition. – NJ : Wiley, 2018. – 1278 с. 6) Tanenbaum, A. S., Bos, H. Modern Operating Systems. 5th edition. – Pearson , Boston, MA, 2023. – 1184p.
Уніфікований додаток: Національний університет «Львівська політехніка» забезпечує реалізацію права осіб з інвалідністю на здобуття вищої освіти. Інклюзивні освітні послуги надає Служба доступності до можливостей навчання «Без обмежень», метою діяльності якої є забезпечення постійного індивідуального супроводу навчального процесу студентів з інвалідністю та хронічними захворюваннями. Важливим інструментом імплементації інклюзивної освітньої політики в Університеті є Програма підвищення кваліфікації науково-педагогічних працівників та навчально-допоміжного персоналу у сфері соціальної інклюзії та інклюзивної освіти. Звертатися за адресою: вул. Карпінського, 2/4, І-й н.к., кімн. 112 E-mail: nolimits@lpnu.ua Websites: https://lpnu.ua/nolimits https://lpnu.ua/integration
Академічна доброчесність: Політика щодо академічної доброчесності учасників освітнього процесу формується на основі дотримання принципів академічної доброчесності з урахуванням норм «Положення про академічну доброчесність у Національному університеті «Львівська політехніка» (затверджене вченою радою університету від 20.06.2017 р., протокол № 35).