ВПнМ/Теормин
Материал из eSyr's wiki.
(→Моделирование программ. Графы программ. Статическая и операционная семантика.) |
(→Параллелизм. Синхронный параллелизм. Рандеву.) |
||
Строка 123: | Строка 123: | ||
=== Параллелизм. Чередование графов программ. Случаи без разделяемых переменных и с разделяемыми переменными. === | === Параллелизм. Чередование графов программ. Случаи без разделяемых переменных и с разделяемыми переменными. === | ||
=== Параллелизм. Синхронный параллелизм. Рандеву. === | === Параллелизм. Синхронный параллелизм. Рандеву. === | ||
+ | * распределённые программы выполняются параллельно | ||
+ | * в распределённой программе нет разделяемых переменных | ||
+ | |||
+ | <u>Передача сообщений в распределённых программах:</u> | ||
+ | * cинхронная передача сообщений (рандеву) | ||
+ | * асинхронная передача сообщений (кналы) | ||
+ | |||
+ | <u>Синхронный обмен сообщенийями:</u> | ||
+ | * Процессы вместе выполняют синхронизированные действия | ||
+ | * Взаимодействие процессов - одновременно | ||
+ | |||
+ | '''Рандеву''' | ||
+ | * <math>TS_i = \langle S_i, Act_i, \overset{a}{\rightarrow}_i ,I_i, AP_i, L_i \rangle ~~~ i=\{1,2\}</math> | ||
+ | * <math>H \subseteq Act_1 \cap Act_2</math> | ||
+ | |||
+ | Тогда <math>TS_1 ||_H = \langle S_1 \times S_2, Act_1 \cup Act_2, \rightarrow, I_1 \times I_2, AP_1 \cup AP_2, L \rangle</math>, где | ||
+ | * <math>L(\langle s_1, s_2 \rangle) = L_1(s_1) \cup L_2(s_2)</math> | ||
+ | * <math>\rightarrow</math> определяется как: | ||
+ | ** интерливинг для <math>\alpha \not\in H~:~~~ \frac{s_1 \overset{a}{\rightarrow}_1 s_1'}{ \langle s_1, s_2 \rangle \overset{a}{\rightarrow} \langle s_1', s_2 \rangle}</math> и <math>\frac{s_2 \overset{a}{\rightarrow}_2 s_2'}{ \langle s_1, s_2 \rangle \overset{a}{\rightarrow} \langle s_1, s_2' \rangle}</math> | ||
+ | ** рандеву для <math>\alpha \in H~:~~~ \frac{s_1 \overset{a}{\rightarrow}_1 s_1' ~ \wedge ~ s_2 \overset{a}{\rightarrow}_2 s_2'}{ \langle s_1, s_2 \rangle \overset{a}{\rightarrow} \langle s_1', s_2 \rangle}</math> | ||
+ | |||
=== Параллелизм. Асинхронный параллелизм. Системы с каналами. Операционная семантика. === | === Параллелизм. Асинхронный параллелизм. Системы с каналами. Операционная семантика. === | ||
=== Абстракция. Абстракция трасс. Абстракция системы переходов. Необходимое и достаточное условие корректности LTS модели. === | === Абстракция. Абстракция трасс. Абстракция системы переходов. Необходимое и достаточное условие корректности LTS модели. === |
Версия 12:19, 20 мая 2009
Лекция 1
Валидация - исследование и обоснование того, что спецификация ПО и само ПО через реализованную в нём функциональность удовлетворяет ребованиям пользователей.
Верификация - исследование и обоснование того, что программа соответствует своей спецификации.
Верификация в общем случае алгоритмически неразрешима.
Методы верификации:
- "Полное" тестирование (слайды 14-22)
- Имитационное моделирование
- Доказательство теорем (27-29)
- Статический анализ (30-33)
- Верификация на моделях (34-38)
Моделирование и абстракция
Моделирование программ. Понятие состояния. Потенциальные и достижимые состояния. Требования к модели. Процесс построения модели.
Схема верификации на моделях (Лекция 2, слайд 3)
Состояние программы - совокупность значений переменных и управления, связанных с некоторой моделью программы.
Модель - упрощённое описание реальности, выполненное с определенной целью.
- с каждым объектом может быть связано несколько моделей
- каждая модель отражает свой аспект реальности
Аспекты модели:
- простота - модель должна быть проще, чем реальность
- корректность - не расходиться с реальностью
- адекватность - соответствовать решаемой задаче
Построение модели
- формализация требований (постановка задачи моделирования)
- выбор языка моделирования
- абстракция системы до модели с учётом требований
Моделирование программ. Размеченные системы переходов. Детерминизм и недетерминизм. Вычисления и трассы. Свойства линейного времени. Выполнимость свойства на трассе.
Размеченная система переходов (LTS)
- S - множество состояний
- Act - множество действий
- τ - невидимое действие
- - тотальное отношение переходов
- - начальное состояние
- AP - множество атомарных высказываний
- - функция разметки
S, Act - конечные или счётные множества
Пример LTS: Лекция 2, слайд 40-41
Прямые потомки
- - такие состояния s', которые непосредственно вытекают из s через переход a
- - все возможные состояния s', которые непосредственно вытекают из s
Система детерменирована:
- по действиям тогда и только тогда, когда
- по атомарным высказываниям
- ( количество одинаково размеченных потомков не больше одного )
Недетерменизм - это фича! Полезен для:
- моделирования параллельного выполнения в режиме чередования (интерливинга)
- позволяет не указывать скорость выполнения процессов
- моделирования прототипа системы
- не ограничивает реализацию заданным порядком выполнения операторов
- построения абстракции реальной системы
- модель может быть построена по неполной информации
Вычисления
- Конечный фрагмент вычисления σ системы переходов TS называется конечная последовательность чередующихся состояний и действий
- Бесконечный (максимальный) фрагмент вычисления ρ -
- Начальный фрагмент вычисления - фрагмент вычисления, для которого
- Вычисление - начальный максимальный фрагмент вычисления
Достижимое состояние (из начального) в системе переходов TS - такое состояние , для которого существует конечный фрагмент вычисления
Rich(TS) - множество всех достижимых состояний в TS
Трасса
Свойства линейного времени
- Свойство определяет набор допустимых трасс:
- Система переходов TS удовлетворяет свойству линейного времени
Моделирование программ. Графы программ. Статическая и операционная семантика.
Граф программы – формальное описание текста программы.
- Dp -- единый абстрактный домен данных.
- P -- программа. Vp -- множество переменных программы(Var).
- n -- подстановка.
- Cond(V_p) -- Набор булевых условий над V_p
- формулы пропозициональной логики
- условия на переменные
- Эффект операторов:
Граф программы:
- Loc -- множество точек, -- множество начальных точек
- Act -- множество действий
- -- отношение перехода
- Effect -- функция эффекта
- -- начальное условие
Системы переходов графов программ TS(PG) -- система переходов графа программы задается сигнатурой
- S = LocXEval(Vp)
Параллелизм. Чередование систем переходов.
Параллелизм. Чередование графов программ. Случаи без разделяемых переменных и с разделяемыми переменными.
Параллелизм. Синхронный параллелизм. Рандеву.
- распределённые программы выполняются параллельно
- в распределённой программе нет разделяемых переменных
Передача сообщений в распределённых программах:
- cинхронная передача сообщений (рандеву)
- асинхронная передача сообщений (кналы)
Синхронный обмен сообщенийями:
- Процессы вместе выполняют синхронизированные действия
- Взаимодействие процессов - одновременно
Рандеву
Тогда , где
- определяется как:
- интерливинг для и
- рандеву для
Параллелизм. Асинхронный параллелизм. Системы с каналами. Операционная семантика.
Абстракция. Абстракция трасс. Абстракция системы переходов. Необходимое и достаточное условие корректности LTS модели.
Представим трассу в форме интерпретации I:
- N - множество натуральных чисел
- - отношение порядка на N
Рассмотрим трассы tr и tr' такие, что
Будем говорить, что трасса tr' является абстракцией трассы tr, если
- такое, что
Пример абстракции трассы: Лекция 2, слайд 53
Необходимое условие корректности модели - , где
- P - система
- M - модель этой системы
При этом, если - некоторое свойство системы, то выполняется тогда и только тогда, когда верно условие корректности модели.
Достаточное условие корректности модели :
- такая, что
- s0' = α(s0)