Системне програмування, частина 2

Спеціальність: Комп'ютерна інженерія
Код дисципліни: 6.123.00.O.043
Кількість кредитів: 5.00
Кафедра: Електронні обчислювальні машини
Лектор: ст. викладач Мархивка Василь Степанович
Семестр: 5 семестр
Форма навчання: денна
Мета вивчення дисципліни: Метою дисципліни є надання студентам базових теоретичних знань при вивченні методів і способів вирішення системних задач в сучасних операційних системах та надання навичок розробки елементів системних програм із застосуванням низькорівневого програмування, формування практичних навиків створення типових системних програм з врахуванням архітектури комп’ютерів та операційного середовища; вироблення у студентів чіткого та систематизованого уявлення про склад і призначення систем програмування, які використовуються для створення нових програм, а також вивчення принципів та способів побудови основних компонентів систем програмування, їх базових структур даних.
Завдання: Вивчення навчальної дисципліни передбачає формування у здобувачів освіти компетентностей:
Результати навчання: розуміти концептуальні основи функціонування операційних систем та вимоги до системних програм; знати взаємозв’язки системних програм з модулями ОС, базові функції API ОС; знати вплив архітектури та апаратного забезпечення комп’ютерних систем на процес створення системних програм; розуміти особливості процесорів архітектури Intel64, їх програмну модель, основні структури даних захищеного режиму роботи; володіти методикою створення багатомодульних програм з використанням низькорівневого і високорівневого програмування при вирішення системних задач; уміти розробляти різномовні програмні модулі з врахування ABI-інтерфейсу конкретної платформи для інформаційного пошуку та перетворень даних у комплексах системних та прикладних програм з метою забезпечення їх функціонування в заданих технічних умовах; уміти програмувати математичний співпроцесор, MMX-, SSE- та AVX-розширення використовуючи інформацію про їх архітектуру, систему команд та особливості організації обчислень; знати принципи та методи побудови компонент систем програмування і вміти створювати типові елементи систем програмування: лексичний, синтаксичний та семантичний аналізатори; уміти виконувати відлагодження системних програм з метою пошуку, ідентифікації, виявлення та усунення помилок.
Необхідні обов'язкові попередні та супутні навчальні дисципліни: попередні: Основи організації та функціонування комп’ютерів, Програмування, Алгоритми та моделі обчислень, Системне програмування частина 1; супутні: Архітектура комп'ютерів, Інженерія програмного забезпечення, Системне програмне забезпечення, Мережні операційні системи.
Короткий зміст навчальної програми: Розглядаються методи і способи вирішення системних задач в сучасних операційних системах і формуються практичні навички створення елементів системних програм з врахуванням архітектури комп’ютерів; ставить на меті виробити у студентів чітке та систематизоване уявлення про склад і призначення систем програмування, а також надає обсяг знань про принципи та способи побудови основних компонент систем програмування, базові структури даних, що використовуються при їх побудові. В результаті вивчення курсу студент отримує знання з таких тем: класифікація і статистика роботи системних програм, програмна модель процесорів архітектури Intel64, основи роботи захищеного режиму, організація пам’яті і захисту коду програм та даних, структури даних захищеного режиму, опрацювання апаратних переривань, організація взаємозв’язків з модулями ОС, програмування системних задач за допомогою API-функцій, програмування математичного співпроцесора FPU та MMX-, SSE-, AVX-розширень, організація міжмодульних зв’язків в мовах програмування, використання низькорівневого ABI-інтерфейсу для взаємодії між системною програмою та операційною системою, бібліотеками або іншими програмами; склад та призначення систем програмування, характеристика компонентів систем програмування, структури та організація інформаційних таблиць, базові методи та алгоритми побудови: асемблерів, компіляторів, трансляторів, інтерпретаторів, редакторів зв’язків та завантажувачів, сутність статичного та динамічного компонування, розробка та використання динамічних бібліотек.
Опис: Теми:
Методи та критерії оцінювання: Оцінювання здійснюється за результатами виконання у віртуальному навчальному середовищі університету лекційних та семестрового тесту, також за результатами лабораторних занять.
Критерії оцінювання результатів навчання: Письмові звіти з лабораторних робіт, усне опитування (30%). Підсумковий контроль (70 %, контрольних захід, екзамен): письмово-усна форма (70%). Максимальна кількість балів для оцінки поточного контролю (ПК) знань за семестр – 40 балів. Екзаменаційний контроль проводиться в письмово-усній формі. Максимальна кількість балів для оцінки екзаменаційного контролю – 60 балів.
Порядок та критерії виставляння балів та оцінок: 100–88 балів – («відмінно») виставляється за високий рівень знань (допускаються деякі неточності) навчального матеріалу компонента, що міститься в основних і додаткових рекомендованих літературних джерелах, вміння аналізувати явища, які вивчаються, у їхньому взаємозв’язку і роз витку, чітко, лаконічно, логічно, послідовно відповідати на поставлені запитання, вміння застосовувати теоретичні положення під час розв’язання практичних задач; 87–71 бал – («добре») виставляється за загалом правильне розуміння навчального матеріалу компонента, включаючи розрахунки , аргументовані відповіді на поставлені запитання, які, однак, містять певні (неістотні) недоліки, за вміння застосовувати теоретичні положення під час розв’язання практичних задач; 70 – 50 балів – («задовільно») виставляється за слабкі знання навчального матеріалу компонента, неточні або мало аргументовані відповіді, з порушенням послідовності викладення, за слабке застосування теоретичних положень під час розв’язання практичних задач; 49–26 балів – («не атестований» з можливістю повторного складання семестрового контролю) виставляється за незнання значної частини навчального матеріалу компонента, істотні помилки у відповідях на запитання, невміння застосувати теоретичні положення під час розв’язання практичних задач; 25–00 балів – («незадовільно» з обов’язковим повторним вивченням) виставляється за незнання значної частини навчального матеріалу компонента, істотні помилки у відповідях на запитання, невміння орієнтуватися під час розв’язання практичних задач, незнання основних фундаментальних положень.
Рекомендована література: 1. Рисований О.М. Системне програмування: підручник для студентів напрямку “Комп’ютерна інженерія” вищих навчальних закладів в 2-х томах. Том 1. – Видання четверте: виправлено та доповнено – Х.: “Слово”, 2015. – 576 с. 2. Тонкошкур О.С, Гниленко, О.Б, Матвєєва Н.О, Морозов О.С. Архітектура комп’ютерів. Машинні команди та програмування на асемблері: навчальний посібник - Д.: Вид-во «Нова Ідеологія», 2018, 179 с. 3. Daniel Kusswurm. Modern X86 Assembly Language Programming: Covers x86 64-bit, AVX, AVX2, and AVX-512. - ISBN-13 (eBook), 2018. - 617 с. –URL: https://doi.org/10.1007/978-1-4842-4063-2 4. William Stallings, Operating Systems: Internals and Design Principles, 9th Edition, Pearson, 2017. - 800 p. 5. Системне програмування. Системні сервiсні компоненти.. Навч. посібник/ Дерев'янко О. С., Межерицький С. Г., Гавриленко С. Ю., Клименко А. М. - Харків: НТУ "ХПІ", 2009. - 160 с. 6. Ахо, Альфред В., Лам, Моника С., Сети, Рави, Ульман, Джеффри Д. Компиляторы: принципы, технологии и инструментарий, 2 е изд. : Пер. с англ. – М. : ООО “И.Д. Вильямс”, 2018. – 1184 с. 7. Свердлов С.З. Конструирование компиляторов: уч. пособие. – Германия: Издательство: LAMBERT Academic Publishing, 2015. – 575 с. 8. Intel® 64 and IA-32 Architectures Software Developer’s Manual: URL: https://www.intel.com/ content/www/us/en/homepage.html 9. AMD64 Architecture Programmer’s Manual: URL: https://developer.amd.com/resources/ developer-guides-manuals/
Уніфікований додаток: Національний університет «Львівська політехніка» забезпечує реалізацію права осіб з інвалідністю на здобуття вищої освіти. Інклюзивні освітні послуги надає Служба доступності до можливостей навчання «Без обмежень», метою діяльності якої є забезпечення постійного індивідуального супроводу навчального процесу студентів з інвалідністю та хронічними захворюваннями. Важливим інструментом імплементації інклюзивної освітньої політики в Університеті є Програма підвищення кваліфікації науково-педагогічних працівників та навчально-допоміжного персоналу у сфері соціальної інклюзії та інклюзивної освіти. Звертатися за адресою: вул. Карпінського, 2/4, І-й н.к., кімн. 112 E-mail: nolimits@lpnu.ua Websites: https://lpnu.ua/nolimits https://lpnu.ua/integration
Академічна доброчесність: Політика щодо академічної доброчесності учасників освітнього процесу формується на основі дотримання принципів академічної доброчесності з урахуванням норм «Положення про академічну доброчесність у Національному університеті «Львівська політехніка» (затверджене вченою радою університету від 20.06.2017 р., протокол № 35).