1. Введение в параллельные и распределенные системы

1.1 Достоинства многопроцессорных систем с общей памятью (мультипроцессоров)

  1. Производительность
  2. Надежность

Недостатки мультипроцессоров

  1. ПО (приложения, языки, ОС) сложнее, чем для однопроцессорных ЭВМ
  2. Ограниченность при наращивании (физ. размеры - близость к памяти, 64 процессора - максимально достигнутое).

1.2 Достоинства распределенных систем

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

Почему создаются распределенные системы? В чем их преимущества перед централизованными ЭВМ?

1-ая причина - экономическая. Закон Гроша (Herb Grosh, 25 лет назад)- быстродействие процессора пропорциональна квадрату его стоимости. С появлением микропроцессоров закон перестал действовать - за двойную цену можно получить тот же процессор с несколько большей частотой.

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

3-я причина - естественная распределенность (банк, поддержка совместной работы группы пользователей ).

4-ая причина - надежность (выход из строя нескольких узлов незначительно снизит производительность).

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

Почему нужно объединять PC в сети?

  1. Необходимость разделять данные.
  2. Преимущество разделения дорогих периферийных устройств, уникальных информационных и программных ресурсов.
  3. Достижение развитых коммуникаций между людьми. Электронная почта во многих случаях удобнее писем, телефонов и факсов.
  4. Гибкость использования различных ЭВМ, распределение нагрузки.
  5. Упрощение постепенной модернизации посредством замены компъютеров.

Недостатки распределенных систем:

  1. Проблемы ПО (приложения, языки, ОС).
  2. Проблемы коммуникационной сети (потери информации, перегрузка,развитие и замена).
  3. Секретность.

1.3 Виды операционных систем (сетевые ОС, распределенные ОС, ОС мультипроцессорных ЭВМ)

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

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

ОС мультипроцессорных ЭВМ - единая очередь процессов, ожидающих выполнения, одна файловая система.


  Сетевая ОС Распределенная ОС ОС мультипроцессора
Компьютерная система выглядит как виртуальная однопроцессорная ЭВМ НЕТ ДА ДА
Одна и та же ОС выполняется на всех процессорах НЕТ ДА ДА
Сколько копий ОС имеется в памяти N N 1
Как осуществляются коммуникации Разделяемые файлы Сообщения Разделяемая память
Требуется ли согласованный сетевой протокол ДА ДА НЕТ
Имеется ли единая очередь выполняющихся процессов НЕТ НЕТ ДА
Имеется хорошо определенная семантика разделения файлов Обычно НЕТ ДА ДА

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

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

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

(2) Гибкость (не все еще ясно - потребуется менять решения).

Использование монолитного ядра ОС или микроядра.

(3) Надежность.

  • Доступность, устойчивость к ошибкам (fault tolerance).
  • Секретность.

(4) Производительность.

Грануллированность. Мелкозернистый и крупнозернистый параллелизм (fine-grained parallelism, coarse-grained parallelism). Устойчивость к ошибкам требует дополнительных накладных расходов.

(5) Масштабируемость.

Плохие решения:

  • централизованные компоненты (один почтовый-сервер);
  • централизованные таблицы (один телефонный справочник);
  • централизованные алгоритмы (маршрутизатор на основе полной информации).

Только децентрализованные алгоритмы со следующими чертами:

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

Содержание курса Далее: Лекция 2.