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

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

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

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

Третья возможность заключается в использо­вании сервера в качестве большого конечного автомата. По приходе запроса егопроверяет единственный поток выполнения. Если он может быть удовлетворенпутем обращения к кэшу, отлично, в противном случае происходит обращениек дисковой системе.Однако вместо блокировки поток выполнения записывает состояние текуще­го запроса в таблицу и переходит к ожиданию и получению нового сообщения.Новое сообщение может быть как запросом на совершение новой операции, таки ответом на предыдущий запрос от дисковой подсистемы. Если это новый за­прос, мы начинаем новую работу. Если это ответ от диска, из таблицы извлекаетсясоответствующая информация, ответ формируется и передается клиенту. Соглас­но этой схеме, сервер должен быть в состоянии осуществлять неблокирующиевызовы send и receive.В подобной архитектуре модель «последовательных процессов», которую мынаблюдали в первых двух случаях, отсутствует.

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

Блокирующие системные вызовы упрощают3.2. Клиенты175программирование, а параллельность повышает производительность. Однопоточные серверы сохраняют простоту блокирующих системных вызовов, но про­игрывают в производительности. Подход, используемый в конечных автоматах,позволяет благодаря параллелизму добиться высокой производительности, ноиз-за неблокирующих вызовов тяжело программируется. Эти подходы суммиро­ваны в табл.

3.1.Таблица 3 . 1 . Три способа построения сервераМодельХарактеристикиПотоки выполненияПараллельность, блокирующие системныевызовыОднопоточный процессОтсутствие параллелизма, блокирующие системныевызовыКонечный автоматПараллелизм, неблокирующие системныевызовы3.2. Клиентыв предыдущих главах мы обсуждали модель клиент-сервер, роли клиента и сер­вера и способы их взаимодействия. Теперь мы рассматриваем анатомию клиен­тов и серверов.

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

Сколько-нибудьсложные вещи, такие как работа с электронной почтой, могут потребовать ком­плектации настоящей клавиатурой, электронным планшетом или устройством рас­познавания речи.Важный класс интерфейсов составляют графические пользовательские интер­фейсы. Далее мы сперва рассмотрим в качестве примера традиционного пользо­вательского интерфейса систему X-Windows, а затем обсудим современные ин­терфейсы, которые обеспечивают прямое взаимодействие между приложениями.Система X-WindowsСистема X-Windows, обычно называемая просто X, используется для управлениярастровыми терминалами, в состав которых входят монитор, клавиатура и коор­динатное устройство, такое как мышь.

На самом деле X можно рассматривать какчасть операционной системы, отвечающую за терминалы. Сердце системы ~ это176Глава 3. Процессыто, что мы называем Х-ядро (X kernel). Оно содержит все необходимые для управ­ления терминалами драйверы устройств и потому сильно зависит от аппаратнойконфигурации.Х-ядро предоставляет относительно низкоуровневый интерфейс для управ­ления экраном и перехвата сообщений, поступающрхх от клавиатуры и мыши.Этот интерфейс доступен для приложений в виде библиотеки ХНЬ.

Соответст­вующая организация показана на рис. 3.4. (В терминологии X-Windows Х-ядроназывается Х-сервером, в то время как программа, использующая его функции,называется Х-клиентом. Чтобы избежать путаницы со стандартной терминоло­гией клиент-сервер, мы воздержимся от использования терминов Х-сервер иХ-клиент.)Машина клиентаМашина сервераИнтерфейс XlibХ-протоколХ-ядроТерминал (включая дисплей,клавиатуру, мышь и т. д.)Драйверы устройствРис. 3.4. Базовая организация системы X-WindowsСистема X различает два типа программ — обычные приложения и менедже­ры окон. Нормальные приложения обычно запрашивают (через ХНЬ) созданиена экране окна, которое затем используется для ввода или другой работы.

Крометого, X гарантирует, что если окно приложения активно и указатель мыши нахо­дится внутри окна, значит, все сообщенрш от мыши и клавиатуры будут переда­ны в приложерше.Менеджер окон {window manager) — это приложение, которому дано особоеправо на работу со всем экраном. Обычное приложение обязано подчиняться ог­раничениям на работу с экраном, которые реализованы в менеджере окон. Так,менеджер окон может указать, что окна не должны перекрываться или должнывсегда выводиться одним и тем же цветом. Соответственно, менеджер окон опре­деляет «вид и цвет» самой оконной системы.У Х-системы имеется интересная особенность, заключающаяся в том, чтоХ-ядро и приложения, используюш;ие Х-систему, не обязательно должны распо­лагаться на одной и той же машине.

Так, Х-система поддерживает Х-протокол —ориентированный на использование в сети коммуникационного протокола, по­средством которого экземпляры Xlib могут обмениваться данными и событиямис Х-ядром. Это приводит к существованию множества различных вариантов ар­хитектуры клиент-сервер с широкой степенью варьирования уровня интеллекту­альности клиента. В своей примитивнейшей форме клиент представляет собой3.2. Клиенты177«голое» Х-ядро, в то время как весь код приложения находится на удаленной ма­шине.

Сконфигурированный таким образом терминал часто называют простоХ-терминалом (X terminal). В наиболее интеллектуальном виде на клиентскоймашине могут быть запущены многочисленные приложения, включая менеджерокон, и необходимость в сетевой связи отпадает.Важно понимать, что системы пользовательского интерфейса, такие как Х-система, только предоставляют приложениям пользовательский интерфейс.

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

Дополнительные действия,которые могут выполнять пользователи, включают в себя и то, что обычно назы­вают соответственно операциями перетаскивания (drag-and-drop) и редактиро­вания по месту (in-place editing).Типичным примером функциональности перетаскивания является перемеще­ние представляющего файл А значка в мусорную корзину, приводящее к его уда­лению. В данном случае пользовательский интерфейс должен быть в состоянииделать более сложную работу, чем при выравнивании значков на экране: когдазначок Л переносится на изображение мусорной корзины, он должен передатьимя файла Л приложению, ассоциированному с мусорной корзиной. Немного по­думав, вы легко найдете и другие примеры.Редактирование по месту может быть с успехом проиллюстрировано на при­мере документа, содержащего текст и графику.

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

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

С точки зрения пользователя, все частисоедрпгены в одно целое. Если изменение одной из частей влечет за собой изме-178Глава 3. Процессынения других, пользовательский интерфейс может производить необходимые за­меры, например, для уведомления соответствующих приложений.Аналогично ситуации, описанной для системы X-Windows, приложение, ас­социированное с составным документом, не обязательно выполняется на маши­не клиента. Однако должно быть понятно, что пользовательский интерфейс, под­держивающий составные документы, производит значительно больший объемработы, чем интерфейс, который этого не делает.3.2.2. Клиентское программное обеспечение,обеспечивающее прозрачность распределенияКак мы уже говорили в разделе 1.5, в программное обеспечение клиента входитне только пользовательский интерфейс. Во многих случаях на стороне клиентавыполняется также часть уровней обработки и данных приложения клиент-сер­вер.

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

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

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

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

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