RU/2: Форум. Общение пользователей и разработчиков OS/2 (eCS). : Следующий шаг. Немного конкретики.


Список сообщений | Написать новое | Ответить на сообщение | Домой Поиск:
Предыдущее сообщение | Следующее сообщение
From : LightElf
To : Василий А. Сидоров
Subj : Следующий шаг. Немного конкретики.

> > Брр. А ты чего хотел?
> Объяснения: для чего защитная страница, если не для защиты от переполнения стека :)

Это защита от выхода за границу диапазона адресов. В частности - от выхода за границу стека.

> > Еще раз - guard page можно использовать для отлавливания выхода за границу массива.
> Нельзя, т.к. эта фишка предполагает, что "мы будем двигаться маленькими шажками" (ц) "А как же Боб".

Защитных страниц может быть более одной. Маленькие шажки - это относится только к стеку. По одной простой причине - приложение не может само чинить свой стек. Обработчику исключений приложения однако надо хоть чуть-чуть своего стека иметь. Поэтому стек - это такой особенный случай, обрабатываемый OS.
На который никто не мешает забить и стек целиком закоммитить.

> Этого, вообщем-то, нельзя гарантировать и для стека (требование проб) и уж совсем нельзя - для массива, хождение по которому определяется алгоритмом и/или данными.

Если прога за границу своего массива вылетает на пару мегабайт, то ей ничего не поможет. Ну и фиг с ней. А вот стандартные ошибки +1/-1 вполне можно выловить.

Все вышеперечисленное никак не дает обоснования необходимости помещения стека в отдельный сегмент. Ну получил GP вместо PF - чем оно лучше?

Mon 25 Jun 2007 12:11 Mozilla/5.0 (OS/2; U; Warp 4.5; en-US; rv:1.3) Gecko/2003031




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.