В системе Orca данные совместного использования совмещаются с
синхронизацией не так, как в системах со страничной организацией памяти.
В программах с параллельной обработкой нужны два вида синхронизации.
Первый вид – взаимное исключение. Этот метод не позволяет двум
процессам одновременно выполнять одну и ту же критическую область. В
системе
Orca каждая операция над объектом похожа на критическую
область, поскольку система гарантирует, что конечный результат будет
таким же, как если бы все критические области выполнялись
последовательно одна за другой. В этом отношении объект
Orca похож на
распределенное контролирующее устройство.
Второй вид синхронизации – условная синхронизация, при которой
процесс блокируется и ждет выполнения определенного условия. В системе
Orca условная синхронизация осуществляется при помощи предохранителей.
В системе Orca допускается копирование объектов, миграция и вызов
операций. Каждый объект может находиться в одном из двух состояний: он
может быть единственным, а может быть продублирован. В первом случае
объект существует только на одной машине и все запросы адресуются туда.
Продублированный объект присутствует на всех машинах, которые содержат
процесс, использующий этот объект. Это упрощает операцию чтения (ее
можно производить локально), но усложняет процесс обновления. При
выполнении операции, которая изменяет продублированный объект, сначала
нужно получить от центрального процессора порядковый номер. Затем в
каждую машину, содержащую копию объекта, отправляются сообщения о
необходимости выполнить эту операцию. Поскольку все такие обновления
обладают порядковыми номерами, все машины просто выполняют операции
в порядке номеров, что гарантирует согласованность по последовательности.
Globe
Большинство систем DSM, Linda, Orca работают в пределах одного
здания или предприятия. Однако можно построить систему с совместно
используемой памятью на прикладном уровне, которая может
распространяться на весь мир. В системах Globe объект может находиться в
адресном пространстве нескольких процессоров одновременно, может быть
даже на разных континентах. Чтобы получить доступ к данным общего
объекта, пользовательские процессы должны пройти через его процедуры,
поэтому для разных объектов возможны различные способы реализации.
Например, можно иметь один экземпляр данных, который запрашивается по
мере необходимости (этот вариант удобен для данных, часто обновляемых
одним владельцем). Другой вариант – все данные находятся в каждой копии
объекта, а сигнал об обновлении посылаются каждой копии в соответствии с
надежным протоколом широковещания.
Цель системы Globe – работать на миллиард пользователей и содержать
триллион объектов – делает эту систему амбициозной. Ключевым моментом
является размещение объектов, управление ими, а также расширение
185