Главная » Просмотр файлов » Диссертация

Диссертация (1149932), страница 9

Файл №1149932 Диссертация (Операционные методы в приложении к слабым моделям памяти) 9 страницаДиссертация (1149932) страница 92019-06-29СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 9)

Данная проблема может быть проиллюстрирована на следующей программе, в которой параллельная композицияс пустым потоком может быть заменена на не пустой поток:[x] :=rlx 0; [y] :=rlx 0;a :=rlx [y] skip b :=rlx [x] skip[x] :=rlx 1[y] :=rlx 1(LB-rlx-join)Если применить такую оптимизацию к одной из композиций потоков, то результат [a = 1, b = 1] станет возможным. Для того, чтобы поддержать данный сценарийповедения, в интерпретаторе модели допускается альтернативное правило соединения потоков как отдельный аспект.2.1.9Расслабленные обращения и синхронизацияМежду расслабленными операциями, высвобождающими записями и приобретающими чтениями существует тонкое взаимодействие. В этом подразделеописываются варианты этого взаимодействия, а также технические решения вOpC11 MM, обеспечивающие его.Высвобождающие цепочкиВ связи с тем, что расслабленное чтение не может участвовать в синхронизации, его исполнение не обновляет базовый фронт потока фронтом прочитанногосообщения, как это происходит в случае приобретающего чтения.

Тем не менее,если приобретающее чтение потока T2 читает из сообщения, которое было добавлено расслабленной записью wrlx потока T1 , то оно должно синхронизироваться свысвобождающей записью в ту же локацию wrel , предшествующую wrlx в потокеT1 , если такая запись существует. Это свойство является аналогом высвобождающих цепочек (release sequences) из C/C++11 MM [4].44Рассмотрим вариант программы MP, в сценариях поведения которого имеется описанная выше синхронизация:[d][f ][x][f ][f ] :=na 0; [d] :=na 0; [x] :=na 0;:=na 5;repeat c :=acq [f ]; c == 2 end;:=rel 1;a :=na [d];:=rel 1;b :=rlx [x]:=rlx 2(MP-rel-acq-na-rlx-2)Единственным значением, которое может получить регистр a, является 5.

Этообъясняется тем, что последнее приобретающее чтение c :=acq [f ] в цикле должно прочитать значение 2, следовательно синхронизироваться с высвобождающейзаписью [f ] :=rel 1. В то же время регистр b может получить как значение 0, таки 1, поскольку запись [f ] :=rel 1, с которой синхронизируется приобретающеечтение, предшествует записи [x] :=rel 1, и поэтому информация об этой записив x не попадает во фронт сообщения, записанного инструкцией [f ] :=rel 1.Для того, чтобы выразить такую синхронизацию, у каждого потока в машине OpC11 имеется фронт записи (write-front) viewwrite . Этот фронт для каждойлокации возвращает метку времени последней высвобождающей записи, сделанной потоком в эту локацию.

Когда поток выполняет расслабленную запись в локацию ℓ с меткой времени τ, в соответствующее сообщение записывается фронт,который является комбинацией [ℓ@τ] и фронта сообщения в ℓ с меткой времениviewwrite (τ), которое было записано высвобождающей записью того же потока.Отложенные расслабленные обращения и синхронизацияРассмотрим вариант программы LB, в которой инструкции чтения являютсярасслабленными, а записи — высвобождающими:[x] :=rlx 0; [y] :=rlx 0;a :=rlx [x]; b :=rlx [y];[y] :=rel 1 [x] :=rel 1(LB-rel-rlx)Согласно C/C++11 MM эта программа имеет сценарий поведения с результатом[a = 1, b = 1], поскольку высвобождающие записи не накладывают никаких дополнительных ограничений в отсутствии приобретающих чтений. Поэтому OpC11MM разрешает исполнять высвобождающие записи даже в тот момент, когдапредшествующие отложенные инструкции чтения ещё не выполнены.45Тем не менее, требуются ввести некоторые ограничения на то, как инструкции чтения могут быть отложены через высвобождающие записи.

Рассмотримещё один вариант программы LB.[x] :=rlx 0; [y] :=rlx 0;a :=acq [x]; b :=rlx [y];[y] :=rlx 1 [x] :=rel 1(LB-rel-acq-rlx)В этой программе в левом потоке есть приобретающее чтение, а в правом —высвобождающая запись. Если это чтение прочитает сообщение, сделанное инструкцией [x] :=rel 1, т.е.

регистр a получит значение 1, то в терминах С/С++11MM между b :=rlx [y] и [y] :=rlx 1 возникнет ребро отношения “предшествует”hb. Следовательно, регистр b не может получить значение 1, т.к. чтение не можетпрочитать то, что записано последующей за ним записью. Таким образом, OpC11MM должна предотвращать ситуацию, когда чтение, которое было отложено черезвысвобождающую запись W , выполняется после того, как другой поток прочиталсообщение W с помощью приобретающего чтения.Для реализации данного ограничения в состояние машины OpC11 добавляется глобальный компонент γ, который является списком троек, состоящих излокации, метки времени некоторого существующего сообщения и символического значения, идентифицирующего отложенное чтение. При выполнении высвобождающей записи W , которая добавляет сообщение локации ℓ с меткой времениτ, для каждого отложенного потоком чтения в список γ добавляется по тройке⟨ℓ,τ, x⟩, где x — символическим значение чтения.

При этом приобретающее чтение из сообщения локации ℓ с меткой времени τ возможно только в том случае,если в γ не осталось записей вида ⟨ℓ, τ, _⟩, а выполнение отложенного чтения ссимволическим значением x удаляет из γ все тройки ⟨_,_,x⟩.Следующая программа иллюстрирует ещё одну особенность, которая связана с откладыванием расслабленных записей через высвобождающие:[x] :=rlx 0; [y] :=rlx 0;[x] :=rlx 1; [y] :=rlx 1;[y] :=rel 1 [x] :=rel 1a :=rlx [x]; b :=rlx [y](WR-rlx-rel)Согласно C/C++11 MM, результат [a = 1, b = 1] возможен для этой программы,и это требует, чтобы сообщения расслабленных записей попали в память после46сообщений высвобождающих.

При этом, если другой (третий) поток выполнитприобретающее чтение из сообщения, сделанного одной из высвобождающих записей, то он должен стать осведомлённым о предшествующей расслабленной записи, а для этого соответствующее сообщение должно находиться в памяти.Аналогично предыдущему пункту, данная проблема решается с помощьюсписка γ. При исполнении высвобождающей записи также, как и для отложенных чтений, в списке γ появляются тройки, связанные с отложенными записями.Единственным отличием от обработки отложенных чтений является то, что привыполнении отложенной записи W не только удаляются все тройки ⟨ℓ, τ, x⟩, гдеx — символьный идентификатор записи, но и увеличивается фронт сообщениялокации ℓ с меткой времени τ на [ℓ′ @τ′ ], где ℓ′ и τ′ связаны с сообщением W .2.2Формальное описание моделиВ разделе приводится математическое определение OpC11 MM, включаяопределение синтаксиса языка, для которого задана модель, представления памяти и фронтов.2.2.1Синтаксис языка модели и базовые правила редукцииСинтаксис языка модели представлен на рис.

6. Мета-переменная e представляет выражения, которые могут быть целыми числами z, локациями ℓ, неизменяемыми локальными переменными x, парами, проекциями пар или бинарными выражениями. Конструкция choice является недетерминированным выбором между двумя выражениями.Программы представляются как операторы s, где x := s1 ; s2 является letвыражением, spw s1 s2 — параллельной композицией потоков, [ι]RM — выражением чтения из памяти. В примерах также используются дополнительные обозначения:– оператор skip вместо константного выражения 0,– выражения x :=RM [ι] и x := e для обозначения x := [ι]RM ; x и x := e; x,– оператор s1 ; s2 вместо x′ := s1 ; s2 , где x′ не встречается в s2 ,– конструкция s1 ||s2 для обозначения spw s1 s2 .Результатом программы является либо значение v, либо значение времениисполнения (run-time value) stuck, которое символизирует, что что-то пошло не47e ::= x | z (∈ Z) | e1 op e2 | choice e1 e2fst e | snd e | (e1 , e2 ) | ιop ::= + | − | ∗ | / | % | == |̸=ι ::= ℓ | xℓ — идентификатор локацииx — локальная переменнаяv ::= ℓ | z | (v1 , v2 )s ::= e | x := s1 ; s2 | spw s1 s2 |if e then s1 else s2 fi | repeat s end |[ι]RM | [ι] :=WM e | casSM,FM (ι, e1 , e2 )sRT ::= stuck | par s1 s2RMWMSMFM::=::=::=::=sc | acq | con | rlx | nasc | rel | rlx | nasc | acqrel | rel | acq | con | rlxsc | acq | con | rlxРис.

6. Синтаксис операций и выражений языка модели OpC11так — в исполнении найдена гонка по данным или была попытка чтения из неинициализированной переменной. Другой конструкцией времени исполнения является par s1 s2 , которая получается в результате редукции spw s1 s2 и представляетнаходящиеся в исполнении потоки. На шаге операционной семантики, которыйредуцирует spw s1 s2 в par s1 s2 , происходит необходимая инициализация компонент машины OpC11.Мета-переменная ξ представляет динамическое состояние машины с точностью до программы. Вычисление программы s в машине OpC11 начинаетсясо стартового состояния ⟨s, ξinit ⟩, где ξinit содержит пустую память и пустой базовый фронт для единственного стартового потока. Переходы машины заданы вредукционном стиле [13], большинство из них имеет следующий вид:...⟨E[s], ξ⟩ −→ ⟨E[s′ ], ξ′ ⟩48Здесь E — это редукционный контекст, заданный так:E ::= [ ] | x := E; s | par E s | par s E.Если в момент исполнения программы запущено более одного потока, т.е.

в программном выражении присутствует узел par, то программное выражение можетбыть недетерминированно разбито на контекст и подпрограмму.Базовые правила семантики, которые не затрагивают операций над памятью, приведены на рисунке 7. Из них интерес представляют правила Spawn и Join,которые описывают старт и соединение дочерних потоков соответственно. Этиправила модифицируют компоненты состояния машины OpC11, которые являются локальными для потоков, например, базовый фронт и операционный буфер.Конкретные представления правил Spawn и Join зависят от многопоточных аспектов модели, которые определяют мета-функции spawn и join.2.2.2Представление памяти и фронтовВ базовом представлении состояние ξ машины OpC11 включает в себя память M и функцию ψrd , которая по идентификатору потока π возвращает его базовый фронт (см. рис.

Характеристики

Тип файла
PDF-файл
Размер
763,31 Kb
Высшее учебное заведение

Список файлов диссертации

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6548
Авторов
на СтудИзбе
300
Средний доход
с одного платного файла
Обучение Подробнее