RU/2: Форум. Общение пользователей и разработчиков OS/2 (eCS). : Ответить на сообщение
Имя:
e-mail:
FIDO:
Home page:
сохранить данные о вас
Тема:
> > > > > > Хочется понять: если "это" не защита от переполнения стека, то что? > > > > > Это именно такой ограниченный вариант lazy commit, распространяющийся только на стек. > > > > Зачем в этой схеме защитная страница? Чтобы менеджер памяти не запоминал диапазоны адресов стеков? > > > Наверно чтобы не получить разорванный на куски (коммичено/некоммичено) стек. > > Прежний вопрос - зачем? > > Если я не отстал от жизни, то у процессора нет такого исключения "page guard". Есть "page fault". > > Так зачем, всё-таки, в случае стека решили порезаться о бритву? > > guard page - это не обязательно стек. Можно в принципе на любую область памяти повесить. В общем-то с guard page там что-то замутнено у них, но целью как я понял, являлось предоставление окончательного решения самому приложению. То биш просто поимели два разных софтверных исключения - для случая, когда прога лезет куда не надо (жесткий page fault) и когда лезет куда скорее всего не надо (guard page exception). Возможно опять-таки портабельность имели в виду (может у каких процов и есть два разных аппаратных исключения). Ну и в семантике PAG_RESERVE и PAG_GUARD разница есть, так как guard page на самом-то деле коммичена.
_, _, _,
/ \ (_ / ~ )
\ / , ) / /
~ ~ ~~~
Programmed by
Dmitri Maximovich
,
Dmitry I. Platonoff
,
Eugen Kuleshov
.
25.09.99 (c) 1999,
RU/2
. All rights reserved.
Rewritten by
Dmitry Ban
. All rights ignored.