Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МиАПО / SIMC_dorab.doc
Скачиваний:
13
Добавлен:
07.02.2016
Размер:
756.22 Кб
Скачать

Приложение6. Примеры моделей Пример 1.

Всякая функция-модель начинается функцией initlist- созданием системной среды. Ее первый параметр задает максималь­ное число транзактов в системе, а второй параметр - число собы­тий.

функцией initcreateинициализируются генераторы транзактов в событиях 1 и 8. Функциейnewfacпо ссылкеfсоздается прибор.

Оператор цикла while(systime<28800)ограничивает время моделирования до 28800 единиц модельного времени. Внутри цикла выполняется функцияplan, которая назначает активный транзакт (на него указывает ссылкаtrans) и текущее событие (значение пе­ременнойsysevent), затем выполняется одно из событий (то, кото­рое было выбрано функциюplan).

В данном примере показана обработка транзактов с различными приоритетами. приоритет назначается присваиванием значения полю транзакта prty.

#include"simc.h"

voidmain() {

//variables

pqueueq,q1,q2; // объявление модельной среды

pfacilityf;

initlist(50); //cоздание системной среды

initcreate(1,0); // иниц. генератора сообщений

initcreate(8,0);

newqueue(q,”Queue Q”); // создание мод. среды

newfac(f,”FacF”);

while(systime<28800){ // огранич. времени моделир.

plan();

switch(sysevent) {

case 1: create(randab(60,780,v1)); break;

case 2: inqueue(q); trans->prty=1; break;

case 3: seize(f); break;

case 4: outqueue(q); break;

case 5: delayt(randab(210,390,v2)); break;

case 6: outfac(f); break;

case 7: destroy(); break;

case 8: create(randab(120,600,v3)); break;

case 9: inqueue(q); trans->prty=1; break;

case 10: seize(f); break;

case 11: outqueue(q); break;

case 12: delayt(randab(70,130,v4)); break;

case 13: outfac(f); break;

case 14: destroy(); break;

};

}

printall();

}

Общие параметры среды: 

Текущее время

2.89e+04

Текущее событие

1

Текущий транзакт

7

Всего событий

1.2e+03

Время моделирования

0 сек.

Среднее время выполнения события

0 сек/событие

 СОБЫТИЕ

1

2

3

4

5

6

7

8

9

10

 ВСЕГО

73

72

138

70

70

70

70

80

80

159

 СОБЫТИЕ

11

12

13

14

15

16

17

18

19

20

 ВСЕГО

79

79

78

78

 

 

 

 

 

 

Очереди

 Очередь

Число входов

Макс. длина

Ср. вр. ож.

Средняя длина

% вх. в пустую оч.

С 0 вр. ож.

Текущ.длина

Без уч. 0 вх.

 Queue

152

10

763

4.03

2.63

4

3

783

Приборы

 Прибор

Число входов

Ср. время обработки

Загрузка

Число захватов

Состояние

 Fac F

149

194

0.995

0

SEIZED

Пример 2.

В этом примере демонстрируется работа с многоканальными ус­тройствами. Функцией newstorageсоздается многоканальное уст­ройство и определяется его емкость. В функцияхenterиleaveвторой параметр задает количество ячеек, занимаемых транзактом при входе в многоканальное устройство.

Модель прогоняется несколько раз при различной емкости мно­гоканального устройства menи различном числе транзактов, цирку­лирующих в модели. После каждого прогона функциейprintallраспечатывается собранная статистика, функциейclear модель сбрасывается в исходное состояние, функциейdestrsуничтожает­ся накопительmen. Затем накопительmenсоздается вновь с новой емкостью, в модель помещается нужное число транзактов и начина­ется следующий прогон.

#include "simc.h"

voidmain() {

//variables

pstoragenowon,men;

initlist(56);

newstorage(nowon,”Nowon ”,50);

for(int vv=53;vv<=55;vv++)

for(int ww=3;ww<=4;ww++) {

for(int k=1;k<=vv;k++)

initcreate(1,0);

newstorage(men,”Men ”,ww);

while(systime<6240) { // огранич. времени моделир.

plan();

switch(sysevent) {

case 1: enter(nowon,1); break;

case 2: delayt(randab(132,182,v1)); break;

case 3: leave(nowon,1); break;

case 4: enter(men,1); break;

case 5: delayt(randab(4,10,v2)); break;

case 6: leave(men,1); break;

case 7: next(1); break;

}

}

printall();

clear();

destrs(men);

}

}

Ниже приводятся результаты моделирования.

Общие параметры среды: 

Текущее время

6.24e+03

Текущее событие

6

Текущий транзакт

30

Всего событий

1.56e+04

Время моделирования

0 сек.

Среднее время выполнения события

0 сек/событие

 СОБЫТИЕ

1

2

3

4

5

6

7

8

9

10

 ВСЕГО

2921

1984

1936

2933

1934

1932

1931

 

 

 

Накопители

 Накопитель

Емк.

Загр.

Ср. время пребывания

Содержимое

Число входов

Текущ.

Макс.

Сред.

 Nowon

50

0.984

155

48

50

49

1984

 Men

3

0.728

7.04

2

3

2.2

1934

 Общие параметры среды: 

Текущее время

6.24e+03

Текущее событие

6

Текущий транзакт

25

Всего событий

3.09e+04

Время моделирования

0.016 сек.

Среднее время выполнения события

5.1852e-07 сек/событие

 СОБЫТИЕ

1

2

3

4

5

6

7

8

9

10

 ВСЕГО

3108

1999

1949

2388

1949

1947

1946

 

 

 

Накопители

 Накопитель

Емк.

Загр.

Ср. время пребывания

Содержимое

Число входов

Текущ.

Макс.

Сред.

 Nowon

50

0.99

155

50

50

49

1999

 Men

4

0.544

6.97

2

4

2.2

1949

 Общие параметры среды: 

Текущее время

6.24e+03

Текущее событие

3

Текущий транзакт

17

Всего событий

4.69e+04

Время моделирования

0.016 сек.

Среднее время выполнения события

3.4151e-07 сек/событие

 СОБЫТИЕ

1

2

3

4

5

6

7

8

9

10

 ВСЕГО

3332

1989

1940

2920

1939

1937

1937

 

 

 

Накопители

 Накопитель

Емк.

Загр.

Ср. время пребывания

Содержимое

Число входов

Текущ.

Макс.

Сред.

 Nowon

50

0.99

155

49

50

49

1989

 Men

3

0.731

7.06

2

3

2.2

1939

 Общие параметры среды: 

Текущее время

6.24e+03

Текущее событие

6

Текущий транзакт

43

Всего событий

6.26e+04

Время моделирования

0.016 сек.

Среднее время выполнения события

2.5576e-07 сек/событие

 СОБЫТИЕ

1

2

3

4

5

6

7

8

9

10

 ВСЕГО

3503

2001

1951

2402

1951

1950

1949

 

 

 

Накопители

 Накопитель

Емк.

Загр.

Ср. время пребывания

Содержимое

Число входов

Текущ.

Макс.

Сред.

 Nowon

50

0.994

155

50

50

50

2001

 Men

4

0.55

7.04

1

4

2.2

1951

 Общие параметры среды: 

Текущее время

6.24e+03

Текущее событие

6

Текущий транзакт

45

Всего событий

7.9e+04

Время моделирования

0.016 сек.

Среднее время выполнения события

2.0246e-07 сек/событие

 СОБЫТИЕ

1

2

3

4

5

6

7

8

9

10

 ВСЕГО

3636

2009

1959

2992

1959

1958

1957

 

 

 

Накопители

 Накопитель

Емк.

Загр.

Ср. время пребывания

Содержимое

Число входов

Текущ.

Макс.

Сред.

 Nowon

50

0.994

154

50

50

50

2009

 Men

3

0.728

6.95

1

3

2.2

1959

 Общие параметры среды: 

Текущее время

6.24e+03

Текущее событие

6

Текущий транзакт

36

Всего событий

9.5e+04

Время моделирования

0.031 сек.

Среднее время выполнения события

3.2627e-07 сек/событие

 СОБЫТИЕ

1

2

3

4

5

6

7

8

9

10

 ВСЕГО

3709

2008

1959

2444

1957

1954

1953

 

 

 

Накопители

 Накопитель

Емк.

Загр.

Ср. время пребывания

Содержимое

Число входов

Текущ.

Макс.

Сред.

 Nowon

50

0.996

155

49

50

50

2008

 Men

4

0.55

7.01

3

4

2.2

1957

Соседние файлы в папке МиАПО