Многозадачность и кеш

Многозадачность и кеш скажем, я запускаю две программы одновременно, медиаплеер, играющий в MP3, и видеоигру. Предположим на данный момент, что другие ядра системы заняты другими программами. Мой вопрос касается кеша ЦП.

Каждый раз, когда компьютеру приходится менять контексты для запуска разных программ, нужно ли очищать кеш процессора?

Как часто это происходит, и есть ли у кого-нибудь хорошие онлайн-ссылки на этот вопрос? Я хочу узнать больше об операционных системах.

Вопрос очень обширный, поэтому ответить на него сложно. «видеоигра» или «медиаплеер, воспроизводящий MP3» мало что значит. Cores не выполняет приложения. Они запускают инструкции потока, который является частью самого процесса и частью работающего приложения. Приложения могут использовать несколько процессов (например, браузеров) с несколькими потоками. Программные потоки запланированы на аппаратные потоки. Планирование зависит от многих параметров, таких как приоритет, фактическая работа потока, включение других и т. д. Операции, выполняемые во время переключения контекста, зависят от ОС и архитектуры ЦП.

Jérôme Richard 23.04.2022 02:44

Помимо этого примечания, что «Поиск рекомендаций по книгам, инструментам, программным библиотекам и т. д.» не относится к теме Stack-Overflow.

Jérôme Richard 23.04.2022 02:47
3 метода стилизации элементов HTML
3 метода стилизации элементов HTML
Когда дело доходит до применения какого-либо стиля к нашему HTML, существует три подхода: встроенный, внутренний и внешний. Предпочтительным обычно...
Формы c голосовым вводом в React с помощью Speechly
Формы c голосовым вводом в React с помощью Speechly
Пытались ли вы когда-нибудь заполнить веб-форму в области электронной коммерции, которая требует много кликов и выбора? Вас попросят заполнить дату,...
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Будучи разработчиком веб-приложений, легко впасть в заблуждение, считая, что приложение без JavaScript не имеет права на жизнь. Нам становится удобно...
Flatpickr: простой модуль календаря для вашего приложения на React
Flatpickr: простой модуль календаря для вашего приложения на React
Если вы ищете пакет для быстрой интеграции календаря с выбором даты в ваше приложения, то библиотека Flatpickr отлично справится с этой задачей....
В чем разница между Promise и Observable?
В чем разница между Promise и Observable?
Разберитесь в этом вопросе, и вы значительно повысите уровень своей компетенции.
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Клиент для URL-адресов, cURL, позволяет взаимодействовать с множеством различных серверов по множеству различных протоколов с синтаксисом URL.
0
2
38
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Every time the computer has to change contexts to run the different programs does it have to flush the CPU cache?

Какой кеш (в каком процессоре)?

Некоторые кэши (например, кэш L2 и кэш L3 в процессорах 80x86) физически индексируются и не сбрасываются при изменении контекста (поскольку «контекст» не влияет на физическую память и физические адреса); но «наименее недавно использовавшееся вытеснение» (и его разновидности), как правило, означает, что в течение короткого периода времени данные предыдущей программы вытесняются, чтобы освободить место в кэше для данных, используемых текущей программой.

Некоторые кэши (например, кэш инструкций L1, кэш трассировки, «кэш трансляций виртуальной памяти»/TLB, ...) могут очищаться или не очищаться. Иногда они помечены каким-то идентификатором и не сбрасываются (так что данные для программы с идентификатором № 45 просто игнорируются, но, возможно, исключаются из-за «наименее недавно использованного», когда программа с идентификатором № 67 работает). Иногда ОС явно сбрасывает данные в целях безопасности (например, для устранения уязвимости Spectre).

Другие вопросы по теме