Виртуальная машина автоматного программирования Наумов А.С., СПбГУ ИТМО 2006
2 Цель работы Проектирование и реализация платформы нижнего уровня для автоматного программирования в виде виртуальной машины автоматного программирования (ВМАП)
3 Существующие реализации Опера- ционная система Исход- ные коды Формат файла Отладка, трасси- ровка Интерпретация Много- поточное выпол- нение Взаимо- действие автоматов в условиях много- поточности Finite State Kernel Creator UnixCBinнет Finite State Machine Editor UnixC++XMLестьнет JSpasmJava нет есть нет StateWORKSWindowsнетVFSMMLестьВМ в явном виде нет UniModEclipseJavaXMLестьВМ в неявном виде естьнет visualSTATEWindowsнетTxtестьнет
4 Общие недостатки Прямая кодогенерация Зависимость от платформы Отсутствие многопоточности Специфический формат Закрытая реализация
5 Постановка задачи Необходимо спроектировать и реализовать ВМАП Истинная многопоточность и детерминированное взаимодействие Выполнение различных типов моделей конечных автоматов Верификация загружаемых программ Статическая проверка выполнимости Изменение загруженной программы во время выполнения Поддержка наследования автоматов Инструменты кодогенерации Графическая нотация XML Ассемблер Байт-код
6 Графическая нотация
7 Автоматная модель Входные переменные Выходные воздействия Запуск с событием (обрабатывается синхронно), события обязательны Конечное число состояний Группы состояний Действия при входе в состояния Переходы Условие перехода Действия на переходе
8 Архитектура ВМ Вызов автомата == вызов метода Отказ от тактичности 16-ти разрядная, 8 регистров Память: ПЗУ, Программа, Данные Стековая машина Нуль-адресные команды
9 Формат программы
10 Многопоточность Ни один из проанализируемых инструментов не предоставляет механизмов многопоточного выполнения Проблема недетерминированности Проблема взаимной блокировки потоков Решение: разбиение процесса обработки на три фазы, блокировки автоматов потоками
11 Реализация.NET Framework 2.0, C# ВМАП, API XML (MetaAuto, UniMod) ASM ASM Байт-код
12 Апробация Подсчет количества слов Нет генерации кода, только модель в Visio В случае ошибки в модели, нет необходимости перекомпиляции программы Обедающие философы Не надо задумываться над механизмом многопоточного выполнения
13 Результаты Предложена концепция ВМАП и определены требования Разработана архитектура и система команд ВМАП Разработан механизм многопоточного выполнения автоматных программ для широкого класса исполнимых автоматных моделей Реализованы программные компоненты Проведена апробация Развитие: трассировщик, отладчик, новый язык ассемблера
14 Спасибо