Контрольная работа - Моделирование работы ЭВМ - файл n1.docx

Контрольная работа - Моделирование работы ЭВМ
скачать (293.1 kb.)
Доступные файлы (2):
n1.docx324kb.11.01.2012 11:49скачать
n2.gps

n1.docx

Министерство образования и науки Российской Федерации

Федеральное агентство по образованию

Государственное образовательное учреждение

высшего профессионального образования

«Кубанский государственный технологический университет»

(КубГТУ)

Кафедра вычислительной техники и АСУ


Компьютерное МОДЕЛИРОВАНИЕ
Контрольная работа № 1
Вариант № 16

Выполнил студент

Куликов П.М.

спец. 230105, 5 курс

шифр 07-ЗК-056
Рецензент

доц. Мурлин А.Г.

_____________________
Краснодар

2012

Содержание контрольной работы:

1 Математическая модель. Описание…………………………...……………...4

2 Схема моделирования. Блок-диаграмма GPSS-модели….………………….5

3 Листинг программы. Описание.……………………………………………....8

3.1 Используемые операторы и примитивы……………..……………..10

4 Результаты работы программы……………………………………………….15

Задание на контрольную работу. Вариант № 16


ЭВМ обслуживает три терминала по круговому циклическому алгоритму, предоставляя каждому терминалу 30 с. Если в течение этого времени задание обрабатывается, то обслуживание завершается; если нет, то остаток задачи становится в специальную очередь, которая использует свободные циклы терминалов, т. е. задача обслуживается, если на каком-либо терминале нет заявок. Заявки на терминалы поступают через 30 ± 5 с и имеют длину 300 ± 50 знаков. Скорость обработки заданий ЭВМ равна 10 знаков/с.

Смоделировать 5 ч работы ЭВМ. Определить загрузку ЭВМ, параметры очереди неоконченных заданий. Определить величину цикла терминала, при которой все заявки будут обслужены без специальной очереди.

1 Математическая модель. Описание


Система, представленная в задаче, относится к категории систем массового обслуживания (СМО). СМО можно представить как совокупность последовательно связанных между собой входящих потоков требований на обслуживание (машин, самолетов, пользователей и т.д.), очередей, каналов обслуживания (станции техобслуживания, аэродромы, ЭВМ и т.д.) и выходящих потоков требований после обслуживания.

Заданную СМО по наличию того или иного признака можно классифицировать следующим образом:

  1. По характеру поступления требований в систему: система с равномерным поступлением требований в систему.

  2. По количеству требований, поступающих в единицу времени: система с ординарным потоком требований, т.к. вероятность поступления двух или более требований в один момент времени очень мала.

  3. По связи между требованиями: система без последствия.

  4. По характеру поведения требований в системе: систему в данной задаче можно классифицировать и как систему с отказами, и как систему с неограниченным ожиданием (т.к. в модели будут присутствовать две очереди на обслуживание, в которых транзакты будут ожидать, пока не обслужатся).

  5. По способу выбора действий на обслуживание: система, обслуживающая заявки по мере их поступления в систему.

  6. По характеру обслуживания требований: система в данной задаче может быть классифицирована и как система с детерминированным временем обслуживания, и как система со случайным временем обслуживания (т.к. время обработки транзактов 305 с).

  7. По числу каналов обслуживания: многоканальная система.

  8. По количеству этапов обслуживания: однофазная система, т.к. выполняемые ею операции обслуживания однородны.

  9. По однородности требований, поступающих на обслуживание: система с однородными требованиями.

  10. По ограниченности потока требований: разомкнутая система.

Для моделирования системы будет использоваться язык GPSS.

2 Схема моделирования. Блок-диаграмма GPSS-модели



30,5


30,5

30,5


30,5




PRazmer


PRazmer


PRazmer





XNa3+,1


XNa2+,1


XNa1+,1





X$XTerminal E 1

X$XTerminal E 1

X$XTerminal E 1




(Lab0)




EOM




(MET2)

PRazmer LE 100




10




ALL




PRazmer/10




ALL




(MET3)




EOM




PRazmer-, 100




P$PRazmer LE 0




Line

FIFO

(LabLink)




XTerminal+,1




(LabD)1

X$XTerminal E 4




(LabD1)




XTerminal,1




(LabD1)

X$XTerminal E 1




(LabD2)




(LabD3)

X$XTerminal E 2




X$XNa1 E 0




X$XTerminal E 3




X$XNa2 E 0




X$XNa3 E 0




Line

Lab0

1


3 Листинг программы. Описание


VRazmer VARIABLE 250+INT(RN1#250/350) ;размер от 250 до 350

INITIAL X$XTerminal,1 ;какой терминал обслуживается

INITIAL X$XNa1,0 ;сколько ждут на 1

INITIAL X$XNa2,0 ;сколько ждут на 2

INITIAL X$XNa3,0 ;сколько ждут на 3
GENERATE 30,5 ;терминал 1

ASSIGN PRazmer,V$VRazmer ;задать размер

SAVEVALUE XNa1+,1 ;увеличить количество на 1

TEST E X$XTerminal,1 ;ждать обслуживания терминала 1

SAVEVALUE XNa1-,1 ;уменьшить количество на 1

TRANSFER ,LabO ;перейти на обслуживание
GENERATE 30,5 ;терминал 2

ASSIGN PRazmer,V$VRazmer ;задать размер

SAVEVALUE XNa2+,1 ;увеличить количество на 1

TEST E X$XTerminal,2 ;ждать обслуживания терминала 2

SAVEVALUE XNa2-,1 ;уменьшить количество на 1

TRANSFER ,LabO ;перейти на обслуживание
GENERATE 30,5 ;терминал 3

ASSIGN PRazmer,V$VRazmer ;задать размер

SAVEVALUE XNa3+,1 ;увеличить количество на 1

TEST E X$XTerminal,3 ;ждать обслуживания терминала 3

SAVEVALUE XNa3-,1 ;уменьшить количество на 1

TRANSFER ,LabO ;перейти на обслуживание
LabO SEIZE EOM ;занять устройство

TEST LE P$PRazmer,100,MET2

ADVANCE (PRazmer/10) ;имитация цикла

TRANSFER ALL,MET3
MET2 ADVANCE 10

TRANSFER ALL,MET3
MET3 RELEASE EOM ;освободить устройство

ASSIGN PRazmer-,100 ;уменьшить размер

TEST LE P$PRazmer,0,LabLink ;проверить размер

SAVEVALUE XTerminal+,1 ;перейти к след терминалу

TEST E X$XTerminal,4,LabD1 ;проверить терминал

SAVEVALUE XTerminal,1 ;перейти к терминалу 1
LabD1 TEST E X$XTerminal,1,LabD2 ;проверить, свободный цикл

TEST E X$XNa1,0,LabTerm ;

UNLINK Line,LabO,1 ;вытащить из очереди

TRANSFER ,LabTerm ;перейти на уничтожение
LabD2 TEST E X$XTerminal,2,LabD3 ;проверить, свободный цикл

TEST E X$XNa2,0,LabTerm ;

UNLINK Line,LabO,1 ;вытащить из очереди

TRANSFER ,LabTerm ;перейти на уничтожение
LabD3 TEST E X$XTerminal,3,LabTerm ;проверить, свободный цикл

TEST E X$XNa3,0,LabTerm ;

UNLINK Line,LabO,1 ;вытащить из очереди

TRANSFER ,LabTerm ;перейти на уничтожение
LabTerm TERMINATE ;уничтожить
LabLink LINK Line,FIFO ;занять место в очереди


GENERATE 18000 ;таймер на 5 часов

TERMINATE 1

START 1

Сформировавшиеся задания сначала поступают от первого терминала. Транзакты, поступившие к ЭВМ обрабатывается в течение 30 секунд со скоростью 10 знаков в секунду. Если в течение этого времени всё сообщение было обработано, то ЭВМ принимает по циклическому алгоритму транзакт от следующего терминала. Если сообщение за 30 секунд было не полностью обработано, то остаток сообщения передаётся в дополнительную очередь, которая использует свободные циклы терминалов, т. е. задача обслуживается, если на каком-либо терминале нет заявок.

3.1 Используемые операторы и примитивы


STORAGE A - устанавливает определенную емкость памяти. Если емкость не определена, то значением по умолчанию является 32767.
SAVEVALUE - сохраняет значение. Формат: SAVE[VALUEI А,В,С.d:\e\!новый политех\5 курс\9 семестр\км\savev.jpg

А - номер ячейки;

В - присваиваемое значение;

С - тип ячейки: XF, ХН, XL (по умолчанию XF).

Если за полем А стоит знак "+" или знак "-", значение поля В, соответственно, прибавляется или вычитается из текущего содержимого ячейки. Если знаки "+" или "-" не указаны, то значение поля В записывается в ячейку. Поле С определяет тип ячейки (ХН - полусловная; XF - полнословная; XL - с плавающей точкой).
GENERATE A,B,C,D,E,F,G - вводит транзакты в модель.

А - среднее значение интервала времени;

В - разброс или модификатор среднего значения (по умолчанию ноль);d:\e\!новый политех\5 курс\9 семестр\км\generate.jpg

С - время появления первого транзакта;

D - общее число генерируемых транзактов;

Е - уровень приоритета каждого транзакта; (от 0 до 127, значение по умолчанию 0);

F - число параметров (по умолчанию 12);

G - тип параметра (F -полнословный, Н -полусловный -по умолчанию).

Вводит транзакты в модель, посылая их в следующий по порядку блок. Если в поле В не указана функция, то интервал между поступлением транзактов определяется случайным числом, равномерно распределенным в диапазоне от (А-В) до (А+В). Если поле В является функцией (FN$), то этот интервал определяется произведением поля А на значение функции, заданной в поле В.
GATE - вспомогательный блок, проверяющий состояния устройств, памятей, логических ключей. Формат GATE_R А,В. Внутренний операнд R определяет проверяемое условие в виде стандартного логического атрибута:d:\e\!новый политех\5 курс\9 семестр\км\gate_3.jpgd:\e\!новый политех\5 курс\9 семестр\км\gate_4.jpg

NU - устройство не занято;

SNF - память не заполнена;

d:\e\!новый политех\5 курс\9 семестр\км\enter.jpg


ENTER - помещает транзакт в память. Формат: ENTE[R] А,В.

А - имя памяти символическое или числовое;

В - число занимаемых единиц памяти (по умолчанию единица).

Проверяется наличие свободного объема памяти, номер которой определен в поле А. Если имеется свободная память, то транзакт входит в блок ENTER. При этом занятый объем памяти увеличивается на значение поля В. Если транзакт не может войти в блок ENTER, он задерживается в предыдущем блоке.

d:\e\!новый политех\5 курс\9 семестр\км\queue.jpg


QUEUE - помещает транзакт в конец очереди. Формат: QUEU[E] А,В.

А - номер очереди (числовое или символьное имя очереди);

В - число добавляемых к очереди элементов (по умолчанию 1).

Увеличивает текущее содержимое очереди, указанной в поле А, на значение в поле В. Если поле В не определено, увеличивает содержимое очереди на единицу. Транзакт может находиться в двух различных очередях одновременно.
TEST - сравнивает два стандартных числовых атрибута. Формат: TEST_r А,В,С.d:\e\!новый политех\5 курс\9 семестр\км\test.jpg

r - внутренний операнд, принимающий значения:

Е - равно;

А - стандартный числовой атрибут;

В - стандартный числовой атрибут;

С - номер альтернативного блока.

Значения стандартных числовых атрибутов, указанных в поле А и В, сравниваются отношением, определяемым операндом r. Если условие выполняется, транзакт вводится в блок. Если условие не выполняется и определено поле С, транзакт переходит в указанный блок, если же С не задано, транзакт задерживается в предыдущем блоке.d:\e\!новый политех\5 курс\9 семестр\км\seize.jpg
SEIZE - занимает устройство. Формат: SEIZ[E] А.

А - номер устройства.

Транзакт пытается занять устройство, определенное полем А. Если оно уже занято или прервано, транзакт задерживается в предыдущем блоке.

d:\e\!новый политех\5 курс\9 семестр\км\depart.jpg


DEPART - удаляет транзакт из очереди. Формат: DEPA[RT] А,В.

А - номер (имя) очереди;

В - число удаляемых из очереди элементов.

Удаляет текущий транзакт из очереди, указанной в поле А, и уменьшает содержимое очереди на значение поля В. Транзакт может находиться одновременно в двух различных очередях.

d:\e\!новый политех\5 курс\9 семестр\км\leave.jpg


LEAVE - выводит транзакт из памяти. Формат: LEAV[E] А,В.

А - номер памяти;

В - число освобождаемых единиц памяти (по умолчанию 1).

Транзакт удаляется из памяти, имя (номер) которой указано в поле А. Число освобождаемых при этом единиц памяти определяется полем В.d:\e\!новый политех\5 курс\9 семестр\км\advance.jpg
ADVANCE - задерживает транзакт. Формат: ADVA[NCE] А,В.

А - среднее время задержки (константа, если В не задано);

В - разброс относительно среднего значения, должен быть меньше или равен А.

Блок ADVANCE моделирует временную задержку транзакта в течение определенного интервала. Значение задержки по умолчанию равно нулю. Если поле В не является FN$, то время задержки является случайным числом, распределенным равномерно на интервале от (А+В) до (А-В). Если поле В является функцией FN$, то время задержки определяется произведением поля А на значение функции в поле В. Функция может быть использована для задания времени задержки с определенным средним значением и отклонением, зависящими от А.

d:\e\!новый политех\5 курс\9 семестр\км\release.jpg


RELEASE - освобождает устройство. Формат: RELE[ASE] А.

А - номер устройства (числовое или символьное имя освобождаемого устройства).

Устройство, указанное в поле А, освобождается и становится доступным для других транзактов. Освобождать устройство должен тот же транзакт, который его занимал.
TRANSFER - изменяет движение транзакта в модели. Формат: TRAN[SFER] А,B,C,D.d:\e\!новый политех\5 курс\9 семестр\км\transfer.jpg

А - режим передачи (пpoбeл,.,ALL,BOTH,FN,P,PICK,SBR,SIM);

В - следующий блок;

С - следующий блок;

D - значение индекса, используемое в режиме ALL.

Транзакт направляется в блок, определяемый в соответствии с режимом передачи, указанным в поле А. Режимы передачи поля А:d:\e\!новый политех\5 курс\9 семестр\км\termin.jpg

Пробел - транзакт передается в блок, определяемый полем В.
TERMINATE - удаляет транзакт. Формат: TERM[INATE] А.

А - величина, вычитаемая из содержимого счетчика завершений (поле А карты START).

Транзакт удаляется из модели и поступает в пассивный буфер. Если в поле А пробел, воздействия на счетчик завершений не происходит, в противном случае его значение уменьшается на величину, указанную в поле А.
START - управление процессом моделирования. Формат: STAR[T] А,B,C,D.

А - счетчик числа завершений;

В - подавление вывода на печать (В = NP);

С - промежуточный вывод статистики;

D - распечатка списков.

Поле А определяет счетчик завершении при прогоне модели. При входе транзакта в блок TERMINATE с ненулевым значением поля А, содержимое поля А блока TERMINATE вычитается из остаточного значения счетчика - поля А карты START. Прогон завершается, когда значение счетчика достигнет нуля. Указатель NP в поле В отменяет вывод стандартного отчета GPSS. Величина, указанная в поле С, определяет число завершений, по достижении которого выдается промежуточный отчет. Таким образом, можно получать статистические данные в определенных интервалах моделирования. Если поле D содержит 1, полученный отчет будет содержать списки текущих и будущих событий, а также списки пользователя.

4 Результаты работы программы


Процесс симуляции работы системы заканчивается выводом отчета о результатах моделирования.

Основные характеристики модели:

START TIME END TIME BLOCKS FACILITIES STORAGES

0.000 18000.000 46 1 0
Время начала моделирования равно 0, время его окончания равно 18000 единицам условного времени, что примерно означает 5 часов. Далее указывается количество блоков, использованных в модели, – 46. Число использованных устройств равно 1, число накопителей – 0.

Статистическая информация по каждому блоку:

NAME VALUE

EOM 10006.000

LABD1 31.000

LABD2 35.000

LABD3 39.000

LABLINK 44.000

LABO 19.000

LABTERM 43.000

LINE 10007.000

MET2 23.000

MET3 25.000

PRAZMER 10005.000

VRAZMER 10000.000

XNA1 10002.000

XNA2 10003.000

XNA3 10004.000

XTERMINAL 10001.000


LABEL LOC BLOCK TYPE ENTRY COUNT CURRENT COUNT RETRY

1 GENERATE 603 0 0

2 ASSIGN 603 0 0

3 SAVEVALUE 603 0 0

4 TEST 603 0 0

5 SAVEVALUE 603 0 0

6 TRANSFER 603 0 0

7 GENERATE 603 0 0

8 ASSIGN 603 0 0

9 SAVEVALUE 603 603 0

10 TEST 0 0 0

11 SAVEVALUE 0 0 0

12 TRANSFER 0 0 0

13 GENERATE 603 0 0

14 ASSIGN 603 0 0

15 SAVEVALUE 603 603 0

16 TEST 0 0 0

17 SAVEVALUE 0 0 0

18 TRANSFER 0 0 0

LABO 19 SEIZE 603 0 0

20 TEST 603 0 0

21 ADVANCE 0 0 0

22 TRANSFER 0 0 0

MET2 23 ADVANCE 603 1 0

24 TRANSFER 602 0 0

MET3 25 RELEASE 602 0 0

26 ASSIGN 602 0 0

27 TEST 602 0 0

28 SAVEVALUE 0 0 0

29 TEST 0 0 0

30 SAVEVALUE 0 0 0

LABD1 31 TEST 0 0 0

32 TEST 0 0 0

33 UNLINK 0 0 0

34 TRANSFER 0 0 0

LABD2 35 TEST 0 0 0

36 TEST 0 0 0

37 UNLINK 0 0 0

38 TRANSFER 0 0 0

LABD3 39 TEST 0 0 0

40 TEST 0 0 0

41 UNLINK 0 0 0

42 TRANSFER 0 0 0

LABTERM 43 TERMINATE 0 0 0

LABLINK 44 LINK 602 602 0

45 GENERATE 1 0 0

46 TERMINATE 1 0 0


FACILITY ENTRIES UTIL. AVE. TIME AVAIL. OWNER PEND INTER RETRY DELAY

EOM 603 0.335 9.987 1 1810 0 0 0 0


USER CHAIN SIZE RETRY AVE.CONT ENTRIES MAX AVE.TIME

LINE 602 0 300.642 602 602 8989.308


SAVEVALUE RETRY VALUE

XTERMINAL 1206 1.000

XNA1 0 0

XNA2 0 603.000

XNA3 0 603.000


FEC XN PRI BDT ASSEM CURRENT NEXT PARAMETER VALUE

1810 0 18007.959 1810 23 24

PRAZMER 420.000

1812 0 18009.310 1812 0 13

1811 0 18011.826 1811 0 7

1813 0 18032.120 1813 0 1

1814 0 36000.000 1814 0 45

Учебный материал
© bib.convdocs.org
При копировании укажите ссылку.
обратиться к администрации