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

19

Разработка имитационной программы

Для разработки имитационных программ рекомендуется использовать язык GPSS W.Правила составления программ на языке GPSS W достаточно подробно изложены в [2], [7],[10]. Справочный материал по языку GPSS W приведён в приложениях 2-8 данного руководства по выполнению РГР.

Приведём пример составления структурной схемы вычислительного комплекса, состоящего из одной центральной ЭВМ и четырех периферийных. Время решения задач распределено равномерно для центральной от 25 до 75 единиц времени и для периферийных от 160 до 200. Время между поступлениями заявок на решение задач распределено равномерно в диапазоне от 20 до 80 единиц времени. Периферийные машины выбираются по правилу - "первый свободный с наименьшим номером". Если заявка застает все периферийные машины занятыми, то она получает отказ. После обработки на периферийных машинах заявка передается на центральную ЭВМ, перед которой может возникнуть очередь. Правило вывода заявок из очереди - "первой пришла, первой вышла". Остановить моделирование через 20000 единиц времени. Зарегистрировать коэффициент использования устройств, среднюю длину очереди, среднее время ожидания в очереди, среднее время обработки заявки и вероятность отказов.

Составим структурную схему, так чтобы на ней нашли отражение все описанные характеристики. Структурная схема примера представлена на рис.3.1. Поступление заявок будем имитировать генератором транзактов, процесс обслуживания - устройствами и процесс ожидания - очередью. Для регистрации характеристик обслуживания заявок будем использовать таблицу, для вычисления вероятности - ячейки памяти и арифметическую переменную. Остальные характеристики функционирования вычислительного комплекса регистрируются автоматически устройствами и очередью.

Поступление заявок будем имитировать генератором транзактов, процесс обслуживания - устройствами и процесс ожидания - очередью. Для регистрации характеристик обслуживания заявок будем использовать таблицу, для вычисления вероятности - ячейки памяти и арифметическую переменную. Остальные характеристики функционирования вычислительного комплекса регистрируются автоматически устройствами и очередью.

ПЭВМ 1

180+-20

ПЭВМ 2

180+-20

ГТ

50+-30

Очередь

ЦЭВМ

50+-25

ПЭВМ 3

180+-20

ПЭВМ 4

180+-20

Отказы

Рис.3.1. Структурная схема вычислительного комплекса

При составлении программных моделей следует придерживаться следующих рекомендаций:

1. Записать блоки GPSS W в соответствии с правилами заполнения полей, приведенными в приложении 2, команды в соответствии с правилами, приведенными в приложении 3, стандартные системные атрибуты (СЧА) по приложению 4, логические операторы по приложению 5 и условные операторы по приложению 6.

2. Исходные числовые данные определять через ячейки памяти оператором описания (командой) INITIAL.

3. Команды: BVARIABLE, FUNCTION, EQU, INITIAL, MATRIX, STORAGE, TABLE, VARIABLE записывать в начале программы. Требуется проследить, чтобы команды одного и того же типа объектов имели отличающиеся друг от друга имена.

4. Строки нумеровать не рекомендуется.

5. По возможности необходимо разбить программную модель на логически завершенные сегменты.

6. После составления программы необходимо проверить, чтобы каждой ссылке на блок с меткой, записанной в поле операндов, соответствовала одна такая же метка, записанная в поле метки программы. Следует отметить, что на одну и ту же метку, записанную в поле метки, может приходиться несколько ссылок, записанных в поле операндов.

7. После кодирования необходимо просмотреть поля операндов всех блоков и операторов, и если в них есть обращение к логическим переменным, функциям, арифметическим переменным и матрицам, то проверить их описание командами BVARIABLE, FUNCTION, FVARIABLE, VARIABLE и MATRIX. Все названные команды должны иметь заполненное поле метки с именами, совпадающими с обращением к ним в блоках или других командах.

8. Целесообразно проверить, чтобы все памяти, используемые в программе, были описаны командой STORAGE.

9. Рекомендуется проверить, чтобы транзакты до входа в блоки, расположенные в тексте программы между блоками SEIZE- RELEASE, PREEMPT - RETURN, QUEUE - DEPART, ENTER - LEAVE, обязательно заняли эти блоки (устройства, очереди, памяти). По окончании обслуживания на данных блоках транзакты должны освободить их.

10.Необходимо проверить, чтобы транзакты освобождали в очереди и памяти не больше мест, чем они занимали.

11.Следует проверить, чтобы транзакты не могли быть выведены из модели, если они предварительно не освободили занятые ими устройства, очереди или памяти.

Составим программную модель системы, структурная схема которой представлена на рис.3.1.

INITIAL X1,50

INITIAL X2,30

INITIAL X3,180

INITIAL X4,20

INITIAL X5,50

INITIAL X6,25

INITIAL X7,20000

REG TABLE M1,185,10,20

VER VARIABLE N$OTKAZ#1000/(N$OTKAZ+TC$REG)

GENERATE X1,X2

SELECT NU 1,1,4,,,OTKAZ

SEIZE *1

ADVANCE X3,X4

RELEASE *1

QUEUE BUF

SEIZE EVM

DEPART BUF

ADVANCE X5,X6

RELEASE EVM

TABULATE REG

TERMINATE

OTKAZ TERMINATE

GENERATE X7,,X7

SAVEVALUE 8,V$VER

TERMINATE 1

START 1

Прокомментируем программную модель. Команды INITIAL предназначены для присвоения ячейкам Х исходных значений. Команда TABLE с именем REG предназначена для регистрации времени обслуживания транзакта (М1), начиная со 185 единиц времени с шагом в 10 единиц времени в 20 интервалах таблицы. Команда VARIABLE с именем VER предназначен для вычисления вероятности отказов, вычисленной в долях от 1000 как отношение количества транзактов, получивших отказ, к общему количеству транзактов.

Генерация транзактов, время между поступлением которых распределено равномерно в диапазоне от Х1-Х2 до Х1+Х2, производится блоком GENERATЕ. Блок SELECT записывает в первый параметр имя первого свободного устройства(NU), начиная с PEVM1 по PEVM4. Отметим, что выбор устройств, поступление в них транзактов и их освобождение производится не по именам а по номмерам. Если транзакт не находит ни одного свободного устройства, то он передается на блок с меткой OTKAZ.

Функционирование переферийных ЭВМ имитируется тремя блоками. С помощью блока SEIZE транзакты занимают устройства, задерживаются в них на время, распределенное равномерно в диапазоне от Х3-Х4 до Х3+Х4, блоком ADVANCE и освобождаются устройства блоком RELEASE. В первом параметре блоков SEIZE и RELEASE записан номер ПЭВМ (от PEVM1 до PEVM4).

Блок QUEUE устанавливает транзакт в очередь с именем BUF к центральной машине. По освобождении центральной машины транзакт занимает ее блоком SEIZE и освобождает очередь блоком DEPART. Задержка транзакта в центральной машине осуществляется блоком ADVANCE на время, распределенное равномерно в диапазоне от Х5-Х6 до Х5+Х6. Освобождается устройство блоком RELEASE. Время пребывания транзакта в системе регистрируется при его входе в блок TABULATЕ. Блок TERMINATE выводит из модели обслуженные транзакты. Транзакты, получившие отказ, выводятся из модели блоком TERMINATЕ.

Для останова модели по времени используется программный сегмент, начинающийся блоком GENERATE, который генерирует транзакт с начальной задержкой, записанной в Х7. Блок SAVEVALUE вычисляет вероятность

отказа по арифметической переменной с именем VER и заносит ее в ячейку Х8. Блок TERMINATE с единицей, записанной в операнде А, выводит транзакт из модели и обнуляет счетчик команды START, после чего моделирование прекращается.

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