Авторы: Андрей Макаров, Сергей Скоробогатов, Андрей Чеповский | Московский государственный технический университет им. Н.Э. Баумана
Форма обучения:
дистанционная
Стоимость самостоятельного обучения:
бесплатно
Доступ:
свободный
Документ об окончании:
 
Уровень:
Специалист
Длительность:
22:59:00
Студентов:
12459
Выпускников:
335
Качество курса:
4.54 | 3.83
Описаны основы архитектуры платформы .NET и промежуточный язык этой платформы - Common Intermediate Language (CIL). Подробно рассмотрен прием программирования, называемый динамической генерацией кода. Дано введение в многозадачность и описаны подходы к разработке параллельных приложений на базе платформы .NET. Адресовано всем изучающим вопросы создания метаинструментария и разработки компиляторов для различных операционных систем.
Курс посвящен системному программированию в .NET. В нем описана архитектура платформы .NET и промежуточный язык этой платформы - Common Intermediate Language (сокращенно CIL). Рассматривается также прием программирования, называемый динамической генерацией кода. В последних лекциях курса обсуждается параллельное программирование, рассматриваются механизмы многозадачности и создание приложений с параллельным выполнением операций, предоставляемых ядром операционной системы Windows. Обсуждается реализация параллельного выполнения кода в .NET, использование библиотечных средств платформы .NET для создания параллельных приложений. Для студентов и преподавателей университетов, а также для специалистов, повышающих свою квалификацию.
ISBN: 978-5-9556-0055-0
 

План занятий

Занятие
Заголовок <<
Дата изучения
Лекция 1
1 час 1 минута
Введение в архитектуру Microsoft .NET Framework
Обзор учебного курса. Предшественники платформы .NET, составные части платформы .NET, спецификация CLI. Роль типизации в языках программирования. Ядро и дополнительные элементы системы типов .NET.
Оглавление
    -
    Лекция 2
    33 минуты
    Виртуальная система выполнения. Автоматическое управление памятью
    Состояние виртуальной машины .NET. Состояние метода: стек вычислений, локальные переменные и параметры, область локальных данных. Автоматическое управление памятью, алгоритм сборки мусора.
    Оглавление
      -
      Лекция 3
      1 час 33 минуты
      Структура программных компонентов
      Управление памятью в Windows. Обзор структуры исполняемых файлов в формате Portable Executable (PE). Пример генерации PE-файла.
      Оглавление
        -
        Тест 3
        33 минуты
        -
        Лекция 4
        46 минут
        Формат метаданных. Взаимодействие программных компонентов
        Расположение метаданных и кода внутри сборки, структура метаданных, таблицы метаданных. Обзор компонентных технологий, взаимодействие компонентов в среде .NET, общая спецификация языков.
        Оглавление
          -
          Лекция 5
          1 час 17 минут
          Common Intermediate Language
          Поток инструкций языка CIL. Инструкции для загрузки и сохранения значений, арифметические инструкции, инструкции для организации передачи управления.
          Оглавление
            -
            Лекция 6
            34 минуты
            Язык CIL: инструкции для поддержки объектной модели
            Инструкции для работы с объектами и массивами. Инструкции для работы с типами-значениями и типизированными ссылками.
            Оглавление
              -
              Лекция 7
              47 минут
              Язык CIL: обработка исключений. Синтаксис ILASM
              Механизмы поддержки обработки исключений в .NET, семантика обработки исключений. Основные элементы лексики и синтаксиса ассемблера ILASM.
              Оглавление
                -
                Лекция 8
                39 минут
                Анализ кода на CIL
                Граф потока управления. Алгоритм преобразования линейной последовательности инструкций в граф потока управления.
                Оглавление
                  -
                  Лекция 9
                  53 минуты
                  Верификация CIL-кода. Библиотеки для создания метаинструментов
                  Алгоритм верификации CIL-кода. Обзор и сравнение возможностей библиотек Metadata Unmanaged API и Reflection API.
                  Оглавление
                    -
                    Лекция 10
                    53 минуты
                    Динамическая генерация кода
                    Введение в динамическую генерацию кода на примере численного интегрирования функции. Особенности генерации кода для стековой машины.
                    Оглавление
                      -
                      Лекция 11
                      53 минуты
                      Основы многозадачности
                      Основные термины и понятия, необходимые для обсуждения параллельных вычислений; общие подходы к созданию многопроцессорных вычислительных установок и планирование потоков в операционных системах.
                      Оглавление
                        -
                        Лекция 12
                        50 минут
                        Общие подходы к реализации приложений с параллельным выполнением операций
                        Асинхронный ввод-вывод и вызов процедур, создание потоков, планируемых ядром операционной системы или пользователем (волокна); вводятся понятия описателей идентификаторов процессов и потоков.
                        Оглавление
                          -
                          Лекция 13
                          33 минуты
                          Разработка параллельных приложений для ОС Windows
                          Рассматривается порт завершения ввода-вывода как механизм эффективного управления пулом потоков; использование стандартного порта завершения ввода-вывода и обсуждается изоляция данных разных потоков и волокон.
                          Оглавление
                            -
                            Лекция 14
                            55 минут
                            Взаимодействие процессов и потоков
                            Упорядоченный доступ к разделяемым данным, основные способы синхронизации и взаимной блокировки потоков. Создание процессов, базовые средства управления адресным пространством процессов и обмен данными между процессами с использованием разделяемой памяти.
                            Оглавление
                              -
                              Лекция 15
                              59 минут
                              Параллельные операции в .NET
                              Основные классы .NET, применяемые для создания многопоточных приложений и их соответствие механизмам Windows.
                              Оглавление
                                -
                                1 час 40 минут
                                -
                                Анастасия Булинкова
                                Анастасия Булинкова
                                Рабочим названием платформы .NET было