Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Если операционная система изменила PID процесса — потому что и ASID станет другим
Если нужной записи в TLB нет, то приходится искать ее в таблицах страниц, которые операционная система размещает в нетранслируемой области ОЗУ
Третий способ — избегать синонимов программно. Например, не использовать общие страницы. Или снова начать линковать программы в общее адресное пространство.
достаточно знать, что ее загружает операционная система. Она же добавляет запись в таблицу страниц (но не в TLB),Уже в который раз натыкаюсь на такое объяснение, но не пойму, что это еще за одна таблица и что именно в ней хранится.
Если нужной записи в TLB нет, то приходится искать ее в таблицах страниц, которые операционная система размещает в нетранслируемой области ОЗУ (чтобы не было промаха TLB при обработке предыдущего промаха). Поиск может быть реализован как аппаратно, так и программно — через обработчик исключения, называемого страничной ошибкой (page fault). Найденная запись добавляется в TLB, после чего команда, вызвавшая промах TLB, выполняется снова.
Спасибо! Читая книгу Таненбаума, у меня возник резонный вопрос: "А как быть, если в ОС крутятся несколько процессов и все они захотят обратиться к определенному месту в памяти?" Судя по изложенному там материалу, при обращении к одному адресу они должны были бы обратиться к одному адресу в физической памяти. "Но это полный бред" - подумал я и пошел гуглить. Благо наткнулся на вашу статью, где вы разъяснили по ASID. Жаль в книге об этом ни слова.
MMU в картинках (часть 1)