Если мое понимание не является ошибочным, TLB хранит не только сопоставления виртуальных объектов, но также флаг каждой страницы, такой как флаг записи (W), флаг выполнения disable (XD).Какая ошибка произошла, если флаги, хранящиеся в tlb, не совпадают?
Вопрос в том, какие ошибки будут сгенерированы, если он попытается выполнить невыполняемые страницы, такие как куча или стек? Это ошибка страницы?
Содержимое TLB «выигрывает» (ничего не проверено, поэтому TLB существует), поэтому вы должны очистить запись, если вы изменяете флаги. – harold
О, правда? Я слышал, что TLB также поддерживает флаги в таблице. –
Да, это проблема. Если у TLB нет их копии, это ничего не ускорит, потому что эти флаги нужно будет искать. Так оно и есть. Но тогда он не знает, что такое «настоящие флаги», он только знает, что они были в момент провала TLB, и он сделал копию. – harold