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

Российский государственный университет

нефти и газа им. И.М. Губкина

Кафедра асу Курсовая работа

по предмету

"Моделирование систем"

Выполнил: Григорьев И. Б.

Группа: АС-08-5

Руководитель: Степанкина О.А.

Москва

2012 год

Постановка задачи (вариант №26):

В узел коммутации сообщений, состоящий из одного общего входного буфера, процессора, двух выходных буферов и двух выходных линий, поступают сообщения с двух направлений. Сообщения с первого и второго направлений поступают через интервалы времени, распределенные нормально с параметрами m1, s1 и m2, s2, соответственно (таблица). Сообщения с первого направления поступают во входной буфер, обрабатываются в процессоре, накапливаются в выходном буфере первой линии и передаются по первой выходной линии. Сообщения со второго направления обрабатываются аналогично, но передаются через второй выходной буфер по второй линии. Применяемый метод контроля требует одновременного присутствия в системе не более трех сообщений с каждого направления.

Если сообщение поступает в систему и застает в ней три сообщения со своего направления, то оно получает отказ и уничтожается. Время обработки процессором одного сообщения составляет Т1 мс, время передачи одного сообщения по первой линии составляет Т2 мс, по второй - T3 мс.

Прибыль от обслуживания сообщений с первого направления составляет d1единиц стоимости, со второго - d2 единиц стоимости. Есть возможность ускорить процесс передачи сообщений по выходным линиям. Уменьшение на одну единицу среднего времени передачи сообщения по первой линии требует z1 единиц стоимости на сообщение, по второй - z2 единиц стоимости.

Определить, при каких характеристиках работы выходных линий достигается максимальная экономическая эффективность узла коммутации сообщений. Выполнить то же при условии, что входящие потоки сообщений - пуассоновские с параметрами λ=1/m1 и λ2 = 1/m2, соответственно.

m1

s1

m2

s2

T1

T2

T3

d1

d2

z1

z2

9

1

7

1

4±1

12±3

11±3

50

80

5

8

Листинг программы:

  1. Нормальный закон распределения:

*Исходные данные

*************************************************************************************

initial X$d1,50 ;Прибыль от обслуж. сообщений с 1-го направления

initial X$d2,80 ;Прибыль от обслуж. сообщений со 2-го направления

initial X$zz1,5 ;На столько уменьшается прибыль при уменьшении времени передачи сообщ. по 1-ой линии на одну единицу

initial X$zz2,8 ;На столько уменьшается прибыль при уменьшении времени передачи сообщ. по 2-ой линии на одну единицу

initial X$ii,0 ;ii и jj - cчетчики для прогонки по всем временам передачи сообщений по линиям

initial X$jj,0

initial X$TOptim1,0 ;Для запоминания оптимального времени передачи по 1-ой линии

initial X$TOptim2,0 ;Для запоминания оптимального времени передачи по 2-ой линии

initial X$KolvoOptim1,0

initial X$KolvoOptim2,0

initial X$MaxPrib,0 ;Максимальная прибыль

initial X$Kolvo1Tip,0 ;Число обработанных сообщений 1-го типа

initial X$Kolvo2Tip,0 ;Число обработанных сообщений 2-го типа

initial X$Prib,0 ;Прибыль от передачи сообщений

TObslug1 variable (12 - X$ii) ;Время обслуживания на первой линии с учетом вычета ii единиц

TObslug2 variable (11 - X$jj) ;Время обслуживания на второй линии с учетом вычета jj единиц

Prib1 variable (50 - 5#(X$ii)) ;Прибыль от передачи сообщения по первой линии

Prib2 variable (80 - 8#(X$jj)) ;По второй линии

*Для проверки

*************************************************************************************

MM Matrix ,1000,5

savevalue kkk,0

*************************************************************************************

*Формирование времени моделирования

*************************************************************************************

generate 1000

start 80

test L X$MaxPrib,X$Prib,Dalshe ;Проверка на максимальность прибыли

savevalue TOptim1,V$TObslug1 ;Сохраняем нужные значения

savevalue TOptim2,V$TObslug2

savevalue MaxPrib,X$Prib

savevalue KolvoOptim1,X$Kolvo1Tip

savevalue KolvoOptim2,X$Kolvo2Tip

transfer ,Dalshe

Dalshe savevalue kkk+,1

msavevalue MM,X$kkk,1,X$ii

msavevalue MM,X$kkk,2,X$jj

msavevalue MM,X$kkk,3,X$Prib

msavevalue MM,X$kkk,4,X$Kolvo1Tip

msavevalue MM,X$kkk,5,X$Kolvo2Tip

savevalue ii+,1

test G X$ii,7,Metka

savevalue ii,0

savevalue jj+,1

terminate 1

Metka terminate 1

*Генерируем поток сообщений 1-го типа (сообщения поступают через моменты времени, распределенные по норм. закону)

*************************************************************************************

generate (Normal(1,9,1))

assign 1,1 ;Обозначаем, что это транзакт именно первого потока

transfer ,Proverka ;Кидаем на проверку

*Генерируем поток сообщений 2-го типа (сообщения поступают через моменты времени, распределенные по норм. закону)

*************************************************************************************

generate (Normal(1,7,1))

assign 1,2 ;Обозначаем, что это транзакт второго потока

transfer ,Proverka ;Кидаем на проверку

*Проверка на длину очередей вых. буферов

*************************************************************************************

Proverka test e p1,1,Proverka2 ;Смотрим, к какому потоку принадлежит транзакт

test L Q$Line1Queue,2,Udalenie ;Проверяем длину очереди 1-го вых. буфера

transfer ,Processor ;Кидаем на процессор

Proverka2 test L Q$Line2Queue,2,Udalenie ;Проверяем длину очереди 2-го вых. буфера

transfer ,Processor ;Кидаем на процессор

*Входной буфер и процессор

*************************************************************************************

Processor queue EnterQueue ;Занимаем очередь во входном буфере (ожидаем обработки процессором)

seize Proc ;Занимаем процессор

depart EnterQueue ;Освобождаем очередь входного буфера

advance 4,1 ;Обработка процессором

release Proc ;Освобождаем процессор

test e p1,1,Line2 ;Смотрим, сообщение какого типа мы обработали (первого или второго)

transfer ,Line1 ;Соответственно посылаем на первую или вторую вых. линию

*Первая выходная линия

*************************************************************************************

Line1 queue Line1Queue ;Занимаем очередь в выходном буфере

первой линии

seize L1 ;Занимаем первую линию

depart Line1Queue ;Освобождаем очередь вых. буфера первой линии

advance V$TObslug1,3 ;Обработка на первой линии

release L1 ;Освобождаем первую линию

transfer ,PodschetEffect ;Кидаем на подсчет эффективности

*Вторая выходная линия

*************************************************************************************

Line2 queue Line2Queue

seize L2

depart Line2Queue

advance V$TObslug2,3

release L2

transfer ,PodschetEffect

*Подсчет эффективности (в зависимости от типа сообщения)

*************************************************************************************

PodschetEffect test E p1,1,PodschetEffect2

savevalue Prib+,V$Prib1

savevalue Kolvo1Tip+,1

transfer ,Udalenie

PodschetEffect2 savevalue Prib+,V$Prib2

savevalue Kolvo2Tip+,1

transfer ,Udalenie

*Удаление транзактов

*************************************************************************************

Udalenie terminate

2. Если входящие потоки сообщений пуассоновские с параметрами λ=1/8 и λ2=1/9, то сообщения будут поступать в систему через интервалы времени, распределенные экспоненциально. Тогда генерирование потоков будет выглядеть следующим образом:

*Генерируем поток сообщений 1-го типа (сообщения поступают через моменты времени, распределенные по эксп. закону)

*****************************************************************************

generate (Exponential(1,0,9))

assign 1,1 ;Обозначаем, что это транзакт именно первого потока

transfer ,Proverka ;Кидаем на проверку

*Генерируем поток сообщений 2-го типа (сообщения поступают через моменты времени, распределенные по эксп. закону)

*****************************************************************************

generate (Exponential(1,0,7))

assign 1,2 ;Обозначаем, что это транзакт второго потока

transfer ,Proverka ;Кидаем на проверку

В отчете получили:

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