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

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

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

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

Подобнаяпараллельная обработка может происходить абсолютно незаметно для приложе­ния. Единственным минусом облегченных процессов в сочетании с потоками вы­полнения пользовательского уровня можно считать необходимость создания иуничтожения самих облегченных процессов. Затраты на эти операции не отлича­ются от обычных затрат на работу с потоками выполнения уровня ядра. Однаков создании и уничтожении облегченных процессов мы нуждаемся лишь от слу­чая к случаю, и нередко эти процессы полностью находятся под управлениемоперационной системы.Альтернативным, но схожим с облегченными процессами подходом [14] яв­ляются активизации планировщика {scheduler activations). Основная разница ме­жду активизацией планировщика и облегченными процессами состоит в том, чтокогда ядро блокируется системным вызовом, оно передает вызов в пакет пото­ков, который осуществляет вызов процедуры планировщика.

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

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

Мы проиллюстрируем это утверждение,рассматривая многопоточных клиентов и серверов.Многопоточные клиентыЧтобы добиться высокой степени прозрачности распределения, распределенныесистемы, работающие в глобальных сетях, могут нуждаться в маскировке боль-172Глава 3. Процессыших задержек сообщений, курсирующих между процессами. Цикл задержкив глобальных сетях легко может достигать порядка сотен миллисекунд, а време­нами и секунд.Традиционный способ скрыть задержки связи — инициировав взаимодейст­вие, немедленно перертти к другой работе. Типичным примером примененияэтой методики являются web-браузеры. Во многих случаях web-документ, содер­жащийся в файле формата HTML, содержит, кроме текста, набор изображений,значков и т.

п. Для получения элементов web-докуменга браузер открывает со­единение TCP/IP, читает поступающие данные и преобразует их в компонентывизуального представления. Установка соединения, так же как и чтение данных,представляет собой блокирующие операции. При работе с медленными комму­никациями мы ощущаем неудобства, связанные с тем, что время, требующеесядля завершения каждой из операций, может быть довольно длительным.Web-браузер обычно сначала получает страницу HTML-кода, а затем пока­зывает ее. Для того чтобы по возможности скрыть задержки связи, некоторыебраузеры начинают показывать данные по мере их получения.

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

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

Это предполагает, что блокирующие вызовы нев состоянии приостановить основной процесс. Как показано в [438], код каждогоиз потоков выполнения одинаков и в основном несложен. В результате пользо­ватель, хотя и замечает задержку в показе картинок и прочих украшательств, впол­не может просматривать документ.Использование многопоточных web-браузеров, которые в состоянии откры­вать несколько соединений, дает также и другой выигрыш.

В предыдущем при­мере мы создавали несколько соединений с одним и тем же сервером. Если этотсервер сильно загружен или просто медленный, нам не удастся добиться значи­тельного повышения производительности по сравнению с последовательным (од­ного за другим) получением файлов.Однако во многих случаях web-серверы могут быть реплицированы на не­сколько машин, при этом каждый из серверов будет содержать одинаковый на­бор web-документов. Реплицированные серверы находятся в одном и том же мес­те и имеют одно и то же имя. При поступлении запроса на web-страницу этотзапрос передается одному из серверов, обычно с использованием алгоритма цик­лического обслул<ивания или другого алгоритма выравнивания нагрузки [227].3.1.

Потоки выполнения173При наличии многопоточного клиента соединения могут быть установлены с раз­личными репликами, что приведет к параллельной передаче данных, а это будетэффективно способствовать тому, что web-документ будет показан полностьюзначительно быстрее, чем в случае нереплицированного сервера. Этот подходсрабатывает, только если клиент в состоянии обработать истинно параллельныепотоки входящих данных. В этом случае потоки выполнения идеально подходятдля обработки потоков данных.Многопоточные серверыХотя многопоточные клиенты, как мы видели, обладают весомыми достоинства­ми, основные достоинства многопоточности в распределенных системах прихо­дятся на сторону сервера.

Практика показывает, что многопоточность не толькосущественно упрощает код сервера, но и делает гораздо проще разработку техсерверов, в которых для достижения высокой производительности требуетсяпараллельное выполнение нескольких приложений. В число таковых входяти мультипроцессорные системы. Даже сейчас, когда мультипроцессорные компь­ютеры активно выпускаются в виде рабочих станций общего назначения, исполь­зование для параллельной обработки многопоточности не потеряло своей акту­альности.Чтобы ощутить достоинства потоков выполнения для написания кода серве­ров, рассмотрим организацию файлового сервера, который периодически оказы­вается блокированным ожиданием дртска. Файловый сервер обычно ожидаетвходящего запроса на операции с файлами, после чего обрабатывает полученныйзапрос и возвращает ответ.

Одна из возможных и особо популярных организа­ций показана на рис. 3.3. Здесь один из потоков выполнения, диспетчер, считы­вает приходящие запросы на файловые операции. Запросы посылаются клиента­ми с указанием конечной точки данного сервера. После проверки запроса сервервыбирает (то есть блокирует) находящийся в состоянии ожидания рабочий по­ток выполнения и передает запрос ему.ЗапросперенаправляетсяПоток-диспетчер рабочему потокуV/Серверj^Рабочий потокЗапрос,приходящийиз сетиРис.

3.3. Многопоточный сервер, организованныйпо схеме диспетчер—рабочий174Глава 3. ПроцессыРабочий поток осуществляет блокирующее чтение из локальной файловойсистемы, что приводит к приостановке потока выполнения до считывания дан­ных с диска. На то время, пока поток выполнения приостановлен, управлениеможет быть передано другому потоку выполнения. Например, дополнительнуюработу может выполнить поток-диспетчер. Либо он может выбрать другой гото­вый к запуску рабочий поток.Теперь обсудим, как файловый сервер мог бы вести запись в отсутствии пото­ков выполнения.

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

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

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

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

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