Как пишут в разных источниках, традиционный размер страницы виртуальной памяти - 4 килобайта (относительно недавно появились и внедряются технологии мегастраниц, но к делу это щас не относится). Т.е. адресация ВНУТРИ страницы - 12битовая, от 0 до 4095 байта. Ок
(
Read more... )
Reply
Reply
Вот переключение процессов в такой схеме может потребовать просмотра TLB и выкидывания оттуда записей для процессов, ASID которых совпадает с ASID "нового" процесса - это немного усложняет диспетчер памяти в ОС. В какой-нибудь микроядерной ОС, где время переключения процессов должно быть очень маленьким, возможно, стоит даже сделать так, чтобы некоторые процессы имели уникальный ASID, и переключение на них никогда не приводило бы к пересмотру всего TLB.
Reply
ASID получается каким-то однозначным образом связанным с номером процесса, иначе будет невозможно выяснить, какому из процессов принадлежат уже имеющиеся в TLB записи с запрашиваемым ASID, и придётся в случае их обнаружения очищать весь TLB... но тогда какой в нём смысл ;)
Reply
Reply
В простейшем случае можно считать, что ASID=PID, в некоторых случаях это возможно.
Reply
ладно, до проектирования MMU я ещё не скоро дойду
Reply
Reply
Leave a comment