Научная статья на тему 'Применение методов теории автоматов для моделирования информационных процессов'

Применение методов теории автоматов для моделирования информационных процессов Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
929
101
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
АВТОМАТ. / АБСТРАКТНЫЙ АВТОМАТ. / СТРУКТУРНЫЙ АВТОМАТ. / МОДЕЛИРОВАНИЕ. / ИНФОРМАЦИОННЫЙ ПРОЦЕСС. / AUTOMATON. / ABSTRACT AUTOMATON. / STRUCTURE AUTOMATON. / MODELLING. / INFORMATION PROCESS

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Меньших Валерий Владимирович, Петрова Елена Владиленовна

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

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

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Меньших Валерий Владимирович, Петрова Елена Владиленовна

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

APPLICATION OF AUTOMATA THEORY METHODS FOR INFORMATION PROCESS MODELLING

The opportunity of automatic modelling of information processes in the allocated information systems is proved. The automatic models of application servicing with the account and without the account of priorities are offered.

Текст научной работы на тему «Применение методов теории автоматов для моделирования информационных процессов»

В.В. Меньших, Е.В. Петрова

доктор физико-математических наук, профессор

ПРИМЕНЕНИЕ МЕТОДОВ ТЕОРИИ АВТОМАТОВ ДЛЯ МОДЕЛИРОВАНИЯ ИНФОРМАЦИОННЫХ ПРОЦЕССОВ

APPLICATION OF AUTOMATA THEORY METHODS FOR INFORMATION PROCESS MODELLING

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

The opportunity of automatic modelling of information processes in the allocated information systems is proved. The automatic models of application servicing with the account and without the account of priorities are offered.

Любой процесс может рассматриваться как последовательная смена состояний некоторого объекта во времени. Информационные процессы — это процессы сбора, обработки, накопления, хранения, поиска и распространения информации. Информационные процессы, протекающие в компьютерных системах, представляют собой последовательности некоторых операций, осуществляемых в дискретные моменты времени. Поэтому для их моделирования могут быть использованы методы теории автоматов [1, 2].

Абстрактным автоматом называется пятёрка М = (X, Y, Q, 1, 8), где X — некоторое конечное множество, входной алфавит ;Y — некоторое конечное множество, выходной алфавит; Q — множество состояний (не обязательно конечное); 1: Q х X® Q — одношаговая переходная функция; 8: Q х X® Y — одношаговая выходная функция. Структурный конечный автомат задаётся конечным множеством абстрактных автоматов, конечной схемой их соединения и указанием влияния частей схемы друг на друга [2].

В качестве примера рассмотрим распределённую информационную систему, на нескольких рабочих станциях которой пользователи совершают определённые операции по обработке информации и при необходимости отправляют запросы серверу; сервер может принять на обслуживание заявку от данной рабочей станции и по окончании обслуживания отправить результат либо отказать в обслуживании [3]. Автомат P (рис. 1), моделирующий поведение рабочей станции, должен иметь три входа, соответствующих сигналам от пользователя, сигналам от сервера и внутренним сигналам. Иными словами, данный автомат имеет векторный вход с сигналами вида х = (с,С2,С3), где С — сигнал от пользователя; с2 — внутренний сигнал; с3 — сигнал от сервера. Каждая составляющая векторного сигнала х может принимать значение 0 (отсутствие сигнала).

Рис. 1. Автоматная модель рабочей станции

Введём обозначения:

х0 = (Е, 0,0) — сигнал подачи пользователем команды на отправку запроса, после чего автомат переходит из исходного состояния Т0 в состояние отправления заявки Т11 (1-я попытка);

X = (0, D, 0) — внутренний сигнал «запрос отправлен»; переводит автомат из состояния отправления заявки Т1І, і =1,K (і-я попытка) в соответствующее состояние ожидания Т2І;

х2 = (0,0, Г) — сигнал «отказано в обслуживании отправленной заявки» (поступает от сервера); данный сигнал переводит автомат из состояния ожидания Х2 і в состояние повторной отправки Т1І+1 при і = 1, К — 1, а в случае, когда і = К — в исходное состояние Х0; из состояния Х0 пользователь может повторить попытку отправления заявки сразу же или через какое-то время;

х3 = (0,0, А) — сигнал «заявка принята на обслуживание» (поступает от сервера);

оставляет автомат в том же состоянии ожидания Тіі , і = 1, К, в котором он находился;

х4 = (0,0, К) — сигнал «результат обслуживания заявки» (поступает от сервера) переводит автомат из состояния ожидания Т2і в исходное состояние Х0 с выдачей на выходе результата обслуживания заявки;

х5 = (С, 0,0) — сигнал, соответствующий подаче пользователем команды «отмена», возвращающий автомат из состояний отправки либо ожидания в исходное состояние Х0;

х6 = (#, 0,0) — сигнал «любая другая команда» пользователя при работе в исходном состоянии Х0; оставляет автомат в состоянии Х0; х7 = (0,0,0) — отсутствие сигнала на входе.

Выход автомата Р также будет векторным с сигналами вида у = (^, %), где у1

— сигнал пользователю, у2 —сигнал серверу. Тогда:

у0 = (0,1) — сигнал «заявка», соответствует поступлению входного сигнала х = (0, D, 0);

у1 = (0,0) — сигнал «вывод результата» обслуживания заявки, соответствует поступлению входного сигнала х4 = (0,0, К) ;

у2 = (М,0) — сигнал «сообщение об отказе в обслуживании» отправленной пользователем заявки в случае поступления на вход автомата, находящегося в состоянии ожидания Х2К (т.е. после К-й попытки отправления заявки в автоматическом режиме) сигнала х2 = (0,0, Г);

у3 = (0, В) — сигнал «прервать», формируется на выходе при поступлении на вход сигнала х5 = (С, 0,0) и отправляется на сервер;

у4 = (¥, 0) — выходная реакция на входной сигнал х6 = (#, 0,0); у5 = (0,0) — отсутствие сигнала на выходе.

Пусть сервер рассматриваемой сети обслуживает три равноправные рабочие станции (приоритеты отсутствуют), и приступает к обслуживанию новой заявки только после окончания обслуживания предыдущей, в противном случае новая заявка отклоняется. Соответствующий автомат Ж может находиться в следующих состояниях: Q0

— исходное состояние (сервер свободен и ждёт поступления заявки); Q1 — обслуживание заявки от первой рабочей станции; 02 — обслуживание заявки от второй рабочей станции; 03 — обслуживание заявки от третьей рабочей станции.

Автомат Ж будет иметь векторный вход с сигналами вида и = (¿¿, ¿¿), где '&1 — сигнал от первой рабочей станции; ¿2 — от второй; ¿3 — от третьей; ¿4 — внутренний сигнал. Будем считать, что каждый такт на сервер поступает сигнал от одной рабочей станции, либо не поступает сигнала. Отсутствие сигнала также будем обозначать символом 0.

Пусть и0 = (0,0,0,0) — отсутствие сигнала на входе; и = (А, 0- 0.0) — сигнал «заявка от первого терминала»; и2 = (0, /2,0,0) — сигнал «заявка от второго терминала»; щ =(0,0, /3,0)

— сигнал «заявка от третьего терминала»; и4 = (0,0,0,5) — внутренний сигнал «заявка обслужена»; и5 = (Д, 0,0,0) — сигнал «прервать обслуживание» с первой рабочей станции; иб =(0,В2,00) — сигнал «прервать обслуживание» со второй рабочей станции; щ = (0,0, В3,0)

— сигнал «прервать обслуживание» с третьей рабочей станции рабочей станции.

Выход автомата также будет векторным с сигналами вида V = (ц,и2,ц), где ц — сигнал от первой рабочей станции; и2 — от второй; и3 — от третьей. Выходными сигналами будут следующие: V, = (0,0,0) — отсутствие сигнала на выходе; v1 = (А1,0,0) — «заявка от первой рабочей станции принята на обслуживание»; v2 = (0, А>, 0) — «заявка от второй рабочей станции принята на обслуживание»; v3 = (0,0, А3) — «заявка от третьей рабочей станции принята на обслуживание»; v4 = (Е1,0,0) — «отказ в обслуживании заявки от первой рабочей станции»; V = (0, Г2,0) — «отказ в обслуживании заявки от второй рабочей станции»; v6 = (0,0, Г3) — «отказ в обслуживании заявки от третьей рабочей станции»; v7 = (К, 0,0) — «результат обслуживания заявки от первой рабочей станции»;

v8 = (0,К2,0) — «результат обслуживания заявки от второй рабочей станции»;

V = (0,0, К3) — «результат обслуживания заявки от третьей рабочей станции». Функционирование автомата Ж описано на рис. 2.

Автоматная модель функционирования рассматриваемой информационной системы представляет собой структурный автомат, изображённый на рис. 3.

Рис. 3. Автоматная модель взаимодействия узлов системы

Построим автоматную модель сервера, обслуживающего поступающие на него заявки по дисциплине обслуживания очередей с относительным приоритетом [4]. В этом случае очередь формируется в соответствии с приоритетом заявок: более приоритетные поступают в начало очереди, менее приоритетные — в её конец. Однако заявка, поступившая в систему, не вызывает прерывания обслуживаемой в данный момент заявки, даже если имеет более высокий приоритет [5].

Заявки, поступающие в систему, можно разделить на К классов, каждый из которых имеет определённый приоритет. Обозначим заявку, принадлежащую классу к = 1,К, как хк и будем считать, что приоритет заявки тем выше, чем меньше к. Разобьём процесс

функционирования сервера на два: процесс формирования очереди и процесс непосредственного обслуживания заявок, поступающих из очереди. Соответственно модель рассматриваемой системы будет состоять из двух автоматов: Q и £ (рис. 4).

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

виде а = (а1,а2,..,ап,ап¥1,ап+2,ап¥3), а выходной сигнал — в виде Д = (Д,Д2,...,Д); входной и выходной сигналы автомата моделирующего процесс обслуживания заявок, поступающих из очереди, представим соответственно в виде С = (С,С2) и

~ї = (ї\,їг). Сигнал Д описывает состояние очереди на каждом такте, Д, і = 1,п соответствует заявке, і-й по порядку в очереди.

задающий квант обслуживания

Рис. 4. Автоматная модель процесса обслуживания заявок по дисциплине обслуживания очередей с относительным приоритетом

Очевидно, что для формирования очереди на каждом у +1- м такте автомат должен «помнить» состояние очереди на у -м такте. Это можно реализовать при помощи обратной связи, подав выходы Д,Д2,...,Дп на входы а1,а2,...,ап соответственно.

Будем считать, что заявка, поступающая из очереди на обслуживание, обслуживается в течение некоторого фиксированного времени (кванта обслуживания). Если этого времени не хватает для обслуживания заявки, то она снова направляется в очередь на до*

обслуживание (заявка хк, отправляемая на дообслуживание, обозначается хк). Это реализуется с помощью обратной связи, которая подает сигнал с выхода у автомата £, соответствующий заявке, отправляемой на дообслуживание, на вход ап+1 автомата Q. Выход у2 автомата £ соответствует обслуженной заявке.

Поток заявок на обслуживание поступает на вход ап+2 автомата Q; автомат Q на каждом такте подает поступившую заявку хк на один из выходов Д, в соответствии с её приоритетом, изменяя, если потребуется, порядок заявок уже находящихся в очереди; так продолжается, пока очередь не будет заполнена. Первая по очереди заявка Д1 направляется на вход с автомата £. Так как обслуживание заявки осуществляется в течение некоторого времени, т.е. длится несколько тактов, то необходимо на второй вход с2 автомата £ подать сигнал, задающий квант обслуживания. Этот же сигнал подается на вход ап+3 автомата Q. Это необходимо для того, чтобы при поступлении заявки на обслуживание она удалялась из очереди и при необходимости осуществлялся сдвиг остальных заявок из очереди. Сигнал, задающий квант обслуживания, представ-

ляет собой последовательность вида 10...0.І0...0.І..., где 0 — отсутствие сигнала, I —

N N

сигнал, означающий прекращение обслуживания текущей заявки (с выдачей результата или отправкой на дообслуживание) и начало обслуживания следующей, N определяется длительностью кванта обслуживания.

Опишем множество состояний автомата Q: Q1 — исходное состояние, соответствующее пустой очереди; Q2 — состояние, соответствующее процессу заполнения очереди (очередь заполнена не полностью); Q3 — состояние, соответствующее полностью заполненной очереди.

Опишем переходы и выходные сигналы автомата Q для различных входных воздействий (из соображений удобства на рис. 4 переходы пронумерованы).

(1) — Q1 ® Q1; автомат Q остаётся в исходном состоянии Q1, если а= (0,0,..., 0,0,0,0) или а= (0,0,..., 0,0,0, I), т.е. если на его вход не поступает новая заявка или заявка, отправленная на дообслуживание; в этом случае Д = (0,0,..., 0).

(2) — Q1 ® Q2; автомат Q переходит из исходного состояния Q1 в состояние Q2, если а= (0,0,..., 0,0,хк, 0/1), либо а= (0,0,..., 0,х*,0,0/1), либо а= (0,0,..., 0,х*,хк, 0/1), где к, I = 1, К, т.е. если есть либо новая заявка, либо заявка, поступившая на дообслуживание, либо и та, и другая; Д = (хк,0,...,0) для а= (0,0,..., 0,0,хк,0/1), Д = (х1,0,...,0) для

а= (0,0,...,0,х*,0,0/1) и Д=(хк,х*,0,...,0) при к > I либо Д = (х*,хк,0,...,0) при к < I для а= (0,0,..., 0, хг, хк, 0/1).

(3) — Q2 ® Q2; данный переход осуществляется, пока очередь находится в состоянии заполнения; положим ап+3 = 0 и рассмотрим основные возможные случаи:

*

а) если на один из входов ап+2 или ап+1 поступает заявка (хк или хк) и в очереди два или более свободных места, то она помешается в очередь после заявок хг, г < к и перед заявками х1, I > к, при этом часть очереди, содержащая эти заявки, смещается на одну позицию назад (если в очереди одно свободное место, то осуществляется переход (4));

б) если на оба входа ап+2 и ап+1 поступают заявки и в очереди имеется более двух свободных мест, то каждая из них помещается в очередь в соответствии с её приоритетом так же, как в предыдущем случае (если в очереди менее трёх свободных мест, то осуществляется переход (4));

в) если ап+2 = 0 и ап+1 = 0 (заявки отсутствуют), то состояние очереди (и соответственно выходной сигнал) не изменяется.

Если же ап+3 = І и в очереди содержится более одной заявки, то одновременно с описанными выше преобразованиями осуществляется удаление из очереди заявки Д1 и сдвиг оставшейся части очереди на одну позицию вперед (если в очереди одна заявка, то происходят те же изменения, но в случае (в) осуществляется переход (7): Q2 ® Q1).

(4) — Q2 ® Q3; этот переход осуществляется либо, если ап+3 = 0 и имеет место один из следующих случаев:

а) в очереди только одно свободное место, и на один из входов ап+2 или ап+1

*

поступает заявка (хк или хк), в этом случае она помещается в очередь в соответствии с приоритетом;

б) в очереди только одно свободное место, и на оба входа an+2 и an+1 поступают заявки, в этом случае в очередь помещается только заявка, поступившая на вход an+1 (заявка, отправленная на дообслуживание), а вновь поступившая заявка отклоняется;

в) в очереди два свободных места, и на оба входа an+2 и an+1 поступают заявки, в этом случае каждая из них помещается в очередь в соответствии с её приоритетом; либо, если в очереди одно свободное место, an+3 = I и на оба входа an+2 и an+1 поступают заявки, в этом случае из очереди удаляется заявка, поступившая на обслуживание в автомат S, и в связи с этим освобождается ещё одно место в очереди, поэтому каждая из поступивших заявок помещается в очередь в соответствии с приоритетом и очередь заполняется.

(5) — Q3 ® Q3; автомат Q остается в состоянии Q3 (очередь заполнена) в следующих случаях:

а) при поступлении новой заявки и an+3 = 0; если поступившая заявка xk более приоритетная, чем хотя бы одна из имеющихся в очереди заявок, то из очереди удаляется самая низкоприоритетная заявка, а заявка xk помещается в очередь в соответствии с приоритетом;

б) при поступлении на вход an+3 сигнала I и одновременном поступлении на

*

один из входов an+2 и an+1 заявки (xk или xk), в этом случае из очереди удаляется первая по порядку заявка, осуществляется сдвиг и одновременно помещается заявка xk

*

(или xk ) в соответствии с её приоритетом;

в) при поступлении на вход an+3 сигнала I и одновременном поступлении на оба входа an+2 и an+1 заявки, в этом случае осуществляется то же, что и в предыдущем для заявки, поступившей на дообслуживание, вновь поступившая заявка отклоняется.

(6) — Q3 ® Q2; этот переход осуществляется, если an+3 = I (из очереди удаляется первая по порядку заявка) и ни на один из входов an+2 и an+1 заявка не поступает.

(7) — Q2 ® Q1; этот переход осуществляется, если в очереди только одна заявка, ни на один из входов an+2 и an+1 заявка не поступает и an+3 = I.

Опишем множество состояний автомата S: S1 — исходное состояние (автомат не обслуживает заявку); S2 — состояние обслуживания поступившей из очереди заявки.

Опишем переходы и выходные сигналы автомата S для различных входных воздействий:

(В) — S1 ® S1; автомат S остаётся в исходном состоянии S1 если на вход Х1 не поступает заявка, либо если заявка поступает, но Х2 =0. В обоих случаях на выходе формируется сигнал ß = (0,0).

(9) — S1 ® S2; переход осуществляется, если на вход Х1 поступает заявка, а на вход Х2 сигнал I, ß = (0,0).

(10) — S2 ® S2; если автомат S обслуживает заявку xk, Х2 = 0, то он остается в этом состоянии вне зависимости от Х1, ß = ( 0, 0); если Х2 = I и на вход поступает заявка, то автомат прекращает обслуживание заявки xk и принимает на обслуживание вновь поступившую, при этом ß = (0, xk ), если заявка xk обслужена и получен результат xk, либо ß = ( x*, 0), если заявка отправлена на дообслуживание ( xk — некий про-

межуточный результат). Предположим для простоты, что каждый из К рассматриваемых классов заявки однотипные заявки, требующие фиксированного времени для их обслуживания. Соотношение этого времени для конкретной заявки хк и длительности кванта обслуживания определяет, сколько квантов обслуживания необходимо требует данная заявка для получения результата хк. Таким образом, можно считать, что изначально известно, будет ли данная заявка хк отправляться на дообслуживание и сколько раз.

(11) — £2 ® ¿1; если на вход автомата £, обслуживающего заявку хк, поступает сигнал С = (0,I), в этом случае ¡3 = (0,хКк ) (заявка обслужена) либо ¡3 = (х*, 0), (заявка хк отправлена на дообслуживание) в зависимости от хк.

Время, необходимое для получения результата при непрерывном обслуживании заявки хк, можно приближённо охарактеризовать величиной Т0(Хк) = ш'Хк) • Т-, где т(хк) Ш 11) — число квантов обслуживания (фиксировано для конкретной заявки хк), необходимых для получения результата обслуживания заявки хк. Однако обслуживание заявки осуществляется с прерываниями, поэтому реальное время обслуживания Т£Хк) может пре-

вышать Т0( хк

(хк)

< хк) •

Введём величину д(

#ч) = Т^ = т(х) • Т. = ш(х) • ^ + 1) • Т = ш(х) • (М+1)

Т(хк ) I ( хк ) • Т I(хк ) • Т I(хк )

(х)

где Т — длительность одного такта; I — число тактов с момента поступления заявки хк на вход ап+1 автомата Q до момента выдачи результата х% на выходе у2 автомата

N N

£; Т. = (N + 1)• Т, т.е. квант обслуживания длится ^ +1) тактов (10...010...01...).

N+1 N+1

(х )

Число тактов I к зависит от того, в какой момент времени заявка хк поступает на вход ап+1 автомата Q (т.е. определяется текущим состоянием очереди, а также заявками, следующими за хк). Если рассматривать входную последовательность большой длины, в которой заявка хк встречается Р раз, причём Р достаточно велико, то эффективность обслуживания заявок данного класса к можно определить следующим образом:

Чем ближе А(Хк] к единице, тем более эффективно функционирует моделируемая система в отношении обслуживания заявок класса к.

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

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

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

ЛИТЕРАТУРА

1. Калман Р.Э. Очерки по математической теории систем / Р.Э. Калман, П. Л. Фалб, М. А. Арбиб. — М.: Едиториал УРСС, 2004. — 400 с.

2. Кудрявцев В.Б. Введение в теорию автоматов / В.Б. Кудрявцев, С.В. Алешин, А.С. Подколозин. — М.: Наука, 1985. — 320 с.

3. Меньших В. В. Использование конечных автоматов для моделирования распределённых информационных систем / В.В. Меньших, Е. В. Петрова // Моделирование систем и информационные технологии: межвузовский сборник научных трудов.— Вып. 5 / АНОО ВИВТ, РосНОУ (ВФ). — Воронеж: Научная книга, 2008. — 331 с.

4. Петрова Е. В. Автоматное моделирование процесса обслуживания заявок в распределённой информационной системе // Информационные технологии в науке, технике и образовании: материалы региональной научно-практической конференции. АНОО ВИВТ, РосНОУ (ВФ). — Воронеж: Воронежский институт высоких технологий, 2008. — 120 с.

5. Джейсоул Н. Очереди с приоритетами / Н. Джейсоул. — М.: Мир, 1973. — 279 с.

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