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

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

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

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

Аннотация

Архитектура компьютера и системное программирование является областью знаний о цифровых электронных блоках компьютера (включая схемы с комбинационной и последовательной логикой), а также об архитектуре компьютера и разработке системного программного обеспечения (например, загрузчики, трансляторы программ, операционные системы, средства контейнерной оркестрации и т.д). В данной дисциплине рассматриваются таксономии программ и языков программирования, а также устройство основных компонентов вычислительных систем (аппаратные и программные) различных архитектур (архитектуры фон Неймана и Гарвардская). В ходе изучения дисциплины студенты познакомятся с машинным представлением программ (ассемблер) и данных и аспектами трансляции программ. Особое место в дисциплине занимает внутреннее устройство операционных систем: объекты и файловые системы, представление памяти, процессы и потоки, прерывания и подсистема ввода-вывода, средства межпроцессного взаимодействия и синхронизации, а также механизмы конфигурации. Также в курсе представлены основы архитектуры контейнерной оркестрации: подход «Infrastructure-as-a-Code» (IaC), интерфейсы и среды выполнения контейнеров, изоляция, планирование и балансировка нагрузки между приложениями. При обучении предусмотрен контроль знаний студентов в виде практических работ и учета активности студентов на семинарах.
Цель освоения дисциплины

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

  • Ознакомление с внутренним устройством основных компонентов вычислительных систем
  • Ознакомление с машинным представлением программ и аспектами трансляции программ
  • Ознакомление с внутренним устройством операционных систем
  • Ознакомление с принципами разработки многопоточных и асинхронных программ с множественным доступом к разделяемым ресурсам и сетевым взаимодействием
  • Ознакомление с основами архитектуры систем контейнерной оркестрации
  • Формирование навыков разработки системного программного обеспечения
  • Формирования навыков обратной разработки и отладки программ на уровне машинного представления
Планируемые результаты обучения

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

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

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

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

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

  • неблокирующий Экзамен
  • неблокирующий Практические работы
  • блокирующий Индивидуальные и/или домашние задания
Промежуточная аттестация

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

  • 2021/2022 учебный год 4 модуль
    0.4 экзамен + 0.4 практические занятия + 0.2 индивидуальные и\или домашние задания
Список литературы

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

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

  • Аблязов, Р. З. Программирование на ассемблере на платформе 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/products/361850 - 361850 - iBOOKS
  • Архитектура компьютера, Таненбаум, Э., 2014
  • Ассемблер — это просто. Учимся программировать. 2 изд. - 978-5-9775-0591-8 - Калашников О. - 2014 - Санкт-Петербург: БХВ-Петербург - https://ibooks.ru/products/22669 - 22669 - iBOOKS

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

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

Авторы

  • Мещеряков Ярослав Евгеньевич