ВВЕДЕНИЕ
Моделирование – это одна из основных категорий теории познания. Моделирование – это исследование каких-либо явлений, процессов или систем объектов путем построения и изучения их моделей; использование моделей для определения или уточнения характеристик и рационализации способа построения вновь конструируемых объектов. Модель представляет собой аналог определенного фрагмента природной или социальной реальности, являющейся оригиналом модели. Модель может служить для хранения и расширения знания об оригинале, преобразования или управления им. Замещение оригинала моделью производится с целью упрощения, удешевления, ускорения, фиксации или изучения свойств оригинала.
Моделирование становится одной из основных функций вычислительных систем. Сами вычислительные системы также являются объектами моделирования. Моделирование целесообразно использовать на этапе проектирования вычислительных систем и для анализа функционирования действующих систем в экстремальных условиях или при изменении их состава, структуры, способов управления или рабочей нагрузки. Применение моделирования на этапе проектирования позволяет анализировать варианты проектных решений, проверять производительность и работоспособность, выявлять дефицитные и мало загруженные ресурсы, вычислять ожидаемые времена реакции и принимать решения по рациональному изменению состава и структуры вычислительной системы или по способу организации вычислительного процесса.
При анализе систем с помощью моделирования определят границы работоспособности системы, выполняют имитацию экстремальных условий, которые могут возникнуть в процессе функционирования системы.
Применение моделирования может быть полезным при разработке стратегии развития вычислительных систем, их усовершенствования и образования связей при создании сетей, при изменении состава, числа и частоты решаемых задач. Целесообразно использовать моделирование для действующих вычислительных систем, так как можно опытным путем проверить адекватность модели и оригинала и точнее определить те параметры системы и внешних воздействий на нее, которые служат исходными данными для моделирования. Моделирование реальной вычислительной системы позволяет выявить ее резервы и прогнозировать качество функционирования вычислительной системы при любых изменениях.
В ходе выполнения курсовой работы необходимо сформулировать задачу моделирования в соответствии с конкретными целями моделирования; разработать формализованную модель в виде модели системы массового обслуживания (СМО); провести аналитический расчет основных характеристик СМО; разработать программную модель на основе алгоритмического языка описания модели; составить программу на языке имитационного моделирования GPSS, провести ее отладку, проверку адекватности модели; оценить и проанализировать полученные результаты моделирования.
Пакет моделирования дискретных систем GPSS PC предназначен для имитационного моделирования сложных производственных, вычислительных и информационных систем. Средства системы GPSS PC ориентированы на построение моделей вычислительных систем и проведение машинного эксперимента с целью их анализа только на самом верхнем (системном) этапе проектирования. Во входной язык пакета GPSS входят специальные средства позволяющие описывать как сами системы, так и динамику их поведения. При использовании системы GPSS для проектирования средств САПР, динамическим объектам соответствуют единицы информации (данных или управляющих сигналов), передаваемые между устройствами (узлами, блоками) системы. В качестве таких единиц могут выступать как отдельные сигналы, так и их совокупности - пакеты данных и целые задачи по их обработке.
1.ПОСТРОЕНИЕ СТРУКТУРНОЙ СХЕМЫ МОДЕЛИ
Структурная схема содержит пять основных блоков: источник информации А, источник информации В с начальной задержкой, блок отбраковки данных, блок сжатия данных и блок обработки данных. Из двух источников информации А и В данные поступают на блок отбраковки данных. После отбраковки на блок сжатия поступает 75% данных. В блоке сжатия данных выполняется операция сжатия данных, в результате которой выходной поток второго блока уменьшается на 2/3 по сравнению с входным. После этого данные поступают в блок обработки.
Структурная схема данной модели представлена на Рис.1
Рис.1. Структурная схема модели.
2.ОПИСАНИЕ СЕТИ В ВИДЕ СИСТЕМЫ МАССОВОГО ОБСЛУЖИВАНИЯ
После того, как построена структурная схема модели, необходимо ее представить в виде разомкнутой сети систем массового обслуживания (СМО), где каждая СМО будет моделировать одно или несколько устройств исходной системы передачи данных. Это необходимо сделать, чтобы осуществить моделирование исходной системы на языке GPSS. Схема модели в виде системы массового обслуживания изображена на рис.2.
Рис.2.Схема модели в виде системы массового обслуживания.
где: ADV_А- СМО, моделирующая задержку поступления заявки от
источника информации А;
ADV_В - СМО, моделирующая задержку поступления заявки от
источника информации В;
BUF1 - СМО, моделирующая входной буфер блока отбраковки данных;
BL1 - СМО, моделирующая работу блока отбраковки данных;
BUF2 - СМО, моделирующая входной буфер блока сжатия данных;
BL2 - СМО, моделирующая работу блока сжатия данных за время:
1) 6±2 мс;
2) 8±3 мс;
3) 10±4 мс;
CON – СМО, моделирующая блок задержки передачи по линии связи;
BUF3 - СМО, моделирующая входной буфер блока обработки данных;
BL3 - СМО, моделирующая работу блока обработки данных.
3.ФОРМАЛИЗАЦИЯ И АЛГОРИТМИЗАЦИЯ МОДЕЛИ
На основе составленной выше модели составляется программа на языке моделирования GPSS. Но сначала опишем словами, что в итоге программа должна делать.
1. Сначала вырабатываются заявки от двух источников: от источника А информация поступает через 12 5 единиц машинного времени(е.м.в.) (1 е.м.в.=1 мс), а от источника В - через 10 1 е.м.в. с начальной задержкой в 4 е.м.в.
2. Затем заявки поступают на входной буфер BUF1 блока отбраковки данных. Операция отбраковки занимает 5 2 е.м.в., в результате чего на следующую обработку поступает 75% данных. Эти данные с задержкой в 7 1 е.м.в. предаются по каналу связи во второй блок.
3. Здесь заявка поступают на входной буфер BUF2 блока сжатия данных. Во втором блоке за 6 2 мс выполняется операция сжатия данных, в результате которой выходной поток второго блока уменьшается на 2/3 по сравнению с входным.
4. После этого поток поступает в третий блок, в котором данные заносятся во входной буфер BUF3, а затем обрабатываются в течение 20 7 мс.
5. После передачи обработанных заявок происходит их уничтожение.
6. Генерация таймера программы, для имитации работы системы 10000 е.м.в.
Блок-схема программы, моделирующей систему, представлена на рис.3:
4.ИМИТАЦИОННЫЙ ЭКСПЕРИМЕНТ
4.1 Текст программы
Текст основной программы(файл kurs1.gps)
REAL XAC,1000
SIMULATE **выполнить моделирование
BL1 EQU 1 **присвоение числового значения блоку отбраковки данных
BL2 EQU 2 ** присвоение числового значения блоку сжатия данных
BL3 EQU 3 ** присвоение числового значения блоку обработки данных
BUF1 EQU 4 ** присвоение числовых значений входным буферам блоков
BUF2 EQU 5 **соответственно отбраковки, сжатия, обработки данных
BUF3 EQU 6 **
CON EQU 7 ** присвоение числового значения блоку задержки по линии связи
GENERATE 12,5,,,1 ** генерация потока А
TRANSFER ,MET1 ** передача пакета данных в буфер блока отбраковки
GENERATE 10,1,4,,2 ** генерация потока В с начальной задержкой 4 мс
MET1 QUEUE BUF1 ** вход пакета данных в буфер блока отбраковки
SEIZE BL1 ** вход в блок отбраковки данных
DEPART BUF1 ** выход из буфера блока отбраковки данных
ADVANCE 5,2 ** процесс отбраковки
RELEASE BL1 ** освобождение блока отбраковки
TRANSFER .25,MET2,METTER ** передача 75% данных в буфер блока сжатия
SEIZE CON ** вход в блок задержки по линии связи
ADVANCE 7,1 ** задержка при передаче по каналу связи
RELEASE CON ** выход из блока задержки
MET2 QUEUE BUF2 ** вход пакета данных в буфер блока сжатия
SEIZE BL2 ** вход в блок сжатия данных
DEPART BUF2 ** выход из буфера блока сжатия данных
ADVANCE 6,2 ** процесс сжатия за время 6±2 мс
RELEASE BL2 ** освобождение блока сжатия
TRANSFER .66,MET3,METTER ** передача 1/3 части потока в буфер
**блока обработки
MET3 QUEUE BUF3 ** вход пакета данных в буфер блока обработки
SEIZE BL3 ** вход в блок обработки данных
DEPART BUF3 ** выход из буфера блока обработки
ADVANCE 20,7 ** процесс обработки данных
RELEASE BL3 ** освобождение блока обработки
METTER TERMINATE ** удаление обработанного пакета из модели
GENERATE 10000 ** генерация транзакта, определяющего завершение
**моделирования через 10 секунд
TERMINATE 1 ** сброс счетчика завершения моделирования
START 1 ** установка счетчика завершения
END ** конец текста модели
Текст дополнительной программы (файл kurs2.gps)
REAL XAC,1000,STO,200
SIMULATE
BL1 EQU 1
BL2 EQU 2
BL3 EQU 3
BUF1 EQU 4
BUF2 EQU 5
BUF3 EQU 6
CON EQU7
GENERATE 12,5,,,1
TRANSFER ,MET1
GENERATE 10,1,4,,2
MET1 QUEUE BUF1
SEIZE BL1
DEPART BUF1
ADVANCE 5,2
RELEASE BL1
TRANSFER .25,MET2,METTER
SEIZE CON
ADVANCE 7,1
DEPART CON
MET2 QUEUE BUF2
SEIZE BL2
DEPART BUF2
ADVANCE 8,3 ** сжатие за время 8±3 мс
RELEASE BL2
TRANSFER .66,MET3,METTER
MET3 QUEUE BUF3
SEIZE BL3
DEPART BUF3
ADVANCE 20,7
RELEASE BL3
METTER TERMINATE
GENERATE 10000
TERMINATE 1
START 1
END
Текст дополнительной программы(файл kurs3.gps)
REAL XAC,1000,STO,400
SIMULATE
BL1 EQU 1
BL2 EQU 2
BL3 EQU 3
BUF1 EQU 4
BUF2 EQU 5
BUF3 EQU 6
CON EQU7
GENERATE 12,5,,,1
TRANSFER ,MET1
GENERATE 10,1,4,,2
MET1 QUEUE BUF1
SEIZE BL1
DEPART BUF1
ADVANCE 5,2
RELEASE BL1
TRANSFER .25,MET2,METTER
SEIZE CON
ADVANCE 7,1
DEPART CON
MET2 QUEUE BUF2
SEIZE BL2
DEPART BUF2
ADVANCE 10,4 ** сжатие за время 10±4 мс
RELEASE BL2
TRANSFER .66,MET3,METTER
MET3 QUEUE BUF3
SEIZE BL3
DEPART BUF3
ADVANCE 20,7
RELEASE BL3
METTER TERMINATE
GENERATE 10000
TERMINATE 1
START 1
END
4.2. Листинг результатов моделирования
KURS1.LST
GPSSR/PC V1.1 5-MAY-2005 11:28 PAGE 1
kurs1.LST=kurs1.gps
LINE BLOCK
1 REAL XAC,1000
2 SIMULATE
3 BL1 EQU 1
4 BL2 EQU 2
5 BL3 EQU 3
6 BUF1 EQU 4
7 BUF2 EQU 5
8 BUF3 EQU 6
9 CON EQU7
10 1 GENERATE 12,5,,,1
11 2 TRANSFER ,MET1
12 3 GENERATE 10,1,4,,2
13 4 MET1 QUEUE BUF1
14 5 SEIZE BL1
15 6 DEPART BUF1
16 7 ADVANCE 5,2
17 8 RELEASE BL1
18 9 TRANSFER .25,MET2,METTER
19 10 SEIZE CON
20 11 ADVANCE 7,1
21 12 DEPART CON
22 13 MET2 QUEUE BUF2
23 14 SEIZE BL2
24 15 DEPART BUF2
25 16 ADVANCE 6,2
26 17 RELEASE BL2
27 18 TRANSFER .66,MET3,METTER
28 19 MET3 QUEUE BUF3
29 20 SEIZE BL3
30 21 DEPART BUF3
31 22 ADVANCE 20,7
32 23 RELEASE BL3
33 24 METTER TERMINATE
34 25 GENERATE 10000
35 26 TERMINATE 1
36 START 1
37 END
SYMBOL VALUE SYMBOL VALUE
====== ===== ====== =====
BL1 1 BL2 2
BL3 3 BUF1 4
BUF2 5 BUF3 6
CON 7 MET1 4
MET2 13 MET3 19
METTER 24
GPSSR/PC V1.1 5-MAY-2005 11:28 PAGE 3
kurs1.LST=kurs1.gps
RELATIVE CLOCK 10000 ABSOLUTE CLOCK 10000
BLOCK COUNTS
BLOCK CURRENT TOTAL BLOCK CURRENT TOTAL BLOCK CURRENT TOTAL
1 1 839 2 0 838 3 1 1004
4 1 1841 5 0 1840 6 0 1840
7 1 1840 8 0 1839 9 0 1839
10 0 0 11 0 0 12 0 0
13 1 1362 14 0 1361 15 0 1361
16 1 1361 17 0 1360 18 0 1360
19 0 431 20 0 431 21 0 431
22 0 431 23 0 431 24 0 1837
25 1 2 26 0 1
FACILITY AVERAGE NUMBER AVERAGE SEIZING PREEMPTING
UTILIZATION ENTRIES TIME/TRAN TRANS.NO. TRANS.NO.
1 0.91 1840 4.96 12
2 0.82 1361 6.05 11
3 0.88 431 20.30
QUEUE MAXIMUM AVERAGE TOTAL ZERO PERC. AVERAGE $AVERAGE TABLE CURRENT
CONTENT CONTENT ENTRIES ENTRIES ZERO TIME/TR TIME/TR NUMBR CONTENT
4 3 0.57 1841 590 32.05 3.09 4.55 1
5 4 0.52 1362 505 37.08 3.81 6.05 1
6 12 2.31 431 64 14.85 53.57 62.91 0
KURS2.LST
GPSSR/PC V1.1 5-MAY-2005 11:31 PAGE 1
kurs2.LST=kurs2.gps
LINE BLOCK
1 REAL XAC,1000,STO,200
2 SIMULATE
3 BL1 EQU 1
4 BL2 EQU 2
5 BL3 EQU 3
6 BUF1 EQU 4
7 BUF2 EQU 5
8 BUF3 EQU 6
9 CON EQU7
10 1 GENERATE 12,5,,,1
11 2 TRANSFER ,MET1
12 3 GENERATE 10,1,4,,2
13 4 MET1 QUEUE BUF1
14 5 SEIZE BL1
15 6 DEPART BUF1
16 7 ADVANCE 5,2
17 8 RELEASE BL1
18 9 TRANSFER .25,MET2,METTER
19 10 SEIZE CON
20 11 ADVANCE 7,1
21 12 DEPART CON
22 13 MET2 QUEUE BUF2
23 14 SEIZE BL2
24 15 DEPART BUF2
25 16 ADVANCE 8,3
26 17 RELEASE BL2
27 18 TRANSFER .66,MET3,METTER
28 19 MET3 QUEUE BUF3
29 20 SEIZE BL3
30 21 DEPART BUF3
31 22 ADVANCE 20,7
32 23 RELEASE BL3
33 24 METTER TERMINATE
34 25 GENERATE 10000
35 26 TERMINATE 1
36 START 1
37 END
SYMBOL VALUE SYMBOL VALUE
====== ===== ====== =====
BL1 1 BL2 2
BL3 3 BUF1 4
BUF2 5 BUF3 6
CON 7 MET1 4
MET2 13 MET3 19
METTER 24
GPSSR/PC V1.1 5-MAY-2005 11:31 PAGE 3
kurs2.LST=kurs2.gps
RELATIVE CLOCK 10000 ABSOLUTE CLOCK 10000
BLOCK COUNTS
BLOCK CURRENT TOTAL BLOCK CURRENT TOTAL BLOCK CURRENT TOTAL
1 1 848 2 0 847 3 1 1000
4 1 1846 5 0 1845 6 0 1845
7 1 1845 8 0 1844 9 0 1844
10 0 0 11 0 0 12 0 0
13 106 1374 14 0 1268 15 0 1268
16 1 1268 17 0 1267 18 0 1267
19 1 464 20 0 463 21 0 463
22 1 463 23 0 462 24 0 1735
25 1 2 26 0 1
FACILITY AVERAGE NUMBER AVERAGE SEIZING PREEMPTING
UTILIZATION ENTRIES TIME/TRAN TRANS.NO. TRANS.NO.
1 0.92 1845 4.98 101
2 1.00 1268 7.88 23
3 0.92 463 19.98 62
QUEUE MAXIMUM AVERAGE TOTAL ZERO PERC. AVERAGE $AVERAGE TABLE CURRENT
CONTENT CONTENT ENTRIES ENTRIES ZERO TIME/TR TIME/TR NUMBR CONTENT
4 4 0.71 1846 551 29.85 3.83 5.46 1
5 110 56.20 1374 79 5.75 409.03 433.98 106
6 10 2.67 464 49 10.56 57.57 64.37 1
KURS3.LST
GPSSR/PC V1.1 5-MAY-2005 11:33 PAGE 1
kurs3.LST=kurs3.gps
LINE BLOCK
1 REAL XAC,1000,STO,400
2 SIMULATE
3 BL1 EQU 1
4 BL2 EQU 2
5 BL3 EQU 3
6 BUF1 EQU 4
7 BUF2 EQU 5
8 BUF3 EQU 6
9 CON EQU7
10 1 GENERATE 12,5,,,1
11 2 TRANSFER ,MET1
12 3 GENERATE 10,1,4,,2
13 4 MET1 QUEUE BUF1
14 5 SEIZE BL1
15 6 DEPART BUF1
16 7 ADVANCE 5,2
17 8 RELEASE BL1
18 9 TRANSFER .25,MET2,METTER
19 10 SEIZE CON
20 11 ADVANCE 7,1
21 12 DEPART CON
22 13 MET2 QUEUE BUF2
23 14 SEIZE BL2
24 15 DEPART BUF2
25 16 ADVANCE 10,4
26 17 RELEASE BL2
27 18 TRANSFER .66,MET3,METTER
28 19 MET3 QUEUE BUF3
29 20 SEIZE BL3
30 21 DEPART BUF3
31 22 ADVANCE 20,7
32 23 RELEASE BL3
33 24 METTER TERMINATE
34 25 GENERATE 10000
35 26 TERMINATE 1
36 START 1
37 END
SYMBOL VALUE SYMBOL VALUE
====== ===== ====== =====
BL1 1 BL2 2
BL3 3 BUF1 4
BUF2 5 BUF3 6
CON 7 MET1 4
MET2 13 MET3 19
METTER 24
GPSSR/PC V1.1 5-MAY-2005 11:33 PAGE 3
kurs3.LST=kurs3.gps
RELATIVE CLOCK 10000 ABSOLUTE CLOCK 10000
BLOCK COUNTS
BLOCK CURRENT TOTAL BLOCK CURRENT TOTAL BLOCK CURRENT TOTAL
1 1 816 2 0 815 3 1 1003
4 0 1817 5 0 1817 6 0 1817
7 1 1817 8 0 1816 9 0 1816
10 0 0 11 0 0 12 0 0
13 341 1332 14 0 991 15 0 991
16 1 991 17 0 990 18 0 990
19 1 341 20 0 340 21 0 340
22 1 340 23 0 339 24 0 1472
25 1 2 26 0 1
FACILITY AVERAGE NUMBER AVERAGE SEIZING PREEMPTING
UTILIZATION ENTRIES TIME/TRAN TRANS.NO. TRANS.NO.
1 0.90 1817 4.96 348
2 1.00 991 10.08 163
3 0.68 340 19.90 63
QUEUE MAXIMUM AVERAGE TOTAL ZERO PERC. AVERAGE $AVERAGE TABLE CURRENT
CONTENT CONTENT ENTRIES ENTRIES ZERO TIME/TR TIME/TR NUMBR CONTENT
4 5 0.54 1817 619 34.07 2.98 4.51 0
5 342 176.99 1332 42 3.15 1328.75 1372.01 341
6 4 0.42 341 126 36.95 12.42 19.70 1
5.ЗАКЛЮЧЕНИЕ
За единицу времени моделирования принимаю 1 мс. Процесс моделирования проводится в течение 10000 единиц времени моделирования.
При моделировании с входной частотой поступления заявок, поступающих от трех датчиков – А и В с интервалами 12 5 мс и 10 1 мс соответственно, не произошло никаких сбоев, т. е. не произошло переполнения буферов системы, переполнения области транзактов, все заявки пошли на обработку (не произошла потеря информации), т.е. система является работоспособной.
От первого датчика исходит 839 заявок, от второго 1004 заявок.
Статистика по работе входного буфера системы и буферов других блоков системы:
1. Максимальное содержимое входного буфера BUF1 для первого блока системы равно 3;
2. Максимальное содержимое входного буфера BUF2 для второго блока системы равно 4
3. Максимальное содержимое входного буфера BUF3 для третьего блока системы 12.
Соответственно следует выбрать емкости очередей равными:
Б1=4, Б2=5, Б3=13.
При определении характеристик памяти BUF1:
Среднее содержимое 0.51 заявок.
Общее число входов в очередь 1841.
Число «нулевых» входов в очередь 590, что составляет 32,05% от общего числа входов в очередь
Среднее время пребывания транзакта в очереди =3.09 мс
Содержимое очереди на момент прекращения моделирования - 1 заявка
Максимальное содержимое очереди =3
При определении характеристик памяти BUF2:
Среднее содержимое 0,52 заявки.
Общее число входов в очередь 1362.
Число «нулевых» входов в очередь 505.
Среднее время пребывания транзакта в очереди 3.81 мс
Содержимое очереди на момент прекращения моделирования 1 заявка
Максимальное содержимое очереди 4
При определении характеристик памяти BUF3:
Среднее содержимое 2.31 заявок.
Общее число входов в очередь 431.
Среднее время пребывания транзакта в очереди =53.57 мс.
Содержимое очереди на момент прекращения моделирования 0 заявок.
Максимальное содержимое очереди 12
На BUF1 поступает 1841 заявки, на BUF2 поступает 1362 заявка, на BUF3 поступает 431 заявка.
Для определения изменений характеристик системы, если сжатие данных будет выполняться за 8 3 мс и за 10 4 мс, увеличиваем объем памяти BUF2 до 200 и до 400 соответственно.
Если сжатие данных будет выполняться за 8 3 мс, то
изменяются следующие параметры памяти:
Для BUF1:
Общее число входов в очередь 1846
Среднее время пребывания транзакта в очереди 3.83 мс
Максимальное содержимое очереди 4
Для BUF2:
Среднее содержимое 56.20 заявок.
Общее число входов в очередь 1374.
Среднее время пребывания транзакта в очереди 409.03 мс.
Содержимое очереди на момент прекращения моделирования 106 заявок.
Максимальное содержимое очереди 110.
Для BUF3:
Среднее содержимое 2.67 заявка.
Общее число входов в очередь 464.
Среднее время пребывания транзакта в очереди 57.57 мс
Содержимое очереди на момент прекращения моделирования 1 заявка.
Максимальное содержимое очереди 10.
От первого датчика исходит 848 заявок, от второго 1000 заявок.
Если сжатие данных будет выполняться за 10 4 мс, то
изменяются следующие параметры памяти:
Для BUF1:
Максимальное содержимое очереди 5
Общее число входов в очередь 1817.
Среднее время пребывания транзакта в очереди 2.98 мс.
Содержимое очереди на момент прекращения моделирования 0 заявок.
Для BUF2:
Среднее содержимое 176.99 заявок.
Общее число входов в очередь 1332.
Среднее время пребывания транзакта в очереди 1328.75 мс.
Содержимое очереди на момент прекращения моделирования 341 заявка.
Максимальное содержимое очереди 342
Для BUF3:
Максимальное содержимое очереди 4.
Среднее содержимое 0.42 заявки.
Общее число входов в очередь 341
Среднее время пребывания транзакта в очереди 12.42 мс.
Содержимое очереди на момент прекращения моделирования 1заявка.
От первого датчика исходит 816 заявок, от второго 1003 заявки.
|