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

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

Реализация Thread.VolatileRead

Я рассматриваю реализацию методов VolatileRead/VolatileWrite (используя Reflector), и я озадачен чем-то. Это реализация для VolatileRead: [MethodImpl(MethodImplOptions.NoInlining)] public static int VolatileRead(ref int address) { int num = add...
21 нояб. '09 в 1:43
2 отв.

Модель памяти С++ 0x и спекулятивные нагрузки/хранилища

Итак, я читал о модели памяти, которая является частью предстоящего стандарта С++ 0x. Тем не менее, я немного смущен некоторыми ограничениями для того, что разрешено компилятором, в частности, о спекулятивных нагрузках и хранилищах. Для начала, неко...
04 янв. '10 в 23:14
6 отв.

Может ли современное оборудование x86 не хранить один байт в памяти?

Говоря о модели памяти С++ для concurrency, язык программирования Stroustrup С++, 4-е изд., раздел. 41.2.1, говорит: ... (как и большинство современных аппаратных средств), машина не могла загружать или хранить что-либо меньшее, чем слово. Однак...
13 окт. '17 в 4:09
1 отв.

С++ 11 memory_order_acquire и memory_order_release семантика?

http://en.cppreference.com/w/cpp/atomic/memory_order и другие онлайн-ссылки С++ 11, определите memory_order_acquire и memory_order_release как: Операция получения: no reads в текущем потоке может быть переупорядочена перед этой загрузкой. Опера...
24 апр. '13 в 1:02
2 отв.

python threading: модель памяти и видимость

Потоки python раскрывают проблемы видимости памяти и переупорядочения операторов, как это делает Java? Поскольку я не могу найти ссылку на "модель памяти Python" или что-то в этом роде, несмотря на то, что многие люди пишут многопоточный код Python, ...
23 авг. '10 в 19:57
2 отв.

Каковы гарантии упорядочения памяти С++ 11 в этом случае?

Я пишу какой-то незакрепленный код, и у меня появился интересный образец, но я не уверен, будет ли он вести себя так, как ожидалось, при упорядоченном упорядочении памяти. Самый простой способ объяснить это - пример: std::atomic<int> a, b, c;...
14 авг. '13 в 7:22
5 отв.

Алгоритм Петерсона в Java?

Есть ли пример реализации алгоритма Петерсона для взаимного исключения в Java?
26 мая '10 в 13:06
2 отв.

Где я могу найти хорошую, прочную документацию для примитивов синхронизации С++ 0x?

Я видел статьи на ::std::thread и ::std::forward и такие, но я не видел хороших статей на ::std::atomic. Существует, конечно, стандартная статья, но я не видел никакой хорошей документации для тех, кто просто хотел использовать объект. Есть ли каки...
08 февр. '11 в 23:49
6 отв.

Использует ли Interlocked.CompareExchange барьер памяти?

Я читаю сообщение Джо Даффи о Неустойчивые чтения и записи и своевременность, и я пытаюсь понять что-то о последнем коде образец в сообщении: while (Interlocked.CompareExchange(ref m_state, 1, 0) != 0) ; m_state = 0; while (Interlocked.CompareExchan...
17 окт. '09 в 11:15
1 отв.

С++ 11 и доступ к различным членам одной и той же структуры в разных потоках

Предположим, что у вас есть следующие определения: struct X { char a, b; }; X x; И теперь предположим, что у вас есть два потока, один из которых читает и записывает x.a, но никогда не обращается к x.b, а другой читает и записывает x.b, но ник...
18 авг. '13 в 23:12
1 отв.

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

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

Можно ли объединить атомные нагрузки в модели памяти С++?

Рассмотрим приведенный ниже фрагмент С++ 11. Для GCC и clang это компилируется в две (последовательно согласованные) нагрузки foo. Модель модели С++ позволяет компилятору объединить эти две нагрузки в одну нагрузку и использовать одно и то же значени...
14 окт. '15 в 17:22
4 отв.

Является ли модель памяти Java (JSR-133), что вход в монитор очищает кеш-память процессора?

Есть что-то, что меня пугает с моделью памяти Java (если я все правильно понимаю). Если есть два потока A и B, нет никаких гарантий того, что B когда-либо увидит значение, написанное A, если оба A и B не синхронизируются на одном мониторе. Для любой...
16 июня '10 в 17:33
3 отв.

Почему memory_order задан как аргумент runtime для std:: atomic functions

std::atomic функции, такие как store и load, принимают аргумент std::memory_order. Аргумент может быть определен во время выполнения, как и любой другой аргумент функции. Однако фактическое значение может повлиять на оптимизацию кода во время компи...
18 дек. '12 в 23:40
1 отв.

Что такое операция потребления в стандарте С++ 11?

Я видел, что этот вопрос о приобретении, выпуске, потреблении и т.д. существует, однако ни один ответ действительно не определяет, что на самом деле означает "операция потребления". В пункте 1.10 пункта 5 говорится: Операция синхронизации в одном ...
07 марта '13 в 14:49