Распределенные системы

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

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

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

Таблица 8.1. Сравнение трех типов многопроцессорных систем


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

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

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

Плохо только то, что для каждого из этих приложений приходится изобретать колесо заново. Например, и электронная почта, и FTP, и Всемирная паутина в общем-то перемещают файлы из пункта А в пункт Б, но у всех них свой способ решения этой задачи, дополненный их собственными соглашениями об именах, протоколами передачи, технологиями копирования и пр. Хотя многие веб-браузеры скрывают эти различия от обычного пользователя, лежащие в их основе механизмы совершенно отличаются друг от друга. Их сокрытие на уровне пользовательского интерфейса напоминает ситуацию, когда кто-нибудь заказывает у агента бюро путешествий, предлагающего полный набор услуг, путешествие из Нью-Йорка в Сан-Франциско и только потом обнаруживает, какой билет ему достался: на самолет, поезд или автобус.

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

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

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

Рис. 8.26. Место связующего программного обеспечения в распределенной системе


В некотором смысле связующее программное обеспечение похоже на операционную систему распределенной системы, поэтому оно будет рассмотрено в книге, посвященной операционным системам. Однако оно не является настоящей операционной системой, поэтому его рассмотрение не будет слишком подробным. Полноценное изложение всех вопросов, касающихся распределенных систем, можно найти в посвященной им книге Distributed Systems (Tanenbaum and van Steen, 2007). В оставшейся части этой главы будет дан краткий обзор оборудования, использующегося в распределенных системах (то есть базовой компьютерной сети), затем связного программного обеспечения (сетевых протоколов). После этого будут рассмотрены различные парадигмы, используемые в этих системах.

8.3.1.

<< | >>
Источник: Э. ТАНЕНБАУМ Х. БОС. СОВРЕМЕННЫЕ ОПЕРАЦИОННЫЕ СИСТЕМ Ы 4-е ИЗДАНИЕ. 2015

Еще по теме Распределенные системы:

  1. ДИАПАЗОН РАСПРЕДЕЛЕНИЯ
  2. 4.2. Анализ одномерных распределений
  3. Закон нормального распределения
  4. Закон нормального распределения
  5. 4.3. Анализ двумерных распределений
  6. 4. Распределение прибыли и убытков простого товарищества
  7. § 7. Право на участие в распределении прибыли (п. 2254-2257)
  8. 8.1.2. Распределение ролей между интервьюером и интервьюируемыми
  9. Статья 123. Распределение прибыли и убытков полного общества
  10. Статья 1139. Распределение прибыли
  11. 8.1.2. Распределение ролей между интервьюером и интервьюируемыми
  12. § 3. Распределение внешнеполитических полномочий между высшими органами государственной власти и управления