TLB изменяется всякий раз, когда программа переключает контекст?

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

10
задан tony_sid
29.12.2022 20:50 Количество просмотров материала 3112
Распечатать страницу

2 ответа

Он начинается пустым и перезагружается по мере доступа.

TLB-это оптимизация, которая позволяет избежать чтения более медленной информации о таблицах страниц для поиска памяти приложений; в частности, управление доступом к памяти осуществляется из таблиц страниц, а не TLB.

и причина, по которой вы это очищаете, двоякая: потому что, если вы этого не сделали, доступ из следующего процесса может пойти в память вашего процесса (полная противоположность вашей презумпции!), а потому, что он может быть использован для отслеживания памяти и/или активности процесса.

1
отвечен geekosaur 2022-12-31 04:38

TLB перезагружается из таблицы страниц. Таблица страниц всегда имеет актуальное сопоставление.

Как кэш процессора, TLB-это просто копия того, что есть в таблице страниц, поэтому нет потери информации от его сброса. Кроме того, даже если TLB сбрасывается, память одной программы не выделяется другим программам, поэтому они не могут писать в память этой программы.

посмотреть мои обзорный документ по TLBs для более детального понимания темы.

0
отвечен user984260 2022-12-31 06:55

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх