СИСТЕМНОЕ ПРОГРАММИРОВАНИЕ: ВОПРОСЫ К ЭКЗАМЕНУ 1) Управление размещением объектов в памяти средствами си++. 2) Стандартный распределитель памяти си++. 3) Низкоуровневые средства си++ для работы с памятью. Средства си для управления распределением памяти. 4) Работа с сопроцессами-нитями средствами си++. 5) Регулярные выражения в си++. 6) Лямбда-функции в си++. 7) Уровни языка ассемблер. Процессоры. RISC и SISC. Процессоры фирмы Intel архитектуры x86 и совместимые. 8) Языки СП. Статистика по CLOC системного ПО. Общая терминология описания архитектуры процессора. РОН. Флаги. IP. 9) Трансляторы с языка ассемблер. Простейшая программа. 10) Сегментные регистры/селекторы. Управляющие регистры. Отладочные и тестовые регистры. Аппаратные расширения процессора. Инструкция CPUID. 11) Стек. Системные вызовы. Расчет факториала. 12) Способы адресации. 13) Команды присваивания, пересылки (MOV, CMOV, ...) и установки байт. 14) Арифметические команды. 15) Поразрядные и битовые операции. 16) Строковые команды. 17) Переходы. 18) Подпрограммы. 19) Инструкции для работы с прерываниями. 20) Проверка границ массива. Инструкции NOP, HLT, WAIT. Команда MOV для работы со специальными регистрами. Основные префиксы инструкций. 21) Инструкции для организации работы в защищенном режиме. 22) Организующие директивы. 23) Макропроцессор FASM. 24) Реальный режим. 25) Загрузчик реального режима, примеры. 26) Нереальный режим. Глобальные дескрипторы. Директивы USE16, USE32, USE64. LGDT. Сложности режима huge unreal mode. 27) Загрузчик нереального режима, примеры. 28) Защищенный режим 16/32-битный. Шлюзы. Команда LIDT. Исключения процессора и их виды. Дескрипторы прерываний. Ловушки и прерывания. Локальные таблицы дескрипторов 29) Страничная трансляция. Базовый вариант и вариант PSE. 30) Режимы PAE (+PSE). 31) Длинный режим. Режим совместимости. 32) Перемещаемость кода.