Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
imit_Model_lektsii.doc
Скачиваний:
8
Добавлен:
22.09.2019
Размер:
427.01 Кб
Скачать

Обработка событий в представленной системе

При обработке событий существует ряд этапов:

1. определение времени наступления ближайшего события;

2. увеличение таймера модели (счетчика времени) до значения времени ближайшего события;

3. определение типа основного события: 1-ый, 2-ой или 3-ий (завершение моделирования);

4. если 1-ый тип основного события, то выполняются действия, связанные с обработкой этого события и далее осуществляется переход к п.1.

5. если 2-ой тип - то аналогично 1-ому типу (см.п.4);

6. если 3-ий тип, то необходимо выдать результаты моделирования и завершить процесс.

Работа системного таймера

1 .

1 t1

2 .

1 t2 t3

Пусть в первый момент времени произошло событие 1-ого типа и планируется момент следующего появления события 1-ого типа (t1). Процессор планирует время выполнения этой команды (t2). Пусть вся модель моделируется в течение времени t3. В этой ситуации таймер получит значение min(t1,t2,t3). Так как ЦП может находиться в состоянии покоя (например при t1=25,t2=20) ,то для него время моделирования назначается t3+1.

Одновременные события.

Если оба события происходят одновременно, то возникает вопрос - зависит ли результат моделирования от порядка их обработки? Да зависит, так как машина выполняет команды последовательно, хотя сами процессы параллельные. Рассмотрим на примере, как порядок моделирования влияет на статистику.

Пример: Пусть поступление команды из ОП (событие 1-ого типа) происходит одновременно с окончанием обслуживания команды в ЦП(событие 2-ого типа).

1 вариант. Если сначала будет выполняться событие 1-ого типа, то к моменту появления команды из памяти процессор будет занят, и команда поступит в БП. Затем начнется обработка 2-ого события, то есть ЦП обратится к буферу и возьмет из него команду.

2 вариант. Если сначала будет выполняться событие 2-ого типа, то ЦП, закончив обработку очередной команды, будет ждать событие 1-ого типа, после чего процессор приступит к обработке следующей команды.

Этот пример показывает, как искажается статистика при моделировании тракта - в 1 варианте фиксируется пребывание команды в буферной памяти в течение нулевого времени, во 2-ом - ЦП находится нулевое время в состоянии покоя.

Получение значений случайных чисел.

В системе моделирования существует возможность получить значение случайной величины в полуинтервале [0,1), причем появление того или иного числа равновероятно. Для того, чтобы получить такие числа, существуют два подхода: аппаратурный и программный. Аппаратурный - существует соответствующая аппаратура, которая выдает случайное число в зависимости от значений на своих внутренних регистрах.

В GPSS используется программный подход. Рассмотрим получение случайных чисел на примере.

Пр.: берем два целых числа М и К. Пусть М=5167, а К=К0=3729

1) М*К0=19267743 К1=7743 (младшее четырехразрядное десятичное число)

0.2677 - первое случайное число (2-ой и 1-ый разряд четырехразрядного десятичного числа).

2) М*К1=5167*7743=40008081  К2=8081

 0.008

и так далее, пока на каком-то шаге р Кр=Кс при р>c, следовательно числа будут повторяться и можно говорить о периоде повторения случайных чисел. Найдем максимальный период из теории умножения целых чисел:

1) Возьмем числа от 0 до 9999. Из них - 5 тыс.чисел - нечетные. Возьмем эти числа.

2) если Кр оканчивается на 5, то Кр+1 тоже окончится на 5 (мы уже убрали четные числа) следовательно максимальный период будет равен 4 тыс.

Случайные числа, описанные выше, называются квазислучайными.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]