Тема лекции № 2: Вычислительны сети — частный случай распределенных систем
системам. Поскольку основным признаком распределенной вычислительной системы является наличие нескольких центров обработки данных, то наряду с сетями к распределенным системам относятся также мультипроцессорные компьютеры и многомашинные вычислительные комплексы.
Напомним, что в мультипроцессорных компьютерах имеется несколько процессоров, каждый из которых может относительно независимо от остальных выполнять свою программу, что дает возможность значительно повысить общую производительность за счет параллельной работы.
Многомашинная система — это вычислительный комплекс, включающий в себя несколько компьютеров, каждый из которых работает под управлением собственной ОС, а также программные и аппаратные средства связи компьютеров, которые обеспечивают работу всех компьютеров комплекса как единого целого.
В вычислительных сетях программные и аппаратные связи являются
еще более слабыми, а автономность обрабатывающих блоков проявляется в наибольшей степени — основными элементами сети являются стандартные компьютеры, не имеющие ни общих блоков памяти, ни общих периферийных устройств. Связь между компьютерами осуществляется с помощью специальных периферийных устройств — сетевых адаптеров, соединенных
относительно протяженными каналами связи . Каждый компьютер работает под управлением собственной ОС, а какая либо общая ОС, распределяющая работу между компьютерами сети, отсутствует. Взаимодействие между компьютерами сети происходит за счет передачи сообщений через сетевые адаптеры и каналы связи. С помощью этих сообщений один компьютер обычно запрашивает доступ к локальным ресурсам другого компьютера. Такими
ресурсами могут быть как данные, хранящиеся на диске, так и разнообразные периферийные устройства — принтеры, модемы и т.п. Разделение локальных ресурсов каждого компьютера между всеми пользователями сети — основная цель создания вычислительной сети. Очевидно, что компьютеры, объединенные в сеть должны иметь некоторые добавления к их ОС. На тех компьютерах, ресурсы которых должны быть доступны всем пользователям сети, необходимо добавить модули, которые постоянно будут находиться в режиме ожидания запросов, поступающих по сети от других компьютеров, такие модули называются программными серверами (server) . На компьютерах, пользователи которых хотят получать доступ к ресурсам других компьютеров, должны быть добавлены программные модули, вырабатывающие запросы на доступ к удаленным ресурсам и передавать их по сети на нужный компьютер,
такие модули называются программными клиентами (client). Собственно же сетевые адаптеры и каналы связи решают в сети достаточно простую задачу — они передают сообщения с запросами и ответами от одного компьютера к другому, а основную работу по организации совместного использования ресурсов выполняют клиентские и серверные части ОС.
Заметим, что термины клиент и сервер, как рассматривалось нами ранее, используются не только для обозначения программных модулей, но и компьютеров, подключенных к сети. Если компьютер предоставляет свои ресурсы другим компьютерам сети, то он называется сервером, а если он их потребляет — клиентом. Иногда один и тот же компьютер может одновременно играть роли и сервера, и клиента.
Сетевые службы всегда представляют собой распределенные программы — это программы , которые состоят из нескольких взаимодействующих частей, например, как указано на схеме, из двух, причем каждая часть, как правило, выполняется на отдельном компьютере сети.
1.1.3 Распределенные вычислительные сети
Определим предметную область « Распределенных вычислительных сетей » (РС-сетей) методом противопоставления понятий « Распределенные системы » и « Сосредоточенные системы ». Обратимся к публичному источнику Википедии, где прочитаем [12]: « Распределенная система — система, для которой отношения местоположений элементов (или групп элементов) играют существенную роль с точки зрения функционирования системы, а, следовательно, и с точки зрения анализа и синтеза системы. Для распределенных систем характерно распределение функций, ресурсов между множеством элементов (узлов) и отсутствие единого управляющего центра, поэтому выход из строя одного из узлов не приводит к полной остановке всей системы. Типичной распределенной системой является Интернет. Примеры распределенных систем: • Распределенная система компьютеров — компьютерная сеть. • Распределенная система управления — система управления технологическим процессом. • Распределенная энергетика. • Распределенная экономика. • Распределенная файловая система — сетевые файловые системы. • Распределенные операционные системы. • Системы распределенных вычислений. • Распределенные системы контроля версий. • Распределенные базы данных • Система доменных имен (DNS) — распределенная система для получения информации о доменах». Можно обсуждать являются ли « Распределенные системы » необходимым условием отсутствия единого управляющего центра, но наличие элементов (или групп элементов), которые являются «С осредоточенными системами », является обязательным. Например, DNS является распределенной системой, поскольку размещается на множестве DNS-серверов, которые обслуживают единую иерархическую структуру доменных имен . При этом, отдельный DNS-сервер представляет собой сосредоточенную систему и может рассматриваться как отдельная ЭВМ, комплекс или система. Другим примером являются « Автоматизированные системы управления » (АСУ, АСУП, АСУПП, АСУТП), практика создания которых хорошо согласуется с архитектурами рисунков 1.3 и 1.4, но для которых структуры рисунка 1.6 оказываются практически бессмысленными. В любом случае, обмен данными и управляющей информацией осуществляется между отдельными сосредоточенными системами. Что касается современных « Сосредоточенных систем », то для них показанные на рисунке 1.6 архитектуры, действительно являются базовыми и исследу-
19 ются в классе вычислительных комплексов. Тот факт, что Э. Таненбаум называет их распределенными, не обеспечивает полноценную реализацию распределенных приложений. В лучшем случае, такие приложения на таких структурах могут только моделироваться или проектироваться, но не обеспечивать их нормальную целевую работу. Это подтверждается практикой создания различных АСУ, где обработка информации осуществляется параллельно и асинхронно на некотором наборе « Автоматизированных рабочих мест » (АРМ). Чтобы более наглядно показать возможности « Сосредоточенных систем », вспомним их важнейшую характеристику — быстродействие вычислений. Для этого воспользуемся данными учебника [2] по иерархии запоминающих устройств компьютеров. Сами данные представлены в виде таблицы 1.1 и отражают общепринятое название устройства, емкость памяти и время выборки данных. Таблица 1.1 — Иерархия запоминающих устройств (по данным источника [2])
Название устройства | Емкость памяти | Время выборки данных | |||
Регистры процессора | 32 | бита — 64 бита | Несколько системных циклов | ||
Кэш-память: | |||||
уровень L1 | 32 | КБ — 64 КБ | Порядка 10 нс | ||
уровень L2 | 256 | КБ — 2 МБ | Порядка 25 нс | ||
уровень L3 | 4 | МБ — 8 МБ | Порядка 50 нс | ||
Основная память | 1 | ГБ — 4 ГБ | 50 — 100 нс | ||
Твердотельные диски | 256 | ГБ — 1 ТБ | 50 — 200 нс | ||
Магнитные диски | 512 | ГБ — 6 ТБ | 2.5 — 16 мс | ||
Оптические диски | 150 — 400 мс | ||||
CD | 700 | МБ | |||
DVD | 4.7 ГБ — 8.5 ГБ | ||||
BD | 25 | ГБ — 128 ГБ | |||
Магнитные ленты | 5 | ТБ — 100 ТБ | 500 — 1000 мс |
Учитывая общие физические принципы распространения сигналов в электронных устройствах, можно с любой степенью уверенности утверждать, что основная тенденция развития сосредоточенных систем — концентрация всех их структур в минимальных физических объемах. Эта тенденция позволяет создавать ВС различной мощности, включая суперкомпьютеры, но в плане создания распределенных приложений оставляют им только место элементов « Распределенных систем ». Из сказанного можно было бы сделать вывод, что термин « Распределенные вычислительные системы » (РВС) вполне подошел бы для предметной области изучаемой дисциплины. Таким образом поступил и автор учебного пособия [5], тем самым игнорируя тот факт, что все распределенные приложения РВС явно взаимодействуют через систему, которая на рисунке 1.4 обозначена как СПД (система передачи данных). Чтобы более наглядно раскрыть этот факт, кратко характеризуем класс сетевых объектных систем и сервис-ориентированные технологии.