Э. Таненбаум, М. ван Стеен - Распределённые системы (принципы и парадигмы), страница 5
Описание файла
PDF-файл из архива "Э. Таненбаум, М. ван Стеен - Распределённые системы (принципы и парадигмы)", который расположен в категории "". Всё это находится в предмете "распределенные операционные системы" из 8 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .
Просмотр PDF-файла онлайн
Текст 5 страницы из PDF
Так, при пересылке целого числа с рабочей станции на базе процессора Intel на Sun SPARCнеобходимо принять во внимание, что процессоры Intel оперируют с числамиформата «младший — последним» (то есть первым передается старший байт),а процессор SPARC использует формат «старший — последним» (то есть первым передается младший байт).
Также в данных могут присутствовать и другиенесоответствия. Например, распределенная система может содержать компьютеры с различными операционными системами, каждая из которых имеет собственные ограничения на способ представления имен файлов. Разница в ограничениях на способ представления имен файлов, так же как и собственно работас ними, должны быть скрыты от пользователей и приложений.Важная группа типов прозрачности связана с местоположением ресурсов.Прозрачность местоположения {location transparency) призвана скрыть от пользователя, где именно физически расположен в системе нужный ему ресурс.
Важную роль в реализации прозрачности местоположения играет именование. Так,прозрачность местоположения может быть достигнута путем присвоения ресурсам только логических имен, то есть таких имен, в которых не содержится закодированных сведений о местоположении ресурса. Примером такого имени может быть URL: http://~wiv.prenhall.com/index.html, в котором не содержитсяникакой информации о реальном местоположении главного web-сервера издательства Prentice Hall.
URL также не дает никакой информации о том, находился ли файл index.html в указанном месте постоянно или оказался там недавно.О распределенных системах, в которых смена местоположения ресурсов не влияетна доступ к ним, говорят как об обеспечивающих прозрачность переноса {migration transparency). Более серьезна ситуация, когда местоположение ресурсовможет измениться в процессе их использования, причем пользователь или приложение ничего не заметят. В этом случае говорят, что система поддерживаетпрозрачность смены местопололсения {relocation transparency).
Примером могут28Глава 1. Введениеслужить мобильные пользователи, работающие с беспроводным переноснымкомпьютером и не отключающиеся (даже временно) от сети при перемещениис места на место.Как мы увидим, репликация имеет важное значение в распределенных системах. Так, ресурсы могут быть реплицированы для их лучшей доступности илиповышения их производительности путем помещения копии неподалеку от тогоместа, из которого к ней осуществляется доступ.
Прозрачность репликации {replication transparency) позволяет скрыть тот факт, что существует несколько копий ресурса. Для скрытия факта репликации от пользователей необходимо, чтобывсе реплики имели одно и то же имя. Соответственно, система, которая поддерживает прозрачность репликащп^, должна поддерживать и прозрачность местоположения, поскольку иначе невозможно будет обращаться к репликам без указания их истинного местоположения.Мы часто упоминаем, что главная цель распределенных систем — обеспечитьсовместное использование ресурсов. Во многих случаях совместное использование ресурсов достигается посредством кооперации, например в случае коммугп!каций.
Однако существует множество примеров настоящего совместного использования ресурсов. Например, два независихмых пользователя могут сохранятьсвои файлы на одном файловом сервере или работать с одной и той же таблицейв совместно используемой базе данных. Следует отметить, что в таких случаяхни один из пользователей не имеет никакого понятия о том, что тот же ресурсзадействован другим пользователем. Это явление называется прозрачностьюпараллелыюго доступа (сопсигтепсу transparency).
Отметим, что подобный параллельный доступ к совместно используемому ресурсу сохраняет этот ресурс в непротиворечивом состоянии. Непротиворечивость может быть обеспечена механизмом блокР1ровок, когда пользователи, каждый по очереди, получаютисключительные права на запрашиваемый ресурс. Более изощренный вариант —использование транзакций, однако, как мы увидим в следующих главах, механизм транзакций в распределенных системах труднореализуем.Популярное альтернативное определение распределенных систем, принадлежащее Лесли Лампорт (Leslie Lamport), выглядит так: «Вы понимаете, что у васесть эта штука, поскольку при поломке компьютера вам никогда не предлагаютприостановить работу».
Это определение указывает еще на одну важную сторону распределенных систем: прозрачность отказов. Прозрачность отказов {failuretransparency) означает, что пользователя никогда не уведомляют о том, что ресурс (о котором он мог никогда и не слышать) не в состоянии правильно работать и что система далее восстановилась после этого повреждения. Маскировкасбоев — это одна из сложнейших проблем в распределенных системах и столь женеобходимая их часть. Определенные соображения по этому поводу будут приведены в главе 7. Основная трудность состоит в маскировке проблем, возникающих в связи с невозможностью отличить неработоспособные ресурсы от ресурсов с очень медленным доступом. Так, контактируя с перегруженным web-сервером, браузер выжидает положенное время, а затем сообщает о недоступностистраницы.
При этом пользователь не должен думать, что сервер и правда не работает.1.2. Задачи29Последний тип прозрачности, который обычно ассоциируется с распределенными системами, — это прозрачность сохранности {persistence transparency), маскирующая реальную (диск) или виртуальную (оперативная память) сохранностьресурсов. Так, например, многие объектно-ориентированные базы данных предоставляют возможность непосредственного вызова методов для сохраненныхобъектов.
За сценой в этот момент происходит следующее: сервер баз данныхсначала копирует состояние объекта с диска в оперативную память, затем выполняет операцию и, наконец, записывает состояние на устройство длительногохранения. Пользователь, однако, остается в неведении о том, что сервер перемещает данные между оперативной памятью и диском. Сохранность играет важную роль в распределенных системах, однако не менее важна она и для обычных(не распределенных) систем.Степень прозрачностиХотя прозрачность распределения в общем желательна для всякой распределенной системы, существуют ситуации, когда попытки полностью скрыть от пользователя всякую распределенность не слишком разумны.
Это относится, например,к требованию присылать вам свежую электронную газету до 7 утра по местномувремени, особенно если вы находитесь на другом конце света и живете в другомчасовом поясе. Иначе ваша утренняя газета окажется совсем не той утренней газетой, которую вы ожидаете.Точно так же в глобальной распределенной системе, которая соединяет процесс в Сан-Франциско с процессом в Амстердаме, вам не удастся скрыть тот факт,что мать-пррфода не позволяет пересылать сообщения от одного процесса к другому быстрее чем за примерно 35 мс.
Практика показывает, что при использовании компьютерных сетей на это реально требуется несколько сотен миллисекунд. Скорость передачи сигнала ограничивается не столько скоростью света,сколько скоростью работы промежуточных переключателей.Кроме того, существует равновесие между высокой степенью прозрачностии производительностью системы. Так, например, многие приложения, предназначенные для Интернета, многократно пытаются установить контакт с сервером,пока, наконец, не откажутся от этой затеи. Соответственно, попытки замаскировать сбой на промежуточном сервере, вместо того чтобы попытаться работать через другой сервер, замедляют всю систему.
В данном случае было бы эффективнее как можно быстрее прекратить эти попытки или по крайней мере позволитьпользователю прервать попытки установления контакта.Еще один пример: мы нуждаемся в том, чтобы реплики, находящиеся на разных континентах, были в любой момент гарантированно идентичны. Другимисловами, если одна копия изменилась, изменения должны распространиться навсе системы до того, как они выполнят какую-либо операцию. Понятно, что одиночная операция обновления может в этом случае занимать до нескольких секунд и вряд ли возможно проделать ее незаметно для пользователей.Вывод из этих рассуждений следующий.
Достижение прозрачности распределения — это разумная цель при проектировании и разработке распределенных30Глава 1. Введениесистем, но она не должна рассматриваться в отрыве от других характеристиксистемы, например производительности.1.2.3. ОткрытостьДругая важная характеристика распределенных систем — это открытость.Открытая распределенная система {open distributed system) — это система, предлагающая службы, вызов которых требует стандартные синтаксис и семантику.HanppiMep, в компьютерных сетях формат, содержимое и смысл посылаемых и принимаемых сообщений подчиняются типовым правилам.