Здравствуйте, Sinclair, Вы писали:
V>>А смысл, если в 80-е уже пошли персоналки вовсю? V>>ИМХО, ты даже не можешь определиться/сформулировать, что и кому ты хочешь доказать. )) S>Что разработка Unix прекрасно себя чувствовала без volatile ажно с 1967 по 1985. Несмотря на многозадачность и прочие умные слова.
Ну, продолжай, продолжай.
А дальше эта разработка должна была остановиться?
Или в исходном утверждении что-то говорилось о конкретных годах?
Мои рассуждения тут просты:
Почти 100% пользовательских программ в те годы оставались однопоточными;
Собсно, UNIX-way — он именно об этом, когда в прикладных процессах у нас ровно один поток;
Само понятие "поток" в UNIX появилось относительно поздно — надо найти дату выхода POSIX 1.C.
До появления потоков был простой fork, получались два независимых процесса, опять здравствуй однопоточность в каждом из них.
Наиболее востребованной конструкция volatile была (и есть) в системном ПО, т.е. запрос на эту конструкцию, одновременно с появлением оптимизирующих компиляторов, идёт из системной части (дрова, ядро, управление виртаульной памятью, в т.ч. в случае маппинга портов аппаратуры на участки такой памяти).
Ссылки на исходники ядра Linux я дал именно с этой целью — показать, насколько широко эта конструкция используется именно там.
В прикладном коде эта конструкция почти никогда не нужна и даже опасна — разработчик должен хорошо понимать происходящее (увы, та самая "планка входа"), поэтому, на прикладном уровне рулят семафоры, мьютексы, HEVENT, conditional variables и т.д. и т.п.
И да, на всякий случай, семантика volatile в С/С++ отличается от семантики volatile в C#.