Если система имеет двухуровневую иерархию памяти, нужно ли записывать глобальную переменную в основную память в конце программы, если она находится в кеш-памяти в течение срока жизни в программе?
На «нормальных» машинах нет, кеши прозрачные. Они просто ускорят доступ к памяти без видимого изменения способа доступа к памяти, все функции удаления из кеша / синхронизации / обратной записи обрабатываются автономно.
Других решений пока нет …