ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
18 июля
632770 Топик полностью
fk0, легенда (21.11.2015 12:46, просмотров: 146) ответил LightElf на Если на каждый чих городить критическую секцию - то мегагерцы слипнутся. С такими формулировками "негабаритные переменные" и "любое мероприятие по принуждению к атомарности" вообще непонятно что обсуждать. Есть устоявшиеся определения для
Как AVR и его GCC вспомню, так страшно. Там оптимизатор такие фокусы выделывает. Для AVR вот что  https://gcc.gnu.org/wiki/Atomic/GCCMM/Optimizations
есть (вырождается в инструкцию компилятору: __asm__ __volatile__("":::"memory")). Причём оно не препятствует перекидыванию работы с не-volatile переменными за барьер!!! (http://www.nongnu. …tml#optim_code_reorder) Нарваться можно на космические глюки. Критическая секция для однозадачной системы с прерываниями: запомнить флаг прерываний, запретить прерывания, потом разрешить. Это практически очень быстро. Для многозадачных систем значительно хуже: переключения контекстов очень медленные, очищается кеш процессора, происходит по сути инверсия приоритетов, про префетч кода цпу даже лучше не вспоминать.
[ZX]