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

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

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

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

Тогда всезапросы записи и барьеров памяти, которые находятся в подсистеме памяти состояния s, также находятся в подсистеме памяти состояния s′ .∀s, s′ . Prog ⊢ s −−−→∗ s′ ⇒ s.Evt \ {e | e — запрос чтения} ⊆ s′ .Evt.ARMЛемма 4. Пусть состояние ARM-машины s′ достижимо из состояния s. Тогда рёбра отношения s.Ord, которые связывают запросы из множества s′ .Evt, также являются рёбрами в отношении s′ .Ord.∀s, s′ . Prog ⊢ s −−−→∗ s′ ⇒ s.Ord ∩ (s′ .Evt × s′ .Evt) ⊆ s′ .Ord.ARMДоказательство.

Следующая, более слабая, версия утверждения верна, так какнет перехода, который бы удалял Ord-ребро между запросами, который не могутбыть переупорядочены:∀s, s′ . Prog ⊢ s −−−→∗ s′ ⇒ (s.Ord ∩ (s′ .Evt × s′ .Evt)) \ ,→ ⊆ s′ .OrdARMТеперь докажем исходное утверждение. Зафиксируем пару запросов (e, e′ ) ∈s.Ord ∩ (s′ .Evt × s′ .Evt). Мы хотим показать, что (e, e′ ) ∈ s′ .Ord. Если запросы не переупорядочиваемы, e ̸,→ e′ , то утверждение выполняется, т.к.

(e, e′ ) ∈(s.Ord ∩ (s′ .Evt × s′ .Evt)) \ ,→ ⊆ s′ .Ord. Иначе e и e′ являются запросами чтенияили записи к разным локациям. Поскольку s.Ord(e, e′ ), то по лемме 1 существуетконечный путь по s.Ord-рёбрам от e к e′ , что каждое ребро этого пути соединяетне переупорядочиваемые запросы.Предположим, что на этом пути есть запрос барьера памяти e′′ . Тогда из транзитивности s.Ord следует, что {(e, e′′ ), (e′′ , e′ )} ⊆ s.Ord. Следовательно, по ослабленной версии леммы и транзитивности s′ .Ord следует, что{(e, e′′ ), (e′′ , e′ ), (e, e′ )} ⊆ s′ .Ord.Теперь предположим, что на этом пути нет запроса барьера памяти. Тогдапо определению отношения ,→ следует, что все запросы на этом пути оперируютодной и той же локацией. Это противоречит e ̸,→ e′ .983.6.2Модель ARMv8 POP и метки времениЗафиксируем некоторую программу Prog и рассмотрим её завершающийсясценарий поведения в модели ARMv8 POP:Prog ⊢ s0 −−−→ s1 −−−→ ...

−−−→ sn ,ARMARMARMгде s0 = sinit — это начальное состояние машины; sn = s является финальнымсостоянием, т.е. в подсистеме памяти s нет запросов чтения, все потоки осведомлены о всех запросах, исполнение всех экземпляров инструкций завершено, и загрузка новых экземпляров невозможна.Для локации ℓ и множества запросов Evt мы определяем Evtℓ как множествовсех запросов записи из Evt, целевой локацией которых является ℓ:Evtℓ ≜ {⟨tid, path, wr ℓ : val⟩ ∈ Evt | tid, path, val}.Поскольку не существует перехода, который удалял бы запросы записи, то s.Evtℓявляется множеством всех запросов записи в ℓ, которые были отправлены в подсистему памяти за весь сценарий поведения.Зафиксируем локацию ℓ.

Известно, что каждый поток осведомлён о каждомзапросе e ∈ s.Evtℓ , т.к. состояние s является финальным. Также известно, что двазапроса записи в одну локацию не переупорядочиваемы. Как следствие, по лемме2 верно, что moℓ ≜ s.Ord↾s.Evtℓ , где R↾S ≜ R ∩ (S × S), является полным порядком∪на запросах записи в локацию ℓ. Мы определяем отношение mo ≜ ℓ moℓ какобъединение множеств moℓ по всем возможным локациям. Используя позициизапросов во множестве moℓ , мы определяем функцию, которая по запросу записивозвращает его метку времени:index(mo , e), если e = ⟨tid, path, wr ℓ : val⟩ ∈ s.Evt;ℓmapτ (e) ≜⊥,иначе.Наконец, мы показываем, что для любого состояния si из рассмотренного сценария поведения верно, что отношение mo↾si .Evt ∪ si .Ord ациклично.Теорема 2.

∀i ⩽ n, mo↾si .Evt ∪ si .Ord ациклично.Доказательство. Очевидно, что утверждение выполняется при i = 0. Предположим, что существует такой индекс j, что для любого индекса i < j отношение99mo↾si .Evt ∪ si .Ord ациклично, но отношение mo↾sj .Evt ∪ sj .Ord имеет цикл. Известно, что mo↾sn .Evt ∪ sn .Ord = sn .Ord не имеет циклов.

Тогда цикл из mo↾sj .Evt ∪ sj .Ordдолжен быть “удалён” на части сценария поведения Prog ⊢ sj −−−→∗ sn .ARMС этого момента мы будем различать Ord- и mo-ребра. Мы будем называтьпару запросов (e, e′ ) Ord-ребром, если (e, e′ ) ∈ sj .Ord, и mo-ребром, если (e, e′ ) ∈mo↾sj .Evt \ sj .Ord.Рассмотрим цикл минимальной длины в mo↾sj .Evt ∪ sj .Ord. В этом цикледолжно присутствовать mo-ребро, т.к.

отношение sj .Ord ациклично. Такое moребро (e, e′ ) соединяет два запроса записи в локацию ℓ, и при этом mapτ (e) <mapτ (e′ ). Поскольку это ребро является частью цикла, то существует путь от e′к e, состоящий из Ord- и mo-рёбер. Мы можем разбить этот путь на максимальные гомогенные mo- и Ord-подпути. Покажем, что каждый Ord-подпуть состоиттолько из одного ребра.Рассмотрим произвольный Ord-подпуть {e′′i }i∈[0..k] . Запросы e′′0 и e′′k являются запросами записи, т.к. они связаны с другими подпутями mo-ребрами. Потранзитивности отношения sj .Ord (лемма 1) верно sj .Ord(e′′0 , e′′k ), а, значит, подпуть может быть сокращён до этих двух запросов.Таким образом, кратчайший путь от e′ к e в отношении mo↾sj .Evt ∪ sj .Ordпроходит только через запросы записи.

Отношение sn .Ord содержит все mo-ребрапо определению mo. Также оно содержит все Ord-ребра из кратчайшего пути полеммам 3 и 4. Из этого следует, что выбранный цикл присутствует в sn .Ord, чтопротиворечит ацикличности sn .Ord.3.6.3Определение машины ARM+τПо сравнению с ARM-машиной состояние машины ARM+τ обладает однойдополнительной компонентой H : Tid × P ath ⇀ Time × 2ReqSet × V. Эта компонента является частичной функцией, определяемой на экземплярах инструкций записи, которые завершили своё исполнение.

Каждому такому экземпляру(tid, path) функция сопоставляет (i) метку времени, (ii) множество запросов записи и барьеров S в подсистеме памяти, которые гарантировано предшествуютв смысле отношения Ord запросу экземпляра (tid, path), если такой запрос присутствует в подсистеме, и (iii) фронт сообщения в стиле обещающей модели: полокации ℓ он возвращает метку времени, которая является максимальной средизапросов записи в эту локацию из множества S. Для краткости мы определяем100labelProg ⊢ s −−−→ s′ARMlabel ̸∈ {Propagate _ _, Write commit _ _ _ _}labelProg ⊢ ⟨s, H⟩ −−−−→ ⟨s′ , H⟩ARM +τPropagate e tidProg ⊢ s −−−−−−−−→ s′′′ARMs .Ord ∪ tedges(s .Evt, Hτ ) ацикличноPropagate e tidProg ⊢ ⟨s, H⟩ −−−−−−−−→ ⟨s′ , H⟩ARM +τWrite commit tid path ℓ valProg ⊢ s −−−−−−−−−−−−−−→ ⟨M′POP , iordf′ , tapef′ ⟩′ARMtapef (tid, path) = W (com im ℓ val) tape ≜ s.tapef(tid)time-range(im, ℓ, τ, tid, path, tape, H) coherent-thread(ℓ, τ, path, tape, H)uniq-time-loc(ℓ, τ, s.tapef, H) pathsy ≜ lastsy(tape, path)S ≜ if pathsy ̸= []then {⟨tid, pathsy , dmb⟩} ∪ prev-Ord-req(tid, pathsy , tape, H)else ∅S ′ ≜ if im then S ∪ {⟨tid, path, wr ℓ : val⟩} else Sview ≜ [ℓ@τ] ⊔ viewf(tid, pathsy , pathsy , tape, H)H′ ≜ H[(tid, path) 7→ (τ,S ′ ,view)]M′POP .Ord ∪ tedges(M′POP .Evt, H′τ ) ацикличноWrite commit tid path ℓ val τProg ⊢ ⟨s, H⟩ −−−−−−−−−−−−−−−→ ⟨⟨M′POP , iordf′ , tapef′ ⟩, H′ ⟩ARM +τРис.

28. Переходы машины ARM+τпроекции компоненты H: Hτ : Tid × P ath ⇀ Time, H⩽ : Tid × P ath ⇀ 2ReqSet , иHview : Tid × P ath ⇀ V. Компонента H начального состояния машины ARM + τ,ainit ≜ ⟨sinit , Hinit ⟩, присваивает нулевые метки времени всем инициализирующимзаписям: Hinit ≜ [(0tid , []) 7→ ⟨0, λℓ. 0, ∅⟩].Правила переходов машины ARM+τ приведены на рис. 28. Первое правило транслирует все переходы ARM-машины в переходы машины ARM+τ, кромеУведомление потока и Завершение записи; при этом компонента H в правилене используется.

Новое правило Завершение записи обновляет компоненту H, иоба правила Уведомление потока и Завершение записи имеют общее ограничение — объединение отношения Ord и отношения tedges, построенного по меткам101времени, должно быть ациклично. При этом tedges определяется так:tedges(Evt, Hτ ) ≜{(e, e′ ) ∈ Evt × Evt |e, e′ — запросы записи, e.loc = e′ .loc, Hτ (e.tid, e.path) < Hτ (e′ .tid, e′ .path)}.Остальные правила не могут добавить циклов в упомянутое объединение, поэтому в них не требуется такая проверка.Рассмотрим подробнее правило Завершение записи. Оно выбирает метку времени τ, которая должна быть уникальна среди запросов записи в локацию ℓ (предикат uniq-time-loc).

Кроме того, эта метка должна быть согласована с метками времени выполненных экземпляров записи в эту локацию (предикат coherent-thread): τ должно быть больше, чем метки времени предшествующих экземпляров, и меньше последующих. Правило Завершение записи ARMмашины не отправляет запрос на запись (im = false), если существует следующийзавершенный экземпляр записи в ту же локацию. Тем не менее, машина ARM + τприсваивает метку времени завершаемому экземпляру записи и в таком случае.При этом метка времени экземпляра, запрос которого был отправлен в подсистемупамяти, имеет целочисленное значение, а метка времени экземпляра без запросовв подсистеме находится в интервале (τ′ − 1, τ′ ), где τ′ — это метка времени ближайшего последующего завершенного экземпляра записи в ту же локацию, чейзапрос был отправлен (предикат time-range).Если запрос на запись, который мы обозначим w, отправлен в подсистему хранения (im = true), и существует предшествующий экземпляр sy-барьера(pathsy ̸= []), то множество запросов, которые гарантировано предшествуют wв отношении Ord (функция H⩽ ), включает три набора запросов.

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

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

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

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