Диплом, курсовая, контрольная работа
Помощь в написании студенческих работ

Листинг базовой программы

РефератПомощь в написанииУзнать стоимостьмоей работы

TEST E V$Collide, 1, Start_Xmit. SAVEVALUE Xmit_Node, P$Node_ID. ASSIGN Message_Time, V$Msgtime. Сегмент таймера. Исходные данные: ASSIGN Node_ID, V$Node_Select. Free_Node RELEASE P$Node_ID. Fraction_Short_Msgs EQU 600. Interframe_Time EQU 0.0096. Backoff ASSIGN Retries+, 1. Start_Xmit SEIZE Ethernet. SAVEVALUE Xmit_Begin, AC1. Intermessage_Time EQU 1.0. ADVANCE V$Backoff_Delay. ADVANCE… Читать ещё >

Листинг базовой программы (реферат, курсовая, диплом, контрольная)

  • * Аргументы:
  • * 1. Node_Count — Количество узлов, отстоящих друг от друга на 2.5 м.
  • * 2. Min_Msg — Минимальное сообщение (бит).
  • * 3. Max_Msg — Максимальное сообщение (бит).
  • * 4. Fraction_Short_Msgs — Доля коротких сообщений (в долях от тысячи)
  • * 5. Intermessage_Time — Общий интервал между сообщениями.
  • * Исходные данные:
  • * Node_Count = 100 — Общее число узлов Ethernet.
  • * Intermessage_Time=1.0 — Среднее значение общего количества сообщений, поступающих каждую миллисекунду.
  • * Min_Msg = 512 — Минимальное сообщение в битах.
  • * Max_Msg = 12 144 — Максимальное сообщение в битах.
  • * Fraction_Short_Msgs = 600 — Короткие сообщения (в долях от тысячи).
  • * Lot_Time = 0.0512 — Время прохождения 512 битов.
  • * Jam_Time = 0.0032 — Время прохождения 32 битов.
  • * Backoff_Limit = 10 — Не больше, чем 10 повторов в случае коллизии.
  • * Interframe_Time = 0.0096 — Время прохождения 96 битов.
  • ******************************************************************

Node_Count EQU 100.

Intermessage_Time EQU 1.0.

Min_Msg EQU 512.

Max_Msg EQU 12 144.

Fraction_Short_Msgs EQU 600.

Slot_Time EQU 0.0512.

Jam_Time EQU 0.0032.

Backoff_Limit EQU 10.

Interframe_Time EQU 0.0096.

  • ******************************************************************
  • *
  • * Определение функций и переменных 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)/100 000)'GE' (ACl-X$Xmit_Begin).

Msgtime VARIABLE (0.0001)#V$Msgrand.

Msgrand VARIABLE Min_Msg+(RN1'G'Fraction_Short_Msgs)#(Max_MsgMin_Ms).

  • ******************************************************************
  • *
  • * Диаграмма задержки сообщений*
  • ******************************************************************

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, l, Start_Xmit.

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

TEST E V$Collide, 1, Start_Xmit.

* * * * * * * * * * * * * * * * Коллизия * * * * * * * * * * * * * * * * * * * * * *.

Collision PREEMPT Ethernet, PR, Backoff,, RE.

SEIZE Jam.

ADVANCE Jam_Time.

RELEASE Jam.

RELEASE 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.

SAVEVALUE Xmit_Node, P$Node_ID.

SAVEVALUE Xmit_Begin, AC1.

PRIORITY 0.

ADVANCE P$Message_Time.

ADVANCE Interframe_Time.

RELEASE Ethernet.

Free_Node RELEASE P$Node_ID.

DEPART Global_Delays.

TERMINATE.

******************************************************************.

Xmit_Error SAVEVALUE Error_Count+, 1.

TRANSFER, Free Node.

  • ******************************************************************
  • *
  • * Сегмент таймера
  • *
  • ******************************************************************

GENERATE 1000.

TERMINATE 1.

******************************************************************.

Показать весь текст
Заполнить форму текущей работой