Главная » Просмотр файлов » Э. Таненбаум, М. ван Стеен - Распределённые системы (принципы и парадигмы)

Э. Таненбаум, М. ван Стеен - Распределённые системы (принципы и парадигмы) (1162619), страница 53

Файл №1162619 Э. Таненбаум, М. ван Стеен - Распределённые системы (принципы и парадигмы) (Э. Таненбаум, М. ван Стеен - Распределённые системы (принципы и парадигмы)) 53 страницаЭ. Таненбаум, М. ван Стеен - Распределённые системы (принципы и парадигмы) (1162619) страница 532019-09-20СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 53)

В другой таблице204Глава 3. Процессысодержатся глобальные системные переменные, в которых хранятся коды оши­бок, строки с сообщениями об ошибках, коды результатов, строки сообщений,выводимые вместе с результатами и т. п. Имеется также отдельная таблица, в ко­торой хранятся все определенные пользователем глобальные переменные про­граммы. И наконец, в отдельной таблице хранятся определения процедур, свя­занных с агентами. Эти определения процедур нуждаются в переносе вместес агентами для выбора интерпретатора на целевой машине.Более интересная часть, напрямую связанная с переносом агентов, — два сте­ка, в которых хранится истинное состояние выполнения агента. В основе каждо­го агента лежит набор команд Тс1, возможно, встроенных в конструкции, такиекак циклы, инструкцрш множественного выбора и т.

д. Кроме того, команды мо­гут быть сгруппрфованы в процедуры. Как это происходит во всех интерпрети­руемых языках, агент выполняется команда за командой.Сначала рассмотрим, что происходит при выполнении базовой команды Тс1,то есть команды, которая вызывается не из пользовательской процедуры.

Интер­претатор анализирует команду и строит запись, помещаемую в то, что мы назы­ваем стеком команд (command stack). Эта запись содержит все необходимые длявыполнения команды поля, как то: значения параметров, указатель на процедуруреализации команды и т. п. Запись помещается в стек, после чего может быть ис­пользована компонентом, отвечающим за выполнение команды. Другими слова­ми, стек команд представляет собой место хранения текущего состояния выполне­ния агента.Тс1 также поддерживает определяемые пользователем процедуры. Кроме стекакоманд среда исполнения D'Agent отслеживает стек записей активизации, такженазываемых фреймами вызова. Фрейм вызова в D'Agent содержит таблицу пере­менных, локальных для процедуры, а также имена и значения параметров, с ко­торыми эта процедура была вызвана.

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

В этот мо­мент полное состояние агента, описанное выше, подвергается маршалингу и пре­вращается в последовательность байтов. Другими словами, все четыре таблицыи два стека укладываются в массив байтов и пересылаются на другую машину.Сервер D'Agent на целевой машине создает новый процесс, запуская интерпре­татор Тс1. Процесс обрабатывает полученные данные, выполняет их демаршалинг и в результате получает состояние агента, в котором он Р1аходился передвызовом команды agent_jump. Выполнение агента продолжается путем простогоснятия с вершины стека команд очередной команды.3.5.

Программные агентыТеперь мы рассмотрим процессы под несколько другим углом. Сначала мы сосре­доточимся на одном из ключевых вопросов, управляющих потоках выполнения3.5. Программные агенты205внутри процессов. С позиций взаимодействия мы поближе рассмотрим обобщен­ную организацию клиентов и серверов. И наконец, обсудим перенос программи процессов. Эти более или менее независимые представления процессов объеди­нятся в то, что нередко называют программными агентами — автономные едини­цы, способные выполнять задания в кооперации с другими, возможно, удаленны­ми агентами.Агенты играют в распределенных системах все более важную роль.

Однакоочень близко к действительности утверждение о том, что у нас есть лишь интуи­тивное определение того, что такое процесс [334]. Определение программныхагентов в таких условиях тоже нуждается в уточнении. В этом разделе мы по­ближе приглядимся к программным агентам и их роли в распределенных сис­темах.3.5.1. Программные агентыв распределенных системахСуществует множество мнений о том, что такое агент. Взяв за основу описание,данное в [173], мы определяем программный агент {software agent) как автоном­ный процесс, способный реагировать на среду исполнения и вызывать измененияв среде исполнения, возможно, в кооперации с пользователями или с другимиагентами. Свойство, которое делает агента чем-то большим, чем процесс, — этоспособность функционировать автономно и, в частности, проявлять при необхо­димости инициативу.Наше определение программного агента получилось весьма неопределенным,и в результате многие типы процессов с легкостью могут восприниматься в каче­стве агентов.

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

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

совместная работа отдельных агентов позволяет организовать конферен­цию. В перспективе, таким образом, могут производиться разработки распреде­ленных систем, особенно предназначенных для обмена информацией.Многие исследователи также выделяют из других типов агентов мобильныеагенты. Мобильный агент {mobile agent) — это просто агент, у которого имеетсяспособность перемещаться с машины на машину. В терминах, которые мы ис-206Глава 3. Процессыпользовали при обсуждении переноса кода в предыдущей главе, мобильныеагенты часто требуют поддержки сильной мобильности, хотя это и не являетсяабсолютно необходимым. Требование сильной мобильности вытекает из тогофакта, что агенты автономны и активно взаимодействуют со своей средой.

Пере­нос агента на другую машину без учета его состояния будет сильно затруднен.Однако как было показано на примере системы D'Agent, сочетание агентов и сла­бой мобильности также вполне возможно. Отметим, что мобильность — это об­щее свойство агентов, наличие которого не приводит к выделению особого ихкласса. Так, например, имеет смысл говорить о существовании мобильных ко­оперативных агентов. Хороший пример практического использования мобиль­ных агентов приведен в [74], где авторы описывают использование мобильныхагентов для получения информации, распределенной по большой гетерогеннойсети, такой как Интернет.Способность к кооперации с другими агентами или перемещению между ма­шинами — это системные свойства агентов.

Они не говорят нам ничего о назна­чении агента. Для изучения функциональности агента нам требуется другая клас­сификация.Традиционно выделяемый класс — это класс интерфейсных агентов. Интер­фейсный агент {interface agent) — это агент, помогающий конечному пользова­телю работать с одним или несколькими приложениями. Среди традиционноимеющихся у интерфейсного агента свойств можно считать способность к обуче­нию [280, 320]. Чаще всего они взаимодействуют с пользователями, обеспечиваяим поддержку.

В контексте распределенных систем примером интересного ин­терфейсного агента может быть агент, отслеживающий взаимодействия междуагентами и пользователями в некотором сообществе. Так, например, создаютсяспециальные интерфейсные агенты для взаимодействия продавцов с покупате­лями. Правильно поняв, что хочет увидеть или что может предложить его владе­лец, интерфейсный агент может помочь предложить нужную группу товаров.Очень близок к интерфейсному агенту информационный агент {informationagent).

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

Так, например,почтовый агент может применяться для фильтрации в почтовом ящике непро­шеной корреспонденции, ее владельца или автоматического перенаправления вхо­дящей почты в соответствующие теме почтовые ящики. В противоположностьим, мобильные информационные агенты обычно свободно путешествуют по се­ти, собирая по требованию их владельца необходимую ему информацию.В целом агенты могут быть охарактеризованы набором свойств, приведеннымв табл. 3.4 [152]. Дальнейшее разделение агентов можно провести, рассматривая,как они реально работают с точки зрения искусственного интеллекта.

Краткийобзор этой стороны дела можно найти в [175, 196, 496].3.5. Программные агенты207Таблица 3.4. Некоторые важные свойства агентовСвойствоОбщностьдля агентовОписаниеАвтономностьДаСпособность работать независимо от другихРеактивностьДаСпособность своевременно реагироватьна изменения в своем окруженииПроактивностьДаСпособность инициировать действия,влияющие на их окружениеКоммуникативностьДаСпособность обмениваться информациейс пользователями и другими агентамиПродолжительностьНетОтносительно долгое время жизниМобильностьНетСпособность перемещаться с места на местоАдаптивностьНетСпособность к обучению3.5.2.

Характеристики

Список файлов книги

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6510
Авторов
на СтудИзбе
302
Средний доход
с одного платного файла
Обучение Подробнее