Фрагмент для ознакомления
2
Введение
Имитационное моделирование применяется во всех сферах деятельности человека начиная от моделей технических, технологических и организационных систем и заканчивая проблемами развития человечества и вселенной.
Основная ценность имитационного моделирования заключается в том, что в основе его лежит методология системного анализа. Оно позволяет осуществить исследования проектируемой или анализируемой системы по схеме операционного анализа, включающей взаимосвязанные этапы: содержательная постановка задачи, разработка концептуальной модели, разработка и программная реализация имитационной модели, проверка адекватности модели и оценка точности результатов моделирования, планирование и проведение экспериментов, принятие решений. Это позволяет использовать имитационное моделирование как универсальный метод для принятия решений в условиях неопределенности и для учета в моделях трудно формализуемых факторов, а также применять основные принципы системного подхода для решения практических задач.
Целью работы является изучение принципов и методов аналитического и статистического (имитационного) моделирования информационных систем на примере службы поддержки пользователей ИС.
В настоящее время используется большое число систем имитационного моделирования. Одним из первых языков моделирования, облегчающих процесс написания имитационных программ, был язык GPSS, созданный фирмой IBM.
Модели систем на GPSS могут быть записаны в виде блок-схем или представлены в виде последовательности строк программы, эквивалентных блок - схеме. В систему моделирования GPSS входят специальные средства для описания динамического поведения систем путем смены состояний в дискретные моменты времени. Блоки языка GPSS представляют собой подпрограммы, написанные на языке макроассемблера и содержат набор параметров (операндов) для обращения к ним. Как и все языки моделирования, GPSS имеет некоторый внутренний механизм передачи управления, который реализуется в модельном времени, что позволяет отображать динамические процессы, протекающие в реальных системах. Передача управления от блока к блоку в GPSS-программах осуществляется посредством движения транзактов в модельном времени, т. е. обращение к подпрограммам блоков происходит через движение транзактов от блока к блоку программы GPSS.
В работе для построения модели исследуемой системы воспользуемся средствами языка GPSS, который предоставляет возможности ведущей программы для розыгрыша случайных моментов времени поступления заявок (транзактов) в систему и их обработки в соответствии с логикой модели.
1 Имитационная модель вычислительного комплекса
Предполагается разработать модель вычислительного комплекса (ВК), обслуживающего запросы автоматизированных рабочих мест (АРМ).
В рассматриваемой системе двухпроцессорный вычислительный комплекс обслуживает три АРМ. Первое АРМ имеет абсолютный приоритет по отношению к остальным, а второе – более высокий приоритет по отношению к третьему АРМ. От первого АРМ поступают запросы на обслуживание, интервалы между которыми распределены равномерно в промежутке [t1, t2] с. Интервалы времени поступления запросов второго и третьего АРМ распределены по экспоненциальному закону с параметрами t3 b t4 c. На обслуживание одного запроса первой категории любой процессор затрачивает время, экспоненциально распределенное с параметром t5 c, второй категории – t6 с, третьей категории – t7 с. В оперативной памяти ВК организован накопитель емкостью L запросов.
Каждый процессор имеет конечную надежность. Длительность интервалов между отказами распределена по экспоненциальному закону с параметром t8 с. Длительность восстановления распределена по нормальному закону с параметрами t9 и t10 c. При отказе любого процессора обслуживаемые и прерванные запросы теряются.
Имитационная модель функционирования двухпроцессорного ВК построим с целью исследования влияния емкости накопителя, времени обработки запросов, интервалов времени выхода из строя и восстановления процессоров на вероятность потерь запросов.
Имитационное моделирование модели произведем на языке GPSS в пакете GPSS World.
Программа моделирования состоит из ряда сегментов. В первом сегменте определяются параметры модели. Далее следуют сегменты имитации поступления запросов на обслуживание от АРМ1 – АРМ3. Затем сегменты имитации обслуживания Cpu1 и Cpu2 запросов от АРМ1 – АРМ3. Выделен сегмент работы накопителя, в который запросы помещаются в соответствии с категорией. В случае заполнения накопителя, запрос получает отказ в обслуживании. В конце работы программы рассчитывается доля полученных отказов от общего числа запросов. Два сегмента имитируют отказы и восстановление Cpu1 и Cpu2.
За единицу модельного времени принята 1 с. Программа с комментариями приведена ниже.
*************************************************
* Программа моделирования 2-х процессорного ВК *
* с 3-мя АРМ *
*************************************************
; Задание исходных данных
VrMod EQU 3600 ; Время моделирования
L_ EQU 1 ; Емкость накопителя
T1_ EQU 11 ; Среднее время запросов АРМ1
T2_ EQU 3 ; Среднеквадратическое отклонение для АРМ1
T3_ EQU 10 ; Средний интервал запросов АРМ2
T4_ EQU 12 ; Средний интервал запросов АРМ3
T5_ EQU 5 ; Среднее время обработки запросов АРМ1
T6_ EQU 7 ; Среднее время обработки запросов АРМ2
T7_ EQU 9 ; Среднее время обработки запросов АРМ3
T8_ EQU 1000 ; Среднее время наработки на отказ
T9_ EQU 15 ; Среднее время восстановления
T10_ EQU 2 ; Среднеквадратическое отклонение времени восстановления
Koef EQU 1 ; Коэффициент изменения Т9_ и Т10_
Ver VARIABLE N$Term1/N$Met0 ; Вероятность отказов
; Сегмент запросов АРМ1
GENERATE T1_,T2_,,,2
ASSIGN 1,1 ; Категория приоритета
ASSIGN 2,(Exponential(11,0,T5_)) ; Время обслуживания
TRANSFER ,Met0
; Сегмент запросов АРМ2
GENERATE (Exponential(2,0,T3_))
ASSIGN 1,2 ; Категория приоритета
ASSIGN 2,(Exponential(13,0,T6_)) ; Время обслуживания
TRANSFER ,Met0
; Сегмент запросов АРМ3
GENERATE (Exponential(2,0,T4_))
ASSIGN 1,3 ; Категория приоритета
ASSIGN 2,(Exponential(15,0,T7_)) ; Время обслуживания
Met0 TEST E P1,1,Met5 ; Проверка категории запроса
; Сегмент обработки запросов АРМ1 на Cpu1
GATE FV Cpu1,Met1 ; Проверка, исправен ли Cpu1? Если да, то
GATE NU Cpu1,Met1 ; Проверка, свободен ли Cpu1? Если да, то
Met3 PREEMPT Cpu1,PR ; Захватить Cpu1
ADVANCE P2 ; Обработка запроса
RETURN Cpu1 ; Освободить Cpu1
UNLINK Nak,Met3,1 ; Вывести из накопителя очередной запрос
TERMINATE ; Запрос обработан
; Сегмент обработки запросов АРМ1 на Cpu2
Met1 GATE FV Cpu2,TERM1 ; Проверка, исправен ли Cpu2? Если да, то
GATE NU Cpu2,Met2 ; Проверка, свободен ли Cpu2? Если да, то
Met4 PREEMPT Cpu2,PR ; Захватить Cpu2
ADVANCE P2 ; Обработка запроса
RETURN Cpu2 ; Освободить Cpu2
UNLINK Nak,Met4,1 ; Вывести из накопителя очередной запрос
TERMINATE ; Запрос обработан
; Сегмент обработки запросов АРМ2 и АРМ3 на Cpu1
Met5 GATE FV Cpu1,Met6 ; Проверка, исправен ли Cpu1? Если да, то
GATE NU Cpu1,Met6 ; Проверка, свободен ли Cpu1? Если да, то
Met7 SEIZE Cpu1 ; Занять Cpu1
ADVANCE P2 ; Обслуживание запроса
RELEASE Cpu1 ; Освободить Cpu1
UNLINK Nak,Met7,1 ; Вывести из накопителя очередной запрос
TERMINATE ; Запрос обработан
; Сегмент обработки запросов АРМ2 и АРМ3 на Cpu2
Met6 GATE FV Cpu2,TERM1 ; Проверка, исправен ли Cpu2? Если да, то
GATE NU Cpu2,Met2 ; Проверка, свободен ли Cpu2? Если да, то
Met8 SEIZE Cpu2 ; Занять Cpu2
ADVANCE P2 ; Обслуживание запроса
RELEASE Cpu2 ; Освободить Cpu2
UNLINK Nak,Met8,1 ; Вывести из накопителя очередной запрос
TERMINATE ; Запрос обслужен
; Сегмент накопителя
Met2 TEST L CH$Nak,L_,TERM1 ; Имеется ли свободное место?
LINK Nak,P1 ; Размещение запросов в накопителе по категориям
TERM1 TERMINATE ; Отказ в обслуживании
; Сегмент сбоя Cpu1
GENERATE ,,,1 ; Имитация отказа
Met9 ADVANCE (Exponential(13,0,T8_)) ; Время между отказами
FUNAVAIL Cpu1,RE,TERM1,,RE,TERM1,RE,TERM1 ; Отказ Cpu1
ADVANCE (Normal(4,T9_#Koef,T10_#Koef)) ; Время восстановления
FAVAIL Cpu1 ; Восстановлен Cpu1
TRANSFER ,Met9
; Сегмент сбоя Cpu2
GENERATE ,,,1 ; Имитация отказа
Met10 ADVANCE (Exponential(13,0,T8_)) ; Время между отказами
FUNAVAIL Cpu2,RE,TERM1,,RE,TERM1,RE,TERM1 ; Отказ Cpu2
ADVANCE (Normal(4,T9_#Koef,T10_#Koef)) ; Время восстановления
FAVAIL Cpu2 : Восстановлен Cpu2
TRANSFER ,Met10
; Сегмент времени моделирования
GENERATE VrMod
SAVEVALUE Ver,V$Ver ; Вероятность потери запросов
TERMINATE 1
Результаты имитации работы ВК за 1 час.
FACILITY ENTRIES UTIL. AVE. TIME AVAIL. OWNER PEND INTER RETRY DELAY
CPU1 362 0.713 7.094 1 972 0 0 0 0
CPU2 346 0.638 6.635 1 0 0 0 0 0
USER CHAIN SIZE RETRY AVE.CONT ENTRIES MAX AVE.TIME
NAK 0 0 0.294 263 1 4.022
SAVEVALUE RETRY VALUE
VER 0 0.278
Результаты имитации работы ВК за 2 часа.
FACILITY ENTRIES UTIL. AVE. TIME AVAIL. OWNER PEND INTER RETRY DELAY
CPU1 773 0.725 6.750 1 1925 0 0 0 0
CPU2 662 0.631 6.866 1 1931 0 0 0 0
USER CHAIN SIZE RETRY AVE.CONT ENTRIES MAX AVE.TIME
NAK 0 0 0.275 510 1 3.885
SAVEVALUE RETRY VALUE
VER 0 0.262
Сопоставление результатов расчетов показывает близкие значения параметров. Это позволяет сделать вывод о стационарности модели.
Загрузка Cpu1 составляет порядка 0.73, Cpu2 –порядка 0.63. Доля отказов в обслуживании составляет порядка 0.27.
2 Экспериментальное исследование модели
Программа GPSS World позволяет проводить эксперименты с имитационной моделью с помощью процедур ANOVA. Доступны дисперсионный и регрессионный методы анализа.
Дисперсионный анализ – это статистический метод анализа результатов наблюдений, зависящих от различных, одновременно действующих факторов, выбор наиболее важных факторов и оценка их влияния.
В терминах GPSS World дисперсионный анализ трактуется как отсеивающий эксперимент.
Оценим степень влияния на вероятность потерь запросов емкости накопителя, времени обработки запросов и времени между отказами и восстановления процессоров. Отсеивающий эксперимент позволяет отследить влияние до 6 факторов. Опишем условия проведения эксперимента, задав значения влияющих факторов с достаточно большим разбросом. Процедура ANOVA позволяет проводить как полнофакторный, так и дробнофакторые эксперименты. Степень детализации можно оценить с помощью Alias Groups Window. В нашем случае достаточно провести анализ с дробностью 1/8.