ИВТ. Архитектура вычислительных систем и языки ассемблера весна 2026

Материал из Public ATP Wiki
Версия от 13:10, 18 мая 2026; Spirina.es (обсуждение | вклад) (Материалы курса)
Перейти к: навигация, поиск

О курсе

Дисциплина «Архитектура вычислительных систем и языки ассемблера» направлена на формирование у обучающихся компетенций в области низкоуровневого программирования, архитектуры вычислительных систем и разработки программ с использованием особенностей аппаратного обеспечения и операционных систем UNIX (Linux) и Windows. В рамках курса изучаются основы машинного кода, языков ассемблера и машинно-ориентированной оптимизации программ. Обучающиеся осваивают разработку программ на языках Си и Ассемблер, включая создание программ без использования высокоуровневых библиотек, а также методы профилирования, оптимизации и отладки программного кода с применением специализированных отладчиков.• (опционально) промо-видео

Пререквизиты: введение в программирование, моделирование вычислительных систем

Программа курса

Неделя Семинары Лабораторные Домашние задания
1-5 Архитектура 32 и 64-разрядных систем x86, x86_64. Темы уточняются Темы уточняются
6-10 Системные вызовы и низкоуровневые функции операционных систем. Темы уточняются Темы уточняются
11-15 Профилирование высокоуровневого кода и ассемблерная оптимизация. Темы уточняются Темы уточняются

Коммуникация

Информация уточняется

Чат курса (Telegram)

Прогресс студентов

Таблица с оценками, доступная студентам

Критерии оценивания и формы контроля успеваемости

Успешное освоение курса требует напряжённой самостоятельной работы студента.

Самостоятельная работа включает в себя:

  • проработку учебного материала, подготовку ответов на вопросы, предназначенных для самостоятельного изучения.
  • выполнение лабораторных работ и заданий.

Промежуточный контроль знаний проводится в виде письменных опросов.

Зачет выставляется на основе работы на семинаре и выполнения домашних работ. Оценка за зачет выставляется из соотношения: 40% за теоретическую часть, и 60% - за практическую. Оценка за практическую часть - это оценка за выполнение семинарских и домашних заданий, с учетом сроков сдачи.

Внимание: неудовлетворительная оценка за каждую из частей является блокирующей, то есть, в случае неудовлетворительной оценки за теоретическую либо практическую часть, итоговая оценка - неудовлетворительно.

Внимание: выполнение и сдача задач, разбираемых на семинарских занятиях, и задач домашнего задания, помеченных как “обязательные” (как правило, по одной задаче в неделю) является обязательным условием получения положительной оценки.

Все промежуточные расчеты оценки выполняются с точностью до второго знака после точки, итоговая оценка выставляется по 10-балльной шкале, с округлением по стандартным арифметическим правилам.

Команда курса

Преподаватель курса: Дединский Илья Рудольфович

Материалы курса

Перечень типовых контрольных вопросов:

  1. Система Linux, виртуальная машина. Инструменты для написания, компиляции и отладки программ.
  2. Командный интерпретатор bash, написание shell- скриптов.
  3. Представление целых чисел. Обратный дополнительный код, битовые операции. Знаковые и беззнаковые числа. Undefined Behaviour.
  4. Язык ассемблера x86_64, базовые конструкции; работа с регистрами и с памятью
  5. Архитектура CISC v.s. RISC. gdb и objdump. Стек вызовов, соглашения о вызовах x86_64.
  6. Битовые операции на языке Си и ассемблере; кодирование команд.
  7. Представление целых чисел, знаковые и беззнаковые числа, флаги переноса, длинная арифметика.
  8. Представление вещественных чисел IEEE754
  9. Программные прерывания и системные вызовы
  10. Выравнивание данных и векторные инструкции
  11. Системные вызовы через int 0x80 и vdso (sysenter/syscall)
  12. Файловые дескрипторы, open, read и write.
  13. Отображение ELF файла на память; системный вызов mmap
  14. Позиционно-независимый код и dlopen/dlsym
  15. Бинарная трансляция машинного кода


Основная литература

  1. Современные операционные системы: [учеб. пособие для вузов] / Э. Таненбаум ; [пер. с англ. Н. Вильчинский, А. Лашкевич] .— 3-е изд. — СПб.: Питер, 2015 .— 1120 с
  2. Основы операционных систем: курс лекций : учеб. пособие для вузов / В. Е. Карпов, К. А. Коньков ;под ред. В. П. Иванникова .— М.: ИНТУИТ. РУ: Интернет-Университет Информационных Технологий, 2004 .— 628 с.
  3. Assembler. Учебник для вузов / В. И. Юров. - СПб, Питер, 2010
  4. Операционная система Linux: курс лекций : учеб. пособие для вузов / Г. В. Курячий, К. А. Маслинский .— М.: Интернет-Ун-т Информ. Технологий, 2005 .— 392 с.
  5. Операционная система UNIX и программирование на языке Си / М. Дансмур, Г. Дейвис; пер. с англ. А. С. Богданова; под ред. И. Г. Шестакова .— М.: Радио и связь, 1989 .— 192 с.
  6. Архитектура компьютера:[учеб. пособие для вузов] / Э. Таненбаум, Т. Остин ; [пер. с англ. Е. Матвеев] .— 6-е изд. — СПб.: Питер, 2014 .— 816 с

Дополнительная литература

  1. Операционная система UNIX [Текст] : учеб. пособие для вузов / А. М. Робачевский .— СПб.: БХВ-Петербург, 2002, 2003 .— 528 с.
  2. Брайант Р.Э., О’Халларон Д.Р. Компьютерные системы: архитектура и программирование. СПб.: БХВ, 2005. 1186 с.