
- •Введение
- •Предмет теории процессов
- •Верификация процессов
- •Спецификация процессов
- •Понятие процесса
- •Представление поведения динамических систем в виде процессов
- •Неформальное понятие процесса и примеры процессов
- •Неформальное понятие процесса
- •Пример процесса
- •Другой пример процесса
- •Действия
- •Определение понятия процесса
- •Понятие трассы
- •Достижимые и недостижимые состояния
- •Замена состояний
- •Операции на процессах
- •Префиксное действие
- •Пустой процесс
- •Альтернативная композиция
- •Параллельная композиция
- •Ограничение
- •Переименование
- •Свойства операций на процессах
- •Эквивалентность процессов
- •Понятие эквивалентности процессов и связанные с ним задачи
- •Трассовая эквивалентность процессов
- •Сильная эквивалентность
- •Критерии сильной эквивалентности
- •Логический критерий сильной эквивалентности
- •Критерий сильной эквивалентности, основанный на понятии бимоделирования
- •Алгебраические свойства сильной эквивалентности
- •Распознавание сильной эквивалентности
- •Полиномиальный алгоритм распознавания сильной эквивалентности
- •Минимизация процессов
- •Минимальные процессы относительно
- •Алгоритм минимизации процессов
- •Наблюдаемая эквивалентность
- •Определение наблюдаемой эквивалентности
- •Логический критерий наблюдаемой эквивалентности
- •Критерий наблюдаемой эквивалентности, основанный на понятии наблюдаемого БМ
- •Алгебраические свойства наблюдаемой эквивалентности
- •Другие критерии эквивалентности процессов
- •Наблюдаемая конгруэнция
- •Мотивировка понятия наблюдаемой конгруэнции
- •Определение понятия наблюдаемой конгруэнции
- •Логический критерий наблюдаемой конгруэнтности
- •Критерий наблюдаемой конгруэнтности, основанный на понятии НБМ
- •Алгебраические свойства наблюдаемой конгруэнции
- •Распознавание наблюдаемой конгруэнтности
- •Минимизация процессов относительно наблюдаемой конгруэнции
- •Рекурсивные определения процессов
- •Процессные выражения
- •Понятие рекурсивного определения процессов
- •Вложение процессов
- •Предел последовательности вложенных процессов
- •Процессы, определяемые процессными выражениями
- •Эквивалентность РО
- •Доказательство эквивалентности процессов при помощи РО
- •Проблемы, связанные с понятием РО
- •Примеры доказательства свойств процессов
- •Потоковые графы
- •Мастерская
- •Неконфликтное использование ресурса
- •Планировщик
- •Семафор
- •Процессы с передачей сообщений
- •Действия с передачей сообщений
- •Вспомогательные понятия
- •Типы, переменные, значения и константы
- •Функциональные символы
- •Выражения
- •Понятие процесса с передачей сообщений
- •Множество переменных процесса
- •Начальное условие
- •Операторы
- •Определение процесса
- •Функционирование процесса
- •Пример процесса с передачей сообщений
- •Понятие буфера
- •Представление поведения буфера в виде процесса
- •Операции на процессах с передачей сообщений
- •Префиксное действие
- •Альтернативная композиция
- •Параллельная композиция
- •Ограничение
- •Переименование
- •Эквивалентность процессов
- •Понятие конкретизации процесса
- •Понятие эквивалентности процессов
- •Процессы с составными операторами
- •Мотивировка понятия процесса с составными операторами
- •Понятие составного оператора
- •Понятие процесса с СО
- •Функционирование процесса с СО
- •Операции на процессах с СО
- •Преобразование процессов с передачей сообщений в процессы с СО
- •Конкатенация СО
- •Редукция процессов с СО
- •Пример редукции
- •Понятие конкретизации процесса с СО
- •Отношения эквивалентности на процессах с СО
- •Метод доказательства наблюдаемой эквивалентности процессов с СО
- •Пример доказательства наблюдаемой эквивалентности процессов с СО
- •Дополнительные замечания
- •Другой пример доказательства наблюдаемой эквивалентности процессов с СО
- •Рекурсивные определения процессов
- •Примеры процессов с передачей сообщений
- •Разделение множеств
- •Задача разделения множеств
- •Распределённый алгоритм решения задачи разделения множеств
- •Процессы Small и Large
- •Анализ алгоритма разделения множеств
- •Вычисление квадрата
- •Сети Петри
- •Протоколы передачи данных в компьютерных сетях
- •Понятие протокола
- •Методы исправления искажений в кадрах
- •Методы обнаружения искажений в кадрах
- •Пример протокола
- •Протокол с чередующимися битами
- •Двунаправленная передача
- •Дуплексный протокол с чередующимися битами
- •Двунаправленная конвейерная передача
- •Протокол скользящего окна с возвратом
- •Протокол скользящего окна с выборочным повтором
- •Криптографические протоколы
- •Понятие криптографического протокола
- •Шифрование сообщений
- •Формальное описание КП
- •Примеры КП
- •Представление структур данных в виде процессов
- •Понятие структуры данных
- •Семантика языка параллельного программирования
- •Описание языка параллельного программирования
- •Конструкции языка L
- •Программы на языке L
- •Семантика языка L
- •Семантика выражений
- •Семантика деклараций
- •Семантика операторов
- •Исторический обзор и современное состояние дел
- •Робин Милнер
- •Исчисление взаимодействующих систем (CCS)
- •Теория взаимодействующих последовательных процессов (CSP)
- •Алгебра взаимодействующих процессов (ACP)
- •Процессные алгебры
- •Мобильные процессы
- •Гибридные системы
- •Другие математические теории и программные средства, связанные с моделированием процессов
- •Бизнес-процессы
def |
{s0} |
– SPN = |
• Пусть t – произвольный переход сети N, и множества in(t) и out(t) имеют вид {u1, . . . , un} и {v1, . . . , vm} соответственно.
Тогда процесс PN содержит переход из s0 в s0 с меткой
xu1 |
1:= xu1 |
1, . . . , xun := xun |
|
1 |
|
(xu |
> 0) |
. . . (xun > 0) ? |
− |
|
|
|
− |
|
|||
xv1 := xv1 + 1, . . . , xvm := xvm |
+ 1 |
||||
|
|
|
|
|
|
8.4Протоколы передачи данных в компьютерных сетях
8.4.1Понятие протокола
Важным примером процессов с передачей сообщений являются
протоколы передачи данных в компьютерных сетях (называемые ниже просто протоколами).
Каждый протокол можно рассматривать как совокупность нескольких взаимодействующих процессов, в которую входят
•процессы, выполняющие формирование, отправление, приём и обработку сообщений (такие процессы называются агентами протокола, а сооб-
щения, пересылаемые от одного агента другому, называются кадрами (frame))
•и процесс, являющийся моделью поведения среды, через которую передаются кадры (такую среду обычно называют
каналом связи).
Проходя через среду, кадры могут искажаться или пропадать (например, в результате воздействия радиопомех). Поэтому каждый кадр должен содержать
•не только ту информацию, которую один агент желает передать другому, но и
249
•средства, позволяющие получателю этого кадра выяснить, был ли этот кадр искажён в процессе передачи.
Ниже мы рассматриваем некоторые методы распознавания искажений в кадрах. Эти методы делятся на два класса:
1.методы, позволяющие
•не только установить факт искажения ,
•но и определить искажённые биты кадра и исправить их
(рассматриваются в параграфе 8.4.2), и
2.методы, позволяющие лишь установить факт искажения кадра (рассматриваются в параграфе 8.4.3).
8.4.2Методы исправления искажений в кадрах
Методы распознавания искажений в кадрах, позволяющие
•не только установить факт искажения, но и
•определить номера искажённых битов и исправить их
используются в таких ситуациях, когда вероятность того, что каждый передаваемый кадр будет искажён при передаче, является высокой. Например, такая ситуация имеет место в беспроводной связи.
Каждый кадр представляет собой битовую строку. Искажение кадра заключается в инвертировании некоторых битов этого кадра.
Если известно максимальное количество битов кадра, которые могут быть инвертированы, то для распознавания инвертированных битов и их исправления могут быть использованы методы кодирования с исправлением ошибок, которые составляют одно из направлений теории кодирования.
В этом параграфе мы рассматриваем метод кодирования с исправлением ошибок в простейшем случае, когда в кадре может быть инвертировано не более одного бита. Данный метод
250
называется кодом Хэмминга для исправления одной ошибки (существуют коды Хэмминга для исправления произвольного количества ошибок).
Идея данного метода заключается в том, что биты кадра делятся на два класса:
•информационные биты (содержащие ту информацию, которую отправитель хочет передать получателю), и
•контрольные биты (значения которых вычисляются по значениям информационных битов).
Пусть кадр f имеет вид (b1, . . . , bn), и
•количество информационных битов в нём равно k,
•а количество контрольных битов – r,
т.е. n = k + r.
Поскольку отправитель может размещать свою информацию в k информационных битах, то мы можем считать, что информация, которую отправитель передаёт получателю в кадре f, представляет собой битовую строку M размера k. Кадр, получаемый из строки M дополнением её контрольными битами, мы будем обозначать знакосочетанием ϕ(M).
Для каждого кадра f обозначим знакосочетанием hfi совокупность всех кадров, получаемых из f инвертированием не более одного бита. Очевидно, что количество элементов в hfi равно n + 1.
Предположение о том, что в кадре ϕ(M) при передаче может произойти искажение не более чем в одном бите, можно переформулировать следующим образом: получатель может получить вместо ϕ(M) любой кадр из множества hϕ(M)i.
Нетрудно видеть, что для того, чтобы получатель для каждого M {0, 1}k мог по произвольному кадру из hϕ(M)i однозначно восстановить M, необходимо и достаточно выполнение условия
M1, M2 {0, 1}k M1 6= M2 hϕ(M1)i ∩ hϕ(M2)i = (8.11)
251
т.е. совокупность подмножеств множества {0, 1}n вида
{hϕ(M)i | M {0, 1}k}
состоит из непересекающихся подмножеств. Поскольку
•количество таких подмножеств = 2k, и
•каждое из этих подмножеств состоит из n + 1 элемента
то для выполнения условия (8.11) должно быть верно неравен-
ство
(n + 1) · 2k ≤ 2n
которое можно переписать в виде
(k + r + 1) ≤ 2r |
(8.12) |
Нетрудно доказать, что при каждом фиксированном k > 0 неравенство (8.12) (где r предполагается положительным) эквивалентно неравенству
r0 ≤ r
где r0 зависит от k, и представляет собой нижнюю оценку количества контрольных битов.
Число r0 нетрудно вычислить, когда k имеет вид
k = 2m − m − 1, где m ≥ 1 |
(8.13) |
в этом случае (8.12) можно переписать в виде |
|
2m − m ≤ 2r − r |
(8.14) |
что эквивалентно m ≤ r (т.к. функция 2x − x монотонна при x ≥ 1).
Таким образом, в данном случае нижняя оценка количества контрольных битов r0 равна m.
Оказывается, что данная оценка достижима: существует метод кодирования с исправлением одной ошибки, при котором количество r контрольных битов совпадает с минимально возможным значением r0. Ниже мы излагаем метод такого кодирования.
252
Если k имеет вид (8.13), и r = r0 = m, то n = 2m − 1, т.е. номера битов кадра (b1, . . . , bn) можно представлять кортежами из {0, 1}m: каждый номер i {1, . . . , n} представляется двоичной записью числа i, дополненной слева нулями до кортежа длины m.
Мы будем полагать, что номера контрольных битов имеют кортежную запись
(0 . . . 1 . . . 0)
(одна единица, и остальные нули).
Значения контрольных битов мы будем вычислять следующим образом: для каждого j = 1, . . . , m значение контрольного бита с кортежным номером (0 . . . 1 . . . 0) (единица в j–й позиции) равно сумме по модулю 2 значений информационных битов, кортежная запись номеров которых содержит 1 в j–й позиции.
При получении кадра (b1, . . . , bn) мы проверяем m равенств
X
bi1...im = 0 (j = 1, . . . , m) |
(8.15) |
ij=1
(где сумма рассматривается по модулю 2). Возможны следующие случаи.
•При передаче этого кадра не было искажений. В этом случае все равенства (8.15) будут верны.
•При передаче этого кадра произошло инвертирование контрольного бита с кортежным номером (0 . . . 1 . . . 0) (единица в j–й позиции).
Нетрудно видеть, что в этом случае среди равенств (8.15) будет неверно только равенство номер j.
•При передаче этого кадра произошло инвертирование информационного бита с кортежным номером, содержащим единицы в позициях j1, . . ., jl.
Нетрудно видеть, что в этом случае среди равенств (8.15) будут неверны только равенства с номерами j1, . . ., jl.
Таким образом, во всех случаях мы можем
253