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

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

волатильность и многопоточность на платформе с сильными моделями памяти

Практически в любое время, когда мы имеем дело с многопоточным процессом, volatile используется неправильно (по крайней мере, для любого кросс-платформенного кода). Мне любопытно, однако, если использование volatile bool даст (не детерминированные),...
03 февр. '16 в 8:22
0 отв.

Могут ли инструкции загрузки без нагрузки проходить мимо ограждений памяти? (X86_64)

Это только операции загрузки/хранения не переупорядочиваются вокруг ограждений памяти? Я понимаю, что сериализация инструкций, таких как CPUID, предотвращает переупорядочение любой команды (включая операции загрузки/хранения). То же самое для забора...
26 апр. '16 в 2:37
1 отв.

Влияние инструкций по упорядочению памяти на несколько сокетов x86/x86_64

Попытался найти ответ на этот вопрос в Intel 64/IA-32, но не смог найти окончательного ответа. Вопросы: Инструкции по упорядочению памяти, такие как SFENCE, влияют только на локальный процессор или распространяются на весь домен когерентности кеширо...
18 мая '16 в 19:38
5 отв.

Имеет ли новый поток полную видимость памяти всех предыдущих действий предыдущих потоков на общих объектах?

У меня есть поток A, поддерживающий структуру данных (добавление, удаление, изменение значений в ConcurrentHashMap). У меня есть поток B, прослушивающий сокет и иногда создающий поток C для обработки нового клиентского соединения. Вся нить C s буд...
21 сент. '16 в 14:48
1 отв.

Является ли барьер памяти связанным с определенной ячейкой памяти?

Я пытаюсь изучить основы низкоуровневого параллелизма. Из документации Linux: A write memory barrier gives a guarantee that all the STORE operations specified before the barrier will appear to happen before all the STORE operations specified aft...
25 сент. '16 в 21:10
1 отв.

Возможно ли создать экземпляр класса в стеке?

Я знаю, что в C++ вы можете создать экземпляр класса в стеке MyClass mc = MyClass(8.2); или на куче MyClass * mc = new MyClass(8.2); Можете ли вы сделать то же самое в С#? Единственный способ, которым я когда-либо создавал класс в С#, - это его ...
03 февр. '17 в 19:24
0 отв.

Терминология стека времени выполнения

Говоря о распределении и освобождении стека во время выполнения, pop и deallocate имеют одинаковое значение, а push и allocate имеют одинаковое значение? Является, Выделение из стека времени выполнения происходит в следующем порядке: Освобождение...
07 февр. '17 в 23:00
1 отв.

One-shot OnFocusChangeListener для EditText на Android

Мне нужно реализовать одноразовый OnFocusChangeListener для моего EditText. Т.е., как только EditText получает фокус, он что-то делает и перестает слушать событие изменения фокуса. Я назначаю Ananymous OnFocusChangeListener в свой EditText. Затем в...
24 февр. '17 в 18:15
1 отв.

Согласованность в разных контекстах (распределенная система против модели памяти и базы данных)

Меня смущает термин "согласованность". Он использовался во многих разных контекстах: распределенной системе, модели памяти и базе данных. Люди/Википедия суммируют все разные модели согласованности на той же странице. Но я действительно не думаю, что...
17 авг. '17 в 0:20
2 отв.

java - что происходит с экземплярами, когда я меняю класс?

Я должен буду придумать "адаптивный" класс, например, в моем случае, который может встроить определенные элементы массива в собственные поля или изменить их размеры во время выполнения. Я понятия не имею, как это сделать (пока?), Но позвольте предп...
02 окт. '17 в 12:39
2 отв.

java - что действительно синхронизируется по модели java-памяти?

Прочитав немного о модели памяти и синхронизации Java, появилось несколько вопросов: Даже если Thread 1 синхронизирует записи, то, хотя эффект от записи будет сброшен в основную память, Thread 2 все равно их не увидит, потому что чтение произошло ...
31 дек. '17 в 13:58
3 отв.

Насколько эффективным барьером является атомная запись, за которой следует атомное чтение той же переменной?

Рассмотрим следующее: #include <atomic> std::atomic<unsigned> var; unsigned foo; unsigned bar; unsigned is_this_a_full_fence() { var.store(1, std::memory_order_release); var.load(std::memory_order_acquire); bar = 5; ...
10 янв. '18 в 9:10
0 отв.

Какая из моделей памяти C++ позволяет и не позволяет загружать буферизацию?

Я читал, что буферизация хранилища допускается всеми существующими моделями слабых памяти. Что такое буферизация загрузки? Какие модели памяти не позволяют загружать буферизацию?
20 февр. '18 в 22:10
1 отв.

Модель памяти: записи активации

Я просто прочитал книгу, в которой говорится, что запись активации в верхней части стека (в памяти) всегда находится там, где находится точка исполнения. Итак, мой вопрос заключается в том, какая запись активации находится наверху во время параллель...
23 февр. '18 в 3:51
1 отв.

С++ простой мьютекс с использованием atomic_flag (код не работает)

Это упражнение с использованием atom_flag с моделью памяти покупки/выпуска для реализации очень простого мьютекса. Есть количество НИТОВ количество потоков, и каждый шаг потока увеличивается на LOOP число раз. Эти потоки синхронизируются с этим прос...
25 марта '18 в 2:09