Именование Подготовила студентка гр.ТМ-41м Александренко Татьяна.

Презентация:



Advertisements
Похожие презентации
Служба DNS Сетевое администрирование - Тема 3. «Человеческий фактор» DNS Компьютеры и другие сетевые устройства, отправляя друг другу пакеты по сети,
Advertisements

Сетевые службы Для конечного пользователя сеть это не компьютеры, кабели и концентраторы и даже не информационные потоки, для него сеть это, прежде всего,
Физические модели баз данных Файловые структуры, используемые для хранения информации в базах данных.
A b d c e Топология сетей Физическая топология сети - это конфигурация графа, вершинами которого является активное сетевое оборудование или компьютеры,
Базы данных База данных – это информационная модель, позволяющая в упорядоченном виде хранить данные о группе объектов, обладающих одинаковым набором.
Что такое связи между таблицами В реляционной базе данных связи позволяют избежать избыточности данных. Например, в ходе создания базы данных, содержащей.
К построению и контролю соблюдения политик безопасности распределенных компьютерных систем на основе механизмов доверия А. А. Иткес В. Б. Савкин Институт.
СЛУЖБЫ СОЕДИНЕНИЙ Лекция # 2. Виды серверов Web Mail DB Proxy DHCP DNS Котроллер домена Сервер глобального каталога.
Выполнила: Калашникова Екатерина 11 класс 2008 г..
Адресация в сетях Борисов В.А. КАСК – филиал ФГБОУ ВПО РАНХ и ГС Красноармейск 2011 г.
Выполнила: Манакова Н. В. гр DNS (Domain Name System система доменных имён) - компьютерная распределённая система для получения информации о доменах.
Администрирование ИС Администрирование DNS. Установка сервера DNS DNS-сервер представляет собой дополнительную компоненту операционной системы Windows.
Классификация и регрессия Доклад по курсу Интеллектуальный анализ данных Закирова А.Р. 1.
Схема данных в Access Преподаватель: Французова Г.Н.
Модели транзакций Журнализация и буферизация. Зачем нужна буферизация Если бы запись об изменении базы данных, которая должна поступить в журнал при выполнении.
Протокол передачи данных Демонстрационный материал к уроку информатики и ИКТ в 11 классе Епифанова Т.Н. / 2010.
Тема 3 Рассматриваемые вопросы 1. Классификация сетей 2. Назначение сетей 3. Компоненты вычислительных сетей 4. Топологии сетей 5. Архитектура сетей.
Файлы и файловая система Программное обеспечение.
Каналы связи Рис Структура системы телеобработки данных Абонентская станция 1 Абонентская станция 2 Абонентская станция 3 Главный компьютер.
Модели транзакций Параллельное выполнение транзакций.
Транксрипт:

Именование Подготовила студентка гр.ТМ-41м Александренко Татьяна

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

Сущность в распределенной системе Имя в распределенной системе представляет собой строку битов, или символов, используемую для ссылки на сущность. Сущностью в распределенной системе является практически все: ресурсы, включая хосты, принтеры, диски, файлы; процессы, пользователи, почтовые ящики, группы новостей, web- страницы, графические окна, сообщения, сетевые соединения и т. д. Точка доступа {access point) специальный вид сущности в распределенных системах. Имя точки доступа называется адресом {address). Сущность может иметь более чем одну точку доступа. В распределенных системах примером точки доступа является хост, на котором запущен некий сервер. Его адрес формируется сочетанием, например, IP-адреса и номера порта (то есть адресом сервера транспортного уровня). Точка доступа сущности может с течением времени изменяться.

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

Классификация имен Локально независимые имена (local independent)- имена сущности не связанные с ее адресами. Правильный идентификатор (true identifier) - имена, используемые для однозначной идентификации сущности и характеризующиеся свойствами: идентификатор ссылается не более чем на одну сущность; на каждую сущность ссылается не более одного идентификатора; идентификатор всегда ссылается на одну и ту же сущность (то есть не мо­жет быть использован повторно). Использование идентификаторов значительно упрощает создание однозначных ссылок на сущность, но если один и тот же адрес может быть присвоен другой сущности, он не может быть задействован в качестве идентификатора. Имена, приспособленные для восприятия человеком (human- friendly names) и обычно представляется в виде строки символов.

Пространства имен Имена в распределенных системах организуются в некоторую сущность - пространство имен (name space), которое может быть представлено как направленный граф с двумя типами узлов. Листовой узел (лист, leaf node), представлен именованной сущностью и не имеет исходящих из него ребер. Листовой узел содержит информацию о представляемой сущности: ее адрес, к которой имеют доступ клиенты. состояние сущности. Направляющий узел (directory node) - имеет несколько исходящих из него ребер, каждое их которых именовано. Каждый узел в графе именования рассматривается как еще одна сущность распределенной системы и, следовательно, имеет отдельный идентификатор. Направляющий узел хранит таблицу, в которой все исходящие ребра представлены в виде пар (метка ребра, идентификатор узла). Эта таблица называется направляющей таблицей (directory table).

Узел n 0 - корневой узел (root node), корень графа именования, у которого есть только исходящие ребра, а входящих – нет. Любой путь в графе именования должен быть представлен последовательностью меток, соответствующих ребрам графа, например: N:, где N соответствует первому из узлов пути. Данная последовательность называется именем пути (path name). Если первый узел пути корень графа именования, это имя называется абсолютным именем пути (absolute path name). В противном случае - относительным именем пути (relative path name).

Имена всегда организуются в пространство имен, поэтому имя всегда определяется только относительно направляющего узла. Глобальное имя (global name) - имя, которое обозначает одну и ту же сущность, вне зависимости от того, где в системе оно используется, глобальное имя всегда соответствует одному и тому же направляющему узлу. Локальное имя (local name) имя, интерпретация которого зависит от того, где это имя используется, иначе говоря это лишь относительное имя, и должен быть известен направляющий узел, к которому данное имя относится. Во многих случаях пространства имен имеют жесткую иерархию, т.е. граф именования организован в виде дерева, где каждый узел, за исключением корневого, имеет лишь одно входящее в него ребро. Соответственно, каждый узел имеет лишь одно соответствующее ему имя. Граф именования, изображенный на рис является направленным ациклическим графом (directed acyclic graph), поскольку в графе узел может иметь более одного входящего ребра.

Разрешение имен Пространства имен предоставляют удобный способ сохранения и извлечения информации о сущностях по их именам. Зная имя пути, можно извлечь всю информацию, которая хранится в узле, соответствующем этому имени. Процесс поиска информации называется разрешением имени (name resolution). Задан путь N:. Разрешение этого имени начинается с узла N графа именования, при этом в направляющей таблице ищется имя label-1 и возвращается идентификатор узла, на который указывает это имя. Разрешение продолжается поиском в направляющей таблице указанного узла имени label-2 и т. д., предполагая, что прописанный путь действительно существует. Разрешение завершается при обнаружении последнего узла, соответствующего имени label-n, возвращением содержимого этого узла.

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

Монтируемая файловая система Монтируемая файловая система это система, в которой направляющий узел хранит идентификатор направляющего узла другого пространства имен, называемого внешним пространством имен. Направляющий узел, содержащий такой идентификатор узла, называется монтажной точкой (mount point) а, направляющий узел во внешнем пространстве имен называется точкой монтирования (mounting point). Обычно точка монтирования является корнем пространства имен. Для использования направляющего узла в качестве монтажной точки необходимо чтобы в ней хранилась вся информация, необходимая для идентификации монтирующей точки чужого пространства имен и доступа к ней.

Монтирование это способ объединения различных пространств имен. Чтобы смонтировать внешнее пространство имен в распределенной системе, необходима следующая информация: имя протокола доступа; имя сервера; имя монтирующей точки во внешнем пространстве имен. Каждое из этих имен должно разрешаться. Имя протокола доступа должно разрешаться реализацией этого протокола, при помощи которой организуется связь с сервером внешнего пространства имен. Имя сервера должно разрешаться посредством адреса сервера. Имя монтирующей точки должно разрешаться посредством идентификатора узла во внешнем пространстве имен.

Реализация пространств имен Пространство имен формирует сердце службы именования, службы, которая позволяет пользователям и процессам добавлять, удалять и находить имена. Служба именования реализуется при помощи серверов имен. Если распределенная система сокращена до размеров локальной сети, она вполне в состоянии реализовать службу именования при помощи всего лишь одного сервера имен. Однако в крупных распределенных системах с множеством сущностей, возможно необходимо разнести реализацию пространства имен по нескольким серверам имен. Пространства имен крупномасштабных распределенных систем организованы иерархически. Выделяют три уровня пространства имен: глобальный уровень; административный уровень; управленческий уровень.

Глобальный уровень (global layer) формируется узлами верхнего уровня, т.е. корневыми узлами и другими направляющими узлами, которые логически связаны с ними. Узлы глобального уровня обычно характеризуются своей стабильностью, поскольку их направляющие таблицы изменяются редко. Эти узлы могут представлять организации или группы организаций, имена которых хранятся в пространстве имен. Требования к серверам имен: Высокая доступность, поскольку если происходит сбой сервера имен, большая часть пространства имен оказывается недоступной. Требования к производительности не столь жесткие, поскольку узлы глобального уровня изменяются медленно и результаты операции поиска будут верны в течение длительного времени. Высокие требование к производительности серверов.

Административный уровень (administrational layer) формируется из направляющих узлов, которые вместе представляют одну организацию. Характерной чертой направляющих узлов административного уровня является то, что они представляют группы сущностей, относящихся к одной и той же организации или административной единице. Узлы административного уровня относительно стабильны, хотя изменения в них вносятся в основном чаще, чем в узлы глобального уровня. Требования к серверам имен: Доступность серверов имен административного уровня особенно важна для клиентов, относящихся к организации, которую обслуживает данный сервер имен. Требования к производительности не столь жесткие, но уровень должен обеспечить возвращение результатов поиска в течение нескольких миллисекунд, независимо от их источника. В качестве серверов имен должны использоваться высокопроизводительных машин.

Управленческий уровень (managerial layer) состоит из узлов, которые обычно регулярно изменяются. Например, в этот уровень входят узлы, представляющие хосты локальной сети. Другим важным классом узлов управленческого уровня являются те, которые представляют каталоги и файлы пользователей. В противоположность глобальному и административному уровням, узлы управленческого уровня обслуживаются не только системными администраторами, но и отдельными конечными пользователями распределенных систем. Требования к серверам имен: Требования к доступности серверов имен не очень серьезны. Для работы сервера имен часто достаточно одной машины (выделенной), даже с риском временной недоступности. Критична производительность, поскольку необходимо, чтобы операции осуществлялись немедленно.

Пространство имен DNS Пространство имен DNS разделено на неперекрывающиеся части, которые называются зонами (zones). Зона это часть пространства имен, реализованная отдельным сервером имен.

Процедура разрешения имен Существует 2 способа разрешения имен: итеративное разрешение имени (iterative name resolution) рекурсивное разрешение имени (recursive name resolution) При итеративном разрешении имени процедура разрешения имен передает полное имя корневому серверу имен. Предполагается, что адрес корневого сервера, с которым контактирует процедура разрешения имен, общеизвестен. Корневой сервер разрешит ту часть пути, которую сможет, и вернет результат клиенту. При рекурсивном разрешении имени сервер имен передает полученные результаты следующему обнаруженному серверу имен. Основной недостаток рекурсивного разрешения имен - к производительности каждого из серверов имен предъявляются высокие требования.

Принцип итеративного разрешения имен

Принцип рекурсивного разрешения имен

Система доменных имен Одной из самых больших на сегодня распределенных служб именования является система доменных имен (Domain Name System, DNS) Интернета. DNS используется в первую очередь для поиска адресов хостов и почтовых серверов. Пространство имен DNS иерархически организовано в виде дерева с корнем. Каждый из узлов в пространстве имен DNS имеет ровно одно входящее ребро. Метка входящего в узел ребра используется также и в качестве имени этого узла. Поддерево DNS называется доменом (domain). Путь к корневому узлу домена называется доменным именем (domain name).

Записи о ресурсах Содержимое узла комплектуется из набора записей о ресурсах (resource records). Существуют различные типы записей о ресурсах, такие как:

Запись о ресурсе SOA (start of authority) содержит такую информацию, как почтовый адрес системного администратора, отвечающего за указанную зону, имя хоста, на котором находятся данные о зоне и т.д. Запись A (address ) содержит IP-адрес хоста, используемый при взаимодействии, если хост имеет несколько IP-адресов, то будет содержаться запись для каждого адреса. Запись о ресурсах MX (mail exchange) содержит символическую ссылку на узел, представляющий почтовый сервер. Запись SRV содержит имя сервера конкретной службы. Запись NS (name server) содержит имя сервера имен, реализующего зону, представленную узлом. Запись CNAME (canonical name каноническое имя) содержит каноническое имя хоста.

Запись PTR (pointer указатель) используется для обратного отображения IP-адресов на имена хостов (хост - IP-адрес ; DNS создает узел с именем in- addr.arpa, который используется для хранения в записи PTR канонического имени хоста addr.arpawww.cs.vu.nl Запись HINFO (host info) используется для хранения дополнительной информации о хосте, например о типе машины и операционной системе. Запись ТХТ (text) используются для хранения любой дополнительной информации, которую пожелает сохранить пользователь о представляемых узлом сущностях.

Реализация DNS Пространство имен DNS можно разделить на уровни: глобальный административный Управленческий уровень, обычно складывающийся из локальных файловых систем и формально не является частью системы DNS и не контролируется ею. Пространство имен DNS разделено на зоны, изменения в которых обрабатываются первичным сервером имен, путем модификации баз данных DNS локально. Вторичные сервера имен не имеют прямого доступа к базам данных, поэтому посылают запросы первичному серверу, который в ответ передает им свое содержимое. Этот процесс в терминологии DNS называется переносом зон (zone transfer).

Пространство имен Х.500 Служба каталогов (directory service) это особый тип службы именования, в которой клиент может вести поиск сущности на основании описания ее свойств, а не полного имени. Служба каталогов Х.500 состоит из множества записей, которые называются элементами каталога. Элемент каталога в Х.500 похож на запись о ресурсах системы DNS. Каждая запись состоит из набора пар (атрибут, значение), причем каждый атрибут имеет ассоциированный с ним тип. Различаются: атрибуты с одним значением (однозначные) атрибуты с несколькими значениями (многозначные), которые представляют собой массивы или списки. Набор всех элементов каталога называется информационной базой каталога.

Узел в графе именования Х.500 может быть представлен и в виде каталога. Это поддерживается двумя различными операциями поиска: read list Операция read предназначенная для чтения одиночной записи, дает ее путь в дереве DIT; Операция list используется для построения списка имен всех ребер, исходящих из данного узла дерева DIT. Каждое имя соответствует узлу, дочернему для данного.Операция list не возвращает записей, она возвращает только имена..

Реализация Х.500 Реализация службы каталогов Х.500 выполняется в основном таким же образом, как и DNS, но Х.500 поддерживает больше операций поиска. При операциях с большим каталогом дерево DIT обычно разбивается и разносится по нескольким серверам, которые в терминологии Х.500 называются агентами службы каталогов (Directory Service Agents, DSA). Каждая часть разбитого дерева DIT соответствует зоне в DNS. Агенты пользователей каталога (Directory User Agents, DUA) подобен процедуре разрешения имен из традиционной службы именования. DUA обмениваются информацией с DSA в соответствии со стандартным протоколом доступа. Отличие Х.500 от реализации DNS это механизмы поиска в базе DIB.

Именование и локализация сущностей Рассмотрим пример переноса сервера ftp.cs.vu.nl на машину сftp.cs.vu.nl именем ftp.cs.umsa.edu.au, находящуюся в абсолютно другом доменеftp.cs.umsa.edu.au имя ftp.cs.vu.nl предпочтительно было бы не менять, а использовать вftp.cs.vu.nl качестве идентификатора, поскольку его изменение сделает все ссылки на него неверными. Существует два основных решения: 1) записать адрес новой машины в базе данных DNS для cs.vu.nl.cs.vu.nl 2) записать имя новой машины, а не ее адрес, включив flp.cs.vu.nl вflp.cs.vu.nl символическую ссылку. Основной недостаток использования символических ссылок: теряется эффективность операций поиска; каждая операция поиска выполняется в два шага (поиск имени новой машины; поиск адреса, соответствующего этому имени)

Второй недостаток использования символических ссылок – имя ftp.cs.vu.nl не должно изменяться. Поэтому имена :ftp.cs.vu.nl Необходимо выбирать такими, чтобы не приходилось их менять в течении всего времени существования сущности, которую они идентифицируют. Уже выбранное имя нельзя использовать для каких-либо других сущностей. Прямое одноуровневое отображение имен в адрес: Каждый раз при изменении имени или адреса происходит изменение отображения.

Наилучшим решением является - отделить именование сущностей от их размещения, используя идентификаторы. Идентификаторы никогда не изменяются, каждая сущность имеет только один идентификатор. При поиске сущности средствами службы именования она возвращает идентификатор. Идентификатор может быть сохранен на локальной машине на любой необходимый срок, поскольку он не может ни начать указывать на другую сущность, ни измениться. Размещение сущности определяется посредством отдельной службы локализации, которая использует в качестве исходных данных идентификатор и возвращает текущий адрес соответствующей ему сущности. Если имеется несколько копий сущности, будет возвращено несколько адресов.

Мобильность сущностей Системы именования для имен, удобных для восприятия, невозможно использовать для высокомобильных сущностей. Локализация мобильных сущностей более успешно может быть произведена с помощью не зависящих от местоположения идентификаторов. Используется три основных подхода к локализации мобильных сущностей: 1) Использовании широковещательных или групповых рассылок. 2) Пересылка указателей. 3) Использование базовой точки.

Широковещательная и групповая рассылки Локализация мобильных сущностей более успешно может быть произведена с помощью не зависящих от местоположения идентификаторов. Локализация сущности в такой среде реализуется: сообщение, содержащее идентификатор сущности, широковещательной рассылкой доносится до каждой машины и каждая из машин откликается на этот запрос проверкой, не на ней ли размещена эта сущность. Те машины, которые могут предоставить точку входа к искомой сущности, посылают ответное сообщение, содержащее адрес точки входа. Машина, посылающая широковещательный пакет в локальную сеть, спрашивает, кто владеет указанным IP-адресом. Когда машина принимает подобное сообщение, получатель проверяет, не отслеживает ли он указанный IP-адрес. Если это так, он посылает ответный пакет. Широковещательная рассылка с ростом сети теряет эффективность.

Передача указателей Передача указателей происходит в случае перемещения сущностей, например, когда сущность перемещается из А в В, она сохраняет ссылку на свое новое местоположение в А. При передаче объекта из адресного пространства А в адресное пространство В он оставляет вместо себя в адресном пространстве А заместителя, а для связи с этим заместителем в адресное пространство В устанавливает скелетон. Эти перемещения абсолютно незаметны клиенту. Все, что он видит, это заместитель. Как и куда заместитель передает вызовы, от клиента скрыто. Скелетон (то есть серверная заглушка) содержит либо локальную ссылку на реальный объект, либо локальную ссылку на заместитель (то есть клиентскую заглушку) этого объекта. Скелетоны выступают для удаленных ссылок в роли входных элементов, а заместители в роли выходных элементов.

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

Подходы на основе базовой точки Популярный подход к поддержке мобильных сущностей в полномасштабных сетях состоит во введении понятия базовой точки (home location), из которой отслеживается текущее местоположение объекта. Поскольку подход на основе базовой точки используется в качестве аварийного метода служб локализации, примером является схема мобильного IP-адреса: Каждый мобильный хост имеет фиксированный IP-адрес. Всякая связь с этим IP-адресом изначально перенаправляется агенту базы (home agent) мобильного хоста. Этот агент находится в локальной сети, соответствующей сетевому адресу, содержащему IP- адрес мобильного хоста. Каждый раз, когда мобильный хост перемещается в другую сеть, он запрашивает временный адрес для связи, который называется контрольным адресом (care-of address).

В соответствии с рисунком схема мобильного IP-адреса работает следующим образом: Отправка пакета хосту на его базу. Возвращение текущего адреса. Передача сигнального пакета по текущему адресу. Передача последующих пакетов по текущему адресу

Удаление сущностей Для доступа к сущности используются ссылки. До тех пор пока в службе имеются ссылки на сущность, эта сущность доступна пользователям и может использоваться. Как только доступ к сущности прекращается ссылку необходимо удалить. Удаление может осуществиться процессом при его завершении. Однако возможны такие сложности: Часто неизвестно, где в системе были созданы ссылки на удаляемую сущность с намерением воспользоваться ими позднее для доступа к ней. Поэтому при попытке доступа к сущности произойдет ошибка. С другой стороны, недопустимо также вообще не удалять сущность, поскольку потребляется ресурс. Для упрощения поставленных задач используют распределенные сборщики мусора для автоматического удаления сущностей.

Доступ к объектам К объекту можно получить доступ, только если есть удаленная ссылка на него. Объект, на который отсутствуют удаленные ссылки, можно удалять из системы. Возможно возникновение двух объектов, ссылающихся друг на друга и не имеющих других ссылок. Подобные объекты необходимо так же выявлять и удалять. Узел – объект, а подмножество объектов, в которых нет ссылок друг на друга – корневой набор.

Подсчет ссылок Чтобы удаление ссылок было корректным и не приводило к ошибкам предлагается использовать счетчик ссылок. Только когда значение счетчика станет равным нулю, объект можно удалять. Возможен простой подсчет ссылок: Данный метод имеет недостаток – возможна потеря подтверждения, в следствии чего будет некорректный счетчик.

Копирование ссылки в другой процесс и запоздавшее увеличение счетчика При копировании удаленной ссылки с процесса P1 в P2 объект «О» может быть удален до того, как Р2 сможет с ним связаться, если процесс Р1 решит уничтожить свою ссылку.

Копирование ссылки в другой процесс с подтверждением В данном случае, если процесс P1 будет передавать ссылку процессу Р2, то P1 не сможет удалить данную ссылку, пока не получит подтверждение от объекта «О» процессу Р2.

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

а) исходное соотношение весов при взвешенном подсчете ссылок; б) присвоение веса при создании новой ссылки; в) присвоение веса при копировании ссылки.

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

Tрассировка сбора мусора Tрассировка сбора мусора – процесс проверке доступности сущностей из корневого набора с последующим удалением всех недоступных. Наиболее простой подход – использовать сборщик типа «помечай и подметай». Эти сборщики работают в два приема: фазы пометки - сущности отслеживаются по существующим цепочкам ссылок, исходящим из сущностей корневого набора; фаза подметания состоит из тщательной проверки памяти для локализации «ничейных» сущностей. Эти сущности считаются мусором, который должен быть удален.

Другой вариант работы сборщиков «помечай и подметай» трехцветная пометка сущностей. 1) Изначально каждая сущность, которую следует проверить, окрашена в белый цвет. 2) К концу фазы пометки все сущности, доступные из корня, помечаются черным, а недоступные остаются белыми. 3) Серый цвет используется для индикации хода фазы пометки. Сущность помечается серым, если она доступна, но ссылки, которые содержит эта сущность, еще нуждаются в проверке. 4) Когда все сущности, на которые ссылается данная сущность, окрашиваются серым, сама она становится черной. 5) Когда все локальные сборщики мусора заканчивают фазу пометки, каждый из них по отдельности собирает все белые объекты, считая их мусором.

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

Системы именования для имен, удобных для восприятия, невозможно использовать для высокомобильных сущностей. Локализация мобильных сущностей более успешно может быть произведена с помощью не зависящих от местоположения идентификаторов. Используется три основных подхода к локализации мобильных сущностей: 1) Использовании широковещательных или групповых рассылок. Идентификатор сущности посылается широковещательной посылкой каждому процессу в распределенной системе. 2) Пересылка указателей. Каждый раз при перемещении сущности в другое место она оставляет за собой указатель, информирующий о том, куда она переместилась. 3) Использование базовой точки. Каждый раз при перемещении сущности в другое место она уведомляет об этом свою базу. При локализации сущности первым делом о текущей локализации запрашивается ее база.

Важная цель использования имен в распределенных системах создание ссылок на сущности так, чтобы сущности, на которые нет ссылок, удалялись автоматически. Такая сборка мусора требует подсчета ссылок или трассировки. В случае подсчета ссылок сущность просто считает количество созданных на нее ссылок. Когда счетчик достигнет нуля, сущность можно удалять. В методах трассировки все сущности прямо или косвенно ссылаются на заданный набор корневых сущностей, которые помечаются как доступные. Недоступные сущности удаляются. Распределенная трассировка трудна, поскольку требуется проверить все сущности в системе на доступность. Сущности, локализация которых больше не нужна, должна быть удалена, чтобы избежать использование ресурса любым из методов.

Спасибо за внимание !!!