Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lektsii_PO_KS.docx
Скачиваний:
24
Добавлен:
21.08.2019
Размер:
645.14 Кб
Скачать
  1. Распределенные и параллельные вычисления. Клиент- серверная модель

Компоненты сетевого ПО являют собой типичный пример клиент-серверных приложений - в каждый момент времени один из процессов (выступающий при этом в роли клиента) запрашивает некоторые сервисные функции (например, требование связаться по сети с удаленной ЭВМ) у другого, последний же предоставляет требуемый сервис (является сервером); во многих случаях в зависимости от ситуации процессы могут меняться функциями.

Заметим, что процесс-клиент и процесс-сервер могут исполняться как на одной и той же ЭВМ, так и на разных (соединенных) сетью ЭВМ. Каждая многозадачная ОС имеет специфические средства обеспечения взаимодействия ‘клиент-сервер’.

Итак, основная идея модели ‘клиент-сервер’ состоит в разделении ПО на несколько процессов, каждый из которых реализует специфический набор сервисов: например, распределение памяти, создание процесса или планирование процессов. Каждый сервер (server) выполняется в пользовательском режиме, проверяя в цикле, не обратился ли к нему с требованием обслуживания какой-либо клиент (client). Клиент (которым может быть другой компонент ОС) или прикладная программа, запрашивает выполнение сервиса, посылая серверу сообщение. Ядро ОС (выполняющееся в режиме ядра), доставляет сообщение серверу; последний выполняет запрашиваемые действия, после чего ядро ОС возвращает клиенту результаты в составе другого соо бщения.

Преимущество построения ПО на принципе клиент-серверного подхода состоит в автономизации отдельных компонентов ПО - каждый компонент имеет ограниченный размер, выполняется как отдельный процесс пользовательского режима, авария (приводящая, возможно, к перезапуску процесса) одного из них не нарушает работы остальных компонентов ПО. Именно на таком принципе построена известная операционная система WINDOWS фирмы Microsoft Corp.

Важно, что различные серверные процессы могут выполняться на различных процессорах многопроцессорного компьютера или даже на разных компьютерах, что делает построенную на клиент-серверной основе ОС пригодной для распределенных вычислительных сред. В случае распределенной ОС клиентам даже не требуется знать, обслуживается их запрос локально (на данной ЭВМ) или удаленно.

В Windows’NT средства обмена сообщениями между распределенными (часто выполняющимися на различных компьютерах в сети) приложениями обеспечивает (путем поддержки сетевого транспорта и защиты) служба сетевого обмена данными (DDE, Dynamic Data Exchange); также поддерживается модель выполнения распределенных приложений в сети (DCOM, Distributed Component Object Model). Ощутимый недостаток DCOM состоит в том, что каждый клиент может взаимодействовать только с одним конкретным компьютером, имеющим в составе ПО нужный сервер приложений (сколько бы их ни было в сети); при этом информационная система не имеет никакой з ащиты от сбоев, вызванных перегрузкой или отказом сервера приложений (так как отсутствует возможность переключения клиентского приложения между несколькими сервер ами сети); этот недостаток устранен в технологии OLEnterprise фирмы Inprise Corp. [7].

В состав Windows’NT изначально введены средство локального вызова процедур (LPC, Local Procedure Call) - оптимизированного механизма исполняющей системы NT для локальной передачи сообщений серверной процедуре и средство удаленного вызова процедур (RPC, Remote Procedure Call) - механизм вызова процедур с удаленной машины (именно через RPC взаимодействуют клиенты и сервер а приложений согласно технологии OLEnterprise). Не менее интересным являются введенные в Windows’ NT средства передачи данных между процессами (в том числе выполняющимися на различных ЭВМ, объединенных сетью) - именованные и анонимные каналы передачи данных, каналы типа Mailslot.

Таким образом, хотя Windows’NT и не является в полном смысле слова распределенной ОС, фирма-разработчик Microsoft Corp. серьезно подготовилась к реальному созданию распределенной ОС, и она будет (с большим или меньшим успехом) разработана в свое время.

В последние десятилетия существенно возрос интерес к решению ‘больших задач’ (моделирование климата, задачи обтекания летательных аппаратов, механики твердого тела, генетического моделирования и др.), требующих огромной (до 1015 операций с плавающей точкой в секунду - Flops) производительности компьютеров. Однако подобные ЭВМ чрезвычайно дороги и быстро устаревают. Один из подходов к созданию масштабируемых (допускающих возможность укрупнения) вычислительных систем - создание кластеров (сообщество вычислительных узлов, объединенных коммуникационной средой); на кластерах естественным образом реализуется распараллеливание вычислительных задач.

В качестве вычислительных узлов обычно применяются относительно недорогие микропроцессорные системы. Созданная в Межведомственном Суперкомпьютерном Центре (МСЦ, www.jscc.ru) система MBC 1000M (189-й номер в списке Top500 на ноябрь 2003 г., www.top500.org) имеет пиковую производительность до 1012 Flops (384 двухпроцессорных вычислительных модулей c пиковой производительностью 2,7 GFlops на double-данных; каждый включает 2 процессора Alpha 21264A, 667 MHz с L2 кэш­памятью 4 МЬ, 2 Gb разделяемой оперативной памяти, жесткий диск 20 Gb; при этом модули объединены межпроцессорной сетью Myrinet 2000 ш скоростью обмена до

  1. Gbit/sec и сетью Fast Ethernet с пропускной способностью 100 Mbit/sec). В данном случае компьютерная сеть выступает в качестве связующего звена между узлами решающего поля; обеспечивающим технологию распараллеливания вычислений является специализированное ПО (в настоящее время распространена система программирования MPI - Message Passing Interface, www.mpi-forum.org).

Крайним случаем распараллеливания вычислений является метакомпьютинг - организация вычислений на наиболее мощных (локальных, корпоративных, глобальных) компьютерных сетях (обычно подразумевается InterNet). Самыми известными проектами метакомпьютинга являются SETI@home (Search for Extraterrestrial Intelligence, setiathome.ssl.berkeley.edu, для участия в проекте зарегистрировалось около 4 млн. человек), Distributed.net (www.Distributed.net), GIMPS (Great Internet Mersenne Prime Search, mersenne.org), Globus (www.globus.org); подробнее см. [24], подраздел 7.4 данной работы и др.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]