УДК 681.324
С. А. Зинкин
ИЕРАРХИЧЕСКИЕ СЕТИ АБСТРАКТНЫХ МАШИН И ВИРТУАЛИЗАЦИЯ ИНТЕЛЛЕКТУАЛЬНЫХ СИСТЕМ ВНЕШНЕГО ХРАНЕНИЯ И ОБРАБОТКИ ДАННЫХ
Аннотация. Определяются формализмы для описания иерархий абстрактных машин с целью последующей виртуализации систем внешнего хранения и обработки данных. Дано понятие об иерархической эволюционирующей алгебраической системе, на основании которого построена конкретная иерархия абстрактных машин, легко реализуемая программно и аппаратно.
Ключевые слова: иерархия абстрактных машин, система обработки данных, формальная спецификация, сети абстрактных машин.
Abstract. A new formalism based on hierarchical abstract machines is given. The purpose of the description is virtualization of external data processing systems. Definition of hierarchical evolving algebraic systems is given and an example of concrete abstract machines hierarchy is presented. Such a hierarchy provides a simple software and hardware implementation.
Keywords: abstract machines hierarchy, data processing systems, formal specifications, abstract machines network.
Введение
Две тенденции - достижение высокой производительности и логической гибкости - во многом определяют развитие современной вычислительной техники. Они во многом противоречат друг другу - в ряде случаев приходится жертвовать скоростью выполнения рабочих операций для повышения функциональности. С другой стороны, сохраняются стимулы к разработке и использованию перспективных высокопроизводительных устройств, например, ассоциативной памяти, систолических матриц, твердотельных «дисковых» устройств, «интеллектуальных» дисков и других устройств, построенных на основе технологий больших интегральных схем (БИС). В качестве интеллектуального «периферийного» устройства может быть рассмотрена и вся локальная или глобальная сеть, с которой работает пользователь. Посредством использования технологий виртуализации здесь можно реализовать, например, сеть внешнего хранения структурированных данных или внешний «сетевой сопроцессор» (метакомпьютер).
Многими исследователями в области новых компьютерных технологий предложены методы по преодолению семантического разрыва между структурой «классического» процессора (иногда условно называемого фон-неймановским) и используемыми алгоритмическими структурами. Однако при организации вычислений в современных сетевых архитектурах возникают новые проблемы, связанные с использованием средств синхронизации процессов, составлением параллельных программ, разработка которых качественно и количественно отличается от разработки последовательных программ, коллективным использованием распределенных ресурсов. Требование специализации ЭВМ, связанное с необходимостью разработки и последующего использования аппаратных средств для реализации механизмов логического вывода, поиска в базе знаний, реализации других алгоритмов искусст-
венного интеллекта зачастую вступает в противоречие с необходимостью использования в сетях по различным причинам преимущественно «классических» ЭВМ. Поэтому распространены методы реализации различных новых логических архитектур на доступной физической инфраструктуре вычислительной сети.
Некоторые известные принципы, принятые ранее в процессе развития вычислительной техники и организации вычислений (см., например, [1]), можно перенести и на сетевые структуры: принцип изменяемой хранимой программы, которая может быть модифицирована другими программами; принцип полиморфизма, заключающийся в возможности изменения архитектуры вычислительной системы таким образом, чтобы она соответствовала назначению системы; применение многопортового механизма взаимодействия с блоками памяти; применение блокировки данных вместо блокировки критических участков программы для сокращения временных затрат на синхронизацию в многопроцессорных системах; ресурсный принцип - при его реализации для каждого процесса устанавливается размер того или иного ресурса, который этот процесс может удерживать в состоянии ожидания в точке синхронизации и др. В сетевой среде с применением перечисленных принципов можно создать некоторое виртуальное пространство структурированной памяти, разделяемое несколькими процессами. Данные процессы могут осуществлять согласованные взаимодействия по выполнению какого-либо приложения при работе системы как единого целого.
1 Многоуровневые абстракции и виртуальные системы
Система, или сеть хранения и обработки данных, представляется пользователю в виде виртуальной вычислительной системы с многочисленными ресурсами и функциями. Концепция многоуровневой виртуальной системы базируется на понятии уровней абстракции. Как вертикальные, так и горизонтальные межмодульные связи являются результатами причинно-следственных (каузальных) связей. Как правило, связываются только смежные уровни, но при необходимости связи могут распространяться на произвольное число уровней. В реальных системах обычно устанавливаются жесткие ограничения на глубину связей. Нередко ограничиваются даже связи внутри одного и того же уровня. В качестве формальной модели структурной организации виртуальной системы нами выбираются логико-алгебраические описания, или спецификации сетей абстрактных машин. Такие описания удобны для их практического использования в качестве основы для непосредственно исполняемых спецификаций, которые могут быть реализованы в рамках произвольных, в том числе объектно-ориентированных технологий. В итоге реализуется иерархическая система вложенных друг в друга виртуальных машин. Процесс проектирования аппаратных и микропрограммных (на самом нижнем уровне иерархии), а также программно-реализованных модулей, полученных на основе использования сценарных представлений и формальных логикоалгебраических спецификаций, хорошо автоматизируется.
Абстрактной машиной принято называть математическую формализацию, предназначенную для моделирования программы реальной вычислительной машины; при практической же реализации используются аналоги абстрактных машин в виде виртуальных. На практике нередко термин «абстрактная машина» используется и для обозначения виртуальной машины. Тех-
нология виртуализации, базирующаяся на сетях абстрактных машин (СеАМ), наследует ряд общих черт от известных технологий.
На практике виртуальные машины создаются в виртуальной сетевой инфраструктуре в виде программного слоя в операционной системе или непосредственно над аппаратным обеспечением компьютера. Для приложений систем и сетей хранения и обработки данных при использовании непосредственно выполняемых спецификаций СеАМ «толщина» этого программного слоя невелика.
По аналогии с англоязычными терминами software (программное обеспечение), firmware (микропрограммное обеспечение) и hardware (аппаратное обеспечение) в последнее время нашел применение термин vmware (технология виртуальных машин, где vm - virtual machine). Известно, что иерархия программных средств систем и сетей хранения и обработки данных может рассматриваться как реализация иерархии абстрактных машин. Программные средства, реализующие абстрактную машину, выполняют вычислительные и управляющие функции.
Желательно, чтобы при реализации абстрактных машин на разных уровнях иерархии использовались сходные технологии, основанные на ограниченном выборе формальный моделей. В приложениях информатики обычно рассматривают некоторое множество Ъ представлений с интерпретацией I в множестве S элементов; интерпретация I данному представлению а ставит в соответствие некоторое абстрактное информационное содержание I(a), т.е. интерпретации соответствует отображение I: Ъ ^ S [2]. Пусть Ъ - множество функциональных и предикатных символов различных арностей (в многосортных, или многоосновных, системах тип n-арного функционального символа - это кортеж (i1, i2, ..., in, j), а тип n-арного предикатного символа -это кортеж (i1, i2, ..., in), где i1, i2, ..., in (j - названия (сорта) для основ, или носителей), а S - множество конкретных функций и предикатов. СеАМ иотользует «модули-продукции» и «модули-процедуры», которые модифицируют, или «обновляют», интерпретацию I, выполняя сгруппированные в блоки так называемые правила обновления вида I(ai) ^ Sj. В машинах абстрактных состояний, описанных в работах [3, 4], определены используемые нами специальные операции - элементарные обновления функций и предикатов. Элементарное правило обновления функции, или предиката, записывается в виде правила вывода:
t1, t2,..., tk, tk+1 s(tb h^.^ tk) ^ tk+1
где t[, t2,..., tk - термы различных сортов; s - функциональный или предикатный символ. В случае, если s - функциональный символ, tk+1 - суть терм любого сорта, а если s - предикатный символ, то tk+1 - булево выражение.
Сеть СеАМ функционирует, переходя от одной интерпретации I(tj) к другой I(tk), где tj и tk - последовательные моменты времени. В алгебре абстрактных машин мы включаем подобные правила обновления в систему образующих.
Наиболее удобным подходом к внутренней интеллектуализации был бы такой подход, при котором разработчик формулировал условия получения
результата обработки данных, определял минимальные требования к архитектуре системы или сети, а затем данная архитектура «настраивалась» на решение конкретной задачи. Реализуются связи между программными модулями, задается режим использования ресурсов, причем последовательность операций, реализующих эти действия, задается определенными заранее формальными исполняемыми спецификациями. Развивая данную концепцию, представим четыре уровня представления реальной системы. Виртуальная машина проектировщика позволяет задавать архитектуру с требуемыми свойствами, уровнями параллельности, ресурсами. Виртуальная машина пользователя позволяет вводить необходимое ему описание структуры и настраивать аппаратное и программное обеспечение. Виртуальная машина системного программиста представляет инструментарий для настройки модулей операционной системы и систем управления базами данных и знаний для распределения памяти. Аппаратная виртуальная машина реализует язык низкого уровня для аппаратуры, которым пользуется системный программист. Здесь считаем, что низший уровень - микропрограммный.
2 Концептуальные поведенческие модели и базовый формализм иерархических эволюционирующих алгебраических систем
Рассмотрим подход к построению формализованного описания предметной области методами концептуального поведенческого моделирования, в большей степени пригодными к внутренней интеллектуализации систем и сетей хранения и обработки данных и интегрированными с технологиями, базирующимися на многоуровневых семантических сетях и абстрактных машинах [5-8].
Под моделью обычно подразумевается такое представление системы, которое построено с целью ее последующего изучения. В связи с большим числом проблем, которые нужно разрешить при проектировании системы, естественно строить некоторую иерархию моделей. При многоуровневом проектировании «сверху вниз» верхние уровни модели нередко рассматриваются как концептуальные, иногда «существующие» лишь в умах исследователей. Концептуальные модели играют фундаментальную роль в проектировании систем; в них определяются основные виды отношений между объектами: структуризации, функциональные, причинно-следственные, семантические и др. [9]. Семантика отношений может иметь декларативный или процедурный характер. Иерархические связи, как правило, определяются отношениями структуризации. Реальные системы хранения и обработки данных функционируют в окружающей среде. Для эффективной работы системы должны быть разработаны основные поведенческие процедуры, которые определили бы ее взаимодействие с окружающей средой, с пользователями, с другими системами.
Технологии интеллектуальных систем, основанные на моделях представления знаний, часто базируются на использовании принципов управления, отличных от обычных фон-неймановских. Использование принципа «активные команды - пассивные данные» во многих приложениях нецелесообразно [9]; актуализацию действий логичнее осуществлять на основе знаний. Так, источником активности системы может быть изменение состояния информационной базы, отображающее появление в базе новых фактов, событий, в том числе установление связей между объектами.
Нами рассматриваются поведенческие, или имитационные, модели, которые работают точно так же, как и моделируемые системы: поведение модели во времени соответствует переходам между состояниями в реальной системе. Между определенной таким образом поведенческой моделью и реальной системой существует концептуальное соответствие. Концептуальное проектирование поведенческой модели следует начать с построения статической информационной модели системы, не зависящей от физических условий реализации. Под физической реализацией подразумевается состав реализующих программ, используемый язык программирования, аппаратная платформа, вопросы производительности. Однако при выборе в качестве начального формализма многоосновных алгебраических систем возможно сразу определить не только информационную базу, но и поведенческий аспект модели, т.е. ее функционирование во времени, для чего задается счетное множество констант (или нульарных операций), принадлежащих сорту Time (время), предикаты сравнения и арифметические операции для выполнения действий с натуральными числами. На концептуальном уровне выбираются также абстрактные исполнители - агенты, функционирующие в некотором абстрактном пространстве. Как и при проектировании базы данных, в проектировании поведенческой модели можно выделить концептуальный, логический и физический уровни. Использование формальных методов при определении операционной семантики поведенческой модели позволяет сделать логический и физический уровни проектирования «тонкими» в том смысле, что подготовленные на концептуальном уровне и реализуемые на нижних уровнях формальные спецификации можно отнести к классу «непосредственно исполняемых», т.е. реализующие их виртуальные машины просты в разработке и применении.
Определяя иерархическую поведенческую модель, вначале рассмотрим определенную в [10] упорядоченную тройку, или конечную сигнатуру Ъ = < P, F, ц >, где P - множество предикатных символов; F - множество функциональных символов; ц - отображение арности, или отображение множества P U F в множество натуральных чисел ю. Если X с P U F, то сигнатура Ъ = < P П X, F П X, ц \ X > называется ограничением сигнатуры Ъ на множество X и обозначается Ъ = Ъ \ X. Рассмотрим далее пару A = < A, Iя >, где A = (Ai, A2, ..., Am} - множество основных множеств (носителей), а Iя -отображение множества P U F в множество предикатов и функций, определенных на основных множествах из множества A, или интерпретация сигнатуры Ъ в A [10].
В основу построения концептуальной поведенческой модели положим иерархическое проектирование «сверху вниз». Каждому уровню i (i = 1, 2, ., n) поведенческой модели на начальном этапе ее построения поставим в соответствие алгебраическую систему Аг-. В процессе иерархического проектирования при переходе от уровня i к уровню (i + 1) осуществляется «сильное» обогащение многоосновной алгебраической системы А+1 сигнатуры Ъг+1 системой Ai сигнатуры Ъ, т.е. выполняются следующие условия:
1) A = Aj+1Г (A((i) U A2j) U ... U Am));
2) Zi = Zi+1 Г (Pi U Fj);
3) IА = I|- (р и Ц), где применение операции Ї в условии 1 к множеству основ Лі+1 и к объединению Л(г) и Л2і) и ... и Л(і) основных множеств на 7-м уровне иерархии озна-
1 2 ті
чает, что
Лі={Л(і+1) п л(7),л2+1) п л27), ..., лт+1} п лт},
а остальные основные множества А(і+1),А(і+1),...,Л(і+1), возможно добав-
ті +Р ті +2’ ’ ті+1 ’
ленные для системы Аі+1 и не определенные для системы А, в данной операции не участвуют. Условия 2 и 3 соответствуют принятым в [10].
Введенное нами понятие «сильного» обогащения алгебраической системы означает, что в процессе построения модели по методике «сверху вниз» происходит поэтапное добавление новых элементов к основным множествам, а также расширение состава самих основных множеств (при ті+1 > ті, і = 1, 2, ..., п - 1), что сопровождается обогащением сигнатуры алгебраической системы данного уровня новыми предикатными и функциональными символами, а также их новой интерпретацией.
Зафиксируем иерархию (направленное множество) алгебраических систем
А = < А1, А2, ..., Ап >
с соответствующими:
- вектором сигнатур:
2 = < ^, ., 2 >;
- вектором множеств основ:
А = < Ль^, ...,Лп>;
- вектором интерпретаций сигнатур:
IА = < IА1, IА2, ..., IАп >.
От направленного множества алгебраических систем, определенного в [10], данное множество отличается тем, что здесь все системы имеют различную сигнатуру, причем мощность каждой последующей системы больше или равна предыдущей. Иерархическая система А функционирует, переходя
от одного вектора IА (ґг-) интерпретаций сигнатур к другому вектору
1А (ti+\), ґі+1 > и, при этом текущий вектор интерпретаций сигнатур IА ^) соответствует текущему абстрактному состоянию иерархии алгебраических систем; на каждом уровне элементы вектора интерпретации сигнатур изменяются согласованно друг с другом). Все уровни модели при этом остаются различимыми (видимыми) для пользователя, что позволяет в дальнейшем построить иерархию сети абстрактных машин и затем перейти к ее реализации иерархической сетью виртуальных машин.
Принято различать проектирование иерархической модели и собственно иерархическое проектирование. Иерархии моделей некоторой системы
соответствуют различным способам деления ее на компоненты, а иерархическое проектирование связано с пошаговым уточнением модели. Однако при использовании одних и тех же формализмов - сценарных сетей или сетей абстрактных машин - может оказаться полезным на этапах иерархического проектирования «зафиксировать» построенные модели в том смысле, что они будут соответствовать некоторому «полезному» уровню абстракции и останутся различимыми для проектировщика. Пользователь, как обычно, может иметь дело лишь с верхним уровнем абстракции.
Зафиксированную при этом сигнатуру и установленные правила модификации ее интерпретации удобно использовать при определении операционной семантики сети абстрактных машин данного уровня. В результате формируется иерархия сетей абстрактных машин. Следовательно, формализм, основанный на использовании определенной нами иерархии многоосновных алгебраических систем, пригоден одновременно для обоих видов проектирования. Поскольку при задании формализма учтены изменения вектора интерпретаций сигнатур каждого уровня во времени, определенную таким образом иерархию многоосновных алгебраических систем назовем «эволюционирующей».
В нашем случае работу моделируемой системы целесообразно описать системой логико-алгебраических выражений, по которым в дальнейшем прослеживается ее эволюция. В данную систему выражений, составляющих описание имитационной модели, необходимо включать также выражения для логических условий, при которых возникают те или иные переходы в моделируемой системе. Применение методов имитационного моделирования в общем случае далее связано с исследованием хронологической последовательности событий: захвата и освобождения ресурсов, поступления запросов и окончания их обработки и др. Структура проектируемой системы «выводится» непосредственно из проектных спецификаций, которые целесообразно построить по иерархическому принципу. В процессе проектирования спецификации поэтапно уточняются в соответствии с определенными уровнями абстракции.
3 Иерархические сети абстрактных машин
Из описания сетей абстрактных машин СеАМ, данного в работах [5, 6], следует, что на основе применения алгебры модулей можно строить произвольные иерархические сети. Рассмотрим пример иерархии абстрактных машин, входящих в сеть Ы0, который представлен на рис. 1. В имени произвольной подсети N первый индекс указывает на уровень иерархии, на котором она находится, а второй индекс является номером подсети на данном уровне. Дуги указывают на связь подсетей по управлению, построенному также по иерархическому принципу. Пространство функций и предикатов ДО здесь структурировано и представлено возможно пересекающимися (для организации иерархических каузальных связей) подпространствами ДОЬ / = 0, 1, 2, ..., 5.
Детальнее иерархические связи в сети N показаны на рис. 2. Стрелками на данных рисунках обозначены виртуальные связи; реальные же физические связи реализуются через смежные уровни структурированного ДО-пространства. Описание каждой подсети может включать как обычные, так и иерархические символы для обозначения модулей. Иерархические символы обозна-
чают целые фрагменты иерархической сети. Подсети, как обычно в иерархических системах, различаются по степени детализации.
Рис. 1 Иерархия сетей абстрактных машин (иерархическая сеть N0)
Отметим, что подсети не являются макроопределениями - это реально функционирующие и запускаемые с верхних уровней иерархии части общей иерархической сети, которые разделяют общее Б8-пространство функций и предикатов (точнее, информационных объектов, представляющих данные функции и предикаты в общем информационном пространстве).
В иерархической сети возможна ситуация, когда несколько модулей, конкурируя, могут пытаться инициировать работу одной и той же подсети (рис. 3). Такие модули назовем конкурирующими. Разрешение конфликтов в сетях СеАМ осуществляется с помощью известных методов, описанных, например, в работе [11], или в рамках ДО-технологии путем блокировки стартовых функций и предикатов подсети перед ее запуском.
Другой возможностью разрешения конфликтных ситуаций является введение приоритетов между агентами-серверами, интерпретирующими логико-алгебраические выражения, составленные для модулей, и рассматривающими их в качестве сценариев своей работы.
Во многих случаях удается избежать значительного числа блокировок функций и предикатов в ^^-пространстве: достаточно на этапе подготовки некоторого модуля к выполнению «захватить» только такие функции или предикаты, посредством которых организуется каузальная связь данного модуля с другими. Рисунок 4 иллюстрирует организацию каузальных межмодульных связей в ограниченных «окрестностях» ^^-пространства. Простую
физическую реализацию данных взаимодействий в мультипроцессорной системе иллюстрирует структура, в которой процессоры разделяют по известной схеме общую многопортовую память (возможно, виртуальную). Косвенные связи между программными модулями реализуются через общее пространство памяти. Для ускорения обменов процессоры могут передавать и принимать сообщения через быстродействующий коммутатор. Процессоры могут иметь собственную локальную память. Общая память может содержать как быстродействующие модули основной памяти, так и внешнюю память. Вся система, включая общую память, может быть построена в виде составной вычислительной сети.
Рис. 3 Пример фрагмента иерархической сети с конфликтующими модулями
Активизация некоторой подсети Nj производится после выполнения правила обновления предиката PSjj(Nj) ^ true, при этом активизируется соответствующий агент-сервер Ху и разблокируются локальные функции и пре-
дикаты, составляющие локальное ХДОу-пространство данной подсети. Далее агент-сервер Ху блокирует локальное ХДОу-пространство и в подсети N выполняются каузально связанные модули. По завершении работы подсети N ее локальное пространство разблокируется. Локальные пространства подсетей могут пересекаться. Вместе с тем, по аналогии с распределенным программированием, для каждой подсети иерархической сети могут быть определены локальные функции и предикаты и определены правила их видимости на нижних уровнях иерархии.
Рис. 4 Межмодульные каузальные связи в ограниченных окрестностях ^-пространства
Для каждой подсети определим Иу-арный предикат Pnj/, его арность равна числу включенных в подсеть Nij модулей. Модули m1, m2, ..., mnij считаются входящими в подсеть Nj после того, как будет выполнено обновление PNij(m1, m2, ..., mj ^ true данного предиката. С помощью унарных предикатов r задаются межмодульные каузальные связи в подсетях.
Для каждой подсети введем также унарную функцию FNJj. В результате обновления данной функции FN ij(mk) ^ Nqr имя модуля mk связывается с именем подсети Nqr; таким образом, в иерархической сети реализуются связи по управлению, показанные на рис. 2. Символ Nj при этом становится иерархическим. В отличие от многих других иерархических сетей, определенная нами иерархическая СеАМ (ИСеАМ) имеет динамическую структуру, которая может настраиваться и изменяться в процессе функционирования. Например, после выполнения правила обновления унарного предиката PS ij(Nij) ^ false подсеть Nj становится пассивной и тем самым исключается из иерархии подсетей вместе с управляемыми ею подсетями на нижних уровнях иерархии.
Выражения для модулей, составляющих представленную на рис. 1, 2 иерархическую сеть СеАМ, представим в следующем виде:
m0(X0) = [astart(X0)]({PS_11 (N11) ^ true, PN_11(m11) ^ tm^ FN_21(m11) ^ N11} v R')', m11(X11) = [r1(X11)]({r 1(Х11) ^ false, P S_21(N21) ^
PN_21(m21, m22, m23, m24) ^ true, FN_21(mn) ^ N21, ЫХц) ^ true} v R^);
m21(X21) = [r3(X21)]({r3(X21) ^ false, PS_31(N31) ^ true,
PN_31(m31, m32) ^ true, FN_31(m21) ^ N31, ЫХл) ^ true} v Re);
m22(^21) = [ЫХгОЖЫХгО ^ false, Ps_32(N3t) ^ true,
PN_32(m33) ^ true, FN_32(m22) ^ N32, r5(X21) ^ true} v R); m23(X22) = [r7(X22)]({r7(X22) ^ false, PS_33(N33) ^ faU^
PN_33(m34) ^ true, FN_33(m23) ^ N33, r8^22) ^ true} v R^);
m24(^21) = [r5(^21)& ЫХ^ЖЫХл) ^ false, ЫЛ22) ^ false, r6(^21) ^ true} v RE);
m31(X31) = [r9(X31)]({r9(X31) ^ false, Ps_41(N41) ^ true,
PN_41(m41, m42) ^ true, FN_41(m31) ^ N41, r 10(Х31) ^ true} v R); m32(^31) = [r9(^31)]({r9(^31) ^ false, ^(Хл) ^ true} v Re); m33(X32) = [rn(X32)]({rn(X32) ^ false, ^2(^2) ^ true} v RE);
m34(X33) = [r 13(X33)]({r 13(Х33) ^ false, P S_33(N33) ^
Pn 42(m43, m44, m45) ^ true, FN_42(m34) ^ N42, r 14(^33) ^ true} v Re); m41(Xu) = [^(ХцЩг^Хи) ^ false, ^(Хц) ^ true, r 17(^42) ^ true } v Re);
m42(X41) = [r 16(Х41)& r 17(X42)]({r 16(Х41) ^ r 17(Х42) ^ false,
PS_51 (N51) ^ true, PN_51 (m51, m52) ^ true, FN_51(m42) ^ N51, r18(X41) ^ true} v R);
m43(^43) = [r19(X43)]({r19(X43) ^ false, r20(X43) ^ true} v R^);
m 44(^43) = [r19(^43)]({r19(^43) ^ false, ^0(^43) ^ true} v Re);
m45(X43) = [r 19(X43)]({r 19(Х43) ^ false, P S_52(N52) ^ true,
PN_52(m53, m54) ^ true, FN_52(m45) ^ N52, ^0(^43) ^ true} v R^); m51(^51) = [r21(X51)]({r21(X51) ^ false, r22(X51) ^ true} v R^);
m52(^51) = [r21(X51)]({r21(X51) ^ false, ^2(^51) ^ true} v Re);
m53(^52) = [r23(X52)]({r23(X52) ^ false, ^4(^52) ^ true, ^5(^53) ^ true} v R);
m54(X52) = [r24(X52)&r25(X53)]({r24(X52) ^ false, r25(X53) ^
r26(X52) ^ true} v R).
Запись вида mij(Xpq) здесь означает, что модуль mij интерпретируется агентом-сервером Xpq и используется вместо правила обновления fstart(mij) ^ Xpq стартовой функции fstart. Каждое из данных выражений для модулей построено на основе операции а-дизъюнкции; в выражениях используется символ R тождественного или пустого правила обновления. Работа иерархической сети начинается с того момента, как станет истинным высказывание astart(X0). Затем выполняется принадлежащий подсети N01 высшего (нулевого) уровня стартовый модуль m01, инициирующий подсеть N11 первого уровня. Затем инициируется работа остальных подсетей и составляющих их модулей. Для простоты здесь не применяются и не описываются операции, связанные с запуском процедур агентов-демонов, выполняющих те операции, ради которых и построена иерархическая сеть. Отметим также, что каждому модулю можно было бы назначить по «собственному» агенту-серверу, что в большей степени соответствовало бы концепции управления множеством продукций как независимыми модулями. Однако для повышения эффективности функционирования сети разработчик может на основе анализа межмодульных каузальных
связей использовать меньшее число агентов, учитывая тот факт, что ряд модулей выполняется последовательно и может быть выполнен одним и тем же агентом-сервером.
Рассмотрим подробнее построение модулей иерархической сети N0. Иерархические сети абстрактных машин естественным образом формализуются в терминах и понятиях, похожих на термины и понятия систем алгоритмических алгебр [12]. В алгебре модулей абстрактных машин зафиксирована система образующих, включающая множество правил элементарных обновлений {rc, аеЪ} функций и предикатов с символами из множества Ъ и атомарные формулы (атомы). Система операций, принимающих значения в множестве модулей абстрактных машин, содержит операции а-дизъюнкции, а-итерации из алгебры алгоритмов Глушкова, а также выбранный нами набор темпоральных и пространственных операций. Логические условия формируются по обычным в логике предикатов первого и высших порядков правилам; кроме того, предполагается, что логические условия всюду определены. Отметим, что, в отличие от алгебры модулей СеАМ и РСеАМ [5, 6], в алгебре сценариев [7, 8] система образующих содержит вместо правил элементарных обновлений элементарные сценарии, или сценарии низшего уровня.
В качестве примера рассмотрим построение одного из модулей, например: m11 иерархической сети СеАМ N0 на базе суперпозиции операций «|» (выполнить, возможно, одновременно) и а-дизъюнкции (для удобства данную тернарную операцию будем представлять также и в префиксной форме записи, обозначая ее символом Opv). Следующая последовательность шагов позволяет сформировать модуль m11 иерархической сети абстрактных машин:
a1 = r1(X11) ^ false,
«2 = О | (Ps_21 (N21) ^ true),
О = «2 | (PN_21(m21, m22, m23, m24) ^ true),
a4 = a3 1 (FN_21(X21) ^ N21),
05 = 04 | (г2(Хп) ^ true),
m„ = Opv(r1(Xn), 05, R) = [г1(Хп)](05 v Re) = [г1(Хп)]( {г1(Хп) ^ false,
Ps_21 (N21) ^ true, PN_21(m21, m22, m23, m24) ^ true,
FN_21(m11) ^ N21, r2(X11) ^ true}v rE.
Правила элементарных обновлений предикатов и функций ЫХц) ^ false, Ps_21N) ^ true, PN_21(m21, m22, m23, m24) ^ true,
FN_21(m 11) ^ N21, r2(X11) ^ true
и атомарное высказывание r1(X11) входят в систему образующих, с помощью которых посредством суперпозиции операций Opv, Op{}, темпоральных Optemp0rai и пространственных Opspace операций, а также логических операций порождаются модули сети абстрактных машин. Модуль m11 функционирует следующим образом. Если r1(X11) = true, то далее в модуле выполняется блок согласованных правил обновлений предикатов и функций. Правило обновления унарного предиката r1(X11) ^ false в дальнейшем препятствует повторному выполнению данного модуля, правило PS 21(N21) ^ true иниции-
рует подсеть N21, правило PN_21(m21, m22, m23, m24) ^ true включает с подсеть N21 модули m21, m22, m23 и m24. Правило обновления унарной функции FN_21(m11) ^ N21 связывает модуль m11 с подсетью N21, а правило r2(X11) ^ true является завершающим. Для построения всех модулей рассматриваемой иерархической сети N0 достаточно двух многократно используемых операций Opv и «|». Аналогично строятся также и иерархические сети РСеАМ, основанные на использовании расширенного темпоральными операциями аппарата СеАМ. Таким образом, на конкретном примере продемонстрировано построение сложной иерархической мультиагентной сети абстрактных машин, которая далее реализуется иерархической виртуальной сетью в реальной физической среде вычислительной сети.
Заключение
Достоинством предложенного подхода как методологического инструмента является то, что логико-алгебраические методы используются здесь на всех уровнях иерархии сети, а также при описании и последующей реализации управления работой сети. Обеспечивается поддержка обеих стратегий иерархического проектирования - нисходящей и восходящей. Полученная в результате программно реализованная поведенческая или имитационная модель практически ничем не отличается от распределенного приложения или распределенной управляющей программы, выполняющей функции распределенной операционной системы сети хранения и обработки данных.
Несмотря на то, что существует большое разнообразие видов внутреннего параллелизма, логико-алгебраический подход к описанию происходящих в вычислительной системе процессов на основе исполняемых формальных спецификаций позволяет унифицировать как описание, так и реализацию сетей алгоритмических модулей на основных уровнях сети виртуальных машин.
Список литературы
1. Хэндлер, В. Простота и гибкость в архитектуре параллельных вычислительных систем / В. Хэндлер // Высокоскоростные вычисления. Архитектура, производительность, прикладные алгоритмы и программы суперЭВМ / под ред. Я. Ковалика. - М. : Радио и связь, 1988. - С. 61-79.
2. Брой, М. Информатика. Основополагающее введение : в 4-х ч. / М. Брой. - М. : Диалог-МИФИ, 1996. - Ч. 1. - 300 с.
3. Gurevich Y. Evolving Algebras 1993: Lipari Guide, Specification and Validation Methods / ed. E. Вц^г - Oxford : Oxford University Press, 1995. - P. 9-36.
4. Dexter, S. Gurevich abstract state machines and Shunhage storage modification machines / S. Dexter, P. Doyle, Y. Gurevich // Journal of Universal Comp. Science. -1997. - V. 3. - № 4. - Р. 279-303.
5. Зинкин, С. А. Сети абстрактных машин высших порядков в проектировании систем и сетей хранения и обработки данных (базовый формализм и его расширения) / С. А. Зинкин // Известия высших учебных заведений. Поволжский регион. Технические науки. - 2007. - № 3. - С. 13-22.
6. Зинкин, С. А. Сети абстрактных машин высших порядков в проектировании систем и сетей хранения и обработки данных (механизмы интерпретации и варианты использования) / С. А. Зинкин // Известия высших учебных заведений. Поволжский регион. Технические науки. - 2007. - № 4. - С. 37-51.
7. Зинкин, С. А. Самомодифицируемые сценарные модели функционирования систем и сетей хранения и обработки данных (базовый формализм и темпораль-
з7
ные операции) / С. А. Зинкин // Известия высших учебных заведений. Поволжский регион. Технические науки. - 2007. - № 1. - С. 3-12.
8. Зинкин, С. А. Самомодифицируемые сценарные модели функционирования систем и сетей хранения и обработки данных (реализация и свойства сценарных моделей) / С. А. Зинкин // Известия высших учебных заведений. Поволжский регион. Технические науки. - 2007. - № 2. - С. 13-21.
9. Искусственный интеллект : в 3-х кн. Кн. 2. Модели и методы : справочник / под ред. Д. А. Поспелова. - М. : Радио и связь, 1990. - 304 с.
10. Ершов, Ю. Л. Математическая логика / Ю. Л. Ершов, Е. А. Палютин. - М. : Наука, 1979. - 320 с.
11. Таненбаум, Э. Распределенные системы. Принципы и парадигмы / Э. Танен-баум, М. ван Стен. - СПб. : Питер, 2003. - 878 с.
12. Капитонова, Ю. В. Математическая теория проектирования вычислительных систем / Ю. В. Капитонова, А. А. Летичевский. - М. : Наука, 1988. - 296 с.
Зинкин Сергей Александрович
кандидат технических наук, доцент, кафедра вычислительной техники, Пензенский государственный университет
E-mail: [email protected]
Zinkin Sergey Alexandrovich Candidate of technical sciences, associate professor, sub-department of computer science, Penza State University
УДК 681.324 Зинкин, С. А.
Иерархические сети абстрактных машин и виртуализация интеллектуальных систем внешнего хранения и обработки данных / С. А. Зинкин // Известия высших учебных заведений. Поволжский регион. Технические науки. - 2009. - № 2 (10). - С. 25-38.