Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Литература / Compyuternoe_modelirovanie_v_AnyLogic_7_Boev_VD.pdf
Скачиваний:
228
Добавлен:
12.02.2018
Размер:
8.72 Mб
Скачать

4.1.8.2.5. Блок Буфер 2

Блок Буфер 2 предназначен для приема и хранения сообщений, передаваемых по каналам направлений. Он состоит из четырёх буферов — для каждого направления свой буфер.

Алгоритм работы буфера каждого из направлений такой же, как и алгоритм работы буфера 1 (см. рис. 4.13).

Реализуется каждый из буферов также объектом queue.

1.В Палитре выделите Презентация. Перетащите элемент

Прямоугольник (см. рис. 4.11).

2.На странице Основные панели Свойства в поле Имя:

оставьте предложенное системой Rectangle. Не устанавливайте флажок Отображать имя.

3.На странице Местоположение и размер панели Свойства

введите в поля X: 550, Y: 20, Ширина: 140, Высота: 290.

4.Перетащите элемент text и на странице Основные панели

Свойства в поле Текст: введите Буфер 2.

5.Перетащите пять объектов enter, четыре объекта queue и один объект sink, разместите, дайте имена и соедините так, как на рис. 4.11.

6.Выделите элемент buferNapr1, вход которого соединён с

выходом enter1 и установите значения свойств.

7.В поле Тип заявки: Agent замените Message.

8.Вместимость emkBuferNapr1

9.В поле Действия При входе введите:

tekEmkNapr1 += entity.dlina;

10.В поле Действия При выходе введите: tekEmkNapr1 -= entity.dlina;

11.Установите флажок Включить сбор статистики.

12.Выделите элемент buferNapr2, вход которого соединен с выходом enter2 и установите значения свойств.

13.В поле Тип заявки: Agent замените Message.

14.Вместимость emkBuferNapr2

15.В поле Действия При входе введите:

tekEmkNapr2 += entity.dlina;

16. В поле Действия При выходе введите: tekEmkNapr2 -= entity.dlina;

152

17.Установите флажок Включить сбор статистики.

18.Выделите элемент buferNapr3, вход которого соединен с

выходом enter3 и установите значения свойств.

19.В поле Тип заявки: Agent замените Message.

20.Вместимость emkBuferNapr3

21.В поле Действия При входе введите:

tekEmkNapr3 += entity.dlina;

22.В поле Действия При выходе введите: tekEmkNapr3 -= entity.dlina;

23.Установите флажок Включить сбор статистики.

24.Выделите элемент buferNapr4, вход которого соединен с выходом enter4 и установите значения свойств.

25.В поле Тип заявки: Agent замените Message.

26.Вместимость emkBuferNapr4

27.В поле Действия При входе введите:

tekEmkNapr4 += entity.dlina;

28.В поле Действия При выходе введите: tekEmkNapr4 -= entity.dlina;

29.Установите флажок Включить сбор статистики.

4.1.8.2.6. Организация входных и выходных портов

Также как и для источника сообщений, для маршрутизатора нужно создать выходы, через которые отправлять сообщения, и входы, по которым получать сообщения. Создайте эти входы и выходы.

1.Перетащите элемент Скруглённый прямоугольник.

2.На странице Местоположение и размер панели Свойства

введите в поля X: 536, Y: 340, Ширина: 83, Высота: 110.

3.Из палитры Основная перетащите восемь элементов Порт. Разместите их как на рис. 4.11. В полях Имя: предложенные системой имена замените согласно рис. 4.11. Установите флажки

Отображать имя.

4.Обратите также внимание на то, чтобы у элементов

Скруглённый прямоугольник и Порт был установлен флажок

На верхнем уровне. У остальных элементов сегмента Маршрутизатор этот флажок должен быть сброшенным.

153

5. Соедините выходы элементов buferNapr1… buferNapr4

ссоответствующими портами вых1… вых4, а порты вх1… вх4 —

свходом элемента blokKontrol_1 (Блок контроля 1).

4.1.8.2.7. Имитатор отказов вычислительного комплекса

Принято, что вычислительный комплекс может выходить из строя и отказывать в обработке сообщений. Можно было бы построить имитатор отказов так, что генератор вырабатывает заявкиотказы в количестве, определяемом длительностью времени моделирования. Однако мы сделаем так, что генератор вырабатывает одну заявку, а затем этот процесс повторяется через интервалы времени, равные наработке до очередного отказа.

1.Перетащите элемент Прямоугольник.

2.На странице Местоположение и размер панели Свойства

введите в поля X: 160, Y: 224, Ширина: 340, Высота: 140.

3.Перетащите объект source и два объекта delay. Разместите

исоедините их как на рис. 4.11.

4.Выделите source и установите значения его свойств:

Прибывают согласно Интенсивности Интенсивность прибытия 1 Количество заявок, прибывающих за один раз 1 Ограниченное количество прибытий 1 Максимальное количество прибытий 1

5. Выделите первый объект delay и установите значения его свойств:

Имя: розыгрыш_инт_до_отказа Задержка задаётся Определённое время

Время задержки exponential(1/timeOtkBK)

Вместимость 1

Действия При выходе hold.setBlocked(true);

if (computer.size()!=0) { computer.remove((Message)computer.get(0));

kolPoterBK ++;}

6. Выделите второй объект delay и установите значения его свойств:

Имя: имитация_восст_ВК Задержка задаётся Определённое время

Время задержки exponential(1/timeVosstBK)

154