Tanenbaum (модели конситентности) (1162628), страница 7
Текст из файла (страница 7)
Эта переменная предоставляется бапщой распределенной системой прн создании распрелеленного объекта, гю тем не менее полностью скрыта ст клпепта. Котла клнюп сбрзщаетгя к методу распределенного объекта, базоюя спстема сначала выполняет захват ассоцннрсваяной с объектам переменной сннхрсннзацнн. В результате самые снежке значения состояния объекта, «вторый мгскно реплнцпровать н распределять по нескольким машинам, передаются клиентской копии этого объекта.
В этот момент, щжа объект остается заблокнрованным ст параллельных операшйь н происходит обращение. По окончаннн сбрашення следует внутренняя операция освобожденна, деблокнрующвя объект для дзльнейшнх операций. В результате все обращення к распределенному, совместно нспсльзуемому объекту последовательно непротнвсречнвы. К счасп ю, клиент не должен запнматься переменяымн сннхроэпзаднн, поскольку онп полностью цоддержнваются базовой распределенной снстемой.
В то же время каждый объект оказывается автсматнчсскн аюцнщенным от одновременного выполпення параллельных обращен нй Подобный подход реалнаован в языке программнрованпя Отса [28, 30[, который мы обсудим в деталях в этой главе чуть позже. Сходный пщпюд нспользован в Ойдо [2 Щ, где объекты имеют вял непчнзсрывающнхся областей распределенной обшей памяти. Каждая область получает ассоцннрованную с ней переменную сннхроннзацнп, црелоставляыеую базовой гкполняющей системой. За сннхроннзацню доступа к этны областям также отвечает нсполняющвя система. 6.2.8. Сравнение моделей непротиворечивости Хотя мы еще будем рассматрнвать другие мслвлн непротиворечивости, основные . (моделн непротпворечнвостн данных) мы уже сбсудялн.
Онн стлнчаются ограннченнямн, сложностью ревлнэацнн, простотой црограммнрованяя н пронаво- 364 Гяаваб. Непративорвчнщтоъи репликвцня дитгльностью. Строги непротиворечиность — наиболее ограниченный вариант, на поскольку ее реалиаация в распредеаенных системах, в сущности, нщюзможна, то она никогда в них не применяется. Линеариэуемость — более слабая модель, основанная на идее синхраниэировавных часов. В ней делать вьшод о корректности параллельных программ проще, но все равно слишком сложно для того, чтобы ее можно было испольэовать для построения реальных программ.
С этой точки зрения лучшей моделью яэ. ляется последовательная непротиворечивость, которая применима, популярна среди програмьоютов и действительно широко используется. Однако у нее есп, проблема — низкая производительность. Елпнствщтный способ улучшить показатели проиэводительноспт — это ослабить модель непротиворечивости. Нещь торые иэ воэможностей иллюстрирует табл. 65. Модели перечислены в приблизительном порядке снижения ограничений. Тпбпица 6.6. Модели непротнаоренивасти, не требующие операций синхронизации Ябсалотная'упсрадочаннсап зо щюменн ясен сбрещеннй к ссемастно нспсяьзуемой пемятн Псз процессы небяюдьют есе обращения к совместно нспопьзуыню пюапн е однем и том непорядке. Обращнью ~пошщытенм е ссотаетстенн « ~нщнюлюнь~~ну гпобепьнымн опюткамн времени Поз процессы набяюдеют все обрюценне к совместно используемой память е одном н том ь» порядке.
Обрмаення не упцтядс ююя по времени псе процессы небяюдают асс сбриценью, сеяьаннью прнчннно-сяедстщнной сеязью, к ссзместтю нспогьзуемсй пемятн е одном н том яе пщьщке Псе процессы неся юдают стщюцнм еьпнсн любого процессе е порядке нк вмпояненью. Оперецьн записи резни ытю процессов ею тут неблодт тьы разными процессе ми е разньм порядке Отрыв» Лннеаряэуемость Псспедоеаюпьнея Прячннная Причинная непративоречнзосп н непрсяизоречивость ЯРО представляют собой остщбленные модели, в которых отсутс"гвует глобальный контроль нал тем, какие операции в каком порядке выполняются.
речным процессам последовательносп операций кажется разной. Эти две модели различаются в том, какие последовательности считаются допустимыми, а какие нет. Другой подход состоит во введении явных переменных синхронизации, кы сделано для слабой непротнноречивосги, свободной непротиворечивости и поалементной непротиноречиьости. Эти три модели приведены в табл.
6.6. Когда процесс выполняю операцию с обычным элементом щюмщино используемых данных, отсутствуют какие. либо гарантии цо поводу того, когда его смогут увидеть другие пронесем. Изменения распространятся пшько при явной синхронизации. Эти три модели различаются способом синхронизации, но ао нсех случаях процесс может производить множесптенные тшерации чтения и записи в крити- .