Проект курса «Основы программного моделирования вычислительных систем» в МГУ
Название факультатива: “Основы программного моделирования вычислительных систем”
Семестровый курс в осеннем семестре. Структура: лекции и практические занятия.
Целевая аудитория курса: студенты 1-4 курсов, специализирующиеся в
системном и прикладном программном обеспечении. Необходимые для
понимания знания: хотя бы один язык программирования высокого уровня
(желательно C/C++), понимание принципов работы операционных систем.
Желательные, но необязательные знания: хотя бы один язык низкого уровня
(ассемблер), понимание принципов организации архитектуры компьютера,
умение работать в Unix-подобных ОС.
Краткая аннотация курса
Курс посвящён теории и практике создания и использования современных программных технологий для моделирования, тестирования, исследования производительности и свойств вычислительных систем - симуляции и виртуализации.
Полная аннотация курса
Цель курса — ознакомление слушателей с современными технологиями
создания программного обеспечения, используемого для моделирования,
тестирования, исследования производительности и свойств вычислительных
систем на стадиях раннего проектирования, когда реальные образцы
соответствующей аппаратуры ещё недоступны.
Лекционная часть курса посвящена вопросам проектирования, создания и
использования программных продуктов для симуляции и виртуализации
центральных процессоров, периферийных устройств, полных вычислительных
систем и их комплексов.
Практическая часть работы посвящена реализации модели компьютерной
платформы, основанной на спецификации OpenRISC 1000. Модель строится на
основе API Wind River Simics 4.6 и оформляется как набор модулей и
сценариев для данного симулятора.
Основные темы курса: симуляция как важная фаза разработки вычислительных систем; интерпретация, двоичная трансляция и прямое исполнение как основные способы моделирования; дискретная симуляция событий; модели многопроцессорных систем; связь модели с реальным миром.
Wind River Simics – программный продукт для программной симуляции,
совмещающий в себе возможности прототипирования, моделирования
аппаратных вычислительных средств, разработки, отладки и тестирования
немодифицированного программного обеспечения ещё до доступности
физических образцов аппаратуры. Simics используется в промышленности для
ускорения вывода аппаратных и программных продуктов на рынок; в
академической среде – для экспериментального исследования перспективных
идей в области аппаратного и программного обеспечения, архитектуры ЭВМ,
операционных систем, а также для обучения в курсах операционных систем,
распределённых и параллельных систем и высокопроизводительных
вычислений.
OpenRISC 1000 — дизайн процессора, построенный по философии Open Source
как для программного кода, так и для аппаратуры. Важная для лабораторной
работы курса черта спецификации OpenRISC 1000 — это опциональность
многих частей функциональности, что позволяет ограничиваться только
минимально необходимыми для конкретной реализации элементами.
Лекционная часть
- Роль симуляции в современном мире IT
- Интерпретация. Основная и улучшенные схемы
- Моделирование архитектурного состояния
- Двоичная трансляция для симуляции
- Моделирование полной платформы. Моделирование многопроцессорных систем
- Прямое исполнение Современная виртуализация
Темы практических занятий
- Установка и запуск Simics. Использование Simics для исследования гостя
- Простая модель процессора
- Простая модель периферийного устройства
- Сборка платформы - языки сценариев Simics и Python
Резервные темы лекций
- Потактовая симуляция
- Параллельное моделирование многопроцессорных систем
- Параллельное моделирование полной платформы
- Паравиртуализация
- Языки описания моделей
Литература
[1] Речистов Г.С. [и др]. Основы программного моделирования ЭВМ: Учебное пособие. 2-е изд., испр. и доп. 2013. URL
[2] Юлюгин Е.А., Речистов Г.С. Лабораторный практикум по программному моделированию. 2014. URL
[3] Речистов Г.С., Юлюгин Е.А. Презентации курса «Основы программного моделирования ЭВМ». 2015.
[4] Smith J. E., Nair R. Virtual machines – Versatile Platforms for Systems and Processes. — Elsevier, 2005. — ISBN 978-1-55860-910-5