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

По вопросам моделей упорядочения памяти на уровне языка программирования (выше уровня ISA или машинного языка).
8

С++ 11 представил стандартизованную модель памяти. Что это значит? И как это повлияет на программирование на C++?

C++ 11 представила стандартизованную модель памяти, но что именно это означает? И как это повлияет на программирование C++? Эта статья (Гэвин Кларк, цитирующая Херба Саттера) говорит, что, Модель памяти означает, что код C++ теперь имеет стандар...
11 июн. '11 в 23:30
2

Что означает атрибут [[carry_dependency]]?

Может ли кто-нибудь объяснить это на языке, который понимают простые смертные?
20 июн. '11 в 12:39
4

Как "приобретать" и "потреблять" порядки памяти различаются, а когда "потреблять" предпочтительнее?

Стандарт С++ 11 определяет модель памяти (1.7, 1.10), которая содержит порядки памяти, которые, грубо говоря, "последовательно последовательны", "приобретают", "потребляют", "освобождают" и "расслабляют", Точно так же программа правильна, только если...
26 окт. '13 в 17:54
4

Что делает `std:: kill_dependency`, и зачем мне его использовать?

Я читал о новой модели памяти С++ 11, и я пришел к функции std::kill_dependency (& sect; 29.3/14-15). Я изо всех сил пытаюсь понять, почему я когда-нибудь захочу его использовать. Я нашел пример в предложении N2664, но это мало помогло. Он нач...
22 авг. '11 в 16:16
3

Что означает каждая память?

Я прочитал главу, и мне это не понравилось. Я все еще не понимаю, каковы различия между каждым порядком памяти. Это мои текущие предположения, которые я понял после прочтения гораздо более простых http://en.cppreference.com/w/cpp/atomic/memory_order ...
10 сент. '12 в 6:39
1

Является написанием эталонного атома на 64-битных виртуальных машинах

Модель Java-модели требует, чтобы запись int была атомарной: То есть, если вы пишете в нее значение (состоящее из 4 байтов) в одном потоке и читаете ее в другом, вы получите все байты или нет, но не 2 новых байта и 2 старых байта или таковых. Это н...
05 апр. '10 в 1:18
1

Каковы сходства между моделью памяти Java и моделью памяти С++ 11?

Новый стандарт С++ вводит понятие модели памяти. Были уже вопросы об этом, что это значит, как это изменит способ написания кода в С++ и т.д. Мне интересно узнать, как модель памяти С++ относится к более старой, хорошо известной модели памяти Java (...
09 сент. '11 в 14:47
7

Что такое модель памяти С++ 03 для concurrency?

Что такое модель памяти для concurrency в С++ 03? (И, улучшает ли С++ 11 модель памяти для поддержки concurrency лучше?)
21 окт. '08 в 4:19
3

Как компиляторы С++ поддерживают атомарную С++ 11, но не поддерживают модель памяти С++ 11

При взгляде на статус внедрения Clang и g++ С++ 11 я заметил что-то странное: они поддерживают атомы С++ 11, но они не поддерживают модель памяти С++ 11. У меня сложилось впечатление, что у вас должна быть модель памяти С++ 11 для использования ато...
02 июл. '12 в 12:40
2

С++ 11. синхронизируется с std:: mutex медленнее, чем с std:: atomic (memory_order_seq_cst)?

Основная причина использования атомистики над мьютексами - это то, что мьютексы дороги. но с моделью памяти по умолчанию для atomics, являющейся memory_order_seq_cst, разве это не так дорого? Вопрос: может ли одновременная программа с использованием...
30 апр. '13 в 20:20
3

Модель памяти Dalvik такая же, как Java?

Является ли модель памяти Dalvik такой же, как Java? Меня особенно интересует, являются ли чтения и записи ссылочных и не long/не double примитивных переменных атомарными, но я также хотел бы знать, существуют ли различия между моделями памяти двух ...
03 янв. '11 в 20:28
5

Может ли JIT свернуть два изменчивых чтения как один в определенных выражениях?

Предположим, что a volatile int a. Один поток выполняет while (true) { a = 1; a = 0; } а другой поток while (true) { System.out.println(a+a); } Теперь, было ли незаконным компилятор JIT испускать сборку, соответствующую 2*a вмест...
19 дек. '14 в 13:15
3

Чем отличаются memory_order_seq_cst и memory_order_acq_rel?

Магазины - это операции выпуска, а нагрузки - операции для обоих. Я знаю, что memory_order_seq_cst предназначен для наложения дополнительного общего порядка для всех операций, но я не могу построить пример, где это не так, если все memory_order_seq_...
09 сент. '12 в 16:26
3

Создает ли std:: mutex забор?

Если я заблокирую std::mutex, я всегда получу забор памяти? Я не уверен, что это подразумевает или принуждает вас к тому, чтобы получить забор. Update: Нашел эту ссылку, следуя комментариям RMF. Многопоточное программирование и видимость памяти
23 июн. '12 в 20:56
2

Имеет ли пустая синхронизация (это) {} какое-либо значение для видимости памяти между потоками?

Я прочитал это в предыдущем комментарии к StackOverflow: Но если вы хотите быть в безопасности, вы можете добавить простой синхронизированный (это) {} в конце вашего @PostConstruct [method] [обратите внимание, что переменные НЕ были волатильными]...
28 мая '14 в 8:43