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

Спеціальність: Комп'ютерна інженерія
Код дисципліни: 6.123.00.O.056
Кількість кредитів: 6.00
Кафедра: Електронні обчислювальні машини
Лектор: д.ф., Гаваньо Б.І.
Семестр: 6 семестр
Форма навчання: денна
Мета вивчення дисципліни: Дисципліна «Системне програмне забезпечення» повинна надати систематизовані знання про принципи організації операційних систем, склад та структуру їхнього програмного забезпечення і надати навики аналізу та розробки системних програмних компонент ЕОМ, обчислювальних систем та мереж.
Завдання: Вивчення навчальної дисципліни передбачає формування та розвиток у студентів компетентностей: загальних: • Здатність до абстрактного мислення, аналізу і синтезу. • Здатність вчитися і оволодівати сучасними знаннями. • Креативність, здатність до системного мислення. фахових: • Здатність створювати системне та прикладне програмне забезпечення комп’ютерних систем та мереж. • Здатність системно адмініструвати, використовувати, адаптувати та експлуатувати наявні інформаційні технології та системи.
Результати навчання: Знати новітні технології в галузі комп’ютерної інженерії. Вміти системно мислити та застосовувати творчі здібності до формування нових ідей.
Необхідні обов'язкові попередні та супутні навчальні дисципліни: Організація та функціонування комп’ютерів Алгоритмізація та програмування Системне програмування
Короткий зміст навчальної програми: ОС Linux та її вбудовані та серверні програми є критично важливими компонентами сьогоднішньої ключової програмної інфраструктури в децентралізованому та мережевому всесвіті. Попит у галузі на досвідчених розробників Linux постійно зростає. Цей курс надасть студенту дві речі: надійну теоретичну базу та практичну інформацію, що стосується галузі, ілюстровану кодом, що охоплює область системного програмування Linux. Цей курс поглиблює мистецтво та науку системного програмування 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.
Методи та критерії оцінювання: Оцінювання знань студентів з дисципліни “Системне програмне забезпечення” проводиться відповідно до робочого навчального плану у вигляді семестрового контролю, який проводиться в кінці семестру і включає в себе результати поточного контролю знань студентів, який оцінюється за виконання лабораторних робіт, та контрольного заходу – відповідь на відповідний білет на іспиті. Контрольний захід є обов’язковим видом контролю і проводиться в письмово-усній формі в кінці семестру. Поточний контроль на лекційних заняттях проводиться з метою виявлення готовності студента до занять у таких формах: - вибіркове усне опитування перед початком занять; - оцінка активності студента у процесі занять, внесених пропозицій, оригінальних рішень, уточнень і визначень, доповнень попередніх відповідей і т. ін. Контрольні запитання поділяються на: а) тестові завдання – вибрати вірні відповіді; б) проблемні – створення ситуацій проблемного характеру; в) питання репродуктивного характеру – визначення практичного значення.
Критерії оцінювання результатів навчання: Максимальна оцінка в балах Поточний контроль (ПК) Лаб. роботи 30 Разом за ПК 30 Екзаменаційний контроль письмова компонента 60 усна компонента 10 Разом за дисципліну 100
Порядок та критерії виставляння балів та оцінок: 100–88 балів – («відмінно») виставляється за високий рівень знань (допускаються деякі неточності) навчального матеріалу компонента, що міститься в основних і додаткових рекомендованих літературних джерелах, вміння аналізувати явища, які вивчаються, у їхньому взаємозв’язку і роз витку, чітко, лаконічно, логічно, послідовно відповідати на поставлені запитання, вміння застосовувати теоретичні положення під час розв’язання практичних задач; 87–71 бал – («добре») виставляється за загалом правильне розуміння навчального матеріалу компонента, включаючи розрахунки , аргументовані відповіді на поставлені запитання, які, однак, містять певні (неістотні) недоліки, за вміння застосовувати теоретичні положення під час розв’язання практичних задач; 70 – 50 балів – («задовільно») виставляється за слабкі знання навчального матеріалу компонента, неточні або мало аргументовані відповіді, з порушенням послідовності викладення, за слабке застосування теоретичних положень під час розв’язання практичних задач; 49–26 балів – («не атестований» з можливістю повторного складання семестрового контролю) виставляється за незнання значної частини навчального матеріалу компонента, істотні помилки у відповідях на запитання, невміння застосувати теоретичні положення під час розв’язання практичних задач; 25–00 балів – («незадовільно» з обов’язковим повторним вивченням) виставляється за незнання значної частини навчального матеріалу компонента, істотні помилки у відповідях на запитання, невміння орієнтуватися під час розв’язання практичних задач, незнання основних фундаментальних положень.
Рекомендована література: 1. Garg, & Verma, G. (2017). Operating Systems: An Introduction. Mercury Learning & Information. 2. Panek. (2020). Windows operating system fundamentals (1st edition). Sybex. – 419 p. 3. David A. Solomon (2017). “Windows Internals”. 4. Габрусєв В.Ю. (2007). Основи операційних систем: ядро, процес, потік. – 96с. 5. Бондаренко М.Ф. Операційні системи: навч. посібник / М.Ф. Бондаренко, О.Г. Качко. – Харків: Компанія СМІТ, 2008. – 432 с. 6. Johnson M. Hart. Windows System Programming, 4th edition / Hart Johnson. – Addison-Wesley, 2010. – 656 p. 7. Thomas W. Doeppner. Operating Systems In Depth: Design and Programming / W. Thomas. – John Wiley & Sons, 2010. – 462 p.
Уніфікований додаток: Національний університет «Львівська політехніка» забезпечує реалізацію права осіб з інвалідністю на здобуття вищої освіти. Інклюзивні освітні послуги надає Служба доступності до можливостей навчання «Без обмежень», метою діяльності якої є забезпечення постійного індивідуального супроводу навчального процесу студентів з інвалідністю та хронічними захворюваннями. Важливим інструментом імплементації інклюзивної освітньої політики в Університеті є Програма підвищення кваліфікації науково-педагогічних працівників та навчально-допоміжного персоналу у сфері соціальної інклюзії та інклюзивної освіти. Звертатися за адресою: вул. Карпінського, 2/4, І-й н.к., кімн. 112 E-mail: nolimits@lpnu.ua Websites: https://lpnu.ua/nolimits https://lpnu.ua/integration
Академічна доброчесність: Політика щодо академічної доброчесності учасників освітнього процесу формується на основі дотримання принципів академічної доброчесності з урахуванням норм «Положення про академічну доброчесність у Національному університеті «Львівська політехніка» (затверджене вченою радою університету від 20.06.2017 р., протокол № 35).

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

Спеціальність: Комп'ютерна інженерія
Код дисципліни: 6.123.00.O.060
Кількість кредитів: 3.00
Кафедра: Електронні обчислювальні машини
Лектор: д.ф. Гаваньо Богдан Іванович
Семестр: 6 семестр
Форма навчання: денна
Мета вивчення дисципліни: Метою вивчення навчальної дисципліни "Системне програмне забезпечення" (курсовий проект) є надання студентам знань та практичних навичок у розробці, тестуванні та підтримці складних системних програмних продуктів, зокрема операційних систем, утиліт, баз даних, мережевих додатків та інших.
Завдання: Вивчення навчальної дисципліни передбачає формування та розвиток у студентів компетентностей: загальних: • Здатність застосовувати знання у практичних ситуаціях. • Відповідальність за якість виконуваної роботи. фахових: • Здатність використовувати сучасні методи і мови програмування для розроблення алгоритмічного та програмного забезпечення. • Здатність оформляти отримані результати у вигляді презентацій, науково-технічних звітів. • Здатність аргументувати вибір методів розв’язування спеціалізованих задач, критично оцінювати отримані результати, обґрунтовувати та захищати прийняті рішення.
Результати навчання: ЗН2 Мати навички проведення експериментів, збирання даних та моделювання в комп’ютерних системах. УМ1 Вміти застосовувати знання для ідентифікації, формулювання і розв’язування технічних задач спеціальності, використовуючи методи, що є найбільш придатними для досягнення поставлених цілей. УМ5 Вміти розробляти програмне забезпечення для вбудованих і розподілених застосувань, мобільних і гібридних систем, розраховувати, експлуатувати типове для спеціальності обладнання. УМ11 Вміти оцінювати отримані результати та аргументовано захищати прийняті рішення. АіВ3 Якісно виконувати роботу та досягати поставленої мети з дотриманням вимог професійної етики.
Необхідні обов'язкові попередні та супутні навчальні дисципліни: системне програмне забезпечення; архітектура комп’ютерів; алгоритмізація та програмування; системне програмування.
Короткий зміст навчальної програми: Склад, структура та основні функції системного програмного забезпечення. Аналіз компонентів операційних систем. Деталізація поставленого завдання та декомпозиція програмної компоненти. Створення структурних, функціональних та блок-схем алгоритмів. Розробка коду та тестування програми. Створення документації до розробленої програмної компоненти.
Опис: Курсовий проєкт починається з затвердження від керівника технічного завдання. У процесі проектування він консультується з керівником у міру потреби й у зв’язку з виникаючими питаннями. Рекомендується виконання курсового проєкту рівномірно розподілити протягом всього семестру та розбити на наступні етапи: Підготовчий етап. Цей етап формує перший розділ пояснювальної записки до курсового проєкту. Студент повинний зрозуміти поставлену перед ним задачу, ознайомитися з рекомендованою літературою. При цьому варто критично підходити до вивчення джерел: рекомендується відбирати найбільш свіжі, останні дані і використовувати найбільш авторитетні джерела. Варто ясно представити мету завдання, що вирішується й уважно проаналізувати вимоги, пред’явлені до її рішення. На даному етапі потрібно зробити постановку завдання, опис вхідних та вихідних даних, сформулювати вимоги до функціонування програмного забезпечення, провести огляд існуючих рішень, аналіз технологій, інструментів, програмних бібліотек, математичних моделей, які будуть покладені в основу роботи програми. Проєктування. Цей етап формує другий розділ пояснювальної записки до курсового проєкту. На цьому етапі студент повинен розглянути та описати різні шляхи рішення поставленої задачі, а також самому розробити алгоритмічне і математичне забезпечення для наступної розробки програми. Має бути описана архітектура програмного забезпечення, в ній виокремлена: – низькорівнева складова у вигляді бібліотек динамічної/статичної компоновки, які будуть розроблені мовою С/С++; – рівень представлення – графічний інтерфейс користувача або інтерфейс командного рядка, котрий може бути реалізований будь-якою мовою програмування, якою володіє студент. На даному етапі студент має представити детальний опис (схему) алгоритмів роботи програми, структур даних. Реалізація. Цей етап формує третій розділ пояснювальної записки до курсового проєкту. На початку цього етапу студент повинен обрати найбільш раціональне рішення, у ході якого необхідно виконати остаточну розробку і налагодження програмного забезпечення. Варто звернути увагу на повноту, правильність і акуратність ведення документації в ході виконання курсового проєкту, на повноту перевірки правильності роботи програми. Тестування проєкту, розроблення інструкції користувача, відповідної документації – невід’ємні складові проектування програмного забезпечення. Оформлення. Студент зобов’язаний оформити пояснювальну записку і графічний матеріал згідно з вимогами до оформлення технічної документації, відповідно до діючих стандартів. Ці стандарти описані у розділі 5. Заключний етап. На цьому етапі проводиться захист курсових робіт. Студент зобов’язаний представити керівникові остаточно оформлену пояснювальну записку до курсового проєкту не пізніше, ніж за 5 днів до захисту. Також, потрібно представити вихідний код програми. Керівник перевіряє проєкт і дає вказівки про виправлення або доповнення, що студентові варто розглянути і внести в проєкт, після чого підписує пояснювальну записку і креслення. На цьому курсовий проєкт вважається закінченим і може бути представленим до захисту.
Методи та критерії оцінювання: пояснювальна записка до курсового проекту, усне опитування (100%).
Критерії оцінювання результатів навчання: Фактична кількість балів за кожним із параметрів курсового проєкту визначається шляхом знаходження відсоткової частки від максимальної кількості балів: – 100%, якщо студент вміє творчо мислити, узагальнювати вивчений матеріал, використовує для цього теоретичні положення і конкретні параметри, чітко, вичерпно, глибоко розуміє і знає матеріал і вміє їм користуватися в межах вимог програми курсу, вміє вести співбесіду з членами комісії, при відповідях на навідні і додаткові питання самостійно виправляє окремі допущені неточності, якісно й у повному обсязі виконав розрахункові і графічні роботи, що входять у курсовий проєкт. – 80%, коли за перерахованими показниками є окремі не суттєві недоліки, наприклад, чіткість і повнота звітів не цілком достатні, маються дрібні недоліки в розрахунках і конструкторській документації, деяка недбалість оформлення тощо; – 50%, при наявності істотних недоліків за перерахованими показниками, що студент самостійно зміг виправити; – 30%, при наявності істотних недоліків за перерахованими показниками, що студент самостійно виправити не міг, навіть якщо окремі відповіді були гарними; – 0%, якщо студент виявив нерозуміння і незнання основного змісту курсового проєкту, допустив грубі помилки в пояснювальній записці, розрахунках, у креслярській документації, не зміг правильно відповісти на питання комісії. За рейтинговою оцінкою визначається оцінка за шкалою ECTS та традиційною національною шкалою відповідно до положення університету.
Порядок та критерії виставляння балів та оцінок: 100–88 балів – («відмінно») виставляється за високий рівень знань (допускаються деякі неточності) навчального матеріалу компонента, що міститься в основних і додаткових рекомендованих літературних джерелах, вміння аналізувати явища, які вивчаються, у їхньому взаємозв’язку і роз витку, чітко, лаконічно, логічно, послідовно відповідати на поставлені запитання, вміння застосовувати теоретичні положення під час розв’язання практичних задач; 87–71 бал – («добре») виставляється за загалом правильне розуміння навчального матеріалу компонента, включаючи розрахунки , аргументовані відповіді на поставлені запитання, які, однак, містять певні (неістотні) недоліки, за вміння застосовувати теоретичні положення під час розв’язання практичних задач; 70 – 50 балів – («задовільно») виставляється за слабкі знання навчального матеріалу компонента, неточні або мало аргументовані відповіді, з порушенням послідовності викладення, за слабке застосування теоретичних положень під час розв’язання практичних задач; 49–26 балів – («не атестований» з можливістю повторного складання семестрового контролю) виставляється за незнання значної частини навчального матеріалу компонента, істотні помилки у відповідях на запитання, невміння застосувати теоретичні положення під час розв’язання практичних задач; 25–00 балів – («незадовільно» з обов’язковим повторним вивченням) виставляється за незнання значної частини навчального матеріалу компонента, істотні помилки у відповідях на запитання, невміння орієнтуватися під час розв’язання практичних задач, незнання основних фундаментальних положень.
Рекомендована література: 1. Garg, & Verma, G. (2017). Operating Systems: An Introduction. Mercury Learning & Information. 2. Panek. (2020). Windows operating system fundamentals (1st edition). Sybex. – 419 p. 3. David A. Solomon (2017). “Windows Internals”. 4. Габрусєв В.Ю. (2007). Основи операційних систем: ядро, процес, потік. – 96с. 5. Бондаренко М.Ф. Операційні системи: навч. посібник / М.Ф. Бондаренко, О.Г. Качко. – Харків: Компанія СМІТ, 2008. – 432 с. 6. Johnson M. Hart. Windows System Programming, 4th edition / Hart Johnson. – Addison-Wesley, 2010. – 656 p. 7. Thomas W. Doeppner. Operating Systems In Depth: Design and Programming / W. Thomas. – John Wiley & Sons, 2010. – 462 p.
Уніфікований додаток: Національний університет «Львівська політехніка» забезпечує реалізацію права осіб з інвалідністю на здобуття вищої освіти. Інклюзивні освітні послуги надає Служба доступності до можливостей навчання «Без обмежень», метою діяльності якої є забезпечення постійного індивідуального супроводу навчального процесу студентів з інвалідністю та хронічними захворюваннями. Важливим інструментом імплементації інклюзивної освітньої політики в Університеті є Програма підвищення кваліфікації науково-педагогічних працівників та навчально-допоміжного персоналу у сфері соціальної інклюзії та інклюзивної освіти. Звертатися за адресою: вул. Карпінського, 2/4, І-й н.к., кімн. 112 E-mail: nolimits@lpnu.ua Websites: https://lpnu.ua/nolimits https://lpnu.ua/integration
Академічна доброчесність: Політика щодо академічної доброчесності учасників освітнього процесу формується на основі дотримання принципів академічної доброчесності з урахуванням норм «Положення про академічну доброчесність у Національному університеті «Львівська політехніка» (затверджене вченою радою університету від 20.06.2017 р., протокол № 35).