Э. Таненбаум - Архитектура компьютера (1127755), страница 181
Текст из файла (страница 181)
Система распределенных вычислений по своей сути многомерна, с большим количеством участников — одноранговых узлов. Ее можно противопоставить Распределенные вычисления 705 традиционным моделям вычислений. В модели клиент-сервер в транзакцию вовлечены два участника — сервер, который предоставляет некоторую услугу, и клиент, желающий ее получить. Типичным примером является Всемирная Паутина, в которой множество пользователей обращается к серверам за информацией. Отличаются системы распределенных вычислений и от двухточечных приложений, объединяющих пары машин для обмена друг с другом файлами.
Типичным примером двухточечного приложения является электронная почта. Как следствие этих различий, необходимы новые протоколы и новые технологии. В системе распределенных вычислений необходимо обеспечить доступ к самым разным ресурсам. У каждого ресурса есть своя система и владеющая им организация, которая решает, какая часть ресурса доступна, в какое время и кому. Если не вдаваться в детали, можно сказать, что суть системы распределенных вычислений в управлении доступом к ресурсам. Один из вариантов моделирования системы распределенных вычислений заключается в ее представлении в виде многоуровневой иерархической структуры (табл.
8.7). Нижний уровень — это уровень инфраструктуры, объединяющий компоненты, из которых построена система распределенных вычислений. В части аппаратного обеспечения сюда входят процессоры, диски, сети и сенсоры, в части программного — программы и данные. Это те физические ресурсы, доступ к которым поддерживается системой распределенных вычислений.
Таблица ВЛ. Уровни иерархии системы распределенных вычислений Описание Уровень Уровень приложений Приложения, которые совместна и согласованно используют ресурсы Уровень коллективов Исследования, посредничество, мониторинг, управление группами ресурсов Безопасность и управление доступом к отдельным ресурсам Уровень ресурсов Уровень инфраструктуры Физические ресурсы, включая компьютеры, дисковую память, сети, сенсоры, программы и данные Следующий уровень вверх по иерархии — уровень ресурсов.
Этот уровень отвечает за управление отдельными ресурсами. Зачастую с включенным в систему распределенных вычислений ресурсом связан локальный процесс, который управляет ресурсом и обеспечивает контролируемый доступ к нему удаленных пользователей. Назначение этого уровня состоит в том, чтобы предоставить более высоким уровням единообразный интерфейс, при помощи которого они могли бы выяснять характеристики отдельных ресурсов, выполнять их мониторинг и безопасно использовать. Еще выше лежит уровень коллективов, оперирующий группами ресурсов. Одной из его функций является исследование системы распределенных вычислений, выявляя места размещения ресурсов.
Благодаря этим исследованиям пользователь может находить необходимые ему такты процессора, дисковое пространство или конкретные данные. Для предоставления необходимой информации уровень коллективов может поддерживать каталоги и другие базы данных. Кроме того, он может выполнять посреднические операции, сводя поставщиков и пользова- 706 Глава 8. Параллельные компьютерные архитектуры телей различных услуг, а также, возможно, распределяя дефицитные ресурсы между конкурирующими пользователями.
Уровень коллективов отвечает также за размножение данных, включение в систему распределенных вычислений новых участников и ресурсов, учет и поддержание баз данных политик доступа, описывающих, какому пользователю какие ресурсы доступны. На вершине иерархии находится уровень приложений. На этом уровне работают пользовательские приложения. Уровень приложений обращается к нижележащим уровням, чтобы получать права на использование тех или иных ресурсов, отправлять запросы на их использование, отслеживать ход выполнения запросов, обрабатывать отказы, извещать пользователя о результатах.
Ключом успеха системы распределенных вычислений является безопасность. Владельцы почти всегда настаивают на праве полного контроля над своими ресурсами с исчерпывающим мониторингом (кто, как долго и сколько их использует). Без хорошей системы безопасности ни одна организация не предложила бы свои ресурсы для распределенных вычислений.
Однако если бы пользователю приходилось вводить свои имя и пароль на каждом нужном ему компьютере, вовлеченном в распределенные вычисления, работа пользователя стала бы слишком обременительной. Следовательно, должна быть выработана модель безопасности, учитывающая эти соображения. Возможность однократной регистрации в системе — одна из ключевых характеристик модели безопасности. Первый шаг в использовании системы распределенных вычислений — регистрация и получение сертификата, то есть документа с цифровой подписью, указывающего, в чьих интересах должна выполняться работа.
Сертификат может быть делегирован, так что если в процессе вычислений потребуются некоторые вспомогательные вычисления, дочерние процессы тоже могут быть идентифицированы с его помощью. Когда сертификат доступа представляется удаленной системе, он должен быть отображен на ее локальный механизм защиты. Например, в (1Ы1Х пользователи идентифицируются 16-разрядными идентификаторами, но в других системах могут применяться иные схемы.
Наконец, необходим механизм, при помотци которого будут устанавливаться, поддерживаться и обновляться политики доступа. Для поддержания взаимодействия между различными организациями и машинами, необходимы стандарты как на предоставляемые услуги, так и на протоколы доступа к ним. Для управления процессом стандартизации сообщество распределенных вычислений создало организацию под названием С!оЬа! СгЫ Рогшп. Результатом ее работы стал шаблон для формирования и развития различных стандартов, названный ОСЯА (Ореп СгЫ Яегу1сез АгсЬйестпге — открытая архитектура служб распределенных вычислений). Разрабатываемые стандарты по возможности опираются на существующие, например, для описания служб ОСЯА применяется язык Ът'601.
(Ъ'еЬ Яегу1сез Оейпй1оп 1.апяцаяе— язык описания веб-служб). Стандартизованные на настоящее время службы попадают в одну из восьми категорий, хотя этот список, несомненно, в будущем будет расширен. 1. Службы инфраструктуры (обеспечивают взаимодействие между ресурсами). 2. Службы управления ресурсами (резервирование и освобождение ресурсов).
3. Службы данных (копирование и перемещение данных туда, где они нужны). Краткое содержание главы 707 4. Контекстные службы (описание требуемых ресурсов и политик нх использования). 5. Информационные службы (получение информации о доступности ресурса). 6. Службы самоконтроля (поддержание заявленного качества услуги). 7. Службы защиты (применение политик безопасности).
8. Службы управления выполнением (управление потоком задач). О системах распределенных вычислений можно говорить еще очень много, но объем книги не позволяет нам дальше углубляться в эту тему. Дополнительную информацию об этих системах можно найти в [23, 69, 70~. Краткое содержание главы Добиваться повышения производительности компьютеров просто за счет увеличения тактовой частоты становится все сложнее, так как появляется проблема отвода тепла. Поэтому разработчики обратили свое внимание на параллелизм как на средство ускорения вычислений.
Параллелизм может вводиться на разных уровнях, как на самых нижних, где элементы очень жестко связаны друг с другом, так и на верхних, где связи весьма слабые. Нижний уровень — это внутрипроцессорный параллелизм, когда параллельные действия выполняются на базе единственной микросхемы. Одной из форм внутри- процессорного параллелизма является параллелизм на уровне команд; в этом случае одна команда илн последовательность команд разбивается на мнкрооперацин, которые могут выполняться параллельно разными функциональными блоками. Второй формой внутрипроцессорного параллелизма является многопоточность; в этом случае процессор может поочередно переключаться между несколькими программными потоками. В результате получается виртуальный мультипроцессор.