• A
  • A
  • A
  • АБВ
  • АБВ
  • АБВ
  • А
  • А
  • А
  • А
  • А
Обычная версия сайта

Системное программирование

2023/2024
Учебный год
RUS
Обучение ведется на русском языке
7
Кредиты
Статус:
Курс обязательный
Когда читается:
3-й курс, 2-4 модуль

Преподаватели

Программа дисциплины

Аннотация

Целью изучения дисциплины «системное программирование» является ознакомить студентов с возможностями современных операционных систем в плане предоставляемых ими 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). — Режим доступа: для авториз. пользователей.
  • Архитектура компьютера, Таненбаум, Э., 2014
  • Ассемблер и дизассемблирование, Пирогов, В. Ю., 2007
  • Жуков А. В., Авдохин А. А. - Ассемблер - 978-5-94157-133-8 - Санкт-Петербург: БХВ-Петербург - 2002 - 356812 - https://ibooks.ru/bookshelf/356812/reading - iBOOKS
  • Калашников О. - Ассемблер — это просто. Учимся программировать. 2 изд. - 978-5-9775-0591-8 - Санкт-Петербург: БХВ-Петербург - 2014 - 22669 - https://ibooks.ru/bookshelf/22669/reading - iBOOKS
  • Липпман, С. Язык программирования С++. Полное руководство : руководство / С. Липпман, Ж. Лажойе. — 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
  • Таненбаум Э., Остин Т. - Архитектура компьютера 6-е изд. - 978-5-4461-1103-9 - Санкт-Петербург: Питер - 2020 - 361850 - https://ibooks.ru/bookshelf/361850/reading - iBOOKS
  • Энтони, У. Параллельное программирование на C++ в действии. Практика разработки многопоточных программ : учебное пособие / У. Энтони , перевод с английского А. А. Слинкин. — Москва : ДМК Пресс, 2012. — 672 с. — ISBN 978-5-94074-448-1. — Текст : электронный // Лань : электронно-библиотечная система. — URL: https://e.lanbook.com/book/4813 (дата обращения: 00.00.0000). — Режим доступа: для авториз. пользователей.

Рекомендуемая дополнительная литература

  • Язык Ассемблера для процессоров Intel, Ирвин, Кип Р., 2005