Рабочим названием платформы .NET было |
Опубликован: 28.06.2006 | Уровень: специалист | Доступ: платный | ВУЗ: Московский государственный технический университет им. Н.Э. Баумана
Описаны основы архитектуры платформы .NET и промежуточный язык этой платформы - Common Intermediate Language (CIL). Подробно рассмотрен прием программирования, называемый динамической генерацией кода. Дано введение в многозадачность и описаны подходы к разработке параллельных приложений на базе платформы .NET.
Адресовано всем изучающим вопросы создания метаинструментария и разработки компиляторов для различных операционных систем.
Курс посвящен системному программированию в .NET.
В нем описана архитектура платформы .NET и промежуточный язык этой платформы - Common Intermediate Language (сокращенно CIL).
Рассматривается также прием программирования, называемый динамической генерацией кода. В последних лекциях курса обсуждается параллельное программирование, рассматриваются механизмы многозадачности и создание приложений с параллельным выполнением операций, предоставляемых ядром операционной системы Windows. Обсуждается реализация параллельного выполнения кода в .NET, использование библиотечных средств платформы .NET для создания параллельных приложений.
Для студентов и преподавателей университетов, а также для специалистов, повышающих свою квалификацию.
Предварительные курсы |
Дополнительные курсы |
План занятий
Занятие | Заголовок << | Дата изучения |
---|---|---|
- | ||
Лекция 11 час 1 минута | Введение в архитектуру Microsoft .NET Framework
Обзор учебного курса. Предшественники платформы .NET, составные части платформы .NET, спецификация CLI. Роль типизации в языках программирования. Ядро и дополнительные элементы системы типов .NET.
Оглавление | - |
Тест 136 минут | - | |
Лекция 233 минуты | Виртуальная система выполнения. Автоматическое управление памятью
Состояние виртуальной машины .NET. Состояние метода: стек вычислений, локальные переменные и параметры, область локальных данных. Автоматическое управление памятью, алгоритм сборки мусора.
Оглавление | - |
Тест 236 минут | - | |
Лекция 31 час 33 минуты | Структура программных компонентов
Управление памятью в Windows. Обзор структуры исполняемых файлов в формате Portable Executable (PE). Пример генерации PE-файла.
Оглавление | - |
Тест 333 минуты | - | |
Лекция 446 минут | Формат метаданных. Взаимодействие программных компонентов
Расположение метаданных и кода внутри сборки, структура метаданных, таблицы метаданных. Обзор компонентных технологий, взаимодействие компонентов в среде .NET, общая спецификация языков.
Оглавление | - |
Тест 436 минут | - | |
Лекция 51 час 17 минут | Common Intermediate Language
Поток инструкций языка CIL. Инструкции для загрузки и сохранения значений, арифметические инструкции, инструкции для организации передачи управления.
Оглавление | - |
Тест 536 минут | - | |
Лекция 634 минуты | Язык CIL: инструкции для поддержки объектной модели
Инструкции для работы с объектами и массивами. Инструкции для работы с типами-значениями и типизированными ссылками.
Оглавление | - |
Тест 636 минут | - | |
Лекция 747 минут | Язык CIL: обработка исключений. Синтаксис ILASM
Механизмы поддержки обработки исключений в .NET, семантика обработки исключений. Основные элементы лексики и синтаксиса ассемблера ILASM.
Оглавление | - |
Тест 736 минут | - | |
Лекция 839 минут | Анализ кода на CIL
Граф потока управления. Алгоритм преобразования линейной последовательности инструкций в граф потока управления.
Оглавление | - |
Тест 836 минут | - | |
Лекция 953 минуты | Верификация CIL-кода. Библиотеки для создания метаинструментов
Алгоритм верификации CIL-кода. Обзор и сравнение возможностей библиотек Metadata Unmanaged API и Reflection API.
Оглавление | - |
Тест 936 минут | - | |
Лекция 1053 минуты | Динамическая генерация кода
Введение в динамическую генерацию кода на примере численного интегрирования функции. Особенности генерации кода для стековой машины.
Оглавление | - |
Тест 1036 минут | - | |
Лекция 1153 минуты | Основы многозадачности
Основные термины и понятия, необходимые для обсуждения параллельных вычислений; общие подходы к созданию многопроцессорных вычислительных установок и планирование потоков в операционных системах.
Оглавление | - |
Тест 1136 минут | - | |
Лекция 1250 минут | Общие подходы к реализации приложений с параллельным выполнением операций
Асинхронный ввод-вывод и вызов процедур, создание потоков, планируемых ядром операционной системы или пользователем (волокна); вводятся понятия описателей идентификаторов процессов и потоков.
Оглавление | - |
Тест 1236 минут | - | |
Лекция 1333 минуты | Разработка параллельных приложений для ОС Windows
Рассматривается порт завершения ввода-вывода как механизм эффективного управления пулом потоков; использование стандартного порта завершения ввода-вывода и обсуждается изоляция данных разных потоков и волокон.
Оглавление | - |
Тест 1336 минут | - | |
Лекция 1455 минут | Взаимодействие процессов и потоков
Упорядоченный доступ к разделяемым данным, основные способы синхронизации и взаимной блокировки потоков. Создание процессов, базовые средства управления адресным пространством процессов и обмен данными между процессами с использованием разделяемой памяти.
Оглавление | - |
Тест 1436 минут | - | |
Лекция 1559 минут | Параллельные операции в .NET
Основные классы .NET, применяемые для создания многопоточных приложений и их соответствие механизмам Windows.
Оглавление | - |
Тест 1536 минут | - | |
Дополнительный материал 127 минут | Приложение AОглавление | - |
Дополнительный материал 217 минут | Приложение БОглавление | - |
Дополнительный материал 312 минут | Приложение BОглавление | - |
5 часов | - |