• A
  • A
  • A
  • АБB
  • АБB
  • АБB
  • А
  • А
  • А
  • А
  • А
Обычная версия сайта
Бакалавриат 2022/2023

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

Статус: Курс обязательный (Информационная безопасность)
Направление: 10.03.01. Информационная безопасность
Когда читается: 3-й курс, 2-4 модуль
Формат изучения: без онлайн-курса
Охват аудитории: для своего кампуса
Язык: русский
Кредиты: 7
Контактные часы: 90

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

Аннотация

Целью изучения дисциплины «системное программирование» является ознакомить студентов с возможностями современных операционных систем в плане предоставляемых ими API: многозадачностью, возможностями синхронизации, эффективного управления виртуальной памятью, межпроцессорного взаимодействия и т.д. Для успешного изучения дисциплины требуется: умение программировать на языке среднего уровня (C/C++), знать архитектуру ЭВМ. Полученные знания могут использоваться при подготовке выпускной квалификационной работы, при продолжении образования и в предстоящей трудовой деятельности.
Цель освоения дисциплины

Цель освоения дисциплины

  • Целью дисциплины является формирование компетенций обучающегося в области пограммирования на системном уровне и принципов реализации программ на низкоуровневых и среднеуровневых языках, ознакомление с принципами трансляции исходных программ классическими компиляторами (MinGW и Clang), подготовленных на языках C/С++, и применение полученных знаний для разработки эффективного системного программного обеспечения. В данной дисциплине изучаются основы разработки программного обеспечения, включающего среднеуровневые и низкоуровневые языки программирования, дизассемблирование простых программ, средства межпроцессорного взаимодействия, управление памятью, управление вводом-выводом, многопоточным программам и средствам синхронизации процессов, программирование в операционной среде. В учебном курсе рассматривается разработка программ на среднеуровенвых языках программирование - C/C++ и низкоуровневом языке программирования - Ассемблере (архитектура ARM и x86/x64).
Планируемые результаты обучения

Планируемые результаты обучения

  • Иметь представление в области разработки программного обеспечения для киберфизических систем, архитектуре многопоточных программ, параллельных алгоритмах, процессах и потоках, множественному доступу к разделяемым ресурсам, архитектуре многопоточной программы
  • Иметь представление в области разработки программного обеспечения для киберфизических систем, реализации языков программирования, методы работы с интерактивным дизассемблером и специализированным программным обеспечением для изучения работы исполняемых файлов
  • Иметь представление в области разработки программного обеспечения для киберфизических систем, реализации языков программирования, общую характеристику языков ассемблера: назначение, принципы построения и использования; структура языка
  • Иметь представления об: инструментах создания параллельных программ; основные типы ошибок и проблем в параллельных программах; инструменты отладки параллельных программ. Изучить: инструменты создания и отладки многопоточных программ
  • Студент должен по результатам обучения создавать эффективные параллельные программы; находить и исправлять ошибки и проблемы в многопоточных программах.
Содержание учебной дисциплины

Содержание учебной дисциплины

  • Средства синхронизации и взаимодействия в многопоточных программах
  • Средства межпроцессного взаимодействия
  • Низкоуровневые языки программирования
  • Многопоточное программирование
  • Дизассемблирование программ
Элементы контроля

Элементы контроля

  • блокирующий Практические работы
    Допускается использовать блокирование оценки по ключевым темам дисциплины (синхронизация многопоточных программ, языки низкого уровня (ассемблер), архитектура программного обеспечения (операционные системы))
  • неблокирующий Активность
  • неблокирующий Контроль лекционного материала
    Устные опросы по лекционному материалу осуществляются на семинарских или лекционных занятиях.
  • блокирующий Индивидуальное задание
Промежуточная аттестация

Промежуточная аттестация

  • 2022/2023 учебный год 3 модуль
    Весовые коэффициенты: Практические работы: 0.9 Контроль лекционного материала: 0.1
  • 2022/2023 учебный год 4 модуль
    Весовые коэффициенты: Практические работы: 0.5 Контроль лекционного материала: 0.1 Индивидуальные задания: 0.4
Список литературы

Список литературы

Рекомендуемая основная литература

  • Аблязов, Р. З. Программирование на ассемблере на платформе 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