Однопроцессорная и распределенная архитектуры
Из-за снижения стоимости аппаратной части стало экономически целесообразно применять вычислительные системы с несколькими процессорами. Мы будем обсуждать в основном распределенные системыкоторые по своей природе больше подходят для управления сложными процессами. К основным преимуществам распределенных систем относятся:
- экономичность;
- надежность (при отказе нескольких процессоров остальные продолжают работать);
- возможность подобрать аппаратные средства в соответствии с конкретными требованиями.
Говоря о распределенной системе, необходимо иметь в виду, каким способом достигается распределение ресурсов. Одна крайность — когда единственным общим ресурсом является сеть, соединяющая ЭВМ, каждая из которых работает независимой лишь обменивается сообщениями с остальными. Другая крайность — реально распределенная сетевая операционная система, предоставляющая пользователю гомогенную среду, не зависящую от аппаратной платформы. Пользователь может вводить произвольные команды, а операционная система находит наиболее подходящий способ и место их выполнения.
Распределенные системы используются в управлении процессами, поскольку эти приложения являются принципиально распределенными и такая архитектура обеспечивает более полное соответствие между аппаратными и программными средствами и управляемым объектом. Сложный технологический процесс можно разбить на несколько уровней, на каждом из которых собираются и обобщаются (агрегируются) данные, передающиеся на более высокие уровни. Такой тип распределенной системы отвечает сформулированным выше принципам: она более экономична, чем централизованная с одним процессором, выполняющим все функции (если такой процессор можно создать); она надежна в том смысле, что отказ одного из компонентов не нарушает работу других (при условии, что система хорошо структурирована), и ее можно построить таким образом, чтобы она в максимальной степени соответствовала управляемому процессу.
Однако чисто аппаратный подход к надежности не решает всех проблем. В распределенной системе процессы, исполняющиеся на разном оборудовании, зависят и друг от друга, и от коммуникаций. Если процесс или оборудование в одном узле перестанет работать или возникнут проблемы с коммуникациями, то остановится исполнение не только конкретного процесса, но и процессов, зависящих от него, потому, например, что они ждут ответа на свои вопросы.
По сравнению с централизованными распределенные системы требуют принципиально иных программных средств, поскольку такие системы тесно связаны с сетью. Сетевая операционная система должна управлять как ресурсами отдельных ЭВМ, так и всей сети. Поэтому функции операционной системы нельзя отделять от функциональных свойств сети, а работа сети оказывает заметное влияние на работу распределенной системы. Фактически сетевые операционные системы имеют уровневую структуру, аналогично стеку коммуникационных протоколов.
Главным различием между однопроцессорной и распределенной архитектурой является способ обмена информацией между процессами. Эта процедура наиболее важна при мультипрограммировании и программировании в реальном времени. В однопроцессорной конфигурации обмен данными между процессами происходит через общую локальную память, очередность доступа к которой регулируется многозадачной операционной системой.
В отличие от этого, в распределенной системе нет общей памяти как таковой, и процессы обмениваются информацией с помощью сообщений. Если один процесс должен передать информацию другому, то он формирует сообщение и обращается к услугам операционной системы для передачи его по назначению.
Этот принцип взаимодействия лежит в основе одной из наиболее важных концепций распределенных операционных систем — модели "клиент-сервер". В этой модели процесс либо запрашивает услуги — клиент, либо предоставляет их — сервер. Очевидно, что один и тот же процесс может быть как клиентом, так и сервером. "Услуга" — это некоторая законченная (замкнутая) операция, в частности выполнение расчетов, прием внешних данных, операция с устройством, например, вывод изображения на экран. В определенном смысле модель "клиент-сервер" можно рассматривать как расширенный вариант обращения к подпрограмме, при котором сервер играет роль подпрограммы или системной процедуры.
Модель "клиент-сервер" основана на обмене сообщениями между программами Если клиент и сервер исполняются на разных ЭВМ, а сообщения передаются через сеть, то система является распределенной.
Чем больше вычислительные ресурсы процедур клиента и сервера и чем больше сложных функций они могут выполнять независимо, тем меньше число сообщении и, соответственно, нагрузка на сеть. Фактически важным преимуществом распределённых систем является то, что ресурсоемкие вычисления можно выполнять локально и в результате уменьшить объем трафика, поскольку передается только информация, относящаяся к более высокому абстрактному уровню, чем локальные вычисления, т. е. некоторый итог локальных операций. Иными словами, в хорошо спроектированной системе сообщения содержат информацию о цели ("установить' опорное значение х = 78.2"), а не о том, какие шаги следует для этого, предпринять ("каково значение х в данный момент ?", "х = 63", "увеличить на 16",, "каково х сейчас ?,", "х=, 79", "уменьшить на 1", и т.д.). Промежуточные шаги выполняются локально при условии, что программное обеспечение спроектировано соответствующим образом,,
Дата добавления: 2016-02-09; просмотров: 830;