Добавил:
Developer Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Старые ответы на экзамен Павлова.docx
Скачиваний:
52
Добавлен:
17.08.2022
Размер:
4 Мб
Скачать
☆
  1. Службы, примитивы и протоколы

Служба (сервис) – набор примитивов (операций), которые более низкий уровень предоставляет более высокому. Определяет, какие именно операции уровень будет выполнять от лица своих пользователей, но никак не оговаривает, как должны реализовываться эти операции. Описывает интерфейс между двумя уровнями, в котором нижний уровень является поставщиком, а верхний – его потребителем.

Протокол – правило (спецификация) на работу программных модулей и взаимодействие между ними, передачу параметров и спецификация правил. Набор правил, описывающих формат и назначение кадров, пакетов или сообщений, которыми обмениваются объекты одного ранга внутри уровня.

Примитив (операция). Служба (сервис) формально описывается набором примитивов или операций, доступных пользователю или другому объекту для получения сервиса. Эти примитивы заставляют службу выполнять некоторые действия или служат ответами на действия объекта того же уровня. Если набор протоколов входит в состав операционной системы (как часто и бывает), то примитивы являются системными вызовами. Они приводят к возникновению системных прерываний в привилегированном режиме, в результате чего управление машиной передается операционной системе, которая и отсылает нужные пакеты.

  1. Распределенные системы: доступ, прозрачность

Распределенной является такая вычислительная система, в которой неисправность компьютера, о существовании которого пользователи ранее даже не подозревали, приводит к остановке всей их работы. К таким системам относятся системам с уникальной точкой уязвимости (single point of failure).

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

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

Распределенная система — это набор независимых компьютеров, представляющийся их пользователям единой объединенной системой.

Прозрачность в распределенных системах.

Существует много измерений прозрачности. Они составляют важную часть Международного стандарта по открытой распределенной обработке [ISO/IEC, 1996].

Прозрачность в распределенных системах имеет несколько различных измерений:

Прозрачность доступа.

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

Прозрачность местонахождения.

Прозрачность местонахождения означает, что запрашивающему обслуживание объекту не требуется знать о физическом расположении компонента (т.е. хоста).

Прозрачность миграции.

Иногда возникает необходимость в переносе компонента с одного хоста на другой. Это может быть вызвано перегрузкой хоста или заменой аппаратурой. Такое перемещение компонентов называется миграцией.

Прозрачность репликации.

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

Прозрачность репликации означает, что пользователям и программистам не требуется знать, кто представляет услуги – реплика или основной компонент.

Прозрачность одновременного выполнения.

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

Прозрачность масштабируемости.

Прозрачность масштабируемости – высокоуровневый критерий прозрачности, требующий, чтобы масштабирование системы с целью адаптации к растущей нагрузке было прозрачным, для разработчиков и пользователей. Прозрачность масштабирования похожа на прозрачность производительности в том, что в обоих случаях речь идет о качестве услуг, предоставляемых приложениями. Однако производительность рассматривается с точки зрения одиночной заявки, тогда как прозрачность масштабируемости определяет поведение системы при увеличении числа компонентов и параллельных заявок (Пример: сеть Интернет).

Прозрачность производительности.

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

Прозрачность отказов.

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