Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.01.2013, 10:22   #1
220Volt
Форумчанин
 
Регистрация: 14.12.2012
Сообщений: 668
По умолчанию volatile

Здравствуйте!
Может ли кто-нибудь порекомендовать что-нибудь для прочтения на тему "ключевое слово volatile и смежные вопросы", MSDN'а недостаточно, желательно со спуском до аппаратного уровня. Не отправляйте, пожалуйста, в гугл, гуглил.

Последний раз редактировалось 220Volt; 21.01.2013 в 11:07.
220Volt вне форума Ответить с цитированием
Старый 21.01.2013, 10:40   #2
EUGY
Форумчанин
 
Аватар для EUGY
 
Регистрация: 11.07.2010
Сообщений: 914
По умолчанию

мсдн`а не достаточно, а гугл не помог. Тогда это тупик.


http://alenacpp.blogspot.ru/2006/04/volatile.html
EUGY вне форума Ответить с цитированием
Старый 21.01.2013, 10:48   #3
220Volt
Форумчанин
 
Регистрация: 14.12.2012
Сообщений: 668
По умолчанию

Нашел у Рихтера ответы. Было не понимание, например, почему CRITICAL_SECTION не объявляются volatile? Теперь понял. А в мсдн очень скупое объяснение, имхо.
220Volt вне форума Ответить с цитированием
Старый 21.01.2013, 10:54   #4
220Volt
Форумчанин
 
Регистрация: 14.12.2012
Сообщений: 668
По умолчанию

Благодарю за участие.
220Volt вне форума Ответить с цитированием
Старый 07.02.2013, 17:15   #5
220Volt
Форумчанин
 
Регистрация: 14.12.2012
Сообщений: 668
По умолчанию

Прошу помочь разобраться в понимании сути Release и Acquire семантик (типа – запись в volatile имеет release семантику).
В голове образовалось каша. Что они делают, вот что хотелось бы понять. В голове есть мысли о том, что компилятор может изменить порядок операций в коде, а эти семантики ограничивают компилятор в этом. Плюс они помогают синхронизировать данные между различными ядрами (барьеры), если верно хотелось бы прояснить механизм (синхронизация между чем и чем? Регистрами и кешем ?). Пытаюсь осилить memory order над atomic типами в C++11, запутался …
220Volt вне форума Ответить с цитированием
Старый 07.02.2013, 17:52   #6
220Volt
Форумчанин
 
Регистрация: 14.12.2012
Сообщений: 668
По умолчанию

Смежный вопрос что здесь происходит (у нас с ассемблером не очень)?
Код:
VOID MemoryBarrier (VOID)
{
    LONG Barrier;
    __asm {
        xchg Barrier, eax
    }
}
http://msdn.microsoft.com/en-us/libr...8VS.85%29.aspx
220Volt вне форума Ответить с цитированием
Старый 07.02.2013, 19:21   #7
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

обменивается значение регистра eax, и переменной Barrier.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 08.02.2013, 08:44   #9
220Volt
Форумчанин
 
Регистрация: 14.12.2012
Сообщений: 668
По умолчанию

Спасибо. Хорошие ссылки, буду разбираться.
220Volt вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Объясните разницу модификаторов CONST и VOLATILE svatorus Помощь студентам 0 07.06.2012 13:13
Interlocked-функции и volatile. Необходимость совместного использования. neokoder Win Api 0 21.03.2011 22:06