Системне програмне забезпечення (курсовий проєкт)

Спеціальність: Комп'ютерна інженерія
Код дисципліни: 6.123.00.O.184
Кількість кредитів: 3.00
Кафедра: Спеціалізовані комп'ютерні системи
Семестр: 6 семестр
Форма навчання: денна

Системне програмне забезпечення (курсовий проєкт)

Спеціальність: Комп'ютерна інженерія
Код дисципліни: 6.123.00.O.183
Кількість кредитів: 3.00
Кафедра: Електронні обчислювальні машини
Лектор: доцент Мороз Іван Володимирович.
Семестр: 6 семестр
Форма навчання: денна
Результати навчання: розуміння концептуальних основ функціонування системного програмного забезпечення ЕОМ, обчислювальних систем та мереж. знання загальних принципів побудови складних програмних продуктів операційних систем (ОС) різного призначення; уміння розробляти елементи системного програмного забезпечення; уміння реалізувати елементи системного програмного забезпечення зі застосуванням сучасних інструментальних засобів.
Необхідні обов'язкові попередні та супутні навчальні дисципліни: системне програмне забезпечення; архітектура комп’ютерів; алгоритмізація та програмування; системне програмування.
Короткий зміст навчальної програми: Склад, структура та основні функції системного програмного забезпечення. Аналіз компонентів операційних систем. Деталізація поставленого завдання та декомпозиція програмної компоненти. Створення структурних, функціональних та блок-схем алгоритмів. Розробка коду та тестування програми. Створення документації до розробленої програмної компоненти.
Методи та критерії оцінювання: пояснювальна записка до курсового проекту, усне опитування (100%).
Рекомендована література: 1. Таненбаум Э. Современные операционные системы. 2-е изд. – СПб.: Питер, 2002. – 1040 с.: ил. 2. Харт Д. М. Системное программирование в среде Windows, 3-е изд. Пер. с англ. – М.: Издательский дом “Вильямс”, 2005. – 592 с.: ил. 3. Хэвиленд К., Грэй Д., Салама Б. Системное программирование в UNIX. Руководство программиста. – М.: ДМК Пресс, 2000. – 368 с.

Системне програмне забезпечення

Спеціальність: Комп'ютерна інженерія
Код дисципліни: 6.123.00.O.058
Кількість кредитів: 6.00
Кафедра: Електронні обчислювальні машини
Лектор: д.ф., Гаваньо Б.І.
Семестр: 6 семестр
Форма навчання: денна
Результати навчання: У результаті вивчення дисципліни фахівець повинен: - розуміти концептуальні основи функціонування системного програмного забезпечення ЕОМ, обчислювальних систем та мереж. - знати загальні принципи побудови складних програмних продуктів операційних систем (ОС) різного призначення; Підготовлений фахівець повинен уміти: - розробляти елементи системного програмного забезпечення; - реалізувати їх зі застосуванням сучасних інструментальних засобів. - практичному програмуванню системи з Linux, яке призначене для студентів, а також професіоналів Linux: системних інженерів, програмістів та тестувальників (QA); - використанню набору API, щоб зрозуміти теоретичні основи та концепції потужних API системного програмування Linux; - освоєнню розробки ядра Linux, його внутрішній дизайн, а також різні основні підсистеми. Ключовий код ядра, основні структури даних, функції та макроси, всебічна основа деталей реалізації основних служб та механізмів ядра.
Необхідні обов'язкові попередні та супутні навчальні дисципліни: Організація та функціонування комп’ютерів Алгоритмізація та програмування Системне програмування
Короткий зміст навчальної програми: Концептуальні основи операційних систем Основні принципи побудови ОС. Базові види архітектур ОС. Засоби апаратної підтримки ОС. Поняття ресурсів ОС, основні види ресурсів. Підсистеми ОС. Керування процесами. Керування ресурсами. Керування даними. Інтерфейс прикладного програмування (API). Особливості архітектур ОС MS Windows, UNIX та Linux Керування процесами та потоками Основні поняття процесів та потоків. Способи реалізації багатопотоковості. Стани процесів і потоків та умови переходу із одного стану в інший. Блок керування процесом (РСВ). Принципи планування процесів та потоків. Види планування. Стратегії планування, Витісняльна та невитісняльна багатозадячності. Алгоритми планування. Взаємодія між потоками та між процесами. Основні принципи та проблеми взаємодії потоків. Змагання, критичні секції, блокування та тупики. Базові механізми синхронізації потоків: семафори, м’ютекси, умовні змінні, монітори, черги повідомлень, програмовані канали, відображувана пам’ять. Особливості реалізації керування, планування та взаємодії між процесами та потоками в ОС MS Windows, UNIX та Linux Керування ресурсами Основні види ресурсів в ОС: оперативна пам’ять, процесори, пристрої введення-виведення. Основні способи організації пам’яті: блочна, сегментна, сторінкова. Віртуальна пам’ять. Кешування та підкачування сторінок. Динамічний розподіл пам’яті. Стратегії роботи з пам’яттю. Керування пристроями введення-виведення. Завдання та організація підсистеми введення-виведення. Особливості виконання операцій введення-виведення в режимі ядра та користувача. Планування, буферизація, синхронізація, багато потоковість, спулінг, обробка помилок. Особливості реалізації керування ресурсами в ОС MS Windows, UNIX та Linux: віртуальної пам’яті, засобів введення-виведення. Керування даними Поняття файлу та файлової системи. Організація інформації у файловій системі. Функції файлової системи. Ієрархія даних. Організація файлів. Характеристики файлів. Методи доступу з чергами та базисні методи доступу. Виділення та звільнення місця в пам’яті. Дескриптор файлу. Продуктивність та надійність файлових систем. Виконувані файли. Принципи компонування виконуваних файлів: статичне, динамічне. Структура виконуваних файлів. Реалізація файлових систем: VFS, FAT, NTFS. Операційні системи в комп’ютерних мережах Загальні засоби підтримки обчислювальних мереж. Реалізація стеків протоколів Інтернету. Система імен DSN. Програмний інтерфейс сокетів. Особливості реалізації підтримки обчислювальних мереж в ОС MS Windows, UNIX та Linux Захист інформації в операційних системах Основні завдання забезпечення безпеки. Принципи аутентифікації та керування доступом. Локальна та мережна безпека даних. Особливості реалізації захисту інформації в ОС MS Windows, UNIX та Linux. Завантаження операційних систем Загальні принципи завантаження ОС. Завантаження ОС MS Windows та Linux.
Методи та критерії оцінювання: Письмовий звіти з курсової роботи, усне опитування , диференційований залік(100%) Максимальна оцінка в балах Поточний контроль (ПК) Лаб. роботи 30 Разом за ПК 30 Екзаменаційний контроль письмова компонента 60 усна компонента 10 Разом за дисципліну 100
Рекомендована література: Базова література ? Jonathan Corbet, Alessandro Rubini, and Greg Kroah-Hartman. Linux Device Drivers, Third Edition - 2005, O’Reilly Media, Inc. - ISBN: 0-596-00590-3 ? Ulrich Drepper. What Every Programmer Should Know About Memory - 2007 - https://people.freebsd.org/~lstewart/articles/cpumemory.pdf ? Paul E. McKenney. Is Parallel Programming Hard, And, If So, What Can You Do About It? - Linux Technology Center, 2017 - https://mirrors.edge.kernel.org/pub/linux/kernel/people/paulmck/perfbook/perfbook.html ? Andrew Sloss, Dominic Symes, Chris Wright. ARM System Developer's Guide: Designing and Optimizing System Software. - Morgan Kaufmann; 2004 - ISBN-13: 978-1558608740 Додаткова література ? Mastering Linux Kernel Development by Raghu Bharadwaj. ? The Art of Linux Kernel Design Illustrating the Operating System Design Principle and Implementation by Lixiang Yang. ? Hands On: C Programming and Unix Application Design: UNIX System Calls and Subroutines using C c A. D. Marshall 1998-2004. ? Practical Linux Security Cookbook - Second Edition. Tajinder Kalsi ISBN: 978-1-78913-839-9. ? Hands-On Linux Administration on Azure Frederik Vos ISBN: 978-1-78913-096-6

Системне програмне забезпечення

Спеціальність: Комп'ютерна інженерія
Код дисципліни: 6.123.00.O.059
Кількість кредитів: 6.00
Кафедра: Спеціалізовані комп'ютерні системи
Семестр: 6 семестр
Форма навчання: денна