разница между битом разрешения виртуальной страницы и битом разрешения структуры области - PullRequest
0 голосов
/ 17 декабря 2018

Я новичок в Linux и C, у меня есть вопрос о бите разрешения виртуальной страницы и бита разрешения структуры области.Как показывают фотографии ниже:

enter image description here

enter image description here

Что я не понимаю, так это то,так как у нас есть контроль разрешений на уровне страниц, какой смысл иметь контроль разрешений на уровне структуры области?если мы хотим, чтобы все страницы в одной области были доступны только для чтения, тогда мы просто устанавливаем бит чтения каждой виртуальной страницы на «да», а бит записи на «0», так почему двойное определение?

Ответы [ 2 ]

0 голосов
/ 23 декабря 2018

В вашем вопросе вы сталкиваетесь с разницей между переводом виртуальной памяти и переводом логической памяти.Виртуальная память - это симуляция памяти с использованием вторичного хранилища.Логическая память - это перенаправление адресов на физические адреса.

Таблицы страниц определяют перевод логической памяти.Таблицы операционной системы определяют перевод виртуальной памяти.

0 голосов
/ 17 декабря 2018

Разрешения на уровне страницы устанавливаются по требованию, когда страницы отображаются и выходят!vm_area_struct используется для проверки того, какими должны быть разрешения для самой страницы.

Сам ЦП проверяет биты разрешений уровня страницы каждый раз, когда считываются или записываются любые байтына страницу.

...