Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторные КМ.doc
Скачиваний:
60
Добавлен:
29.03.2016
Размер:
3.23 Mб
Скачать

Лабораторная работа № 25

HАИМЕНОВАНИЕ:Модель сети Ethernet.

1.ЦЕЛЬ РАБОТЫ: Смоделировать сеть Ethernet..

2.Литература:

2.1 Д. Н. ШЕВЧЕНКО, И. Н. КРАВЧЕНЯ «ИМИТАЦИОННОЕ МОДЕЛИРОВАНИЕ НА GPSS» Учебно-методическое пособие.

2.2 http://www.belsut.gomel.by/Ellibrary/12/

imitacionnoe_modelirovanie_gpss_kravchenya_shevchenko.pdf

2.3 http://www.bibliofond.ru/view.aspx?id=490533

2.4 Кельтон, В. Имитационное моделирование / В. Кельтон, A. Jloy. - 3-е изд. - СПб.: Питер, 2004. - 848 с.

2.5 Максимей, И. В. Имитационное моделирование на ЭВМ / И. В. Мак­симей. - М. : Радио и связь, 1988. - 232 с.

2.6 Шрайбер, Т. Дж. Моделирование на GPSS / Т. Дж. Шрайбер. - М. : Машиностроение, 1980. - 593 с.

3.Подготовка к работе:

3.1. Изучить предложенную литературу.

3.2. Подготовить бланк отчёта.

4. ОСНОВНОЕ ОБОРУДОВАНИЕ: 4.1. Персональный IBM PC.

4.2. Программа GPSS World

5. СОДЕРЖАНИЕ ОТЧЕТА:

5.1. Наименование и цель работы.

5.2. Описать модель сети Ethernet.

5.3. Выводы о проделанной работе.

5.4. Ответы на контрольные вопросы.

6. КОНТРОЛЬНЫЕ ВОПРОСЫ:

6.1 Что такое «ASSIGN»?

6.2 ­ Что такое «Node_Count?

6.3 Что такое «Intermessage_Time?

6.4 Что такое «Max_Msg EQU»?

6.5 Что такое «Backrandom»?

6.6 Что такое «SAVEVALUE»?

6.7 Что такое «PRIORITY»?

7.Порядок выполнения работы

Постановка задачи

10-мегабитная сеть Ethernet с сотней подключенных в данный момент рабочих станций работает удовлетворительно. Было определено, что сетевой трафик состоит из двух классов сообщений, которые генерируются с одинаковой пропорцией во всех узлах.  Общая структура входящего потока сообщений в час пик может быть смоделирована как пуассоновский процесс со случайным выбором отдельных рабочих станций.  Необходимо определить влияние подключения к сети дополнительных 100 рабочих станций на ее производительность. 

Приложение.

Листинг

; Пример GPSS World - ETHERNET.GPS  *****************************************************************************  *  * Модель 10-мегабитной сети Ethernet  *  * Сообщения поступают экспоненциально и бывают двух типов: короткие и  * длинные. Выбирается узел и удерживается в течение передачи  * сообщения и всех выдержек времени в случае коллизии.  *  * Каждый узел Ethernet может быть занят одним сообщением до тех пор, пока оно  * не будет отправлено или пока не произойдет некоторое количество коллизий  * (во время попыток передачи другими узлами), после чего объявляется  * постоянная ошибка и узел освобождается.  *  * Время измеряется в миллисекундах. Подразумевается, что отдельные узлы  * отстоят друг от друга на 2,5 м. При расчете окна коллизии для определения  * разделяющего расстояния используется идентификационный номер узла.  * Задержки распространения между смежными узлами  * равны 0,01 микросекунды. Каждый бит перемещается за 0,1 микросекунды.  * Межкадровый интервал моделируется путем задержки сети передающим узлом  * на некоторое дополнительное время, после того как он передал свое  * сообщение.  *  * Сообщения представлены транзактами GPSS. Узлы и сеть представлены  * устройствами GPSS. Дополнительное устройство используется во время передачи  * преднамеренных помех для предотвращения начала передачи нового сообщения.  *  * Коллизия возникает из-за нескольких одновременных попыток передачи 2 или  * более узлов. Задержка распространения сигнала препятствует одновременному  * распознаванию узлов друг другом, тем самым приводя к возможности коллизии.  * Интервал времени, в течение которого сигнал из другого узла может быть  * обнаружен, называется «окном коллизии».  *  * Коллизия представлена лишением передающего транзакта права занимать  * Ethernet и отправкой его в подпрограмму выдержки времени. Новый занимающий  * транзакт передает преднамеренные помехи в Ethernet и затем сам выдерживает  * некоторый временной интервал. Когда отправляется сообщение транзакта,  * транзакт занимает устройство Ethernet с приоритетом 0 и может быть вытеснен  * (PREEMPT) только транзактом с приоритетом 1. Когда транзакт передает  * преднамеренные помехи, он занимает устройство Ethernet с приоритетом 1  * и не может быть вытеснен.  *  * Аргументы:  * 1. Node_Count - Количество узлов, отстоящих друг от друга на 2.5 м.  * 2. Min_Msg – Минимальное сообщение (бит).  * 3. Max_Msg – Максимальное сообщение (бит).  * 4. Fraction_Short_Msgs – Доля коротких сообщений (в долях от тысячи)  * 5. Intermessage_Time – Общий интервал между сообщениями.  *  *****************************************************************************  Node_Count EQU 100 ;Общее число узлов Ethernet.  Intermessage_Time EQU 1.0 ;Среднее значение общего количества сообщений,  ;поступающих каждую миллисекунду.  in_Msg EQU 512 ;Минимальное сообщение в битах.  Max_Msg EQU 12144 ;Максимальное сообщение в битах.  Fraction_Short_Msgs EQU 600 ;Короткие сообщения (в долях от тысячи).  lot_Time EQU 0.0512 ;Время прохождения 512 битов.  Jam_Time EQU 0.0032 ;Время прохождения 32 битов.  Backoff_Limit EQU 10 ;Не больше, чем 10 повторов в случае коллизии.  Interframe_Time EQU 0.0096 ;Время прохождения 96 битов.  *****************************************************************************  *  * Определение функций и переменных GPSS  *  *****************************************************************************  Backoff_Delay VARIABLE Slot_Time#V$Backrandom ;Вычисляется задержка  ;перед повторной попыткой в случае коллизии.  Backrandom VARIABLE 1+(RN4@((2^V$Backmin)-1))  Backmin VARIABLE (10#(10’L’P$Retries))+(P$Retries#(10’GE’P$Retries))  Node_Select VARIABLE 1+(RN3@Node_Count)  Collide VARIABLE ABS((X$Xmit_Node-P$Node_ID)/100000)’GE’(AC1-X$Xmit_Begin)  Msgtime VARIABLE (0.0001)#V$Msgrand  Msgrand VARIABLE Min_Msg+(RN1’G’Fraction_Short_Msgs)#(Max_Msg-Min_Msg)  *****************************************************************************  *  * Диаграмма задержки сообщений  *  *****************************************************************************  Msg_Delays QTABLE Global_Delays,1,1,20  *****************************************************************************  *  * Главная часть модели  *  *****************************************************************************  *  *****************************************************************************  * Генерация сообщений  *****************************************************************************  GENERATE (Exponential(1,0,Intermessage_Time)) ;Генератор  ;отдельных сообщений.  ASSIGN Node_ID,V$Node_Select ;Получить номер узла.  ASSIGN Message_Time,V$Msgtime ;Вычисляется и сохраняется  ;время передачи.  ASSIGN Retries,0 ;При начале нет коллизий.  *****************************************************************************  * Ожидание, пока узел не закончит любую предыдущую работу.  *****************************************************************************  QUEUE Global_Delays ;Начало отсчета времени.  SEIZE P$Node_ID ;Ожидание, занятие узла.  Try_To_Send PRIORITY 1 ;Не отдавать управление.  SEIZE Jam ;Ожидать, пока не завершится  RELEASE Jam ;передача преднамеренных помех.  TEST E F$Ethernet,1,Start_Xmit ;Если Ethernet свободен,  ;переход.  *****************************************************************************  * Ethernet занят. Проверим, находимся ли мы в окне коллизии передающего узла.  * Если это так, данный узел в любом случае начнет передачу, т.к. несущая не  * будет обнаружена. В этом случае мы должны инициировать коллизию.  * Если задержка распространения до передающего узла больше или равна времени  * передачи, происходит коллизия.  *****************************************************************************  TEST E V$Collide,1,Start_Xmit ;Коллизии нет. Переход  ;к ее ожиданию.  * * * * * * * * * * * * * * * * Коллизия * * * * * * * * * * * * * * * * * *  Collision PREEMPT Ethernet,PR,Backoff,,RE ;Удалить занимающий транзакт.  SEIZE Jam ;Передача в Ethernet преднамер. помех.  ADVANCE Jam_Time ;Время передачи помех.  RELEASE Jam ;Конец передачи помех.  RELEASE Ethernet ;Ethernet освобождается.  PRIORITY 0 ;Возвращение к нормальному приоритету.  Backoff ASSIGN Retries+,1 ;Увеличение счетчика повторов.  TEST LE P$Retries,Backoff_Limit,Xmit_Error ;Ограничение  ;попыток.  ADVANCE V$Backoff_Delay ;Ожидание перед началом попытки.  TRANSFER ,Try_To_Send ;Переход к новой попытке.  *****************************************************************************  * Занятие Ethernet и начало передачи.  *****************************************************************************  Start_Xmit SEIZE Ethernet ;Занимает Ethernet, если необходимо, ждет.  SAVEVALUE Xmit_Node,P$Node_ID ;Определение передающего узла.  SAVEVALUE Xmit_Begin,AC1 ;Отмечается начало времени передачи.  PRIORITY 0 ;Обеспечивается то, что транзакт может быть вытеснен.  ADVANCE P$Message_Time ;Ждем, пока сообщение не будет  ;отправлено.  ADVANCE Interframe_Time ;Интервал между сообщениями.  RELEASE Ethernet ;Ethernet освобождается.  Free_Node RELEASE P$Node_ID ;Узел освобождается  DEPART Global_Delays ;для передачи следующего сообщения.  TERMINATE ;Сообщение разрушается.  *****************************************************************************  Xmit_Error SAVEVALUE Error_Count+,1 ;Подсчитывается количество ошибок.  TRANSFER ,Free_Node ;Узел освобождается.  *****************************************************************************  ** Сегмент таймера  *****************************************************************************  GENERATE 1000 ;Каждый транзакт равен 1 секунде.  TERMINATE 1