Имитационное моделирование системы распределенного банка данных

 
 
 
 
 
 
 
 

ИМИТАЦИОННОЕ  МОДЕЛИРОВАНИЕ 

системы распределенного  банка данных 
 

Курсовой  проект 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Смоленск

2008

 

Содержание

 

 Введение

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

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

   Так же система является объектно-ориентированным  языком.

GPSS World сочетает в себе функции дискретного  и непрерывного моделирования. Возможность перехода из дискретной фазы моделирования в непрерывную фазу и обратно обеспечивает тесную связь с непрерывным моделированием. В непрерывной фазе могут быть установлены пороговые значения, управляющие созданием транзактов в дискретной фазе.

Данная версия включает в себя массу нововведений, позволяющих проводить более эффективные исследования и сделать работу с системой максимально простой и удобной для пользователя. 

Транслятор

   Высокоэффективный транслятор является частью программы GPSS World, которая создает объекты «Процесс моделирования». Перед включением в объект «Процесс моделирования» все операторы модели проходят трансляцию. Точно так же интерактивные операторы транслируются в глобальной области видимости прежде, чем они будут переданы существующему объекту «Процесс моделирования». 

Архитектура

   На уровне интерфейса GPSS World представляет собой реализацию архитектуры «документ-вид», общей для всех приложений операционной системы Windows. Объекты могут быть открыты в нескольких окнах, изменены и сохранены на постоянных носителях информации. Привычное меню главного окна и блокировка недоступных команд меню, не отвлекая внимания, направляет пользователя к конечной цели. GPSS World был разработан с целью достичь тесной интерактивности даже в многозадачной среде с использованием виртуальной памяти.

Многозадачность

   Многопоточная архитектура GPSS World позволяет совместно запускать несколько процессов моделирования и экспериментов. Одновременно выполняются не только обновление окон, пользовательский ввод, дисковый ввод-вывод, печать и процесс моделирования, но также в одно и то же время может быть запущено любое количество процессов моделирования.

Виртуальная память

   Процессы моделирования непосредственно не ограничиваются размером физической памяти с произвольным доступом (ОЗУ), в которой выполняется объект «Процесс моделирования». Используя механизм виртуальной памяти, модели могут достигать размера до гигабайта. Количество объектов также ограничивается только обеспечиваемым размером файла подкачки. Для достижения оптимальной производительности необходимо использовать значительный объем реальной памяти. Выделение и управление памятью для объектов происходит невидимо для пользователя. Объекты автоматически создаются до тех пор, пока не потребуется дополнительная информация. 

Интерактивность 

   GPSS World поддерживает высокий уровень интерактивности даже во время процесса моделирования. Используя команду главного меню окна модели Command (Команда), ускоряющие клавиши или настройки модели, закрепляя за функциональными клавишами собственные команды, вы можете передавать существующему объекту «Процесс моделирования» любой оператор. Вы можете использовать диалоговое окно «Simulation Command» («Команда») для ввода операторов, отсутствующих в выпадающем меню, а с помощью команды INCLUDE вы можете посылать процессу моделирования интерактивные операторы любой сложности.

Анимация

   В GPSS World существует ряд анимационных возможностей. Уровень их реализма изменяется от абстрактной визуализации, не требующей никаких усилий, до высоко реалистических динамических изображений, включающих в себя сложные элементы, созданные пользователем. 

Язык  моделирования

   GPSS World является, общецелевой системой моделирования, со встроенным языком программирования PLUS – языком программирования низкого уровня моделирования. 
GPSS включает в себя 53 типа блоков и 25 команд, а также более чем 35 системных числовых атрибутов, которые обеспечивают текущие переменные состояния, доступные в любом месте модели. 
   PLUS – это небольшой, но эффективный процедурный язык программирования, созданный из 12 типов операторов. Его эффективность во многом обеспечивается большой библиотекой процедур, содержащей математические функции и функции манипуляции со строками, и большого набора вероятностных распределений. 
   В GPSS World модель определяется как последовательность операторов. Это операторы GPSS, операторы PLUS-процедур или операторы PLUS-экспериментов. За исключением списков данных функции, все операторы GPSS должны состоять из одной текстовой строки длиной до 250 символов. Любой оператор GPSS может входить в модель и сохраняться в файле модели или может быть передан процессу моделирования в интерактивном режиме.

Нововведения

   К студенческой и коммерческой версии GPSS World были добавлены новые возможности, которые не имелись в GPSS PC: 
- Автоматический генератор отсеивающего эксперимента; 
- Автоматический генератор оптимизирующего эксперимента; 
- Теперь в студенческой версии доступны кадры состояния; 
- Библиотечная процедура дисперсионного анализа (ANOVA); 
- Переменное количество аргументов в процедуре PolyCatenate(); 
- Библиотечные процедуры динамического вызова внешних функций; 
- Возможность трассировки PLUS; 
- Пакетный режим работы; 
- Команда EXIT с различными режимами сохранения файлов; 
- Диалоговые окна создания блоков; 
- Настраиваемые интервалы табуляции; 
- PLUS-процедуры для операций с потоками данных.

Новые СЧА

   Новый  системный числовой атрибут А1  возвращает семейство активного  транзакта. Его удобно использовать совместно с новым блоком ADOPT, который позволяет изменять семейство активного транзакта.

Полиморфные типы данных 

   Переменные  могут принимать значения одного  из четырех типов. Переменные, управляемые пользователем, такие, как ячейки, элементы матриц, параметры транзактов и переменные пользователя, могут принимать целочисленное, вещественное, строковое и неопределенное значение. Значения времени могут быть целыми или вещественными двойной точности.  
   Преобразования типов происходит автоматически. Процедуры, которые требуют в качестве аргумента значение определенного типа данных, принудительно преобразуют аргумент к соответствующему типу. Например, если вы передаёте строку процедуре, которая требует числовое значение, будет использован числовой эквивалент этой строки. Точно так же, если вы пытаетесь записать (WRITE) числовое значение, оно будет автоматически преобразовано в текстовую строку.  
   Строковые величины имеют много вариантов использования. Они могут использоваться в потоках данных для создания отчетов и файлов с результатами, а также для прямого доступа к внутренним данным. Строковые константы обозначаются заключением строки между парой двойных кавычек. Для представления двойных кавычек внутри строки используется пара двойных кавычек. Например, для представления одной строки внутри другой строки необходимо использовать 6 символов кавычек. Внутренняя строка (подстрока) заключается между двумя парами двойных кавычек, а итоговая строка будет заключаться между еще одной парой двойных кавычек. Библиотека процедур содержит много строковых процедур, которые могут использоваться для создания и манипулирования строковыми данными.  
   Теперь ячейкам и матрицам может быть присвоено значение UNSPECIFIED (неопределенный тип данных). Команда INITIAL позволяет присваивать это значение ячейкам, элементам матрицы и даже целым матрицам. Если элемент данных UNSPECIFIED был использован в операции, которая требует некоторого значения, произойдет останов по ошибке. Библиотечная процедура дисперсионного анализа (ANOVA) теперь распознает элементы UNSPECIFIED в матрице результатов как недоступные результаты прогонов эксперимента.

Многомерные матрицы

   Матрицы  могут иметь до 6 измерений. Динамические  окна «Matrix» («Матрица») позволяют просматривать любые поперечные сечения матрицы, одновременно можно открыть любое количество таких окон. Для использования во время исполнения процедуры могут быть созданы временные матрицы. Для инициализации матрицы с тремя и более измерениями используются присваивающие PLUS-операторы 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

1.1  Техническое задание. 

     Распределенный  банк данных системы сбора информации организован на базе ЭВМ, соединенных дуплексным каналом связи.

     Поступающий запрос обрабатывается на первой ЭВМ и с вероятностью 50 % необходимая информация обнаруживается на месте. В противном случае необходима посылка запроса во вторую ЭВМ.

     Запросы в систему поступают, через 10±3 сек. Первичная обработка запроса занимает время, равное  2 сек. Выдача ответа требует времени, 18±2 сек. Передача по каналу связи занимает время, равное 3 сек.

     Временные характеристики второй ЭВМ аналогичны первой.

     Смоделировать прохождение 400 запросов.

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

     Самостоятельно выбрать критерии оценки и показатели расчета экономической эффективности работы системы. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

     1.2 Анализ технического  задания 

      Рассмотрев  поставленную задачу, мы должны смоделировать  работу базы данных на двух ЭВМ. При поступлении запроса на поиск определенной информации запрос отправляется на первый ЭВМ. При этом есть вероятность 50% что запрос не выполнится и тогда он адресуется на второй ЭВМ где подлежит обработке. Мы должны определить оптимальную емкость накопителей перед ЭВМ для того, чтобы не возникало очереди. Соответственно мы должны будем провести несколько экспериментов.

     Хочется обратить внимание на некоторые моменты  задачи

     Во-первых, у нас дуплексный канал т.е. канал осуществляющий одновременно передачу сигналов в двух направлениях. Этот канал используется обычно когда требуется высокая пропускная способность.

     Во  вторых надо разобраться в том  как у нас будет двигаться  запрос. Вначале мы проводим первичную  обработку на 1 ЭВМ если запрос найден происходит выдача информации, в противном случае мы отправляем запрос на 2 ЭВМ затратив на это 3 секунды на передачу по каналу, далее происходит обработка и выдача информации которую мы отправляем обратно на 1 ЭВМ .

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

     1.3 Формализация концептуальной  модели 

     Концептуальную  модель целесообразно представить  в виде схемы, так как сущность модели, в принципе, уже ясна из постановки задачи.

     Таким образом, мы имеем следующую схему:

     

 

     Для моделирования задачи на GPSS необходимо определить:

  1. условия работы моделируемой системы;
  2. какие элементы GPSS надо использовать для удовлетворения условий модели.

     В данном случае есть три вида временных ограничивающих условий. Время первичной обработки. Время передачи по каналу связи и время выдачи ответа.  
 
 
 

1.4  Формализация Q -схемы 

     

 
 
 
 
 

 

      1.5 Вывод 

     В результате написания первой главы, более подробно была разобрано техническое задание определены этапы разработки программы, с помощью концептуальной модели, дающей общее представление о том что представляет из себя рассматриваемая модель и Q-схема, на которой ясно видна картина работы программы, отмечены ее основные этапы, и стало понятно как будет работать данная программа, и как будет выглядеть блок – схема модели.  
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

     2.1  Блок - схема 

 
 

 

Эксперименты 

Эксперимент 1

Листинг 
 

CPU_1 storage 1 ;объем накопителя 1 

CPU_2 storage 1 ;объем накопителя 2 

      GENERATE 10,3 ;время поступления запроса в систему

      ADVANCE  2  ;предварительная обработка запроса

      TRANSFER  0.5,BLK1,BLK2 ;вероятностный переход 

BLK1 QUEUE o4 ;очередь

      ENTER CPU_1  ;устройство обработки 1

      DEPART o4 ;вывод из очереди

      ADVANCE 18,2 ;задержка обработки

      LEAVE CPU_1 ;закрытие устройства

      SAVEVALUE bl1+,1 ;счетчик количества транзактов в 1 ЭВМ

      TERMINATE 1  

BLK2 SEIZE 1 

      ADVANCE 3 ;задержка передачи по каналу связи

      RELEASE 1

      ADVANCE 2 

      QUEUE  o42 

      ENTER CPU_2 ;устройство обработки 2

      DEPART o42

      ADVANCE 18,2 ;задержка обработки

      LEAVE CPU_2 ;закрытие устройства 2

      SEIZE 2

      ADVANCE 3

      RELEASE 2

      SAVEVALUE bl2+,1 

      TERMINATE 1

      start  400

 

Отчет 1 
 
 

              GPSS World Simulation Report - Untitled Model 1.3.1 
 

                   Friday, June 13, 2008 11:58:12   

           START TIME           END TIME  BLOCKS  FACILITIES  STORAGES

                0.000           4002.259    24        2          2 
 

              NAME                       VALUE 

          BL1                         10005.000

          BL2                         10004.000

          BLK1                            4.000

          BLK2                           11.000

          CPU_1                       10000.000

          CPU_2                       10001.000

          O4                          10003.000

          O42                         10002.000 
 

LABEL              LOC  BLOCK TYPE     ENTRY COUNT CURRENT COUNT RETRY

                   1    GENERATE           403             0       0

                    2    ADVANCE            403             0       0

                    3    TRANSFER           403             0       0

BLK1                4    QUEUE              216             0       0

                    5    ENTER              216             0       0

                    6    DEPART             216             0       0

                    7    ADVANCE            216             0       0

                    8    LEAVE              216             0       0

                    9    SAVEVALUE          216             0       0

                   10    TERMINATE          216             0       0

BLK2               11    SEIZE              187             0       0

                   12    ADVANCE            187             0       0

                   13    RELEASE            187             0       0

                   14    ADVANCE            187             1       0

                   15    QUEUE              186             1       0

                   16    ENTER              185             0       0

                   17    DEPART             185             0       0

                   18    ADVANCE            185             1       0

                   19    LEAVE              184             0       0

                   20    SEIZE              184             0       0

                   21    ADVANCE            184             0       0

                   22    RELEASE            184             0       0

                   23    SAVEVALUE          184             0       0

                   24    TERMINATE          184             0       0 
 

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

1                  187    0.140       3.000  1        0    0    0     0      0

 2                  184    0.138       3.000  1        0    0    0     0      0 
 

QUEUE              MAX CONT. ENTRY ENTRY(0) AVE.CONT. AVE.TIME   AVE.(-0) RETRY

O42                 4    1    186     51     0.660     14.203     19.569   0

O4                  7    0    216     10     2.987     55.352     58.039   0 
 

STORAGE            CAP. REM. MIN. MAX.  ENTRIES AVL.  AVE.C. UTIL. RETRY DELAY

CPU_1               1    1   0     1      216   1    0.973  0.973    0    0

CPU_2               1    0   0     1      185   1    0.825  0.825    0    1 
 

SAVEVALUE               RETRY       VALUE

BL2                      0        184.000                           

BL1                      0        216.000                            
 

FEC XN   PRI         BDT      ASSEM  CURRENT  NEXT  PARAMETER    VALUE

   403    0        4003.124    403     14     15

   401    0        4003.585    401     18     19

   404    0        4006.922    404      0      1

 

 
 
 

Эксперимент 2

Листинг 
 

CPU_1 storage 1 ;объем накопителя 1 

CPU_2 storage 2 ;объем накопителя 2 

      GENERATE 10,3 ;время поступления запроса в систему

      ADVANCE  2  ;предварительная обработка запроса

      TRANSFER  0.5,BLK1,BLK2 ;вероятностный переход 

BLK1 QUEUE o4 ;очередь

      ENTER CPU_1  ;устройство обработки 1

      DEPART o4 ;вывод из очереди

      ADVANCE 18,2 ;задержка обработки

      LEAVE CPU_1 ;закрытие устройства

      SAVEVALUE bl1+,1 ;счетчик количества транзактов в 1 ЭВМ

      TERMINATE 1  

BLK2 SEIZE 1 

      ADVANCE 3 ;задержка передачи по каналу связи

      RELEASE 1

      ADVANCE 2 

      QUEUE  o42 

      ENTER CPU_2 ;устройство обработки 2

      DEPART o42

      ADVANCE 18,2 ;задержка обработки

      LEAVE CPU_2 ;закрытие устройства 2

      SEIZE 2

      ADVANCE 3

      RELEASE 2

      SAVEVALUE bl2+,1 

      TERMINATE 1

      start  400 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Отчет 2 
 
 
 

              GPSS World Simulation Report - Untitled Model 1.4.1 
 

                   Friday, June 13, 2008 11:59:11   

           START TIME           END TIME  BLOCKS  FACILITIES  STORAGES

                0.000           4022.816    24        2          2 
 

              NAME                       VALUE 

          BL1                         10005.000

          BL2                         10004.000

          BLK1                            4.000

          BLK2                           11.000

          CPU_1                       10000.000

          CPU_2                       10001.000

          O4                          10003.000

          O42                         10002.000 
 

LABEL              LOC  BLOCK TYPE     ENTRY COUNT CURRENT COUNT RETRY

                    1    GENERATE           403             0       0

                    2    ADVANCE            403             0       0

                    3    TRANSFER           403             0       0

BLK1               4    QUEUE              204             1       0

                    5    ENTER              203             0       0

                    6    DEPART             203             0       0

                    7    ADVANCE            203             1       0

                    8    LEAVE              202             0       0

                    9    SAVEVALUE          202             0       0

                   10    TERMINATE          202             0       0

BLK2               11    SEIZE              199             0       0

                   12    ADVANCE            199             0       0

                   13    RELEASE            199             0       0

                   14    ADVANCE            199             1       0

                   15    QUEUE              198             0       0

                   16    ENTER              198             0       0

                   17    DEPART             198             0       0

                   18    ADVANCE            198             0       0

                   19    LEAVE              198             0       0

                   20    SEIZE              198             0       0

                   21    ADVANCE            198             0       0

                   22    RELEASE            198             0       0

                   23    SAVEVALUE          198             0       0

                   24    TERMINATE          198             0       0 
 

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

1                  199    0.148       3.000  1        0    0    0     0      0

2                  198    0.148       3.000  1        0    0    0     0      0 
 

QUEUE              MAX CONT. ENTRY ENTRY(0) AVE.CONT. AVE.TIME   AVE.(-0) RETRY

 O42                 1    0    198    189     0.003      0.054      1.179   0

O4                  7    1    204     31     1.498     29.545     34.839   0 

STORAGE            CAP. REM. MIN. MAX.  ENTRIES AVL.  AVE.C. UTIL. RETRY DELAY

CPU_1               1    0   0     1      203   1    0.906  0.906    0    1

CPU_2               2    2   0     2      198   1    0.889  0.444    0    0 
 

SAVEVALUE               RETRY       VALUE

BL2                      0        198.000                           

BL1                      0        202.000                             
 

FEC XN   PRI         BDT      ASSEM  CURRENT  NEXT  PARAMETER    VALUE

Имитационное моделирование системы распределенного банка данных