Реализация модели канала
Продолжение темы имитационного моделирования канала коллективного доступа.
При построении алгоритма имитации
работы всех каналов сети, сеть рассматривается как совокупность
параллельно протекающих процессов. Каждый процесс есть некоторая
последовательность событий, приводящих к изменению состояний
синхронных автоматов, описывающих поведение элементов сети, причём,
под событием понимается любое изменение сигналов на входах этих
автоматов.
В общем случае, эти процессы не
должны считаться независимыми, а а должны взаимодействовать между
собой.
Принципы взаимодействия процессов
могут быть проиллюстрированы следующим примером. Представим себе
фрагмент сети, включающий в себя N
абонентов, работающий на одной и той же частоте. Такой фрагмент может
рассматриваться как система массового обслуживания с одним прибором,
который обслуживает некий поток требований от N
станций. Если требование, придя в систему, застаёт прибор свободным,
то оно занимает прибор и обслуживается в нём в течение некоторого
промежутка времени, после чего покидает систему. В противном случае,
требование поступает в очередь к прибору, где будет дожидаться
завершения обслуживания всех ранее поступивших в систему требований.
Причём эта очередь «виртуальна» - требования могут быть
сосредоточены как в одном узле, так и распределены по разным узлам.
В такой системе, на начальных фазах
обслуживания, «передатчик» каждого узла может находиться
в одном из следующих состояний:
- ожидание очередного кадра;
- ожидание освобождения канала;
- запуск таймера, определяющего время начала передачи кадра (основной принцип канального протокола – «слушать», прежде чем «вещать»);
- ожидание завершения данного интервала;
- захват канала и передача кадра.
Переход «передатчика» из
одного состояния в другое, осуществляется под воздействием комбинаций
входных сигналов. Эти сигналы могут поступать, как извне - от
модуля, имитирующего поведение «высшего» уровня, так и от
других автоматов - автоматов того же уровня.
Например, (см. рисунок 1), переход
автомата из состояния «ожидание кадра» в состояние
«ожидание освобождения канала» осуществляется при
появлении сигнала «требование передачи», а переход в
следующее состояние – «запуск таймера отсрочки» -
зависит от состояний аналогичных автоматов, претендующих на тот же
канал.
Если какой либо другой аналогичный
автомат находится в состоянии «захват канала», то
рассматриваемый автомат будет получать сигнал «канал занят».
Рисунок 1
Из рассматриваемого примера видно,
что в моделируемой сети могут сосуществовать параллельные «типовые»
процессы, каждый из которых может находиться в своём уникальном
состоянии. Но, при их имитации на одной ЭВМ, эти события необходимо
рассматривать последовательно. Поэтому, совокупность параллельно
протекающих процессов должна быть представлена в виде упорядоченной
последовательности моментов наступления событий во времени.
При таких условиях, сканируя эту
последовательность, и определяя, в каждый наступивший момент реакции
автоматов на изменения входных сигналов, можно сымитировать любую
ситуацию в системе. При этом, любая сложившаяся ситуация может быть
представлена в виде вектора Z=║Zn║,
каждый элемент которого - Zn,
соответствует конкретному автомату - Mn,
а значение этого элемента – состоянию данного автомата.
Например, если некий автомат M1
занял канал, (состояние St4),
а автомат M2
ожидает его освобождения (состояние St1),
то фрагмент вектора Z
будет содержать информацию, которая показана на рисунке 2:
- Конечный автоматТекущее состояниеM1St4M2St1..
Рисунок 2
При наступлении особого состояния,
(изменении входных сигналов), этот вектор модифицируется с помощью
следующего алгоритма:
- поочерёдно рассматриваются
состояния всех автоматов;
- при рассмотрении каждого состояния
определяется соответствующая ему выходная комбинация - µ;
- на основании полученных µ
отыскиваются входные комбинации для всех автоматов - λ;
- найденные входные комбинации
фиксируются в памяти ЭВМ;
- с помощью таблиц переходов
определяются новые состояния автоматов.
В принципе, такие операции
(«ревизии» состояний системы) можно производить на каждом
такте имитации – любая ситуация может считаться особым
состоянием.
Но такое решение нецелесообразно,
поскольку потребует больших затрат машинного времени. Более
целесообразно считать особыми состояниями только те ситуации, которые
определяют моменты выхода автоматов из пассивных состояний -
состояний ожидания.
В основном, моменты выхода из
пассивных состояний определяются таймерами, поскольку именно они
определяют моменты системного времени, соответствующие узловым
точкам в имитируемых
параллельных процессах.
Состояния этих таймеров –
числа Tk,
которые соответствуют моментам активизации тех или иных автоматов.
Если таймер запущен, то это число должно каким-то образом
уменьшаться, и в тот момент, когда оно станет равным нулю, заданный
тайм-аут должен считаться завершённым.
Как в реальной системе, так и в
имитационной модели, могут одновременно работать k
таймеров, причём каждый из них может завершить отсчёт в конкретный
момент времени – Tk.
Имея такие числа можно определить момент наступления ближайшего
особого состояния системы, которое может быть определено с помощью
проверки условия (1):
- TR = min Tk(1)k
Далее, после активизации
соответствующих процессов, значения всех запущенных таймеров
уменьшается на величину TR,
позволяя тем самым определить момент наступления следующего особого
состояния.
Следует отметить, что особые события
могут порождаться не только таймерами, но и всеми другими автоматами.
Причём эти автоматы могут находиться в пассивных состояниях, время
выхода из которых – Ta,
определить нельзя.
В таких случаях возможно следующее
решение – если входной сигнал не меняет состояния автомата, то
считать Ta
= ∞. В противном же случае считать, что Ta
= 0.
Для определения значения Ta
можно воспользоваться таблицей переходов, действуя следующим образом:
- выделить строку такой таблицы, которая соответствует текущему состоянию автомата;
- убедиться в том, что текущая комбинация входных сигналов соответствует «петле», то есть возвращает автомат в то же состояние, в котором он уже находиться;
- если это условие выполняется – то Ta : = ∞, в противном случае - Ta : = 0.
Например, в представленной на
рисунке 3 таблице переходов, выделенные элементы соответствуют
активным состояниям автомата, которые следует считать особыми
событиями, а все остальные элементы – пассивным состояниям
автомата.
- СостояниеСимволы входного алфавитаλ0λ1λ2λ3λ4λ5λ*St0St0St1St4St4---St1St2St1St4St4---St2------St3St3----St3--St4St0-St4St4---
Рисунок 3
Рассмотренный принцип имитации
поведения сложных систем с дискретными событиями может являться
основой для построения других аналогичных моделей. При этом
программные модули, обеспечивающие имитацию квазипараллельных
процессов в системе, могут оставаться неизменными – если
потребуется исследовать поведение групповых каналов, основанных на
использовании иных протоколов, то программное обеспечение может
оставаться неизменным, и только модели поведения «передатчиков»
и «приёмников» могут быть представлены в виде таблиц
иного содержания.
В то же время, данный принцип может
являться основой для обеспечения наглядной интерпретации поведения
системы. Но это возможно лишь только в том случае, если основными
мотивами расчленения модели на операторы и блоки (конечные автоматы)
будут являться не только «вычислительные удобства» для
программистов, но и категории, понятия и образы, которые понятны и
привычны для большинства специалистов, работающих в данной области.