Смекни!
smekni.com

Interprocess Communication (стр. 8 из 9)

Многомашинные вычислительные комплексы

Многомашинные вычислительные комплексы (ММВК) - это программно аппаратное объединение группы вычислительных машин, в которых:

1. На каждой из машин работает своя операционная система (этот признак отличает ММВК от многопроцессорного вычислительного комплекса).

2. В ММВК имеются общие физические ресурсы (а следовательно имеются проблемы синхронизации доступа).

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

Вычислительные сети

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

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

Существует ряд классических разновидностей сетей.

Сеть коммутации каналов. Суть ее заключается в том, что если надо связать АМ2 с АМ3, то происходит соединение каналов и коммутационных машин между этими АМ. Это соединение будет существовать до конца взаимодействия АМ2 и АМ3. Достоинство этой сети в том, что скорость взаимодействия между машинами равна скорости самого медленного компонента сети, участвующего в связи (это максимально возможная скорость). Недостаток в том, что такая связь может блокировать другие соединения (в данном случае АМ1 и АМ4 не свяжутся до конца связи между АМ2 и АМ3). Уйти от этой проблемы можно потребовав от коммутационной среды большой избыточности, т.е. организовать дополнительные (дублирующие) каналы.

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

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

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

Стандарт ISO/OSI

Развитие многомашинных ассоциаций вообще, и сетей ЭВМ в частности, определило возникновение необходимости стандартизации взаимодействия, происходящего в сети. Поэтому в конце 70-х начале 80-х годов ISO (International Standard Organization) предложила т.н. стандарт взаимодействия открытых систем ISO/OSI (Open System Interface).

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

VII

Прикладной уровень

VI

Представительский уровень

V

Сеансовый уровень

IV

Транспортный уровень

III

Сетевой уровень

II

Канальный уровень

I

Физический уровень

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

2. Канальный уровень. На этом уровне формализуются правила передачи данных через канал. Если физический уровень связан непосредственно со средой (с каналом), то канальный уровень связан с передачей информации по этому каналу.

3. Сетевой уровень. Этот уровень управляет связью в сети между машинами. Здесь решается вопрос адресации и маршрутизации данных.

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

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

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

7. Прикладной уровень. На прикладном уровне решаются проблемы стандартизации взаимодействия с прикладными системами.

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

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

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

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

Немного об Интернет

Мы с вами поговорим немного об Интернет, но не с точки зрения того, что нам говорят по телевизору, причем часто говорят вещи откровенно глупые, а сточки зрения ее устройства.

Несколько слов предыстории. В конце 60-х годов американское агентство перспективных исследований в обороне DARPA приняло решение о создании экспериментальной сети с названием ARPANet. Основным свойством этой сети было то, что предполагалось отсутствие какой-либо централизации. Этот проект начал развиваться. В 70-ом году ARPANet стала считаться действующей сетью США, и в частности, через эту сеть можно было добираться до ведущих университетских и научных центров США. В начале 80-х годов началась стандартизация языков программирования, а затем протоколов взаимодействия сетей. Здесь есть два момента, повлиявших на появление Интернет. Первый - это сам факт стандартизации. Второе - появление модели ISO/OSI. Этогт момент можно считать началом появления Интернета.