Re[56]: Безопасность Rust
От: vdimas Россия  
Дата: 06.06.19 17:25
Оценка:
Здравствуйте, 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#.
Отредактировано 06.06.2019 17:26 vdimas . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.