Может ли нажатие TLB привести к сбою страницы в памяти? - PullRequest
13 голосов
/ 19 июня 2011

В лекциях UC Berkley Video по ОС Джона Кубятовича (проф. Куби), доступных в сети, он упомянул, что попадание в TLB не означает, что соответствующая страница находится в основной памяти. Ошибка страницы все еще может возникнуть.
Технически TLB являются кешем для записи в таблице страниц, и, поскольку все записи таблицы страниц не имеют своей соответствующей страницы, доступной в основной памяти. То же самое может быть верно для TLB. Удар TLB может привести к сбою страницы.

Но в соответствии с алгоритмами, приведенными в учебниках, я не могу найти такой случай. В случае отсутствия ядра TLB обратитесь к таблицам страниц и обновите кэш TLB для соответствующей трансляции адресов. Следующее нажатие TLB не может привести к ошибке страницы. Когда ядро ​​выгружает страницу, оно обновляет соответствующие биты для этой записи таблицы страниц и делает недействительным соответствующий TLB, поэтому в следующий раз не может быть нажатия TLB, пока страница не будет загружена в основную память.

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

Ответы [ 3 ]

12 голосов
/ 19 июня 2011

Один пример, если доступ к памяти отличается от разрешенного.

например, вы хотите записать в память, защищенную от записи.TLB существует, это хит, и адрес переведен.Но при доступе вы получаете ловушку, поскольку вы пытаетесь записать в память только для чтения

2 голосов
/ 30 октября 2015

Ошибка страницы не означает отсутствие страницы в памяти. Страница все еще может присутствовать и быть грязной. Это также ошибка страницы. В общем, ошибка страницы относится к сценарию, в котором полученный перевод не может быть эффективно использован. Это может быть отсутствующая страница, грязная страница или несоответствие прав доступа. Таким образом, попадание в TLB может привести к ошибке страницы.

0 голосов
/ 08 ноября 2013

Паттерсон говорит: «не может иметь перевод в TLB, если страница отсутствует в памяти» [организация и дизайн компьютера, 4-е издание, с. 507]

...