Вопросы по теме 'memory-barriers'

Как понять барьеры чтения и нестабильность памяти
Некоторые языки предоставляют модификатор volatile , который описывается как выполнение «барьера чтения памяти» перед чтением памяти, которая поддерживает переменную. Барьер памяти чтения обычно описывается как способ гарантировать, что ЦП...
25417 просмотров

Барьер памяти с помощью оператора блокировки
Недавно я прочитал о барьерах памяти и проблеме переупорядочения, и теперь у меня есть некоторое замешательство по этому поводу. Рассмотрим следующий сценарий: private object _object1 = null; private object _object2 = null; private bool...
7018 просмотров
schedule 21.04.2023

Зачем нужен барьер памяти?
В C # 4 in a Nutshell (кстати, настоятельно рекомендуется) используется следующий код для демонстрации концепции MemoryBarrier (при условии, что A и B выполнялись в разных потоках): class Foo{ int _answer; bool complete; void A(){...
10577 просмотров

Зачем нам нужен Thread.MemoryBarrier ()?
В статье «Вкратце о C # 4» автор показывает, что этот класс может иногда писать 0 без MemoryBarrier , хотя я не могу воспроизвести в моем Core2Duo: public class Foo { int _answer; bool _complete; public void A() { _answer...
19350 просмотров

Достаточно ли функций блокировки мьютекса без энергозависимости?
Мы с коллегой пишем программное обеспечение для различных платформ, работающих на x86, x64, Itanium, PowerPC и других серверных процессорах 10-летней давности. Мы только что обсудили, достаточно ли функций мьютекса, таких как pthread_mutex_lock ()...
9220 просмотров

Синхронизация потоков. Как именно блокировка делает доступ к памяти «правильным»?
Прежде всего, я знаю, что lock{} синтетический сахар для Monitor класса. (о, синтаксический сахар) Я играл с простыми проблемами многопоточности и обнаружил, что не могу полностью понять, как блокировка некоторого произвольного СЛОВА памяти...
1042 просмотров

Подразумевает ли вызов pthread_cond_signal или pthread_cond_broadcast барьер записи в память?
Переменные условия обычно используются таким образом, что состояние, на которое они ссылаются, модифицируется мьютексом. Однако, когда состояние представляет собой всего лишь один флаг только для установки, нет необходимости в мьютексе для...
2554 просмотров

Порядок и видимость модели памяти?
Я пытался найти подробности по этому поводу, я даже читал стандарт на мьютексы и атомики ... но все же я не мог понять гарантии видимости модели памяти C ++ 11. Насколько я понимаю, очень важной особенностью mutex BESIDE взаимного исключения является...
5783 просмотров
schedule 29.05.2022

Это правильное использование Thread.MemoryBarrier()?
Предположим, у меня есть поле, которое управляет выполнением некоторого цикла: private static bool shouldRun = true; И у меня есть поток, который имеет код вроде: while(shouldRun) { // Do some work .... Thread.MemoryBarrier(); }...
2138 просмотров

С# параллелизм массива структур
Учитывая массив структуры: public struct Instrument { public double NoS; public double Last; } var a1 = new Instrument[100]; И пул многопоточных задач, который выполняет запись в эти элементы на основании того, что один элемент может...
1114 просмотров

Каков самый легкий (самый) весовой барьер памяти GCC в таком случае?
У меня есть следующий код C: ... data[index] = something; a_write_memory_barrier(); index = new_index; ... Код не защищен блокировкой (другие просто читают data и index ), я хочу убедиться, что data[index] сохранен перед обновлением...
1027 просмотров

Видна ли переупорядочение памяти другим потокам на однопроцессоре?
Часто современные архитектуры ЦП используют оптимизацию производительности, которая может привести к неупорядоченному выполнению. В однопоточных приложениях также может происходить переупорядочение памяти, но оно невидимо для программистов, как если...
2211 просмотров
schedule 10.06.2022

CreateFileMapping и MapViewOfFile с межпроцессным (несинхронизированным) многопоточным доступом?
Я использую область общей памяти для передачи сом-данных второму процессу. Первый процесс использует CreateFileMapping (INVALID_HANDLE_VALUE, ..., PAGE_READWRITE, ...) и MapViewOfFile ( ... FILE_MAP_WRITE) . Второй процесс...
1565 просмотров

Объяснение ошибки Thread.MemoryBarrier () с OoOP
Итак, после прочтения Threading в C # Альбахари я пытаюсь разобраться в Thread.MemoryBarrier () и обработке вне очереди. Следуя ответу Брайана Гидеона на Почему нам нужен Thread.MemoerBarrier () , он упоминает следующее код заставляет программу...
442 просмотров
schedule 20.04.2022

Барьеры потоковой передачи и неявной памяти
Пытаемся понять модель памяти .net, когда дело касается потоковой передачи. Это чисто теоретический вопрос, и я знаю, что его можно решить другими способами, например, используя lock или пометив _task как volatile . Возьмем, к примеру,...
422 просмотров

Гарантия актуальности переменной в .NET (изменчивое или изменчивое чтение)
Я прочитал много противоречивой информации (msdn, SO и т. Д.) О volatile и VoletileRead (ReadAcquireFence). Я понимаю последствия этого ограничения переупорядочения доступа к памяти - что меня до сих пор полностью смущает, так это гарантия...
2263 просмотров

Упорядочение памяти в C ++ 11 связано с упорядочением сброса основной памяти?
Я не уверен, что полностью понимаю (и, возможно, ошибаюсь) концепции атомарности и упорядочения памяти в C ++ 11. Возьмем этот простой однопоточный пример: int main() { std::atomic<int> a(0); std::atomic<int> b(0);...
301 просмотров

Постоянная оптимизация сворачивания/распространения с барьерами памяти
Я некоторое время читал, чтобы лучше понять, что происходит при многопоточном программировании с современным (многоядерным) процессором. Однако, пока я читал это , я заметил код ниже в раздел «Явные барьеры компилятора», в котором не используется...
283 просмотров

Обеспечивает ли модель памяти Intel избыточность SFENCE и LFENCE?
Модель памяти Intel гарантирует: Покупки в магазинах не будут переупорядочены в других магазинах. Заказы на другие грузы не будут переупорядочены. http://bartoszmilewski.com/2008/11/05/who-ordered-memory-fences-on-an-x86/ Я видел...
2120 просмотров

Программа тестирования для выявления неисправности ЦП
Я написал многопоточную программу, чтобы продемонстрировать эффект выхода процессора Intel из строя. Программа прикреплена в конце поста. Ожидаемый результат должен заключаться в том, что когда x будет распечатан как 42 или 0 обработчиком1. Однако...
392 просмотров