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

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

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

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

Первый набор состоит из запроса предшествующего барьера ⟨tid, pathsy , dmb⟩. Второй набор включает запросы экземпляров записи, предшествующие экземпляру pathsy ,prev-Ord-req(tid, pathsy , tape, H). Третий набор является объединением множествH⩽ (e.tid, e.path) за каждый запрос записи e, прочитанный потоком до экземпляраpathsy :prev-Ord-req(tid, pathsy , tape, H) ≜{⟨tid : path′ @ℓ′ ,val′ ⟩ | path′ < pathsy , tape(path′ ) = W (com _ ℓ′ val′ )} ∪∪{H⩽ (e.tid, e.path) | path′′ < pathsy , tape(path′′ ) = R (sat com e)}.Почему все эти запросы гарантировано предшествуют запросу w в отношении Ord? Во-первых, все запросы, кроме f ≜ ⟨tid, pathsy , dmb⟩, предшествуют102f , т.к. в момент добавления f подсистема памяти добавила по Ord-ребру (e, f )за каждый запрос e, о котором был осведомлён поток.

Последнее верно в силуследующих рассуждений. О каждом запросе записи e′ , который был отправленпотоком до отправки f , поток естественным образом осведомлён. О каждом запросе записи e′′ , который был прочитан потоком до отправки f , поток осведомлёнпо ограничениям подсистемы памяти. Эти ограничения гарантируют, что запросчтения может получить ответ из запроса записи, только если о них осведомленыодни и те же потоки.Во-вторых, когда поток отправляет запрос w, он добавляет ребро (f, w) вотношение Ord. Значит все упомянутые выше запросы также предшествуют w вотношении Ord в силу транзитивности Ord.Новое вхождение в функцию Hview определяется как поточечный максимум(операция ⊔) на фронтах [ℓ@τ] и viewf(tid, pathsy , pathsy , tape, H), гдеviewf(tid, pathwrite , pathread , tape, H) ≜⊔⊔com-writes-time(tid, pathwrite , tape, H) ⊔ sat-reads-view(pathread , tape, H)определяет фронт запросов из вхождения H⩽ :com-writes-time(tid, path, tape, H) ≜{[ℓ@τ] | path′ < path, tape(path′ ) = W (com _ ℓ _), τ = Hτ (tid, path′ )} ∪{[ℓ@τ] | tid′ , path′ , path′′ < path, τ = Hτ (tid′ , path′ ) ̸= ⊥,tape(path′′ ) = R (sat sat-state ⟨tid′ , path′ , wr ℓ : _⟩), sat-state ̸= inflight}.sat-reads-view(path, tape, H) ≜{Hview (tid′ , path′ ) ̸= ⊥ | ∃ℓ, tid′ , path′ , path′′ < path,tape(path′′ ) = R (sat sat-state ⟨tid′ , path′ , wr ℓ : _⟩), sat-state ̸= inflight}.3.6.4 Симуляция модели ARMv8 POPКак было описано в предыдущем разделе, переходы машины ARM+τ являются переходами ARM-машины с дополнительными ограничениями, что потенциально может означать уменьшение допускаемых сценариев поведения.

Поскольку это бы означало, что мы не смогли бы использовать ARM+τ как промежуточную машину в доказательстве корректности компиляции, то нужно показать,что все сценарии поведения ARMv8 POP также являются сценариями поведенияARM+τ с точностью до компоненты состояния H.103Теорема 3. Пусть набор состояний {si }i∈[0..n] является исполнением программыProg в ARM-машине. Тогда существует такой набор {Hi }i∈[0..n] , что {⟨si , Hi ⟩}i∈[0..n]является исполнением программы Prog в ARM+τ-машине.∀Prog, {si }i∈[0..n] . s0 = sinit ∧ FinalARM (sn , Prog) ∧Prog ⊢ s0 −−−→ ...

−−−→ sn ⇒ ∃{Hi }i∈[0..n] . H0 = ainit .H ∧ARM00ARMProg ⊢ ⟨s , H ⟩ −−−−→ ... −−−−→ ⟨sn , Hn ⟩.ARM +τARM +τДоказательство. В разделе 3.6.2 было показано, как по финальному состояниюв сценарии поведения ARMv8 POP построить отношение mo и функцию mapτ :req ⇀ τ. Здесь мы также строим их по состоянию sn , но с небольшим изменением:мы предполагаем, что функция mapτ задана на экземплярах инструкций, т.е. намножестве Tid × P ath, а не на запросах. Это изменение имеет только стилистический характер, т.к.

по запросу однозначно восстанавливается идентификаторэкземпляра инструкции, кроме случая инициализирующих запросов.Мы конструируем множество {Hi }i∈[0..n] индуктивно. Начальная компонента H0 равна ainit .H. Также мы используем следующий инвариант для состоянийсценария поведения ARM+τ:inv(s, H) ≜ ∀tid, path.(s.tapef(tid, path) = W (com true _ _) ⇒ Hτ (tid, path) = mapτ (tid, path)) ∨(s.tapef(tid, path) ̸= W (com _ _ _) ⇒ Hτ (tid, path) = ⊥).Инвариант утверждает, что метки времени, полученные в ходе исполнения вARM+τ, соответствуют функции mapτ .

Предположим, что мы сконструировали i первых состояний сценария поведения ARM+τ, и инвариант выполняетсяна них. Докажем индукционный переход, рассмотрев различные варианты шагаProg ⊢ si −−−→ si+1 .ARMУведомление потока. Выберем Hi+1 равным Hi . Тогда утверждение inv(si+1 , Hi+1 ) выполняется, т.к. выполняется inv(si , Hi ) иsi+1 .tapef = si .tapef. В разделе 3.6.2 было доказано, что для любого j ∈ [0..n]отношение mo↾sj .Evt ∪ sj .Ord ациклично. Утверждение inv(si+1 , Hi+1 ) гарантирует, что функция mo↾si+1 .Evt равна tedges(si+1 .Evt, Hi+1τ ). Тогдаотношение si+1 .Ord ∪ tedges(si+1 .Evt, Hi+1τ ) ациклично.

Таким образом,все дополнительные ограничения правила Уведомление потока машиныARM+τ выполнены, и она может совершить соответствующий переход.104Завершение записи tid path. Нам нужно рассмотреть два случая.Если соответствующий запрос записи отправлен в подсистему памяти, томы выбираем ему метку времени τ, которая является параметром перехода в машине ARM+τи равна mapτ (tid, path). Мы выбираем Hi+1 в соответствии с определением этой компоненты в правиле Завершение записи машины ARM+τ. Инвариант, очевидно, выполняется по определению. По определению функции mapτ метка времени τ уникальна средизапросов записи в соответствующую локацию. Ацикличность отношенияsi+1 .Ord ∪ tedges(si+1 .Evt, Hi+1τ ) следует из тех же рассуждений, что и впредыдущем случае.

Из этого, в свою очередь, следует, что τ больше всехостальных меток времени запросов записи в ту же локацию среди тех, чтобыли отправлены тем же потоком в подсистему памяти. Метка τ такжебольше всех меток времени предшествующих завершенных экземпляровзаписи в ту же локацию, которые не отправляли запросы, как следствиепринципа выбора метки времени. В плёнке потока нет последующих завершенных записей в ту же локацию, т.к.

запрос был отправлен, следовательно метка времени τ корректна относительно других записей потока.Если запрос записи не был отправлен, то mapτ (tid, path) = ⊥. Известно,что существует последующий экземпляр записи в ту же локацию с меткойвремени τ′ , который отправил запрос в подсистему памяти. Мы выбираемметку времени τ из интервала (τ′ − 1, τ) так, чтобы она была корректнаотносительно требований перехода машины ARM+τ. Мы выбираем Hi+1 всоответствии с переходом Завершение записи машины ARM+τ. При этоминвариант, очевидно, сохраняется.Другие переходы. Мы выбираем компоненту Hi+1 равной Hi . Поскольку востальных правилах машины ARM+τ нет дополнительных ограничений,то машина может сделать соответствующий переход, и при этом инвариантсохранится.3.6.5Фронты машины ARM+τВ разделе 3.2.1 была рассмотрена программа MP-SY-LD.

В ней использование барьеров памяти позволяет запретить слабый сценарий поведения. Для таких целей в обещающей модели используются фронты. Для того, чтобы показать,105что обещающая машина может симулировать машину ARM+τ, вводится аналогфронтов для ARM+τ.Введём фронт viewARM — аналог базового фронта обещающей машины:viewARM (a, tid, path) ≜⊔com-writes-time(tid, path, a.tapef(tid), a.Hτ ) ⊔⊔sat-reads-view(lastCF(tape, path), a.tapef(tid), a.Hview ) .В отличие от viewcur , который определяется в целом для потока, фронт viewARM дополнительно параметризован путём path из тех же соображений, что и состояниепеременных в ARMv8 POP параметризовано путём: машина ARM+τ может исполнять экземпляры не по порядку, поэтому разные экземпляры могут иметь разные ограничения, связанные с метками времени.

Определение фронта viewARMпохоже на определение компоненты Hview в правиле Завершение записи: этотфронт является композицией одинарных фронтов [ℓ@τ], где ℓ и τ — параметры завершенного экземпляра записи, который предшествует path, со значениямиHview , связанными c запросами записи, которые прочитаны потоком до последнего выполненного барьера lastCF(tape, path), предшествующего path.

При этомучитываются и ld, и sy барьеры, так как они оба могут быть использованы какрезультат компиляции приобретающего барьера в обещающей модели.С помощью определения viewARM нужные ограничения задаются следующим образом. Если экземпляр чтения (tid, path) получил ответ от завершенногоэкземпляра записи, то метка времени этой записи не меньше соответствующегозначения viewARM для пути path. Мы не ограничиваем чтения, которые получилиответ от ещё не завершенной записи, так как такие записи не обладают меткамивремени. Аналогично, каждый завершенный экземпляр записи имеет метку времени, превосходящую соответствующее значение viewARM . Упомянутые ограничения формулируются в виде следующей теоремы.Теорема 4.

Пусть состояние ARM+τ-машины a достижимо из начального. Тогдаметка времени завершённого экземпляра записи в локацию ℓ не меньше, чем значение фронта viewARM по этой локации для экземпляра чтения, прочитавшего изэтой записи. Кроме того, метка времени завершённого экземпляра записи больше,106чем значение фронта viewARM для самого экземпляра записи.∀Prog, a, tid, tape = a.tapef(tid), path. Prog ⊢ ainit −−−−→∗ a ⇒ARM +τ(∀e. tape(path) = R (sat _ e) ∧ a.tapef(e.tid, e.path) завершён ⇒a.Hτ (e.tid, e.path) ⩾ viewARM (a, tid, path, e.ℓ)) ∧(∀ℓ.

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

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

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

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