• A
  • A
  • A
  • АБB
  • АБB
  • АБB
  • А
  • А
  • А
  • А
  • А
Обычная версия сайта
Книга
ECPPM 2021 – eWork and eBusiness in Architecture, Engineering and Construction

Под науч. редакцией: Vitaly Semenov, R. J. Scherer.

CRC Press, 2021.

Статья
О методах извлечения алгоритмов из бинарного кода

Падарян В. А., Кулагин И. И., Кошкин В. А.

Труды Института системного программирования РАН. 2024. Т. 36. № 3. С. 139-160.

Глава в книге
Исследование нефункциональных параметров различных типов при реализации путей в параметризованных графах

Бурдонов И., Евтушенко Н. В., Евтушенко Л. Г. и др.

В кн.: Новые информационные технологии в исследовании сложных структур : материалы Пятнадцатой Международной конференции, 16–20 сентября 2024 г.. Томск: Издательство Томского государственного университета, 2024. С. 12-13.

Препринт
Preventive Model-based Verification and Repairing for SDN Requests

Burdonov I., Kossachev A., Nina Yevtushenko et al.

arxiv.org. Computer Science. Cornell University, 2020

Архитектура ЭВМ и язык ассемблера

2022/2023
Учебный год
RUS
Обучение ведется на русском языке
5
Кредиты

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

Гребнев Николай Юрьевич

Гребнев Николай Юрьевич

Егоров Данила Игоревич

Егоров Данила Игоревич

Леладзе Константин Григорьевич

Леладзе Константин Григорьевич

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

Аннотация

Дисциплина направлена на изучение студентами базовых принципов устройства современных ЭВМ на примере архитектуры x86, включая анализ характеристик различных компонент ЭВМ и того, как эти характеристики влияют на работу системных и прикладных программ. Закрепление знаний достигается посредством практического освоения языка Си++, языка ассемблера архитектуры x86, типовых механизмов реализации языка Си/Си++ и его системы программирования на платформе Linux x86.
Цель освоения дисциплины

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

  • Формирование у студентов связного представления об организации современных вычислительных систем, понимания взаимосвязей между архитектурными решениями уровней аппаратуры ЭВМ, системного и прикладного программного обеспечения, понимания факторов, влияющих на качественные и количественные характеристики ЭВМ, производительность и безопасность всей вычислительной системы в целом.
Планируемые результаты обучения

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

  • Знать основные принципы устройства ЭВМ, его основные компоненты, их качественные и количественные характеристики.
  • Знать свойства аппаратуры, влияющие на производительность и безопасность работы программ. Особенности двоичного (бинарного) интерфейса приложений на примере архитектуры IA-32.
  • Знать особенности архитектуры x86, влияние архитектуры набора команд на реализацию языков высокого уровня и систему программирования.
  • Знать язык ассемблера архитектуры x86, особенности реализации различных конструкций языка Си/Си++ на уровне языка ассемблера и причины, влияющие на выбор механизма реализации.
  • Уметь составлять и отлаживать многомодульные программы на языках Си/Си++ и ассемблера; реализовывать интерфейсы между модулями, реализованными на разных языках программирования (Си/Си++и ассемблер).
  • Уметь обосновано выбирать механизмы реализации конструкций языка Си/Си++ и корректно их кодировать на языке ассемблера архитектуры x86.
  • Уметь оценивать производительность программ на языках Си/Си++ и ассемблера, используя знания об особенностях устройства аппаратуры ЭВМ и аппаратные средства профилирования архитектуры x86.
  • Уметь восстанавливать по ассемблерному коду операторы и типы данных языка Си/Си++.
  • Владеть современной технологией разработки и отладки многомодульных программ на языках Си/Си++ и ассемблера.
Содержание учебной дисциплины

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

  • Введение в основы Си++. Классы и структуры. Шаблоны. Наследование. Исключения. Управление память. Семантика перемещения. Умные указатели. Контейнеры и итераторы. Вывод типов, лямбда-выражения. Метапрограммирование.
  • Введение в архитектуру ЭВМ на примерах ассемблерных программ. Взаимосвязь языка Си/Си++, языка ассемблера и особенностей архитектуры ЭВМ на примере архитектуры x86.
  • Система программирования языка Си/Си++ и ее связь с архитектурой ЭВМ.
  • Архитектура ЭВМ в разных аспектах: физической организации, поддержки системных и прикладных программ.
Элементы контроля

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

  • неблокирующий Домашнее задание
    В течение Модуля 3 студентам предлагается выполнить четыре блока контеста (домашних задания, представляющих собой набор из 3-7 задач каждый). Финальная оценка за элемент контроля выставляется по формуле: round(x / 20), где x – количество заработанных студентом первичных баллов, а round – функция математического округления до ближайшего целого. В случае “половинного балла” оценка округляется вниз: например, 7.5 округлится до 7.
  • неблокирующий Контрольная работа
    Финальная оценка за элемент контроля выставляется по формуле: round(x / 20), где x – количество заработанных студентом первичных баллов, а round – функция математического округления до ближайшего целого. В случае “половинного балла” оценка округляется вниз: например, 7.5 округлится до 7.
  • неблокирующий Экзамен
  • неблокирующий Домашние задания
    ДЗ№1-3 предполагают разработку 5 учебных программ в каждом со сдачей через систему автоматической проверки. Сдача менее 5 задач, как сдача задач с опозданием приводит к снижению баллов ДЗ №4 предполагает разработку учебной программы и отчета. Требования предъявляются как к разрабатываемой программе, так и к отчету, в части смысла текста, состава и содержания разделов, оформления текста отчета. Выполнение ДЗ№4 оценивается преподавателем по системе зачет/не зачет, успешное выполнение ДЗ №6 дает 100 баллов. Студент имеет право запросить вариант ДЗ №4 повышенной сложности. Повышенная сложность задания имеет два уровня, выполнение которых дает вместо 100 баллов обычного задания 150 или 200 баллов. Сдача менее 2 программ в ДЗ №№1-3, не сдача ДЗ №4 означает не выполнение требований по всем домашним заданиям Модуля 4, сумма оценок за домашние задания в этом случае обнуляется. Своевременное выполнение в полном объеме домашнего задания (ДЗ) дает 100 баллов.
  • неблокирующий Контрольные работы
    Две контрольные работы в 4-м модуле
  • неблокирующий Экзамен
Промежуточная аттестация

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

  • 2022/2023 учебный год 3 модуль
    0.3 * оценка за экзамен + 0.6 * сумма оценок за домашние задания + 0.1 * экзаменационная контрольная работа Оценивание происходит с использованием первичных баллов. Всего студент может получить 200 первичных баллов за курс: 120 – за д/з, 60 – за экзамен, 20 – за экзаменационную контрольную работу.
  • 2022/2023 учебный год 4 модуль
    0.3 * экзамен + 0.1 * ДЗ№1 + 0.1 * ДЗ№2 + 0.1 * ДЗ№3 + 0.1 * ДЗ№4 + 0.15 * контрольная работа №1 + 0.15 * контрольная работа №2
Список литературы

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

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

  • Алгоритмы: построение и анализ : пер.с англ., Кормен, Т., 2013
  • Архитектура компьютера, Таненбаум, Э., 2014
  • Язык Ассемблера для процессоров Intel, Ирвин, Кип Р., 2005
  • Язык программирования С++ : специальное издание, Страуструп, Б., 2015
  • Язык программирования С++, Страуструп, Б., 2007

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

  • Computer architecture : a quantitative approach, Hennessy, J. L., 2019

Авторы

  • Петрухина Анастасия Сергеевна