Компьютерные науки

Common Intermediate Language и системное программирование в Microsoft .NET

Программа о внутреннем устройстве платформы Microsoft .NET, промежуточном языке CIL и механизмах автоматического управления памятью, предназначенная для углубленного изучения системной архитектуры.
Студентов 12903 Выпускников 371 Для специалистов
690 ₽ 1 200 ₽
или любая сумма на ваше усмотрение
Вы можете оплатить любую сумму, чтобы поддержать наш проект и авторов программы. Объем услуг не зависит от размера вашей оплаты.
Темы:
Программирование
Объем

36 час.
Длительность

30 дней
Нагрузка в неделю

9 час.
Формат обучения

Дистанционно (самостоятельно)
Описание Эта учебная программа посвящена системному программированию в среде Microsoft .NET и внутренним механизмам работы платформы. В учебной программе рассматриваются архитектура .NET Framework, структура метаданных, промежуточный язык CIL, обработка исключений и принципы динамической генерации кода. Особое внимание уделяется вопросам управления памятью, многозадачности и разработке параллельных приложений. Учебная программа ориентирована на системных программистов и разработчиков компиляторов, которым важно понимать глубокую специфику платформы.
Цели
  • Сформировать системное представление об архитектуре платформы .NET.
  • Раскрыть устройство промежуточного языка CIL и его инструкций.
  • Познакомить с приёмами динамической генерации кода и верификации CIL.
  • Дать основы многозадачности и разработки параллельных приложений на .NET.
Чему я научусь?
  • Читать и анализировать код на Common Intermediate Language.
  • Работать с метаданными и структурой программных компонентов .NET.
  • Применять динамическую генерацию кода в прикладных задачах.
  • Разрабатывать приложения с параллельным выполнением операций под Windows.
  • Использовать библиотечные средства .NET для многопоточных решений.

Авторы

Макаров Андрей Владимирович
Макаров Андрей Владимирович
Старший преподаватель МГТУ им. Н.Э. Баумана.
Скоробогатов Сергей Юрьевич
Скоробогатов Сергей Юрьевич
Ассистент МГТУ им. Н.Э. Баумана.
Чеповский Андрей Михайлович
Чеповский Андрей Михайлович
Доцент, к.т.н. Преподает в МГТУ им. Н.Э. Баумана и на дополнительном образовании механико-математического факультета МГУ им. М.В. Ломоносова, консультант МГУП.
Чему я научусь?
  • Читать и анализировать код на Common Intermediate Language.
  • Работать с метаданными и структурой программных компонентов .NET.
  • Применять динамическую генерацию кода в прикладных задачах.
  • Разрабатывать приложения с параллельным выполнением операций под Windows.
  • Использовать библиотечные средства .NET для многопоточных решений.

Учебный план

Занятия
Экзамен экстерном Внимание! Экзамен экстерном не обязательный для сдачи. При желании вы можете его пройти, если хотите подтвердить свои знания по данному курсу без его изучения или поверить свои знания по нему. Экзамен экстерном можно сдать только один раз. 90 мин
1 Введение в архитектуру Microsoft .NET Framework Обзор учебного курса. Предшественники платформы .NET, составные части платформы .NET, спецификация CLI. Роль типизации в языках... Обзор учебного курса. Предшественники платформы .NET, составные части платформы .NET, спецификация CLI. Роль типизации в языках программирования. Ядро и дополнительные элементы системы типов .NET. ещё
Введение в архитектуру Microsoft .NET Framework тест для курса Common Intermediate Language и системное программирование в Microsoft .NET 60 мин
2 Виртуальная система выполнения. Автоматическое управление памятью Состояние виртуальной машины .NET. Состояние метода: стек вычислений, локальные переменные и параметры, область локальных данных. Автоматическое... Состояние виртуальной машины .NET. Состояние метода: стек вычислений, локальные переменные и параметры, область локальных данных. Автоматическое управление памятью, алгоритм сборки мусора. ещё
Виртуальная система выполнения. Автоматическое управление памятью тест для курса Common Intermediate Language и системное программирование в Microsoft .NET 60 мин
3 Структура программных компонентов Управление памятью в Windows. Обзор структуры исполняемых файлов в формате Portable Executable (PE). Пример генерации PE-файла.
Структура программных компонентов тест для курса Common Intermediate Language и системное программирование в Microsoft .NET 55 мин
4 Формат метаданных. Взаимодействие программных компонентов Расположение метаданных и кода внутри сборки, структура метаданных, таблицы метаданных. Обзор компонентных технологий, взаимодействие компонентов в... Расположение метаданных и кода внутри сборки, структура метаданных, таблицы метаданных. Обзор компонентных технологий, взаимодействие компонентов в среде .NET, общая спецификация языков. ещё
Формат метаданных. Взаимодействие программных компонентов тест для курса Common Intermediate Language и системное программирование в Microsoft .NET 60 мин
5 Common Intermediate Language Поток инструкций языка CIL. Инструкции для загрузки и сохранения значений, арифметические инструкции, инструкции для организации передачи... Поток инструкций языка CIL. Инструкции для загрузки и сохранения значений, арифметические инструкции, инструкции для организации передачи управления. ещё
Common Intermediate Language тест для курса Common Intermediate Language и системное программирование в Microsoft .NET 60 мин
6 Язык CIL: инструкции для поддержки объектной модели Инструкции для работы с объектами и массивами. Инструкции для работы с типами-значениями и типизированными ссылками.
Язык CIL: инструкции для поддержки объектной модели тест для курса Common Intermediate Language и системное программирование в Microsoft .NET 60 мин
7 Язык CIL: обработка исключений. Синтаксис ILASM Механизмы поддержки обработки исключений в .NET, семантика обработки исключений. Основные элементы лексики и синтаксиса ассемблера ILASM.
Язык CIL: обработка исключений. Синтаксис ILASM тест для курса Common Intermediate Language и системное программирование в Microsoft .NET 60 мин
8 Анализ кода на CIL Граф потока управления. Алгоритм преобразования линейной последовательности инструкций в граф потока управления.
Анализ кода на CIL тест для курса Common Intermediate Language и системное программирование в Microsoft .NET 60 мин
9 Верификация CIL-кода. Библиотеки для создания метаинструментов Алгоритм верификации CIL-кода. Обзор и сравнение возможностей библиотек MetadataUnmanaged API и Reflection API.
Верификация CIL-кода. Библиотеки для создания метаинструментов тест для курса Common Intermediate Language и системное программирование в Microsoft .NET 60 мин
10 Динамическая генерация кода Введение в динамическую генерацию кода на примере численного интегрирования функции. Особенности генерации кода для стековой машины.
Динамическая генерация кода тест для курса Common Intermediate Language и системное программирование в Microsoft .NET 60 мин
11 Основы многозадачности "Основные термины и понятия, необходимые для обсуждения параллельных вычислений
Основы многозадачности тест для курса Common Intermediate Language и системное программирование в Microsoft .NET 60 мин
12 Общие подходы к реализации приложений с параллельным выполнением операций "Асинхронный ввод-вывод и вызов процедур, создание потоков, планируемых ядром операционной системы или пользователем (волокна)
Общие подходы к реализации приложений с параллельным выполнением операций тест для курса Common Intermediate Language и системное программирование в Microsoft .NET 60 мин
13 Разработка параллельных приложений для ОС Windows "Рассматривается порт завершения ввода-вывода как механизм эффективного управления пулом потоков
Разработка параллельных приложений для ОС Windows тест для курса Common Intermediate Language и системное программирование в Microsoft .NET 60 мин
14 Взаимодействие процессов и потоков Упорядоченный доступ к разделяемым данным, основные способы синхронизации и взаимной блокировки потоков. Создание процессов, базовые средства... Упорядоченный доступ к разделяемым данным, основные способы синхронизации и взаимной блокировки потоков. Создание процессов, базовые средства управления адресным пространством процессов и обмен данными между процессами с использованием разделяемой памяти. ещё
Взаимодействие процессов и потоков тест для курса Common Intermediate Language и системное программирование в Microsoft .NET 60 мин
15 Параллельные операции в .NET Основные классы .NET, применяемые для создания многопоточных приложений и их соответствие механизмам Windows.
Параллельные операции в .NET тест для курса Common Intermediate Language и системное программирование в Microsoft .NET 60 мин
16 Приложение A
17 Приложение B
Тренировочный экзамен Внимание! Тренировочный экзамен экстерном не обязательный для сдачи. При желании вы можете его пройти, если хотите проверить свои знания курса перед сдачей экзамена. Тренировочный экзамен можно сдавать сколько угодно один раз. 90 мин
Экзамен 60 мин

Какой документ я получу?

Сертификат

Выдаётся автоматически после успешного завершения программы.

Удостоверение о повышении квалификации

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

Стоимость программы

690 ₽ 1 200 ₽
или любая сумма на ваше усмотрение
Вы можете оплатить любую сумму, чтобы поддержать наш проект и авторов программы. Объем услуг не зависит от размера вашей оплаты.