16+
Среда
22 ноября
Вход |Карта сайта | |Upload |codebook | PARTS

 О смысле всего сущего 0xFF

 Средства и методы разработки

 Мобильная и беспроводная связь

 Блошиный рынок Объявления

caxapa

Микроконтроллеры ARM 

AVR PIC MSP PLD,FPGA,DSP 

Кибернетика Технологии 

Схемы, платы, компоненты 

Микроконтроллеры AVR

 
   Новая тема Правила Регистрация Поиск »» Архив
Вернуться в конференциюТопик полностью
fk0  (09.11.2017 23:45 - 09.11.2017 23:54) , в ответ на Здесь ошибка не от атомарности RMW. Здесь ошибка атомарности наблюдения за инкрементами обоих переменных. Если Задача2 получила управление после tail++, когда обе переменные равны, и успев загрузить head, потеряла управление, и в следующий раз, автор: Petrovich
Здесь есть проблема переупорядочивания записи в память, ну так она лечится барьером, я ж сказал. И проблема не записи вообще, лечится с помощью volatile. Но обращу внимание, нужен И барьер, И volatile. Ибо компилятор НЕ может переставить обращения 
к двум volatile переменным, но обращения к volatile и другим переменным, к памяти адресуемой по указателю -- может быть переупорядочено (а буфер -- это обычно не volatile). А без volatile может переменные держать в регистрах и ничего в сами переменные не записать. Вместо барьера можно использовать вызов функции -- он всегда барьер.
[ZX]
 [x][x][x][x][x][x] [x][x][x][x][x][x][x][x]

Тема выделяется по переводу строки или автоматом

 

Имя


Регистрация позволит вам редактировать и перемещать ваши сообщения и прикреплять к ним файлы.
 
Символы: á é ó ú ý « »
Главная | Карта сайта | О проекте | Проекты | Файлообменник | Регистрация | Вебмастер | RSS
Лето 7526 от сотворения мира. При использовании материалов сайта ссылка на caxapу обязательна.
MMI © MMXVII