История изменений
Исправление x22, (текущая версия) :
Если я дёрну munmap на указатель в середине замапленной области с длиной 1,
То есть в середине области длиной 1*PAGE_SIZE? Тогда указатель из середины области не будет кратен PAGE_SIZE.
… будет ли вся страница с этим адресом выдернута из адресного пространства?
Вы, скорее всего, имели в виду «будут ли возвращены системе все mmap()-нутые страницы, содержащие диапазон [address, address+length], где address кратен PAGE_SIZE, а lentgh – произвольное число >= 0?».
Кстати, из линуксового man следует, что munmap() должен сработать при правильном address, даже если length == 0 (upd: то есть удалить 1 страницу с начальным адресом address).
Про length != N*PAGE_SIZE есть в линуксовом man, в OpenBSD, например, нет.
Пример для проверки самому писать лень.
Исходная версия x22, :
Если я дёрну munmap на указатель в середине замапленной области с длиной 1,
То есть в середине области длиной 1*PAGE_SIZE? Тогда указатель из середины области не будет кратен PAGE_SIZE.
… будет ли вся страница с этим адресом выдернута из адресного пространства?
Вы, скорее всего, имели в виду «будут ли возвращены системе все mmap()-нутые страницы, содержащие диапазон [address, address+length], где address кратен PAGE_SIZE, а lentgh – произвольное число >= 0?».
Кстати, из линуксового man следует, что munmap() должен сработать при правильном address, даже если length == 0.
Про length != N*PAGE_SIZE есть в линуксовом man, в OpenBSD, например, нет.
Пример для проверки самому писать лень.