
- •Раздел I. Gpss – язык и система моделирования.
- •Раздел II. Объекты системы моделирования
- •В языке gpss применяются два класса объектов:
- •- Динамические, порождаемые в процессе моделирования: транзакты (xac).
- •Initial Ячейка1, Значение1,…, Ячейка к, ЗначениеК
- •Раздел III. Средства языка, имитирующие статические и динамические свойства транзактов при моделировании дискретных процессов
- •Вв матсн аа
- •Раздел IV. Особенности построения моделей дискретных
- •Процессов
- •Раздел V . Задания к лабораторным работам
- •Раздел I. Gpss – язык и система моделирования.
- •Раздел II. Объекты системы моделирования……………………
- •Раздел III. Средства языка, имитирующие статические и
- •Раздел IV. Особенности построения моделей дискретных
- •Раздел V. Задания к лабораторным работам
- •Литература
ВВЕДЕНИЕ
Существует множество систем, процессы функционирования в которых могут быть представлены моделями информационных потоков, получившими название систем массового обслуживания (СМО). Это прежде всего процессы в технических системах - в системах телефонной, радиосвязи и телекоммуникаций, в вычислительных машинах, системах и вычислительных сетях, при анализе которых важнейшими являются задачи определения надежности, скорости передачи или обработки информации, оценки пропускной способности, загрузки оборудования и т.д., в транспортных системах, где важнейшими являются определение скорости и объема перевозок, сокращение простоев и др. Процессы жизнедеятельности в биологических системах требуют прежде всего определения благоприятных условий жизни, размножения и развития отдельных особей или популяции (колонии, сообщества) в целом. Многие процессы деятельности человека – социальные, экономические, экологические могут быть представлены моделями типа СМО [1]. И даже сам процесс обучения, представляемый как сочетание усваивания знаний и забывания, также может быть описан такими моделями [2].
Любая подобная система неизбежно испытывает различного pода возмущения, источниками котоpых могут быть либо внешние воздействия, обусловленные случайными или систематическими изменениями окружающих условий, либо внутренние флуктуации, возникающие в самой системе в результате взаимодействия элементов. Пpи исследовании эти системы пpедставляются в виде стохастических моделей дискpетных пpоцессов. Несмотя на успешное pазвитие и пpименение методов аналитического моделиpования СМО [3], ведущим для pешения пpактических задач исследования дискретных систем и процессов остается имитационное моделиpование на ЭВМ с пpименением специализиpованных языков пpогpаммиpования [6 – 8].
За всю историю pазвития вычислительной техники насчитывается более 300 языков моделирования дискретных процессов. Одним из первых языков моделирования СМО был предложенный еще в 60-х годах язык блок-диаграмм, идеи которого оказались на столько плодотворны, что использовались во многих последующих pазpаботках в нашей стране и за рубежом. На основе языка блок-диагамм в 70-х годах был создан и в последующем адаптиpован к персональным компьютерам широко используемый в настоящее вpемя для моделиpования большого класса систем язык и система GPSS – General Purpouse Simulation System [4].
В данной работе рассматриваются принципы организации моделирования дискретных систем на GPSS, описывается язык, приводятся примеры моделирования. Особое внимание уделяется вопросам имитации независимых и взаимосвязанных параллельных процессов и систем с приоритетами.
Раздел I. Gpss – язык и система моделирования.
СТРУКТУРА ПРОГРАММЫ НА ЯЗЫКЕ GPSS
GPSS – это система моделирования общего назначения. Она предназначена для моделирования дискретных систем (ДС) на уровне структуры и информационных (или материальных) потоков в системе, т. е. когда работу ДС можно задать множеством состояний и графом переходов системы из одного состояния в другое. Изменение состояния системы называется событием. Моделирование ДС – это имитация на ЭВМ процесса функционирования ДС во времени как совокупности переходов ДС из одного состояния в другое. Модель ДС представляет собой последовательность операторов или, по терминологии GPSS – блоков, отображающих структуру и задающих или регулирующих условия перемещения элементов потока (заявок – в системах массового обслуживания, или транзактов – в GPSS). Физическому времени, в котором работает реальная система (ДС), ставится в соответствие модельное время. В моделирующей системе это время задается с помощью таймера и представляет собой целочисленную (дискретную) величину, измеряемую в условных единицах. Изменение модельного времени происходит в соответствии с принципами событийного моделирования, которые изложены ниже (см. 2.1.3).
Идеи, заложенные в систему моделирования GPSS, относятся к семидесятым годам, когда высокоуровневые языки программирования по существу только начали развиваться. Поэтому с точки зрения программиста модель на языке GPSS по структуре близка к программе на языке ассемблера: каждое предложение занимает одну строку, содержащую либо управляющий оператор (например, REALLOCATE, SIMULATE, START, END), либо объявление имени объекта, либо функциональный оператор (БЛОК). Комментарий к блоку может быть написан в этой же строчке после символа “;” (точка с запятой). Если комментария в строке нет, то точка с запятой может не ставиться. Отдельная строка-комментарий должна начинаться символом “*”, располагающимся в первой позиции строки.
Структура программы на языке GPSS состоит из следующих разделов:
- раздел объявлений и описаний, содержащий:
. объявление символических имен объектов по форме:
имя_объекта EQU порядковый_номер_объекта_данного_типа
. описание функций;
. описание зависимых переменных (для вычисления по формулам);
. задание предельной емкости памяти;
. инициализация ячеек и логических ключей;
SIMULATE
- раздел операторов, содержащий:
. последовательность блоков, т.е. последовательность функциональных
операторов, по сути представляющих собой программу моделирования;
START – управляющий оператор;
END – оператор окончания программы.
Функциональные операторы или блоки являются собственно языком описания модели. Каждый блок занимает одну строку GPSS-программы и имеет следующую структуру:
[метка] идентификатор_блока список_полей [; комментарий]
Поля в списке отделяются друг от друга запятой и имеют фиксированные позиции, назначение и количество полей зависит от типа блока. С точки зрения программиста блоки являются именами подпрограмм, а поля блока – параметрами подпрограммы.
Все блоки можно разделить на группы:
блоки, отображающие работу объектов устройство, память, очередь, логический ключ, ячейка, переменная, таблица, функция, которые имитируют состав и структуру моделируемой системы и обеспечивают при моделировании сбор и обработку экспериментальных данных;
блоки, влияющие на значения атрибутов и параметров транзактов;
блоки, влияющие на изменение направления перемещения транзактов по модели;
блоки, обеспечивающие копирование и синхронизацию перемещения транзактов по модели.