2

Давайте рассмотрим это предложение (Total Store Ordering):Что означает «чтение перед чтением» в памяти?

читает упорядочиваются прежде, чем читает, пишет, прежде чем пишет, и читает, прежде чем пишет, но не пишет, прежде чем читает.

Я думаю, что я почти получить основы:

  • Каждый поток имеет свой собственный программный заказ (код как написано)
  • В общем, процессор может изменить порядок инструкций и мы должны ограничить его исключить неправильные заказы
  • ЦП также может изменять порядок загрузки и хранения памяти, и мы также должны их сдерживать
  • Текущая аппаратная реализация имеет «команды сериализации», такие как mfence, которые являются invo ked всеми потоками для решения обеих проблем.
  • Оборудование, как правило, позволяет только один грязный кэш, так что это все о топить, что кэш-память:
    • Запоминание нить флеши грязный кэш
    • запросы Загрузка резьбы и блоков до тех пор, пока не загрязнен кэш
  • Разработчики ядра заботятся о устройствах, отличных от процессора, обращающихся к памяти, но я этого не делаю.

Однако я все еще не понимаю, что означает «читает перед чтением». Вероятно, это означает, что в этих архитектурах есть неявные барьеры и инструкции по сериализации, но я не могу сказать.

+0

Возможно, что чтение не будет переупорядочено относительно других чтений. – immibis

+0

OP, могу я спросить, откуда вы взяли эту цитату? Обратите внимание, что ни Sparc, ни классический x86 не допускают переупорядочение нагрузки - https://en.wikipedia.org/wiki/Memory_ordering – Leeor

ответ

0

Я так уверен, что слышал, что в курсе OS на моем uni в Греции, черт возьми, я читал его с голосом профессора. :) Так как никто не ответил, я попытаюсь ответить.

Представьте, что вы ОС, каждый поток/программа хочет выполнять чтение и запись. Теперь, поскольку мы говорим о многопоточности, поток может читать что-то, написанное другим потоком, подобно значению переменной.

Теперь, если поток 1 хочет выполнить чтение адреса памяти x, и поток 2 хочет выполнить чтение x тоже, это нормально, чтобы дать им возможность прочитать x в любом порядке. Вот что это значит, я думаю!

Надеюсь, что это поможет, так как я знаю, что это не лучший ответ, который можно было бы дать! :/

 Смежные вопросы

  • Нет связанных вопросов^_^