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

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

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

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

Приэтом M ⊂ Msg — это память машины, являющаяся множеством сообщений вида⟨ℓ : val@τ,view⟩ : Msg, состоящих из целевой локации ℓ : Loc, значения val : Val,метки времени τ : Time = Q, и фронта сообщения view : V = Loc → Time.T S : Tid → TS — это функция, которая по идентификатору потока возвращаетего состояние. Состояние потока TS : TS является тройкой ⟨σ, V, promises⟩, где σ— это локальное состояние потока в рамках описанной ниже помеченной системыпереходов (labeled transition system, LTS), V = ⟨viewcur ,viewacq ,viewrel ⟩ : V × V × V93(-)()cur(ℓ) < tR = rel ⊔ [ℓ@τ]′cur = cur ⊔ [ℓ@τ]acq′ = acq ⊔ cur′cur(ℓ) ⩽ tcur = cur ⊔ [ℓ@τ]acq′ = acq ⊔ cur′′R(ℓ,τ,R)W(ℓ,τ,R)⟨cur,acq,rel⟩ −−−−→ ⟨cur′ ,acq′ ,rel⟩⟨cur,acq,rel⟩ −−−−→ ⟨cur′ ,acq′ ,rel⟩(()W(ℓ,v)⟨ℓ : v@τ,R⟩ ∈ MR(ℓ,v)R(ℓ,τ,R)σ −−−→ σ′V −−−−→V ′⟨⟨σ, V, P ⟩, M ⟩ −−−−−−→ ⟨⟨σ′ , V ′ , P ⟩, M ⟩⟨⟨σ, V, P ⟩, M ⟩ −−−−−−→ ⟨⟨σ′ , V ′ , P ′ ⟩, M ′ ⟩Promise tid(-Promise tid)(F(acq)W(ℓ,τ,R)σ −−−→ σ′V −−−−→V ′m = ⟨ℓ : v@τ,R⟩′′′∀v , view .

⟨ℓ : v @τ,view′ ⟩ ̸∈ MM ′ = M ∪ {m}P ′ = P \ {m})-)F(rel)′σ −−−−→ σ′σ −−−−→ σ⟨⟨σ, ⟨cur,acq,rel⟩, P ⟩, M ⟩ −−−−−−→⟨⟨σ, ⟨cur,acq,rel⟩, ∅⟩, M ⟩ −−−−−−→Promise tidPromise tid⟨⟨σ′ , ⟨acq,acq,rel⟩, P ⟩, M ⟩()⟨⟨σ′ , ⟨cur,acq,cur⟩, ∅⟩, M ⟩(σ−→ σ′)∀v, view. ⟨m.ℓ : v@m.τ,view⟩ ̸∈ MP ′ = P ∪ {m}M ′ = M ∪ {m}∀ℓ. ∃v, view.

⟨ℓ : v@m.view(ℓ),view⟩ ∈ M ′⟨⟨σ, V, P ⟩, M ⟩ −−−−−−→ ⟨⟨σ′ , V, P ⟩, M ⟩⟨⟨σ, V, P ⟩,M ⟩ −−−−−−→ ⟨⟨σ, V, P ′ ⟩,M ′ ⟩εPromise tid(Promise tid)⟨TS, M⟩ −−−−−−→ ⟨TS′ , M′ ⟩Promise tid⟨TS′ , M′ ⟩ −−−−−−→∗ ⟨TS′′ , M′′ ⟩Promise tidTS′′ .promises = ∅⟨T S[tid 7→ TS], M⟩ −−−−→ ⟨T S[tid 7→ TS′ ], M′ ⟩PromiseРис. 27. Переходы обещающей машины— это базовый, приобретающий и высвобождающий фронты потока, promises ⊂Msg — это множество сообщений, которые были обещаны потоком, но еще невыполнены.Обещающая модель памяти задана на помеченной системе переходов, а нена программах непосредственно. В приложении Г.1 приводится метод построения системы переходов по программе.

Метка в системе переходов может быть: (i)операцией чтения из локации ℓ значения v (R(ℓ,v)), (ii) операцией записи в локацию ℓ значения v (W(ℓ,v)), (iii) барьером памяти с модификатором fmod (F(fmod)),(iv) внутренним переходом (ε). Последний тип описывает действия потока, кото-94рые не затрагивают память, например, присваивание в локальную переменную иисполнение оператора условного перехода.Стоит отметить, что в работе [23], на основе которой написана эта глава,обещающая модель задана непосредственно на синтаксисе модели ARMv8 POP.Тем не менее, для того, чтобы не вводить разные определения в главах 3 и 4, в диссертации обещающая модель определяется “поверх” системы переходов.

Также вдоказательстве корректности компиляции автор диссертации исходит из предположения, что система переходов может быть восстановлена по программе согласовано со схемой компиляции и функциями вычисления значения модели ARMv8POP (см. приложения Г.1, Г.2 и Г.3).Перед исполнением любой программы память обещающей машины состоитиз записей во все локации Minit ≜ {⟨ℓ : 0@0,viewinit ⟩ | ℓ ∈ Loc}, где viewinit ≜ λℓ. 0.В целом начальное состояние машины выглядит так:pinit ≜ ⟨λtid. ⟨σ = σinit , V = ⟨viewinit , viewinit , viewinit ⟩, promises = ∅⟩, Minit ⟩.Перейдем к описанию шагов исполнения обещающей машины (см. рис.

27).Только правило () оперирует над всем состоянии машины, остальные правила заданы локально для потока. Правило () требует от потока, которыйсовершает локальный переход, провести сертификацию обещаний, т.е. показать,что существует изолированный запуск потока, в рамках которого он выполнит всесвои обещания.Выполнение приобретающего барьера () делает базовыйфронт потока viewcur , равным приобретающему фронту потока viewacq ,где последний является объединением фронтов сообщений, прочитанныхпотоком к этому моменту, и меток времени записей, произведенныхпотоком.Выполнение высвобождающего барьера ( ) делает высвобождающий фронт потока viewrel равным базовому фронту потока viewcur . Врезультате фронты сообщений, которые поток добавит в память после выполнения высвобождающего барьера, будут содержать информацию о записях, совершённых потоком до выполнения высвобождающего барьера.Кроме того, переход, соответствующий высвобождающему барьеру, имеет дополнительное ограничение — в момент его выполнения у потока недолжно быть невыполненных обещаний, т.е.

promises должен быть равенпустому множеству.95Чтение из локации ℓ () выполняется потоком следующим образом.Поток выбирает из памяти машины некоторое сообщение ⟨ℓ : val@τ,view⟩.При этом метка времени записи τ должна быть больше, чем значение базового фронта потока viewcur (ℓ), а само сообщение не должно находится вомножестве обещанных, но не выполненых потоком сообщений promises.Это правило увеличивает базовый фронт потока на [ℓ@τ], а приобретающий — на view.Обещание записи ⟨ℓ : val@τ,view⟩ () добавляет сообщение в память машины и в множество promises. При этом целевая локация ℓ и значение val могут быть произвольными, т.е.

они не зависят от локальногосостояния потока σ. Метка времени должна быть уникальной среди сообщений локации ℓ, уже находящихся в памяти. Этот переход не обновляетфронты потока. Также легко заметить, что этот переход недетерминирован,но ограничен сертификацией.Выполнение обещания ⟨ℓ : val@τ,view⟩ () удаляет сообщение измножества невыполненных обещаний promises. При этом данный переходдолжен быть возможен в рамках помеченной системы переходов локальW(ℓ,val)ных состояний, т.е. должно существовать состояние σ′ такое, что σ −−−−→σ′ . При этом метка времени τ должна быть больше значения базовогофронта viewcur (ℓ), и фронт сообщения view должен быть равен композиции высвобождающего фронта viewrel и [ℓ@τ].

Переход также увеличиваетбазовый и приобретающий фронты потока на [ℓ@τ].Внутренний переход () соответствует шагу исполнения потока, который не взаимодействует с памятью, например: присваивание в локальную переменную, исполнение условного перехода или пустой операции.Такой переход меняет только локальное состояние потока.3.6Промежуточная машина ARM+τВ этом разделе описывается промежуточная машина ARM+τ , а также доказывается, что она симулирует ARM-машину.

Для этого сначала показывается корректность некоторых базовых утверждений про подсистему памяти ARMмашины, а затем приводится подход для ввода меток времени для конкретногосценария поведения ARMv8 POP.963.6.1Свойства подсистемы памяти модели ARMv8 POPЛемма 1. Пусть состояние ARM-машины s достижимо из начального. Тогда отношение s.Ord равно транзитивному замыканию разности его самого и отношения,→.

Кроме того, оно ациклично.∀s. Prog ⊢ sinit −−−→∗ s ⇒ s.Ord = (s.Ord \ ,→)+ ∧ (s.Ord ациклично).ARMДоказательство. Утверждение верно для начального состояния sinit . Измененияв подсистеме памяти бывают трёх типов: (i) удаление запроса, (ii) отправка запроса в подсистему и (iii) уведомление потока о запросе. Рассмотрим, как меняется состояние подсистемы памяти при каждом из этих изменений в предположении, что начальное состояние памяти равно ⟨Evt, Ord, Prop⟩, а изменённое —⟨Evt′ , Ord′ , Prop′ ⟩:Удаление запроса eEvt′ = Evt \ {e},Prop′ = Prop \ {(tid, e) | tid},Ord′ = (Ord \ ({e} × Evt) \ (Evt × {e}) \ ,→)+ .Отправка запроса e потоком tidEvt′ = Evt ∪ {e},Prop′ = Prop ∪ {(tid, e)},Ord′ = (Ord ∪ {(e′ , e) | Prop(tid, e′ ), e′ ̸,→ e})+ .Поток tid становится осведомлённым о запросе eEvt′ = Evt,Prop′ = Prop ∪ {(tid, e)},Ord′ = (Ord ∪ {(e, e′ ) | Prop(tid,e′ ), ¬Prop(e.tid,e′ ), e ̸,→ e′ , ¬(e′ <Ord e)})+ .Очевидно, что во всех трёх случаях Ord′ = (Ord′ \ ,→)+ .

Также отношение Ord′ациклично, поскольку в случае удаления события Ord′ ⊆ Ord, отправка запросадобавляет в Ord-компоненту только ребра, входящие в новый запрос e, а в третьемслучае происходит проверка на ацикличность Ord′ .Леммы 2 и 3 доказываются аналогично.97Лемма 2. Пусть состояние ARM-машины s достижимо из начального. Тогда длялюбых двух запросов, которые не могут быть переупорядочены и о которых осведомлён один и тот же поток, верно, что запросы совпадают или между ними естьребро в отношении s.Ord.∀s,e,e′ ,tid. Prog ⊢ sinit −−−→∗ s ∧ e ̸,→ e′ ∧ s.Prop(tid, e) ∧ s.Prop(tid, e′ ) ⇒′ARM′e = e ∨ s.Ord(e, e ) ∨ s.Ord(e′ , e).Лемма 3. Пусть состояние ARM-машины s′ достижимо из состояния s.

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

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

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

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