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

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

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

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

В основном узлыподдерживают стандартный коммуникационный протокол типа T C P / I P , что де­лает несложной организацию их совместной работы. Однако здесь могут встре­титься трудности с переносом приложений под разные платформы. Распреде­ленные операционные системы в основном рассчитаны не на открытость, а на1.5. Модель клиент-сервер67максимальную производительность, в результате на дороге к открытым систе­мам у них стоит множество запатентованных решений.1.5. Модель клиент-серверДо этого момента мы вряд ли сказали что-то о действительной организации рас­пределенных систем, более интересуясь тем, как в этих системах организованыпроцессы. Несмотря на то что достичь согласия по вопросам, связанным с распре­деленными системами, было нелегко, по одному из вопросов исследователи и раз­работчики все же договорились. Они пришли к выводу о том, что мышление впонятиях клиентов, запрашивающих службы с серверов, помогает понять слож­ность распределенных систем и управляться с ней.

В этом разделе мы кратко рас­смотрим модель клиент-сервер.1.5.1. Клиенты и серверыв базовой модели клиент-сервер все процессы в распределенных системах делят­ся на две возможно перекрывающиеся группы. Процессы, реализующие некото­рую службу, например службу файловой системы или базы данных, называютсясерверами {servers).

Процессы, запрашивающие службы у серверов путем посыл­ки запроса и последующего ожидания ответа от сервера, называются клиентами{clients). Взаимодействие клиента и сервера, известное также под названием ре­жим работы запрос-ответ {request-reply behavior), иллюстрирует рис. 1.18.Ожидание результатаКлиент•Сервер •Служба провайдераВремя -Рис. 1.18. Обобщенное взаимодействие между клиентом и серверомЕсли базовая сеть так же надежна, как локальные сети, взаимодействие меж­ду клиентом и сервером может быть реализовано посредством простого протоко­ла, не требующего установления соединения. В этом случае клиент, запрашиваяслужбу, облекает свой запрос в форму сообщения с указанием в нем службы, ко­торой он желает воспользоваться, и необходимых для этого исходных данных.Затем сообщение посылается серверу.

Последний, в свою очередь, постоянноожидает входящего сообщения, получив его, обрабатывает, упаковывает резуль­тат обработки в ответное сообщение и отправляет его клиенту.Использование не требующего соединения протокола дает существенный вы­игрыш в эффективности. До тех пор пока сообщения не начнут пропадать илиповреждаться, можно вполне успешно применять протокол типа запрос-ответ.К сожалению, создать протокол, устойчивый к случайным сбоям связи, — петри-68Глава 1. Введениевиальная задача.

Все, что мы можем сделать, — это дать клиенту возможностьповторно послать запрос, на который не был получен ответ. Проблема, однако,состоит в том, что клиент не может определить, действительно ли первоначаль­ное сообш,ение с запросом было потеряно или ошибка произошла при передачеответа. Если потерялся ответ, повторная посылка запроса может привести к по­вторному выполнению операции. Если операция представляла собой что-то вроде«снять 10 000 долларов с моего банковского счета», понятно, что было бы гораз­до лучше, если бы вместо повторного выполнения операции вас просто уведоми­ли о произошедшей ошибке.

С другой стороны, если операция была «сообщитемне, сколько денег у меня осталось», запрос прекрасно можно было бы послатьповторно. Нетрудно заметить, что у этой проблемы нет единого решения. Мы от­ложим детальное рассмотрение этого вопроса до главы 7.В качестве альтернативы во многих системах клиент-сервер используется на­дежный протокол с установкой соединения.

Хотя это решение в связи с его отно­сительно низкой производительностью не слишком хорошо подходит для ло­кальных сетей, оно великолепно работает в глобальных системах, для которыхненадежность является «врожденным» свойством соединений. Так, практическивсе прикладные протоколы Интернета основаны на надежных соединениях попротоколу T C P / I P . В этих случаях всякий раз, когда клиент запрашивает служ­бу, до посылки запроса серверу он должен установить с ним соедргнение. Серверобычно использует для посылки ответного сообщения то же самое соединение,после чего оно разрывается. Проблема состоит в том, что установка и разрыв со­единения в смысле затрачиваемого времени и ресурсов относительно дороги,особенно если сообщения с запросом и ответом невелики.

Мы обсудим альтерна­тивные решения, в которых управление соединением объединяется с передачейданных, в следующеР! главе.Примеры клиента и сервераЧтобы внести большую ясность в то, как работают клиент и сервер, в этом пунктемы рассмотрим описание клиента и файлового сервера на языке С. И клиент,и сервер должны совместно использовать некоторые определения, которые мысоберем вместе в файл под названием header.h, текст которого приведен в лис­тинге 1.3. Эти определения затем включаются в тексты программ клиента и сер­вера следующей строкой:#1nclucle <header.h>Эта инструкция вызовет активность препроцессора, который посимвольновставит все содержимое файла header.h в текст программы до того, как начнетсяее компиляция.Листинг 1.3.

Файл header.h, используемый клиентом и сервером/ * Определения, необходимые и клиентам, и серверам * /#clefine TRUE1/* Максимальная длина имени файла */#define МАХ_РАТН255/* Максимальное количество данных, передаваемое за один раз */1.5. Модель клиент-сервер69#def1ne BUF_SIZE1024/* Сетевой адрес илового сервера */#def1ne FILE SERVER243/* Определения разрешенных операций *//* создать новый файл */#define CREATE1/* считать данные из файла и вернуть их */#define READ2/* записать данные в файл '^1#define WRITE3/* удалить существующий файл */#def1ne DELETE4/* Коды ошибок *//^ операция прошла успешно */#def1ne OKО/* запрос неизвестной операции */#def1ne E_BAD_OPER-1/* ошибка в параметре */#def1ne E_BAD_PARAM-2/* ошибка диска или другая ошибка чтения-записи */#def1ne Е 10-3/* Определение формата сообщения */struct message {long source/* идентификатор источника */long dest;/* идентификатор приемника '^1long opcode/* запрашиваемая операция */long count;/* число передаваемых байт */long offset/* позиция в файле, с которой начинаетсяввод-вывод *//^ результат операции */long result:/* имя файла, с которым производятсяchar name[MAX_PATH];операции */char data[BUF SIZE]:данные, которые будут считаны илизаписаны */}:Итак, перед нами текст файла header.h.

Он начинается с определения двухконстант, МАХ_РАТН и BUF_SIZE, которые определяют размер двух массивов, исполь­зуемых в сообщении. Первая задает число символов, которое может содержатьсяв имени файла (то есть в строке с путем типа /usr/ast/books/opsys/chapter1.t).Вторая задает размер блока данных, который может быть прочитан или записанза одну операцию путем установки размера буфера. Следующая константа, FILE_SERVER, задает сетевой адрес файлового сервера, на который клиенты могут посы­лать сообщения.Вторая группа констант задает номера операций. Они необходимы для того,чтобы и клиент, и сервер знали, какой код представляет чтение, какой код — за­пись и т.

д. Мы приводим здесь только четыре константы, в реальных системахих обычно больше.70Глава 1. ВведениеКаждый ответ содержит код результата. Если операция завершена успешно,код результата обычно содержит полезную информацию (например, реальноечисло считанных байтов). Если нет необходимости возвращать значение (напри­мер, при создании файла), используется значение ОК. Если операция по какимлибо причинам окончилась неудачей, код результата (E_BAD_OPER, E_BAD_PARAM и др.)сообщает нам, почему это произошло.Наконец, мы добрались до наиболее важной части файла header.h — определе­ния формата сообщения.

В нашем примере это структура с 8 полями. Этот фор­мат используется во всех запросах клиентов к серверу и ответах сервера. В ре­альных системах, вероятно, фиксированного формата у сообщений не будет (по­скольку не во всех случаях нужны все поля), но здесь это упростит объяснение.Поля source и dest определяют, соответственно, отправителя и получателя. Полеopcode — это одна из ранее определенных операций, то есть create, read, write илиdelete.

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

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

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