Полная версия

Главная arrow Информатика arrow Архитектура ЭВМ и систем

  • Увеличить шрифт
  • Уменьшить шрифт


<<   СОДЕРЖАНИЕ   >>

Огса

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

Огса – это язык программирования на основе Modula 2, имеющий две особенности:

  • • в язык добавлены объекты. Объект Огса представляет собой стандартный тип данных (аналогичный объекту в языке Java), заключает в себе внутренние структуры данных и написанные пользователем процедуры, которые называются операциями. Объекты пассивны, т.е. не содержат потоков, которым можно посылать сообщения. Процессы получают доступ к внутренним данным объекта путем вызова его процедур;
  • • язык позволяет создавать новые процессы. Каждая процедура в Огса состоит из списка пар – предохранителя (guard) и блока операторов. Предохранитель представляет собой логическое выражение, которое может принимать значение true (истина) или false (ложь). При вызове операции все ее предохранители оцениваются произвольной величиной. Если все предохранители имеют значение false, вызывающий процесс приостанавливается до тех пор, пока один из них не примет значение true. При нахождении предохранителя со значением true выполняется следующий за ним блок выражений.

В программах системы Огса с параллельной обработкой используются два вида синхронизации процессов:

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

В системе Огса каждый объект может находиться в одном из двух состояний:

  • • может быть единственным, т.е. существовать на одной машине. Поэтому все запросы направляются к этой машине;
  • • может быть продублирован. В этом случае объект присутствует на всех машинах, которые содержат процесс, использующий этот объект. Данное состояние упрощает операцию чтения, поскольку ее можно производить локально, однако усложняет процесс обновления. При выполнении операции, которая изменяет продублированный объект, необходимо:

■ сначала получить от центрального процесса порядковый номер;

■ затем в каждую машину, содержащую копию объекта, отправить сообщение о необходимости выполнить эту операцию.

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

Globe

Рассмотренные выше системы DSM, Linda и Огса, как правило, работают в пределах одного здания или предприятия. Цель создания системы Globe – увеличить количество объектов и пользователей. Система Globe содержит общую сеть, в которой каждый объект может находиться в адресном пространстве нескольких процессов одновременно, разнесенных на большие расстояния, иметь собственную стратегию дублирования, стратегию зашиты и т.д. Для доступа к данным общего объекта пользовательские процессы должны пройти через его процедуры. Возможны разные способы реализации доступа, например:

  • • можно иметь один экземпляр данных, который запрашивается по мере необходимости (это удобно для данных, часто обновляемых одним владельцем);
  • • все данные находятся в каждой копии объекта, а сигналы об обновлении посылаются каждой копии в соответствии с протоколом широковещания.
 
<<   СОДЕРЖАНИЕ   >>