Научная статья на тему 'Модель СМО с неоднородными заявками и абсолютным приоритетом обслуживания'

Модель СМО с неоднородными заявками и абсолютным приоритетом обслуживания Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
49
18
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
СИСТЕМЫ МАССОВОГО ОБСЛУЖИВАНИЯ (СМО) / АБСОЛЮТНЫЙ ПРИОРИТЕТ / МО&SHY / ДЕЛИРОВАНИЕ / АЛГОРИТМ / QUEUING SYSTEM / THE ABSOLUTE PRIORITY / MODELING / ALGORITHM

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Шимановская М. В.

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

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Model of a queuing system with heterogeneous customers and the absolute priority of service

A simulation algorithm for single-channel operation with absolute priority queuing service. When comparing it with previously published works of other authors highlighted a number of advantages: the lack of unconditional transfer operators, and as a result of better visibility and easier maintainability of the code, the code length is smaller with the same complexity of the algorithm.

Текст научной работы на тему «Модель СМО с неоднородными заявками и абсолютным приоритетом обслуживания»

2013

ВЕСТНИК ПЕРМСКОГО УНИВЕРСИТЕТА

Математика. Механика. Информатика

Вып.4(23)

УДК 20.01.45

Модель СМО с неоднородными заявками и абсолютным приоритетом обслуживания

М. В. Шимановская

Пермская государственная сельскохозяйственная академия Россия, 614990, Пермь, ул. Петропавловская, 23 mshim@mail.ru; (342) 2-103-413

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

Ключевые слова: системы массового обслуживания (СМО); абсолютный приоритет; моделирование; алгоритм.

Введение

Одна из основных задач специалиста в области информационных систем и прикладной информатики - принимать обоснованные решения с целью повышения эффективности работы экономического объекта. Одним из наилучших способов обоснования решения является построение и анализ имитационных моделей, описывающих некоторые процессы функционирования предприятия. Функционирование предприятий торговли, производства может быть описано с помощью моделей систем массового обслуживания. Существуют две разновидности моделей СМО: аналитические и алгоритмические. Аналитические не учитывают полностью действие случайных факторов и поэтому могут использоваться как модели первого приближения. С помощью алгоритмических моделей исследуемый процесс может быть описан с любой степенью точности на уровне его понимания постановщиком задачи.

1. Концептуальная модель

Автором статьи разработан имитационный алгоритм функционирования СМО с

© Шимановская М. В., 2013

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

Правило облуживания соответствует дисциплине LIFO (абсолютный приоритет) и состоит в следующем: если в канале обслуживается заявка низшего приоритета, то поступившая заявка высшего приоритета немедленно вытесняет её (занимает её место), после окончания обслуживания заявки высшего приоритета может быть произведено "дооб-служивание" заявки низшего приоритета, однако её может вытеснить новая поступившая заявка высшего приоритета.

Выходными параметрами являются:

•^среднее

число поступивших заявок для обоих приоритетов;

1?среднее число обслуженных заявок обоих приоритетов.

На основании этих показателей легко может быть введён критерий эффективности работы СМО, например средняя ожидаемая прибыль.

2. Моделирование

При моделировании использовался подход поэтапной последовательной проводки заявок [1]. В соответствии с ним сначала рассматривается изолированный поток заявок высшего приоритета так, как будто заявок низшего приоритета не существует. На этом этапе формируется массив из времён поступления заявок высшего приоритета, а затем эти заявки обслуживаются (формируется массив времён окончания обслуживания заявок высшего приоритета). Затем следует этап моделирования заявок низшего приоритета в условиях, что на временной оси уже располагаются обслуженные заявки высшего приоритета. Следовательно, заявки низшего приоритета могут занимать только свободные промежутки времени.

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

Ситуация 1. Ни одна из имеющихся заявок первого приоритета не препятствует обслуживанию заявки второго приоритета.

Ситуация 2. Система приняла к обслуживанию заявку низшего приоритета, и она начала обслуживаться. Но до окончания расчётного времени обслуживания поступила заявка высшего приоритета, которая вытесняет данную заявку низшего приоритета. В этом случае необходимо рассчитывать время дооб-служивания заявки и вновь анализировать ситуацию.

Ситуация 3. Заявка низшего приоритета поступила в момент, когда канал занят обслуживанием заявки с высоким приоритетом. Тогда нужно "сдвигать" время обслуживания заявки с низшим приоритетом.

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

сдвига времени обслуживания требуется обслуживанию какая-либо заявка высшего приоритета, т.е. в какую именно из перечисленных ситуаций попадает пересчитанное время обслуживания. В итоге заявка будет обслужена до конца, либо истечёт время функционирования системы, и заявка покинет систему необ-служенной (так же, как и все последующие заявки второго приоритета).

Эта необходимость возврата к анализу ситуации реализована в [1] операторами безусловного перехода, что усложняет читаемость алгоритма и не соответствует принципам структурного программирования.

3. Блок-схемы модели

Формирование заявок обоих приоритетов происходит по одному алгоритму (см. рис. 1). В результате работы процедуры заполняется массив из времён поступления заявок в систему Tz (время имеет показательное распределение), а также рассчитывается число поступивших заявок №. Выход из алгоритма происходит, если модельное время Т превысит период функционирования системы Ткоп.

Рис. 1. Процедура формирования

потока заявок.

Процедура обслуживания заявок высшего приоритета описана на рис.2. В начале

Модель СМО с неоднородными заявками и абсолютным приоритетом обслуживания

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

Z=RND

Tkl[jl=Tzl[j]+Tobssrl+DTobs-4z-0,5)

TOK=Tkon ->

ко времени поступления заявки низшего приоритета и проверяется условие, что канал свободен. Если занят, то заявка начнет обслуживаться в момент освобождения канала ТОК.

На следующем шаге рассчитывается время окончания обслуживания данной заявки Тк2.

Теперь перебираем в цикле заявки высшего приоритета и проверяем, не помешают ли они обслуживанию данной заявки с низшим приоритетом. Последовательно проверяются ситуации 1 и 2. Если требуется, то пересчитываются времена начала и окончания обслуживания Тп и Тк2.

Рис. 2. Процедура обслуживания заявок высшего приоритета

Затем в цикле перебираются заявки (их число равно Nz1) и прежде всего проверяется, свободен ли канал. Если канал занят, то рассчитывается время ожидания заявки в очереди. Если оно превышает критическое Togmax, то заявка покидает систему необслуженной. В противном случае время начала обслуживания приравнивается ко времени освобождения канала TOK.

Далее с помощью генератора случайных чисел рассчитывается время окончания обслуживания данной заявки и записывается в массив Tk1. Если заявка успела обслужить-ся до окончания функционирования системы, то число обслуженных заявок высшего приоритета Nobsl увеличивается на 1 и время освобождения канала приравнивается Tk1[j].

Более сложен алгоритм облуживания заявок низшего приоритета (рис. 3). В начале алгоритма также обнуляется время освобождения канала обслуживания и число обслуженных заявок низшего приоритета. В цикле время начала облуживания Tn приравнивается

Рис. 3. Процедура обслуживания заявок низшего приоритета

После окончательного расчета Tk2 проверяем, не закончилось ли время функционирования системы. Если закончилось, то выходим из процедуры, иначе увеличиваем счётчик числа обслуженных заявок низшего приоритета на 1 и пересчитываем время освобождения канала.

Результаты. Разработанный алгоритм реализован в среде Delphi 7. Проведены расчёты с комбинацией переменных и параметров, предложенные в [1].

При сравнении разработанного алгоритма с описанным в работе [1] выделяются преимущества моего алгоритма:

^лучшая наглядность и более лёгкая сопровождаемость кода в связи с отсутствием операторов безусловного перехода;

^меньшая длина кода (например, процедура обслуживания заявок низшего приоритета написана в 36 операторах против 69 из [1]) при одинаковой сложности алгоритма.

Разработанный алгоритм используется при работе со студентами факультета Прикладной информатики Пермской ГСХА.

При изучении темы "Имитационное моделирование" на лабораторных работах студентам предлагается реализовать алгоритм в выбранной ими среде программирования.

Выводы

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

Список литературы

1. Варфоломеев В.И., Назаров С.В. Алгоритмическое моделирование элементов экономических систем: Практикум: Учеб. пособие. 2-е изд., доп. и перераб. / под ред. С.В. Назарова. М.: Финансы и статистика, 2004.

2. Снетков Н.Н. Имитационное моделирование экономических процессов: учеб.-прак-тич. пособие. М.: Изд. центр ЕАОИ, 2008.

Model of a queuing system with heterogeneous customers and the absolute priority of service

M. V. Shimanovskaja

Perm State Agricultural Academy, Russia, 614990, Perm, Petropavlovckaja st., 23 mshim@mail.ru; (342) 2-103-413

A simulation algorithm for single-channel operation with absolute priority queuing service. When comparing it with previously published works of other authors highlighted a number of advantages: the lack of unconditional transfer operators, and as a result of better visibility and easier maintainability of the code, the code length is smaller with the same complexity of the algorithm.

Key words: queuing system; the absolute priority; modeling; algorithm.

i Надоели баннеры? Вы всегда можете отключить рекламу.