ИНФОРМАТИКА, ВЫЧИСЛИТЕЛЬНАЯ ТЕХНИКА И УПРАВЛЕНИЕ
УДК 681.324
В. И. Волчихин, С. А. Зинкин
ЛОГИКО-АЛГЕБРАИЧЕСКИЕ МОДЕЛИ И МЕТОДЫ В ПРОЕКТИРОВАНИИ ФУНКЦИОНАЛЬНОЙ АРХИТЕКТУРЫ РАСПРЕДЕЛЕННЫХ СИСТЕМ ХРАНЕНИЯ И ОБРАБОТКИ ДАННЫХ
Аннотация. Предлагается метод архитектурного моделирования и проектирования программного обеспечения систем и сетей хранения и обработки данных. Рассматриваемый метод базируется на формальном описании дискретных процессов над структурированной памятью. Предложены логико-алгебраические поведенческие модели распределенных систем хранения и обработки данных, предлагаемые для использования в качестве непосредственно исполняемых спецификаций.
Ключевые слова: хранение данных, обработка данных, формальное определение распределенных процессов, логико-алгебраический подход, сети абстрактных машин, распределенные поведенческие модели.
Abstract. The authors suggest a method of software modeling and architectural design for data storage and processing systems and networks. The method is based on a formal description of discrete processes on the structured-term memory. The researchers propose logic-algebraic behavioral models of distributed storage and data processing systems to be used as directly executable specifications.
Key words: data storage, data processing, formal representations of distributed processes, logical-algebraic approach, networks of abstract machines, distributed behavioral models.
Введение
Проектирование функциональной архитектуры программного продукта включает описание его функций, режимов функционирования, организационно-функциональной среды. Системная архитектура представляет модульно-иерархическую структуру проектируемого программного продукта и включает функциональные спецификации составляющих его модулей.
В настоящее время активно развиваются методы, основанные на предварительном формальном описании предметной области - ее понятий, отношений, закономерностей. При формализации предметных областей, связанных с системами и сетями хранения и обработки данных, широко используются сетевые модели. В сетевых моделях представляются как информационноструктурные знания о предметной области, так и знания о процессах, причинно-следственных связях, законах функционирования, сценариях деятель-
ности. Модели представления знаний условно разделяются на декларативные (непроцедурные) и императивные (процедурные).
В настоящее время интенсивно развиваются технологии и архитектуры хранения данных [1, 2], кроме того, наметилась устойчивая тенденция интеграции систем и сетей хранения данных с системами и сетями управления информацией [3]. Однако в меньшей степени затрагивались вопросы интеграции данных систем с системами обработки данных.
В работах [4-7] были предложены основы теории сетей абстрактных машин (СеАМ) и базирующиеся на этой теории информационные технологии и технологии сетевого программирования. В основу данной теории положен ряд концепций, изложенных в работах [8-13]. Наиболее общая из данных концепций заключается в том, что «сущности предметной области находятся в определенных отношениях, или ассоциациях, друг к другу, которые также можно рассматривать как сущности и включать в предметную область; отношения между сущностями выражаются с помощью суждений, которые также можно рассматривать как сущности и включать в предметную область» [11].
Абстрактной машиной принято называть математическую формализацию, предназначенную для моделирования программного модуля реальной вычислительной машины; при практической же реализации используются аналоги абстрактных машин в виде виртуальных машин. На практике нередко термин «абстрактная машина» используется и для обозначения виртуальной машины.
На практике виртуальные машины, построенные на основе спецификаций СеАМ, реализуются в виртуальной сетевой инфраструктуре в виде программного слоя в операционной системе или непосредственно над аппаратным обеспечением компьютера. Для приложений систем и сетей хранения и обработки данных при использовании непосредственно выполняемых спецификаций СеАМ «толщина» этого программного слоя относительно невелика. По аналогии с англоязычными терминами software (программное обеспечение), firmware (микропрограммное обеспечение) и hardware (аппаратное обеспечение) в последнее время используется термин vmware (технология виртуальных машин, где vm - virtual machine).
Развитие на указанной выше концептуальной основе технологий реализации функциональной архитектуры систем хранения и обработки данных, основанных на формальном описании дискретных процессов над структурированной памятью, и является целью настоящей работы, в которой развиваются концепции, предложенные в наших работах [14-16].
Элементы теории сетей абстрактных машин
Иерархия программных средств систем и сетей хранения и обработки данных может рассматриваться как реализация иерархии абстрактных машин. Программные средства, реализующие абстрактную машину, выполняют вычислительные и управляющие функции. Желательно, чтобы при реализации абстрактных машин на разных уровнях иерархии использовались сходные технологии, основанные на ограниченном выборе формальных моделей.
В приложениях информатики обычно рассматривают некоторую сигнатуру, или множество Т представлений с интерпретацией I в множестве S элементов [17]; интерпретация I данному представлению а е Т ставит в соответствие некоторое абстрактное информационное содержание 1(а), т.е. интер-
претации соответствует отображение I: Т ^ S. Пусть Т - множество функциональных и предикатных символов различных арностей (в многосортных, или многоосновных, системах тип n-арного функционального символа - это кортеж (ii, i2, ..., in, j), а тип n-арного предикатного символа - это кортеж (i1, i2, ..., in), где i1, i2, ..., in, j - названия (сорта) для основ, или носителей), а S -множество конкретных функций и предикатов.
Предикаты и функции, реализуемые объектами некоторого информационного пространства, задают структурные связи между понятиями предметной области. Причинно-следственные связи между этими понятиями задаются модулями-процедурами, описанными логико-алгебраическими выражениями.
В основу организации информационного пространства положена реляционная модель данных. Как общеизвестно, в реляционной модели данных предполагается, что каждая база данных представляет собой множество истинных высказываний, структурированных в отношения, каждое из которых задается областью истинности некоторого предиката. Кортежи данных отношений представляют собой наборы значений функциональных выражений, или термов, которые при подстановке в предикат превращают его в истинное высказывание.
Сети абстрактных машин содержат построенные с применением определенной в работах [4, 5] алгебры абстрактных машин «модули-процедуры» (далее просто модули), которые модифицируют, или «обновляют», интерпретацию I, выполняя сгруппированные в блоки так называемые правила обновления вида I(ai) ^ Sj; ai е Т, Sj е S. В алгебре абстрактных машин мы включаем подобные правила обновления в систему образующих. Сеть абстрактных машин функционирует, переходя от одной интерпретации I(Ti) к другой интерпретации I(Tj), где Ti и Tj - последовательные моменты времени, Tj > Ti.
В модулях используются специальные операции - элементарные обновления функций и предикатов. Элементарное правило обновления функции или предиката записывается в виде правила вывода
t1, t2, ..., tk, tk+1 s(tb t2-’ ..., tk) ^ tk+1
где t1, t2, ..., tk - термы различных сортов; s - функциональный или предикатный символ. В случае, если s - функциональный символ, tk+1 - суть терм любого сорта, а если s - предикатный символ, то tk+1 - булево выражение.
Определенные нами модули СеАМ используют общее пространство (FS-пространство) структурированной памяти, в качестве элементов которой применяются информационные объекты, представляющие функции и предикаты. Между модулями организуются причинно-следственные связи по типу связей между процессами и объектами.
Рассматривая в качестве вычисленных значений термов t1, t2, ., tn сортов 1, 2, ..., n соответственно предметные константы x1, x2, ..., xn, приведем пример выполнения операции, или правила, обновления некоторого n-арного предиката P.
При выполнении правила обновления предиката
R1 = P(x1, x2, ., xn) ^ false
кортеж < Xi, x2, ..., xn > исключается из множества кортежей, образующих область истинности предиката P или одноименное отношение P. В случае, когда кортеж < x1, x2, ..., xn > отсутствовал в отношении P, после выполнения указанной операции данное отношение P не изменится.
При выполнении правила обновления предиката
R2 = P(x1, x2, ., xn) ^ true
кортеж < x1, x2, ..., xn > включается в область истинности предиката P. Если же данный кортеж уже присутствовал в отношении P, выполнение указанной операции лишь подтвердит вхождение данного кортежа в отношение.
Рассмотрим далее несколько более сложный случай. Пусть, например, в отношении P потребовалось заменить некоторые предметные константы xi и Xj в каком-либо кортеже
< Xl, X2, ..., Xi, ..., Xj, ..., Xn >
константами x i и x j. Данную задачу можно выполнить с помощью двух правил обновления области истинности предиката P:
R3 = P(Xl, X2, ., Xi, ., Xj, ., Xn) ^ false,
R4 = P(x1, X2, ., X i, ., X ', ., xn) ^ true.
Операции, или правила, обновления функций реализуются аналогично. Например, равенству
F(Xl, X2, ..., Xn) = Xn+l, где F - n-арный функциональный символ, соответствует наличие кортежа
< Xl, X2, ..., Xn, Xn+l >
в отношении PF с сохраненной исходной функциональной зависимостью.
Тогда для изменения значения данной функции со значения xn+1 на x 'n+1 достаточно выполнить две операции (правила) обновления (n + 1)-арного предиката PF:
R5 = Pf(xi, X2, ., Xn, Xn+l) ^ false,
R6 = Pf(Xi, X2, ., Xn, x n+l) ^ true, что эквивалентно выполнению правила обновления функции:
F(Xl, X2, ..., Xn) ^ x n+l.
Таким образом, выше были определены операции, или правила, обновления (модификации) предикатов и функций. Понятия правил обновления предикатов и функций широко используются в работах Ю. Гуревича [12, 13] по машинам абстрактных состояний (МАС). Однако в настоящей работе принято, что эти правила реализуются как обычные операции, определенные над отношениями и кортежами реляционных баз данных.
В основу языка абстрактного описания модулей положен язык многосортного исчисления предикатов первого порядка, расширенный правилами выборки и обновления кортежей информационного пространства, а также язык систем алгоритмических алгебр Глушкова [8-10].
При определении МАС используется понятие блока совместимых (непротиворечивых) обновлений с последовательным выполнением правил обновлений предикатов и функций. В формальной записи блоки ограничиваются скобками. При построении сетей СеАМ на основе узлов, или модулей, нами будут использоваться обычные для параллельного и распределенного программирования бинарные операции последовательного и параллельного выполнения модулей.
Бинарные темпоральные операции «;», «,» «:», «||», «|c» предписывают различные способы выполнения модулей, возможно, причинно зависящих друг от друга.
Операция «;» предписывает последовательное выполнение модулей, из которых второй модуль может зависеть от первого.
Операция «,» предписывает выполнение независимых модулей: последовательное в произвольном порядке или параллельное.
Операция «:» предписывает непараллельное выполнение модулей в произвольном порядке.
Операция «||» предписывает модулям причинно-следственную связь по крайней мере через единственный предикат либо функцию; при программной реализации применение данной операции требует дальнейшей детализации описания через операции «;», «,», «:».
Операция «|c» указывает на возможное конкурентное выполнение модулей, например, использующих разделяемый ресурс; непосредственно при программировании данная операция не используется - ее применение требует дальнейшей детализации описания, как и в случае операции «||».
Алгебраические свойства реализуемых операций описаны в работах [18, 19]. Кроме того, некоторые алгебраические свойства операций очевидны -например, операции «,», «:» коммутативны и ассоциативны, а операция «;» некоммутативна и ассоциативна.
В формульной записи имена модулей, сгруппированных в блоки, заключаются в фигурные скобки, а внутри блоков могут использоваться простые скобки для указания на последовательность выполнения операций, например:
{m1 , m2 , m3}, {m1 ; m2} , {(m1 ; m2) , m3}, {(m1 : m2) ; m3}.
В случае, когда блок содержит лишь один модуль, скобки можно опускать. В настоящей работе алгебра алгоритмов Глушкова используется в основном для записи обычных структурированных (дейкстровских) конструкций - «последовательность операторов», «ветвление», «цикл»; в принципе здесь могла бы использоваться любая другая нотация, также пригодная для записи структурированных программ. Все указанные выше операции мы также включаем в состав операций алгебры модулей, что облегчит формирование новых модулей сетей СеАМ. Из алгебры операторов мы выбираем тернарную операцию а-дизъюнкцию и бинарную операцию а-итерацию как основы для формирования модулей СеАМ. Следуя работам [8-10], напомним правила выполнения данных операций. При выполнении операции а-дизъюн-кции [a](m1vm2) при а = true выполняется модуль m1, а при а = false выполняется модуль m2. При реализации операции а-итерации M{m} модуль m выполняется циклически, пока а = false, а при а = true происходит выход из цикла (следует отличать итерационные фигурные скобки от блочных). Вместо
имен модулей Ш\, т2 и т в указанные выражения могут подставляться подформулы с символами любых из определенных выше операторов, например, возможно построение следующих выражений для модулей:
т6 = [а]({т\ , т2 , тз} V {(тз ; т4) , т5}),
ту = [а\](([а2]{[аз](т\ V т2)}) V ([а4](тз V тЛ))).
Элементарный модуль содержит единственное правило обновления предиката или функции. Пустое обновление Я эквивалентно тождественному оператору Е алгебры алгоритмов Глушкова, не выполняющему никаких действий по модификации информационного пространства. Неопределенное обновление Я соответствует неопределенному оператору N. Продукционному программированию соответствует использование модулей (модулей-продукций) следующего вида:
т = [а](Ь V Я),
где Ь - непустая последовательность элементарных модулей.
При определенных очевидных условиях данный модуль может выполняться так же, как и модуль, описываемый выражением [—а]{Ь}.
Поскольку в общем случае не все модули непосредственно (без дополнительных преобразований или без введения дополнительных условий) допускают аналитическую запись в виде суперпозиций операций, при составлении сосредоточенных и распределенных программ рекомендуется использовать модули, допускающие аналитическое описание (т.е. структурированные модули), а связи между ними организовывать посредством модификации и проверки значений функций и предикатов, составляющих информационное пространство. Такие связи называются причинно-следственными, или каузальными. Подобный подход позволяет использовать при распределенном программировании модули различного вида — от простых модулей-продукций до более сложных структурированных модулей.
Алгебра модулей сетей абстрактных машин, подобно системам алгоритмических алгебр, имеет систему образующих - элементарные модули и элементарные логические условия. Условиями называются замкнутые (не содержащие свободных вхождений предметных переменных) логические формулы с предикатными символами в качестве логических переменных. Множество используемых предикатных символов включает символы, используемые при формировании информационного пространства, а также символы стационарных, или немодифицируемых, предикатов сравнения. Используемые при сравнениях термы строятся по обычным в многоосновном исчислении предикатов первого порядка правилам (термами, или функциональными выражениями, называют слова, построенные из переменных, функциональных и специальных символов по определенным правилам) [\\]. Множество используемых функциональных символов включает символы, используемые при формировании информационного пространства, а также символы стационарных, или немодифицируемых, функций, предназначенных для выполнения арифметических и логических операций.
Среди элементарных логических условий большое значение имеют условия, формируемые на основе квантифицированных операторов выборки кортежей из отношений.
Определенные сети абстрактных машин являются в общем случае асинхронными недетерминированными системами ввиду произвольного порядка выбора на исполнение и неопределенного времени работы модулей, модифицирующих общее информационное пространство для получения полезного результата.
При проектировании систем и сетей хранения и обработки данных представляет значительный интерес построение выражений для модулей СеАМ как с использованием квантифицированных операторов выбора 3!, 3!!, V и V !!, так и без них. Применение квантифицированных операторов, а также дополнительных «связывающих» предикатов может привести к существенному уменьшению необходимого числа применяемых модулей СеАМ и упрощению описывающих выражений. Учитывая, что формализмы сетей абстрактных машин мы предлагаем использовать в качестве непосредственно интерпретируемых спецификаций при создании нового аппаратного, микропрограммного и программного обеспечения систем хранения и обработки данных, следует рассмотреть различные формы записи выражений в алгебре модулей СеАМ.
При выполнении оператора 3! из области истинности предиката, описываемого выражением справа, выбирается произвольный кортеж. При выполнении оператора 3!! выбирается единственный кортеж, находящийся в области истинности стоящего справа предиката. При выполнении оператора V выбираются все кортежи, составляющие область истинности соответствующего предиката. Оператор V!! позволяет выбрать все кортежи из области истинности предиката в случае, если его область определения совпадает с его же областью истинности. Во всех случаях подразумевается, что предикат описывается выражением, стоящим справа от символа квантифицированного оператора.
Каждому из описанных квантифицированных операторов выборки кортежей из отношений, в случае его использования в условной части выражения для модуля, ставится в соответствие элементарное логическое условие, истинное в случае успешного выполнения оператора и ложное в противном случае. Данный факт отмечается подчеркиванием оператора снизу. Поскольку такой способ образования элементарного логического условия применяется только для формирования условного выражения модуля, заключенного в квадратные скобки, символ подчеркивания в квадратных скобках можно опускать.
Абстрактный и структурный синтез функциональной архитектуры сети внешнего хранения и обработки данных
В качестве примера рассмотрим описание некоторых режимов функционирования сети хранения данных, упрощенная структура которой представлена на рис. \.
Допустим, что необходимо сформировать пул ресурсов хранения с группой серверов, образующих множество С, с назначаемыми им дисковыми накопителями из множества В с соответствующими интеллектуальными контроллерами из множества V. В подобной системе можно легко переназначать ресурсы подсистемы хранения данных между серверами. Сеть содержит два коммутатора - К\ и К2, на основе первого сформирована абонентская
сеть, связывающая серверы с клиентскими станциями, а на основе второго -собственно сеть хранения данных с дисковыми модулями и интеллектуальными контроллерами. В сети хранения с помощью коммутатора К2 обеспечиваются переключения дисковых модулей между серверами.
Сети подобного вида и поддержка файловых систем в них рассмотрены в работах [1-3]; нас же интересуют в первую очередь логико-алгебраические спецификации этих систем, позволяющие упростить создание нового аппаратного, микропрограммного и программного обеспечения систем хранения и обработки данных, например, на принципах согласования и координации процессов и объектов, а также рассмотреть некоторые полезные преобразования данных спецификаций. В ряде случаев возможно использовать формальное описание в качестве основы для построения новых, например «нефон-неймановских», архитектур систем хранения и обработки данных в их многообразии, сохраняя существенные отношения между элементами системы.
Рис. 1. Пример сети внешнего хранения и обработки данных
Пусть Z - множество клиентских станций (или просто «клиентов»), C -множество серверов, а D - множество дисковых модулей, каждый с собственным контроллером. Пусть также zt е Z, i = 1, 2; Cj е C, j = 1, 2, 3, 4; dk е D, k = 1, 2, ..., 16. Работа сети хранения данных при выполнении операции записи для двух клиентских станций может быть описана следующей системой из 2 X 3 = 6 выражений для модулей СеАМ (по три модуля на каждую клиентскую станцию):
m/0 =\pcuent(z,)\([( 3! c)pserver(c)\([( 3! d)pD,Sk(d)]({pcuent(z,) ^ false,
Pcom(Zi, C, d) ^ true, pserver(c) ^ false, PD,sk(d) ^ false,
pDelay(zi) ^ true} v R) v RE) v RE);
«2(i) = \pDelay(z,)\({mWork(zd, PDelay(zi) ^ false, PEnd(Zi) ^ true} V R); m3(i) = \pEnd(Zi) &3!(zi, c, d)pCom(z, c, d) \({pcom(Zi, c, d) ^ false,
PServer(c) ^ true, PDisk(d) ^ true, PEnd(zi) ^ false, pciienlzj) ^ true} V RE),
где pclient, pserver, pDisk - унарные предикаты, характеризующие активности клиента, сервера и дискового модуля (с контроллером) соответственно; pDelay -унарный предикат, используемый для задания связи модуля mi(i) с модулем задержки m2(i); pCom - тернарный предикат, используемый для задания связи клиента, сервера и дискового модуля в процессе выполнения рабочей операции Work; mWork(zi) - модуль, задающий действия, выполняемые при реализации рабочей операции Work для заданного клиентского запроса zi; pEnd -унарный предикат, используемый при описании связи модуля задержки m2(i) с завершающим операцию модулем m3(i); с и d - предметные переменные, пробегающие по элементам соответствующих множеств C и D. Множество устройств U здесь и далее не учитывается, так как каждый дисковый модуль имеет собственный интеллектуальный контроллер, время занятости которого совпадает с временем занятости модуля. В общем случае здесь для описания функционирования системы хранения данных достаточно qx3 выражений для модулей СеАМ, где q - число клиентских станций (или типов запросов).
На рис. 2 представлена абстрактная архитектура системы хранения и обработки данных, соответствующая описанной выше логико-алгебраической модели. Овалом на рисунке представлена абстракция разделяемого пространства L предикатов (в базе данных предикатам соответствуют информационные объекты - отношения, представляющие динамически изменяющиеся области истинности предикатов). Имена предметных констант zb z2, cb ..., c4, dj, ..., d16 использованы для обозначения объектов (устройств) системы. Пунктирными линиями обозначены связи модулей с реализующими объектами.
На рис. 3 представлена абстракция структурированной памяти, соответствующая предикатному пространству Ь.
z Patent( Z )
Z1 false
Z2 false
ci
P Sever (c )
false
false
Z c d PC (Z, c, d) -L Com
Z1 c2 d 3 true
Z2 c3 d к true
Z PDely ( Z)
Z1 true
Z2 true
Z p (z) -T End
Z1 false
Z2 false
d Ppm(d >
di true
d 2
d i
true
di false
true
d 16 false
2
3
Рис. 3. Абстракция информационного пространства, или структурированной памяти, системы хранения и обработки данных
При составлении выражений в этом подразделе нами не учитываются многие важные технические детали, связанные, например, с позиционированием механизмов доступа к записям на магнитных дисках, с особенностями работы серверов - на первом плане находятся базовые отношения и связи объектов, статические и динамические. Приведенные выражения для модулей представляют собой замкнутые выражения (без свободных переменных) в алгебре модулей СеАМ.
Переходя к выражениям для модулей СеАМ, не содержащим вхождений квантифицированных операторов выбора 3! и тернарного предикатного символа pCom, получим систему из 2 X 4 X 16 X 3 = 384 выражений (при i = 1, 2; j = 1, 2, 3, 4; k = 1, 2, ..., 16):
mi0,j k) = \pCiient(zi) &Pserver(cj) &PDiSk(dk)\({paient(Zi) ^ false,
Pserver(cj) ^ false,pDisk(dk) ^ false,pDeiay(Zi, j dk) ^ true} v RE); m2(i,j, k) = \pDeiay(Zi, cj, dk)\({mwork(Zi, cj, dk), pDeiayZ j dk) ^ false,
PEnd(Zi, cj, dk) ^ true} v R); mз(i,j k) = \pEnd(Zi, cj, dk)\({pserver(cj) ^ true,PDisk(dk) ^ true,
PEnJZi, cj, dk) ^ false, PCiient(zi) ^ true} v RE).
Здесь для создания и ликвидации каждой связи «клиент - сервер - дисковый модуль» используется пара модулей: модуль m^ jk) в начальной фазе
операции, а модуль m3t,jk) - в конечной. Промежуточный модуль m2j,k)
учитывает данную связь при выполнении рабочей операции Work вспомогательным модулем mWork. Справа от предикатных символов в скобках приведены обозначения (предметные константы) для конкретных объектов, т.е. в выражениях для модулей используются только высказывания.
Пусть i = 1, 2, ., q; j = 1, 2, ., m; k = 1, 2, ., n, тогда в общем случае для спецификации системы хранения данных без использования квантифицированного оператора 3! и тернарного предиката символа pCom потребуется q X m X n X 3 выражений для соответствующих модулей СеАМ. Например, при q = 2, m = 8, n = 16 потребуется 768 модулей, а при q = 2, m = 8, n = 64 -3072 модуля. При использовании же связывающего предиката pCom и оператора 3! ранее потребовалось всего шесть модулей.
Перейдем теперь к рассмотрению примера описания процесса функционирования системы хранения данных с использованием квантифицированного оператора V!!. Рассмотрим такой режим работы системы, при котором должны быть задействованы все серверы и дисковые модули. Необходимость в реализации такого режима может возникнуть, например, при организации множественного доступа к «расслоенным» данным. Тогда работу системы описывают следующие выражения для модулей СеАМ:
m1(i) = \pCiient(Zi)\(\(V !!c)pserver(c)\(\('V !!d)pDiSk(d)\({pCtient(Zi) ^ false, pCom (Zi, c, d ^ true, Pserver(c) ^ false, pDisk(d) ^ false,
PDelay(Zi) ^ true} v R) v R) v R); m2(i) = \PDelay(Z,)\({mwork(Zd, PDelay(Zi) ^ false, PEnd(Zi) ^ true} v R); m3(i) = \PEnd (Zi ) &V!!(Z,-, c, d)PCom (Z, c, d)\({ PCom (Zi, ^ d) false,
Pserver (c) ^ true, PDisk (d) ^ true PEnd (Zi )^ false, PClient (Zi )^ true} v rE ).
В общем случае потребуется q X 3 выражений для соответствующих модулей СеАМ.
Отметим важную особенность выполнения операции «^» обновления предиката: в случае, когда слева от символа данной операции стоит предикат, то обновление предиката производится для всех комбинаций, выбранных с помощью оператора V !! значений предметных переменных.
Переходя к выражениям, в которых не используются квантифицированный оператор V !! и предикатный символpCom, получим:
m1 ' \pClient(Zi)\(\pserver(c1) &pserver(c2) &pserver(c3) &pserver(c4)\
(\PDisk(d1) &pDisk(d2) & ... &PDisk(d16)\({pClient(Zi) ^ false,
Pserver(c 1) ^ false, PserverO ^ false, Pserver(c3) ^ false, Pserver(c4) ^ false, PDiskO ^ false, PDiskidl) ^ false, ..., PDisk(d16) ^ false, PDelay^i) ^ true}
v R) v R) v R);
m2(i) = \PDelay(Zi)\({mwork(Zi), PDelay(Zi) ^ false, PEnd(Zi) ^ true} v R);
m3(i) = \PEnd(Zi)\({Pserver(c1) ^ true, Pserver(c2) ^ true, Pserver(c3) ^ true, Pserver(c4) ^ true, PDisk(d{) ^ true, PDukO ^ true, ., PDisk^) ^ true, PEnd(Zj) ^ false,pCiien(Zi) ^ true} v R).
Для описания работы системы хранения данных потребовалось столько же выражений (д X 3) для модулей СеАМ, сколько и в предыдущем случае. Эти выражения содержат только простые атомарные высказывания и правила их модификации. Сравнивая различные варианты систем выражений, разработчик системы или сети хранения и обработки данных может выбрать наиболее подходящий вариант для аппаратной, микропрограммной или программной реализации.
Особенности использования квантифицированных операторов выборки
Использование квантифицированных операторов выбора 3!! и V!! во многих случаях позволяет значительно сократить число модулей, описывающих функционирование системы. Реализация оператора 3!!, позволяющего выбрать один кортеж из области истинности предиката при условии, что он был единственным в этой области, происходит следующим образом. Сначала осуществляется поиск и удаление из области истинности какого-либо кортежа, а затем производится проверка того факта, что эта область не содержит больше ни одного кортежа. Если после одной выборки область истинности не пуста, то первоначально выбранный кортеж возвращается в данную область и выполнение оператора прекращается. Для реализации семантически эквивалентной сети без использования оператора 3!! потребуется намного большее число модулей, так как надо будет с помощью булевых выражений описать в разных выражениях для модулей все комбинации состояний области истинности, при которых она содержит единственный кортеж. При выполнении квантифицированного оператора V!! производится проверка на совпадение области истинности предиката с его областью определения и в случае положительного результата сравнения выбираются все кортежи. Запрет на использование оператора V!! также приведет к необходимости использования неоправданно большого количества модулей СеАМ. Следует отметить, что при использовании квантифицированных операторов выбора в выражениях для модулей СеАМ упрощаются выражения для охранных а-условий.
Рассмотренные переходы от одних систем к другим можно осуществить и в обратном порядке, переходя от выражений для модулей СеАМ с атомарными высказываниями к выражениям с квантифицированными операторами и дополнительными предикатами. Подобные преобразования выражений мы назовем процессами «свертывания» и «развертывания» сетей абстрактных машин.
Заключение
Методы проектирования, базирующиеся на предлагаемых абстрактных моделях, предоставляют проектировщику широкие возможности для компромисса между производительностью и сложностью реализации системы или сети хранения и обработки данных. Масштабируемость проектируемого объекта и эффективность модульной реализации объясняется тем, что число реализуемых модулей сети абстрактных машин может варьироваться в широких пределах в зависимости от выбранного варианта структурирования абстрактного пространства модулей, функций и предикатов.
Реализация предлагаемых методов позволяет строить архитектуры систем и сетей обработки данных на основе принципов, существенно отличных
от фон-неймановских и определенных платформой согласования и координации процессов и объектов. Формализация парадигмы согласования и координации процессов и объектов приводит к принципиально новым архитектурным решениям в области систем и сетей внешнего хранения и обработки данных. Данные решения позволяют строить прототипное и рабочее программное и аппаратное обеспечение, обладающее положительной совокупностью общих свойств, реализуемых на новой платформе.
Список литературы
1. Фарли, М. Сети хранения данных / М. Фарли. - М. : Лори, 2003. - 550 с.
2. Наик, Д. Системы хранения данных в Windows / Д. Наик. - М. : Вильямс, 2005. - 432 с.
3. От хранения данных к управлению информацией / ЕМС. - СПб. : Питер, 2010. -544 с.
4. Зинкин, С. А. Сети абстрактных машин высших порядков в проектировании систем и сетей хранения и обработки данных (базовый формализм и его расширения) / С. А. Зинкин // Известия высших учебных заведений. Поволжский регион. Технические науки. - 2007. - № 3. - С. 13-22.
5. Зинкин, С. А. Сети абстрактных машин высших порядков в проектировании систем и сетей хранения и обработки данных (механизмы интерпретации и варианты использования) / С. А. Зинкин // Известия высших учебных заведений. Поволжский регион. Технические науки. - 2007. - № 4. - С. 37-51.
6. Зинкин, С. А. Элементы технологии иерархического концептуального моделирования и реализации систем и сетей хранения и обработки данных / С. А. Зин-кин // Известия высших учебных заведений. Поволжский регион. Технические науки. - 2008. - № 4. - С. 3-15.
7. Зинкин, С. А. Иерархические сети абстрактных машин и виртуализация интеллектуальных систем внешнего хранения и обработки данных / С. А. Зинкин // Известия высших учебных заведений. Поволжский регион. Технические науки. -2009. - № 2. - С. 25-38.
8. Глушков, В. М. Методы символьной мультиобработки / В. М. Глушков, Г. Е. Цейтлин, Е. Л. Ющенко. - Киев, Наукова думка, 1980. - 252 с.
9. Многоуровневое структурное проектирование программ. Теоретические основы, инструментарий / Е. Л. Ющенко, Г. Е. Цейтлин, В. П. Грицай, Т. К. Терзян. - М. : Финансы и статистика, 1989. - 208 с.
10. Капитонова, Ю. В. Математическая теория проектирования вычислительных систем / Ю. В. Капитонова, А. А. Летичевский. - М. : Наука, 1988. - 296 с.
11. Плесневич, Г. С. Логические модели : в 3-х кн. / Г. С. Плесневич // Искусственный интеллект. Кн. 2. Модели и методы : справочник / под ред. Д. А. Поспелова. - М. : Радио и связь, 1990. - С. 14-28.
12. Gurevich, Y. Evolving algebras - a tutorial introduction / Y. Gurevich // Bulletin of the EATS. - 1991. - V. 43. - Р. 264-284.
13. Dexter, S. Gurevich abstract state machines and Shonhage storage modification machines / S. Dexter, P. Doyle, Y. Gurevich // Journal of Universal Comp. Science. -1997. - V. 3, № 4. - Р. 279-303.
14. Волчихин, В. И. Логико-алгебраический подход к проектированию компьютерной и сетевой архитектуры / В. И. Волчихин, С. А. Зинкин // XI Международная научно-техническая конференция : сб. ст. - Пенза : Приволжский Дом знаний, 2011. - С. 5-10.
15. Волчихин, В . И . Абстрактное и структурное моделирование сетей хранения и обработки данных / В. И. Волчихин, С. А. Зинкин // Известия высших учебных заведений. Поволжский регион. Технические науки. - 2011. - № 4. - С. 3-18.
16. Волчихин, В. И. Развитие нефоннеймановских концепций в компьютерной и сетевой архитектуре / В. И. Волчихин, С. А. Зинкин // Новые информационные технологии и системы : тр. IX Междунар. науч.-техн. конф. - Ч. 2. - Пенза, 2010. -С. 48-63.
17. Брой, М. Информатика. Основополагающее введение / М. Брой. - М. : Диалог-МИФИ, 1996. - 299 с.
18. Зинкин, С. А. Самомодифицируемые сценарные модели функционирования систем и сетей хранения и обработки данных (базовый формализм и темпоральные операции / С. А. Зинкин // Известия высших учебных заведений. Поволжский регион. Технические науки. - 2007. - № 1. - С. 3-12.
19. Зинкин, С. А. Самомодифицируемые сценарные модели функционирования систем и сетей хранения и обработки данных (реализация и свойства сценарных моделей) / С. А. Зинкин // Известия высших учебных заведений. Поволжский регион. Технические науки. - 2007. - № 2. - С. 13-21.
Волчихин Владимир Иванович
доктор технических наук, профессор, ректор Пензенского государственного университета
E-mail: [email protected]
Зинкин Сергей Александрович доктор технических наук, профессор, кафедра вычислительной техники, Пензенский государственный университет
E-mail: [email protected]
Volchikhin Vladimir Ivanovich Doctor of engineering sciences, professor, rector of Penza State University
Zinkin Sergey Alexandrovich Doctor of engineering sciences, professor, sub-department of computer engineering, Penza State University
УДК 681.324 Волчихин, В. И.
Логико-алгебраические модели и методы в проектировании функциональной архитектуры распределенных систем хранения и обработки данных / В. И. Волчихин, С. А. Зинкин // Известия высших учебных заведений. Поволжский регион. Технические науки. - 2012. - № 2 (22). - С. 3-16.