Бакалавриат
2023/2024
Системное программирование
Статус:
Курс обязательный (Информационная безопасность)
Направление:
10.03.01. Информационная безопасность
Когда читается:
3-й курс, 2-4 модуль
Формат изучения:
без онлайн-курса
Охват аудитории:
для своего кампуса
Язык:
русский
Кредиты:
7
Контактные часы:
90
Программа дисциплины
Аннотация
Целью изучения дисциплины «системное программирование» является ознакомить студентов с возможностями современных операционных систем в плане предоставляемых ими API: многозадачностью, возможностями синхронизации, эффективного управления виртуальной памятью, межпроцессорного взаимодействия и т.д. Для успешного изучения дисциплины требуется: умение программировать на языке среднего уровня (C/C++), знать архитектуру ЭВМ. Полученные знания могут использоваться при подготовке выпускной квалификационной работы, при продолжении образования и в предстоящей трудовой деятельности.
Цель освоения дисциплины
- Целью дисциплины является формирование компетенций обучающегося в области пограммирования на системном уровне и принципов реализации программ на низкоуровневых и среднеуровневых языках, ознакомление с принципами трансляции исходных программ классическими компиляторами (MinGW и Clang), подготовленных на языках C/С++, и применение полученных знаний для разработки эффективного системного программного обеспечения. В данной дисциплине изучаются основы разработки программного обеспечения, включающего среднеуровневые и низкоуровневые языки программирования, дизассемблирование простых программ, средства межпроцессорного взаимодействия, управление памятью, управление вводом-выводом, многопоточным программам и средствам синхронизации процессов, программирование в операционной среде. В учебном курсе рассматривается разработка программ на среднеуровенвых языках программирование - C/C++ и низкоуровневом языке программирования - Ассемблере (архитектура ARM и x86/x64).
Планируемые результаты обучения
- Иметь представление в области разработки программного обеспечения для киберфизических систем, архитектуре многопоточных программ, параллельных алгоритмах, процессах и потоках, множественному доступу к разделяемым ресурсам, архитектуре многопоточной программы
- Иметь представление в области разработки программного обеспечения для киберфизических систем, реализации языков программирования, методы работы с интерактивным дизассемблером и специализированным программным обеспечением для изучения работы исполняемых файлов
- Иметь представление в области разработки программного обеспечения для киберфизических систем, реализации языков программирования, общую характеристику языков ассемблера: назначение, принципы построения и использования; структура языка
- Иметь представления об: инструментах создания параллельных программ; основные типы ошибок и проблем в параллельных программах; инструменты отладки параллельных программ. Изучить: инструменты создания и отладки многопоточных программ
- Студент должен по результатам обучения создавать эффективные параллельные программы; находить и исправлять ошибки и проблемы в многопоточных программах.
Содержание учебной дисциплины
- Средства синхронизации и взаимодействия в многопоточных программах
- Средства межпроцессного взаимодействия
- Низкоуровневые языки программирования
- Многопоточное программирование
- Дизассемблирование программ
Элементы контроля
- Семинарские занятияСеминарские занятия предназначены для изучения тем курса "Системное программирование". Формат проведения: учебный материал выдает преподаватель; учебный материал выдает учащийся. Если материал выдает учащийся, тогда он заранее готовит тему, согласованную с преподавателем. В случе успешного выступления студент получает дополнительные баллы. Весовой коэффициент составляет - 0.1 при расчете итоговой оценки
- Практические занятияПрактические работы предназначены для выработки и закреплении первоначальных умении
- Самостоятельные / индивидуальные заданияСамостоятельные и индивидуальные задания выдаются студентам по желанию для повышения оценки
Промежуточная аттестация
- 2023/2024 учебный год 3 модульПрактические работы * 0.7 + семинарские занятия * 0.1 + индивидуальные и самостоятельные работы * 0.2
- 2023/2024 учебный год 4 модуль0.7 * Практические занятия + 0.2 * Самостоятельные / индивидуальные задания + 0.1 * Семинарские занятия
Список литературы
Рекомендуемая основная литература
- Аблязов, Р. З. Программирование на ассемблере на платформе x86-64 / Р. З. Аблязов. — Москва : ДМК Пресс, 2011. — 304 с. — ISBN 978-5-94074-676-8. — Текст : электронный // Лань : электронно-библиотечная система. — URL: https://e.lanbook.com/book/1273 (дата обращения: 00.00.0000). — Режим доступа: для авториз. пользователей.
- Архитектура компьютера 6-е изд. - 978-5-4461-1103-9 - Таненбаум Э., Остин Т. - 2020 - Санкт-Петербург: Питер - https://ibooks.ru/bookshelf/361850 - 361850 - iBOOKS
- Архитектура компьютера, Таненбаум, Э., 2014
- Ассемблер - 978-5-94157-133-8 - Жуков А. В., Авдохин А. А. - 2002 - Санкт-Петербург: БХВ-Петербург - https://ibooks.ru/bookshelf/356812 - 356812 - iBOOKS
- Ассемблер — это просто. Учимся программировать. 2 изд. - 978-5-9775-0591-8 - Калашников О. - 2014 - Санкт-Петербург: БХВ-Петербург - https://ibooks.ru/bookshelf/22669 - 22669 - iBOOKS
- Ассемблер и дизассемблирование, Пирогов, В. Ю., 2007
- Липпман, С. Язык программирования С++. Полное руководство : руководство / С. Липпман, Ж. Лажойе. — 3-е изд. — Москва : ДМК Пресс, 2006. — 1105 с. — ISBN 5-94074-040-5. — Текст : электронный // Лань : электронно-библиотечная система. — URL: https://e.lanbook.com/book/1216 (дата обращения: 00.00.0000). — Режим доступа: для авториз. пользователей.
- Максимов А.В. - Оптимальное проектирование ассемблерных программ математических алгоритмов: теория, инженерные методы - Издательство "Лань" - 2016 - 192с. - ISBN: 978-5-8114-2150-3 - Текст электронный // ЭБС ЛАНЬ - URL: https://e.lanbook.com/book/87583
- Многоуровневая организация ЭВМ, Таненбаум, Э., 1979
- Энтони, У. Параллельное программирование на C++ в действии. Практика разработки многопоточных программ : учебное пособие / У. Энтони , перевод с английского А. А. Слинкин. — Москва : ДМК Пресс, 2012. — 672 с. — ISBN 978-5-94074-448-1. — Текст : электронный // Лань : электронно-библиотечная система. — URL: https://e.lanbook.com/book/4813 (дата обращения: 00.00.0000). — Режим доступа: для авториз. пользователей.
Рекомендуемая дополнительная литература
- Язык Ассемблера для процессоров Intel, Ирвин, Кип Р., 2005