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