В любом случае, нет оправдания почему не сделана хотя бы предварительная проверка прав в момент доступа к памяти и прекращение спекулятивного исполнения, если проверка не пройдена.
В некоторых случаях данные могут использоваться позже и есть смысл их загрузить заранее. Например запись в copy-on-write страницу вызовет исключение и последующее копирование в обработчике страничных ошибок. Я думаю, что Intel обнаружил небольшое увеличение производительности при таком спекулятивном кешировании.
Нет там никакой проблемы. malloc() давно портирован и не один раз. Многопоточность в Колибри похожа на Windows, все потоки одного процесса разделяют общее адресное пространство.
В ближайшие пару лет планируется 13 запусков. Контракты будут распределяться на конкурсной основе между ULA и Spacex. Два контракта на запуск спутников GPS Spacex уже получила.
Семь сотрудников, используя оборудование и ресурсы НАСА? Просто так, из личного интереса и без согласования с руководством? Это работа не на один день, вряд ли они занимались этим в выходные.
Была такая мысль, но вот Интерфакс пишет, что машинки 2011+ года выпуска. Да и отзыв стиральных машин в Австралии из-за угрозы возгорания заставляет задуматься.
В оправдание Samsung стоит отметить, что разрушение механизма машины происходило под нагрузкой при стирке крупных или водонепромокаемых предметов на высоких оборотах.
Это совсем не оправдывает Самсунг. Датчики вибрации в стиральных машинах давно перестали быть экзотикой. Этот случай, как и проблема с телефонами, говорит о том, что у Самсунга проблема с тестированием своей продукции на безопасность.
Ага. Уже разобрался. Это особенность двух близких микроархитектур Sandy Bridge и Ivy Bridge в отличие от исключения при установленном бите cr0.ts, которое всегда работает. Кроме того компиляторы стараются защитить программистов от выстрела в ногу и не генерируют sse и avx код в одном объектном файле.
А при чём здесь AVX? Первоначально речь шла о movaps которая к AVX не относится. Это команда SSE. А внутренняя кухня процессора при использовании разных наборов команд дело тёмное. Откуда эта информация про теневое копирование? И для чего? Регистры ymm удваивают xmm и совпадают по формату. Это же не альяс fpu/mmx.
Я один из разработчиков ОС Колибри и как раз делал переключение контекста fpu/sse. Поэтому знаю как всё работает. Обычно применяют отложенное переключение контекста. При установленном в 1 бите TS регистра cr0 первая команда сопроцессора вызывает исключение 7(#NM). Ядро сбрасывает бит TS и производит переключение контекста сопроцессора. Поэтому сложно сказать сколько тактов на самом деле займёт команда. На мой взгляд применять simd нет смысла, если объём данных меньше пары килобайт. С учётом длинных регистров avx планка ещё выше. В принципе ядро может отслеживать количество исключений для каждого процесса, и если сопроцессор активно используется переключать контекст сразу. Не знаю, используется такая схема или нет.
Остался вопрос — зачем буфер в 2 мегабайта, если 256 страниц по 4Кб занимают один мегабайт?