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

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

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

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

Изменения не окажут влияния на су-192Глава 3. Процессышествующие клиентские приложения, связанные с сервером. Существуют, разу­меется, и недостатки. Наиболее серьезный, который мы будем обсуждать в гла­ве 8, связан с безопасностью. Слепо верить в то, что загружаемый код реализуеттолько объявленные интерфейсы доступа к вашему незащищенному жесткомудиску и не отправляет наиболее интересные фрагменты неизвестно кому, — невсегда оправдано.Модели переноса кодаХотя перенос кода подразумевает только перемещение кода с машины на маши­ну, этот термин имеет более широкую область применения. Традиционно связьв распределенных системах основана на обмене данных между процессами. Пере­нос кода в широком смысле связан с переносом программ с машины на машинус целью исполнения этих программ в нужном месте.

В некоторых случаях, такихкак перенос процессов, также должны переноситься состояние программы, полу­чаемые сигналы и прочие элементы среды.Для лучшего понимания различных моделей переноса кода используем шаб­лон, описанный в [156]. Согласно этому шаблону, процесс состоит из трех сег­ментов. Сегмент кода — это часть, содержащая набор инструкций, которые вы­полняются в ходе исполнения программы. Сегмент ресурсов содержит ссылки навнешние ресурсы, необходимые процессу, такие как файлы, принтеры, устройст­ва, другие процессы и т. п. И наконец, сегмент исполнения используется для хра­нения текущего состояния процесса, включая закрытые данные, стек и счетчикпрограммы.Абсолютный минимум для переноса кода предлагает модель слабой мобильно­сти {weak mobility).

Согласно этой модели допускается перенос только сегментакода, возможно вместе с некоторыми данными инициализации. Характернойчертой слабой мобильности является то, что перенесенная программа всегда за­пускается из своего исходного состояния.

Это происходит, например, с Java-anплетами. Достоинство подобного подхода в его простоте. Слабая мобильностьтребуется только для того, чтобы мaшpп^a, на которую переносится код, была всостоянии его исполнять. Этого вполне достаточно, чтобы сделать код переноси­мым. Мы вернемся к данному вопросу, когда будем обсуждать перенос программв гетерогенных системах.В противоположность слабой мобильности, в системах, поддерживающихсильную мобильность {strong mobility), переносится также и сегмент исполнения.Характерная черта сильной мобильности — то, что работающий процесс можетбыть приостановлен, перенесен на другую машину и его выполнение продолженос того места, на котором оно было приостановлено. Ясно, что сильная мобиль­ность значительно мощнее слабой, но и значительно сложнее в реализации.

Приме­ром системы, поддерживающей сильную мобильность, является система D'Agents,которую мы рассмотрим позднее в этой главе.Независимо от того, является мобильность слабой или сильной, следует про­вести разделение на системы с переносом, инициированным отправителем, и сис­темы с переносом, инициированным получателем. При переносе, инициирован­ном отправителем, перенос инициируется машиной, на которой переносимый3.4. Перенос кода193код постоянно размещен или выполняется. Обычно перенос, инициированныйотправителем, происходит при загрузке программ на вычислительный сервер.Другой пример — передача поисковых программ через Интернет на сервер базданных в Web для выполнения запроса на этом сервере.

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

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

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

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

С этойточки зрения миграция путем клонирования — самый простой способ повыше­ния прозрачности распределения.Различные варианты переноса кода иллюстрирует рис. 3.9.194Глава 3. ПроцессыИсполнениеПеренос,' инициируемыйотправителем/Слабая мобильность.Перенос,' инициируемыйполучателемМеханизм переносаПеренос,' инициируемыйотправителемв процессе-приемникеИсполнениев отдельном процессе.

Исполнениев процессе-приемнике. Исполнениев отдельном процессе' Перенос процесса' Клонирование процесса^Сильная мобильность.Перенос,' инициируемыйполучателем' Перенос процесса* Клонирование процессаРис. 3.9. Варианты переноса кода3.4.2. Перенос и локальные ресурсыРанее мы рассматривали перенос только сегментов кода и исполнения. Сегментресурсов требует отдельного рассмотрения. Перенос кода нередко сильно затруд­няет то, что сегмент ресурсов не всегда можно перенести с такой же легкостью безизменений, как другие сегменты. Так, например, рассмотрим процесс, содержащрш ссылку на конкретный порт TCP, посредством которого он взаимодействуетс другими (удаленными) процессами.

Эта ссылка находится в сегменте ресурсовпроцесса. При переносе процесса на другую машину процесс должен освободитьзанятый им порт и запросить другой — на той машине, на которую он был пере­мещен. В других случаях перенос ссылки проблем не создает. Например, ссылкана файл с использованием абсолютного URL-адреса останется верной независи­мо от того, на какой машине выполняется процесс, содержащий этот URL-адрес.Чтобы понять, какое влияние оказывает перенос кода на сегмент ресурсов,было выделено три типа связи процесса с ресурсами [156].

Наиболее сильнаясвязь наблюдается, когда процесс ссылается на ресурс по его идентификатору.В этом случае процесс требует в точности тот ресурс, на который ссылается. При­мером подобной привязки по идентификатору {binding by identifier) являетсяиспользование процессом URL-адреса для ссылки на конкретный web-сайт илиИнтернет-адреса для ссылки на FTP-сервер. По этим же причинам ссылка на ло­кальную конечную точку взаимодействия также будет считаться привязкой поидентификатору.Более слабая связь процесса с ресурсами будет иметь место в том случае, еслипроцессу необходимо только значение ресурса.

В этом случае выполненрге про­цесса ничуть не изменится, если такое же значение ему предоставит другой ре­сурс. Типичным примером привязки по зпачепию {binding by value) являются об­ращения программ к стандартным библиотекам, как при программировании наязыке С или Java. Эти библиотеки всегда доступны на локальной машине, но их3.4. Перенос кода195истинное местоположение в локальной файловой системе может быть различ­ным. Для правильного выполнения процесса важны не конкретные имена фай­лов, а их содержимое.И, наконец, наиболее слабая форма связи имеет место в том случае, когдапроцесс указывает на необходимость использования ресурса определенного ти­па. Подобная привязка по типу {binding by type) может быть проиллюстрированассылками на локальные устройства, такие как принтеры, мониторы и т. п.При переносе кода мы часто нуждаемся в изменении ссылок на ресурсы, приэтом изменять тип привязки ресурса к процессу запрещено. Можно ли изменятьресурсы, и если да, то как, зависит от того, могут ли они быть перенесены на ма­шину-приемник вместе с кодом.

Конкретнее, нам нужно определить связь ресур­сов с машиной и рассмотреть варианты. Неприсоедипенные ресурсы {unattachedresources) могут быть с легкостью перенесены с машины на машину. Файлы(данных) в этом случае обычно связаны только с переносимой программой.В противоположность им, перенос или копирование связанных ресурсов {fasten­ed resources) возможно лишь с относительно большими затратами. Типичнымипримерами связанных ресурсов могут быть локальные базы данных или webсайты целиком.

Несмотря на то что эти ресурсы теоретически не зависят от те­кущей машины, часто бывает невозможно перенести их в другую среду.И, наконец, фиксированные ресурсы {fixed resources) изначально привязанык конкретной машине или среде и не могут быть перенесены на другую. Фикси­рованными ресурсами часто бывают локальные устройства. Другой пример фик­сированных ресурсов ~ локальные конечные точки взаимодействия.Скомбинировав три типа привязки ресурсов к процессам и три типа привяз­ки ресурсов к машине, получим девять комбинаций, которые следует рассмот­реть, обсуждая вопрос переноса кода.

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

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

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